首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在可编辑的div上显示每行旁边的行号

在可编辑的div上显示每行旁边的行号,可以通过以下步骤实现:

  1. 首先,为可编辑的div创建一个父容器,并设置其样式为相对定位(position: relative),以便后续绝对定位的行号容器可以相对于该父容器进行定位。
  2. 在父容器中创建一个用于显示行号的容器,并设置其样式为绝对定位(position: absolute)。将该容器放置在可编辑div的左侧,可以使用left属性进行调整。
  3. 使用JavaScript监听可编辑div的滚动事件,以便在滚动时更新行号容器的位置。
  4. 在滚动事件的处理函数中,获取可编辑div的scrollTop属性,即滚动的垂直距离。根据scrollTop的值,计算当前可见区域的第一行和最后一行的行号。
  5. 将计算得到的行号填充到行号容器中,并设置合适的样式,例如字体大小、行高等。

以下是一个示例的代码实现:

HTML:

代码语言:txt
复制
<div class="editor-container">
  <div class="line-number-container"></div>
  <div contenteditable="true" class="editable-div"></div>
</div>

CSS:

代码语言:txt
复制
.editor-container {
  position: relative;
  display: flex;
}

.line-number-container {
  position: absolute;
  left: 0;
  top: 0;
  width: 30px; /* 调整宽度以适应行号的长度 */
  padding: 5px;
  font-family: monospace; /* 使用等宽字体以保持对齐 */
  background-color: #f0f0f0;
  border-right: 1px solid #ccc;
}

.editable-div {
  flex: 1;
  padding: 5px;
  font-family: monospace; /* 使用等宽字体以保持对齐 */
  border: 1px solid #ccc;
  overflow: auto;
}

JavaScript:

代码语言:txt
复制
const editableDiv = document.querySelector('.editable-div');
const lineNumberContainer = document.querySelector('.line-number-container');

editableDiv.addEventListener('scroll', updateLineNumbers);

function updateLineNumbers() {
  const scrollTop = editableDiv.scrollTop;
  const lineHeight = parseInt(getComputedStyle(editableDiv).lineHeight);
  const firstVisibleLine = Math.floor(scrollTop / lineHeight) + 1;
  const lastVisibleLine = firstVisibleLine + Math.floor(editableDiv.clientHeight / lineHeight) - 1;

  let lineNumbersHtml = '';
  for (let i = firstVisibleLine; i <= lastVisibleLine; i++) {
    lineNumbersHtml += `<div>${i}</div>`;
  }
  lineNumberContainer.innerHTML = lineNumbersHtml;
}

这样,当用户在可编辑的div中滚动时,行号容器会根据滚动位置动态更新显示的行号。你可以根据实际需求调整样式和布局。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

何在VimVi中显示行号

Vim/Vi是许多软件开发人员和Linux系统管理员首选文本编辑器。 默认情况下,Vim不显示行号,但可以轻松打开它们。Vim支持三种行编号模式,帮助你浏览文件。...除了标准绝对行编号之外,Vim还支持相对行和混合行编号模式。 绝对行号 绝对行号是标准行号,它在每行文本旁边显示适当行号。 要激活行编号,请设置数字标志: 按Esc键切换到命令模式。...切换行号: :set number! 相对行号 启用相对行编号后,当前行显示为0,而当前行上方和下方行将递增编号(1,2,3…等)。...混合行号 在Vim 7.4及更高版本中,同时启用绝对行号和相对行号会设置混合行号模式。 混合行编号与相对行编号相同,唯一区别是当前行而不是显示0表示其绝对行号。...永久设置 如果希望每次启动Vim时都显示行号,请在.vimrc(Vim配置文件)中添加适当命令。

3.5K10

你会在浏览器中打断点吗?我会!

「如果大家对这些概念熟悉,可以直接忽略」 同时,由于阅读我文章群体有很多,所以有些知识点可能「我视之若珍宝,尔视只草芥,弃之敝履」。以下知识点,请「酌情使用」。...打开Sources选项卡 打开想要设置断点文件 找到代码行 在代码行左侧是行号列,右键点击它。 选择Add conditional breakpoint。一个对话框显示在代码行下方。...通过点击组或断点旁边复选框单独启用或禁用组或断点。 将鼠标悬停在其,然后点击关闭按钮可以要删除一个组。 当我们禁用断点时,Sources 面板会使其在行号旁边标记「变为透明」。...要编辑断点: 点击断点旁边复选框以启用或禁用它。...当我们禁用断点时,Sources 面板会使其在行号旁边标记「变为透明」。 将鼠标悬停在断点,然后点击编辑编辑,点击关闭以删除它。 在编辑断点时,可以在内联编辑下拉列表中更改其类型。

52110
  • Pycharm使用说明

    主题 Darcula:默认深色主题 高对比度:主题为有色觉缺陷用户设计 这个是打开页面 1左侧项目工具窗口显示项目文件。...2右侧编辑器,您实际在其中编写代码地方。它具有用于在打开文件之间轻松导航选项卡。 3编辑器上方导航栏还使您可以快速运行和调试应用程序,以及执行基本 VCS操作。...4,编辑旁边竖线Gutter显示了您拥有的断点,并提供了一种方便方式来 浏览代码 层次结构,例如转到定义/声明。它还显示行号每行VCS历史记录。 5,滚动条,位于编辑右侧。...PyCharm会不断监控您代码质量,并始终 在装订线中显示其代码检查结果 :错误,警告等。右上角指示器显示整个文件代码检查总体状态。...7,状态栏 指示项目和整个IDE状态,并显示各种警告和信息消息,例如文件编码,行分隔符,检查配置文件等。它还提供对Python解释器设置快速访问。

    64530

    Linux系列 使用vi文本编辑

    1.使用vi文本编辑器 vi是一个功能强大全屏幕文本编辑工具,一直以来都作为类UNIX操作系统默认文本编辑器,vim是vi文本编辑器(简称vi编辑器)增强版本,在vi编辑基础扩展了很多实用功能...使用按键命令G跳转到文件最后一行。 使用按键会令#G院转到文件中第#行(其中“二”号用高体数字替换)。...为了便于查看行间期转效果,这里先学习如何在v编辑器中是示行号,只要切换到末行模式并 执行如下”set cu”命令即可显示行号,执行"set nonu"命令可以取消量示行号.  ...显示行号vi编辑器界面显示格式如下(每行开头数字即行号): ---- (3)复制、粘贴和删除 删除操作。 按×键或Delete键删除光标处单个字符。...---- 4.末行模式中基本操作 在命令模式中按:键可以切换到末行模式,vi编辑最后一行中将显示”:提示符,用户可以在该提示符后输入特定末行命令,完成保存文件,退出编辑器,打开新文件,读取其他文件内容及字符串替换等丰富功能操作

    40820

    文本编辑器及文本处理 文本编辑器介绍 常见Linux文本编辑器有: emacs nano gedit kedit vi vimLinux文本编辑器-emacs emacs是一款功能强大

    优点: 定制,扩展 功能强大 可以与许多自由软件编程工具集成 缺点: 入门难度高,对普通用户不友好 Linux文本编辑器-nano nano是命令行界面下一个相对简单文本编辑器,它是为了代替闭源...当执行一个非移动命令时,命令会被执行到这块高亮区域。Vim"文本对象"也能和移动命令一样用在这个模式中。 选择模式:这个模式和无模式编辑行为比较相似(Windows标准文本控件方式)。...vim基础操作 - 行号显示与取消 显示行号:set nu 1 hello 2 openEuler ~ ~ ~ ~ ~ :set nu 取消显示行号:set nonu vim基础操作 - 查找与替换...#查看/etc/profile文件内容,并对非空白行进行编号,编号从1开始 [root@openEuler ~]# cat -n /etc/profile #查看/etc/profile文件内容,并在每行前面显示行号...命令格式: less [option] 文件 less常用选项有: -f:强制打开特殊文件,例如外围设备代号、目录和二进制文件 -g:只标志最后搜索到关键字 -i:忽略搜索时大小写 -N:显示每行行号

    75840

    华为认证欧拉openEuler-HCIA文本编辑器及文本处理

    优点: 定制,扩展 功能强大 可以与许多自由软件编程工具集成 缺点: 入门难度高,对普通用户不友好 Linux文本编辑器-nano nano是命令行界面下一个相对简单文本编辑器,它是为了代替闭源...当执行一个非移动命令时,命令会被执行到这块高亮区域。Vim"文本对象"也能和移动命令一样用在这个模式中。 选择模式:这个模式和无模式编辑行为比较相似(Windows标准文本控件方式)。...vim基础操作 - 行号显示与取消 显示行号:set nu 1 hello 2 openEuler ~ ~ ~ ~ ~ :set nu 取消显示行号:set nonu vim基础操作 - 查找与替换...#查看/etc/profile文件内容,并对非空白行进行编号,编号从1开始 [root@openEuler ~]# cat -n /etc/profile #查看/etc/profile文件内容,并在每行前面显示行号...命令格式: less [option] 文件 less常用选项有: -f:强制打开特殊文件,例如外围设备代号、目录和二进制文件 -g:只标志最后搜索到关键字 -i:忽略搜索时大小写 -N:显示每行行号

    38040

    Linux系统开发: 学习linux三剑客(awk、sed、grep)()

    需运用-n参数,显示行号单独也与其他选项参数写在一起。...'表达式' | sed '表达式' 等价于: sed '表达式; 表达式' 3.9 常用示例 显示输入文件行号 需用到命令:=:打印当前行号码(包括空白行) 需用到元字符集:....$ sed '=' 123.txt #显示文本每一行行号 $ sed '3=' 123.txt #显示文本第三行行号 $ sed "/./=" 123.txt #只显示非空白行行号...=" 123.txt #只显示空白行行号 显示文件总行数 需用到元字符集:$:匹配到行结束 $ sed '$=' 123.txt #显示123.txt内总共有多少行,也就是最后一行行号...txt 666.txt #替换123.txt、666.txt内第二行往后每次增加两行bck为sh,每行全面替换 给文件名\单词前统一替换加前缀或后缀或前后缀 需用到元字符集:^ 匹配行开始,

    9.3K21

    EclipsePHP studio使用集锦

    ps:以前一直用dw编辑php,今天打算尝试新编辑器使用(其实中间使用过gedit,notepad++,editor等) 今天打算彻底在windows下使用epp,我用是epp1.2.2(版本比较老...files–edit(编辑) 2、设置行号 在dw中看惯了每行前面带有行号,其实设置很简单,打开文件,ctrl+f10看到显示行号了吗?...+Shift+F4:关闭所有打开Editer Alt+Enter:显示当前选择资源(工程或文件)属性 二,文件操作: Alt+/ :自动代码完成 Ctrl+Space:代码助手,完成一些代码自动插入...Ctrl+Z:返回到修改前状态(编写代码时后悔药) Ctrl+Y:撤销上面的返回(即后悔后悔药) Ctrl+/:注释当前行,再按则取消注释 Ctrl+,:在一个文件中快速定位到存在问题行(错误...:在当前行下一行插入空行(这时鼠标可以在当前行任一位置,不一定是行尾) Ctrl+Shift+Enter:在当前行一行插入空行(原理同上条) Ctrl+Shif+O:在PHP站点(自定义搜索源

    84740

    Linux 三剑客grep sed 与 awk

    grep [option] pattern file复制代码v:显示不被pattern 匹配到行,相当于[^] 反向匹配e :实现多个选项间逻辑or 关系E:扩展正则表达式2. sedsed主要用来自动编辑一个或多个文件..., 简化对文件反复操作.sed [options] '[地址定界] command' file(s)复制代码optionsn:不输出模式空间内容到屏幕,即不自动打印,只打印匹配到行e: 多点编辑,对每行处理时...ORS :输出记录分隔符,输出时用指定符号代替换行符NF :字段数量,共有多少字段, NF引用最后一列,NF引用最后一列,NF引用最后一列,(NF-1)引用倒数第2列NR :行号,后跟多个文件,第二个文件行号继续从第一个文件最后行号开始...FNR :各文件分别计数, 行号,后跟一个文件和NR一样,跟多个文件,第二个文件行号从1开始FILENAME :当前文件名ARGC :命令行参数个数ARGV :数组,保存是命令行所给定各参数,查看参数源码附件已经打包好上传到百度云了...如果百度云链接失效了的话,请留言告诉我,我看到后会及时更新~GIT 项目推荐:包含多端免授权商用,希望在互联网生涯中帮助到您附件地址:https://gitee.com/ZhongBangKeJi

    88320

    【译】你可以用GitHub做12件 Cool 事情

    朋友那都是过去式了,现在我就告诉你,点击用户名旁边日期/时间即可链接到该 comment 。 6 链接到代码 我知道你想链接到具体代码行。 尝试:查看文件时,点击代码旁边行号。...看到了吧,浏览器 URL 已经被更新为行号了。如果你按住 shift,同时点击其他行号, URL 再次被更新,并且你也高亮显示页面中一段代码。...对于结构化页面来说 —— 例如你文档:不能说这个页面是其他页面的子页面,或则是有 “下一节”,“一节” 这样便捷按钮。...从这点我可以主要依据易编辑 Markdown 文件来构建一个完整静态站点。本质是把 GitHub 变成了 CMS。...=> { this.setState({markdown}); }); } render() { return ( <div

    83820

    Firebug入门指南

    * 限制只对某些站点使用Firebug:先右击浏览器状态green check mark标志,选择"disable Firebug"命令。...* HTML标签: 显示HTML源码,并且像DOM等级结构那样,每行之前有缩进。你可以选择显示或不显示某个子节点。 * CSS标签:浏览所有已经装入样式表,可以当场对其修改。...在Firebug窗口上部,"edit"命令旁边,有一个本页面中所有样式表下拉列表,你可以选择一个样式表进行浏览。 * Script标签: 显示javascript文件及其所在页面。...在HTML标签中,点击窗口上部"inspect"命令旁边"edit"命令,下方窗口就会立刻变成一个黑白文本编辑窗口,你可以对HTML源代码进行任意编辑。...Firebug允许你编辑CSS属性和属性值。你只要对它们点击,就能编辑。修改后效果会立刻在浏览器窗口中显示出来。

    1.2K20

    LaTeX伪代码写法总结

    algorithmic用于编辑伪代码内容,一些for、while、if等语句通过该包中命令进行编写。...algorithmicx可以看作algorithmic升级版,提供了一些自定义命令 algorithm2e则是独立于algorithmic和algorithmicx另一套伪代码环境,两套环境语法、排版均不相同...其他 显示行号 \begin{algorithmic}[1] “1”表示每行显示行号,如果填“2”,意思是每2行显示一次行号。...标题与标号更改 如果不作额外更改,标题一行会显示为: 如果有多个伪代码,标号为2或者其他数字,则可以在编辑标题内容语句(环境区)前加: \setcounter{algorithm}{1} 命令中数字为...发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    10.8K30

    pycharm 教程(一)安装和首次使用 原

    4,进入编写界面 PyCharm默认编辑界面很怪,会自动生成一行 __author__ = “作者” 头。而比较常用文件头,:#coding=utf-8 等,反倒没有自动生成。  ?...5,设置控制台 运行之前,我们发现快捷菜单【运行】和【调试】都是灰色,不可触发状态。是因为,我们需要先配置一下控制台。...点击运行旁边黑色倒三角,进入【Run/Debug Configurations】配置界面。(或者点击Run --> Edit Configurations 也一样) ?...PyCharm 教程(四)显示行号      在PyCharm 里,显示行号有两种办法: 1,临时设置。右键单击行号处,选择 Show Line Numbers。...否则,我们还真不如用纯编辑器写快。 【运行】和【调试】前设置,详见前面的文章,helloword。 1,设置断点 在代码前面,行号后面,鼠标单击,就可以设置断点。如下: ?

    1.2K30

    2023最全vim编辑器教程(详细、完整)-编辑器之神

    在命令模式下,用户可以执行各种编辑操作,移动光标、删除字符、复制粘贴等。插入模式下,用户可以输入文本。底行模式下,用户可以执行一些底行命令,保存文件、退出编辑器等。...; 3.切换到编辑模式 命令模式下键盘输入字母i或a(还有其他字母也可以这两个比较常用)切换到编辑模式以编辑 注意:vim刚打开文件时默认为命令模式,命令模式切换到末行模式或编辑模式,但末行模式与编辑模式之间不能直接相互切换...新内容/g //用新内容替换整个文件全部被搜索到内容 6.显示行号 语法1::set nu //键盘输入英文符号:+字母set+空格+字母nu再回车,显示文件每行行号显示行号是暂时下次打开该文件不会再显示...语法2::set nonu //键盘输入英文符号:+字母set+空格+字母nonu再回车,取消行号显示 7.切换文件 语法1::files //键盘输入英文符号:+字母files再回车,查看同时打开所有文件名称.../不显示行号 配置分类: 临时配置:在末行模式下输入配置,此配置是暂时,下次打开文件时不会生效; 个人配置:个人配置文件路径是~/.vimrc,即当前用户家目录下隐藏文件.vimrc,此配置只对当前用户永久生效

    2.7K50

    ASP.NET MVC 5 - 给数据模型添加校验器

    请注意,表单在每一个相应验证错误消息旁边,已经自动使用红色边框颜色突出显示文本框指明无效数据。...调用此方法将验证对象所有应用了验证约束属性。如果对象含有验证错误,则Create方法会重新显示初始form。如果没有任何错误,方法将保存信息到数据库。...下图显示了如何禁用 Internet Explorer 中 JavaScript。 ? ? 下图显示了如何在火狐浏览器中禁用 JavaScript。 ?...下图显示了如何在 Chrome 浏览器中禁用 JavaScript。 ? 下面是框架代码在之前教程中生成Create.cshtml视图模板。...它们会自动查找模型中指定验证属性,并显示适当错误消息。 如果您想要在后面更改验证逻辑,您可以做在一个地方,将验证信息添加到模型。 (此示例中,是movie 类)。

    9K70

    解决ueditor编辑器代码自动换行和多余空行等问题方法汇总

    在使用百度ueditor编辑器时,可能会遇到一些问题,代码不能自动换行、再编辑时出现多余空行等。下面是我整理解决这些问题方法,供大家参考。...>这样,在打开已发布文章内容进行编辑时,就不会自动生成多余空行了。解决代码块行号与代码无法对齐问题在代码块前台显示时,可能会出现行号与代码无法对齐情况,这样会影响阅读体验。...解决这个问题方法如下:在内容显示页面中,添加以下CSS样式即可解决:/*百度编辑行号与代码对齐:*/.syntaxhighlighter td { vertical-align: middle...important;}这样就可以实现行号与代码对齐显示。解决代码块中代码过长不能自动换行显示问题当代码过长时,由于不会自动换行,代码块宽度可能会打破文章显示宽度,从而影响用户阅读体验。...解决这个问题方法如下:在内容显示页面中,添加以下CSS样式即可解决:/*百度编辑器代码块不能自动换行问题:*/.syntaxhighlighter div.container code{ word-break

    45910

    linux学习第十八篇:vim编辑模式和命令模式

    在该模式下,你可以搜索某个字符或者字符串,也可以保存、替换、退出、显示行号等等。 命令 作用 /word 向光标之后查找一个字符word,按n向后继续搜索,shift+n向前搜索 ?...1,$s/word1/word2/g 将文档中所有的word1替换为word2,不加 g 则只替换每行第一个word1 :w 保存文本 :q 退出vim :w!...强制退出,所有改动不生效 :wq 保存并退出 :set nu 显示行号 :ser nonu 不显示行号 PS:命令: /nohl 可取消你搜索时留下高亮 PS:当想替换目标是路径/etc/hosts.../vi 重新编辑这个文件,会提示输入密码,如果输入密码不正确,同样会显示为乱码!...二、 解密用vi加密文件(前提是你知道加密密码): 1) 用 vim/vi 打开文件text.txt,要输入正确密码,然后在编辑时,将密码设置为空,方法是输入下面的命令

    2.2K100

    【Linux】三剑客 grep、awk、sed 常见用法

    2、基本格式 grep "模式" 文件名 3、常用选项 -A n # 显示匹配到「后n行」 -B n # 显示匹配到「前n行」 -C n...# 显示匹配到「前n行」和「后n行」 -c # 统计匹配行数(⚠️ 不是匹配到个数) -E # 支持扩展正则匹配 -f #...从文件获取匹配规则 -i # 忽略大小写 -l # 只显示文件名 -n # 显示行号 -q # 静默,不打印结果...2、基本格式 awk '{指令}' 文件名 3、基本概念 NR # 当前行行号」 NF # 当前行「列数(字段个数)」 $0 # 当前行文本内容...,i.bak 表示编辑同时生成备份文件 -n # 仅显示经过编辑行 -r # 支持扩展正则匹配 # 使用技巧 只要编辑文件,就使用参数 i 只要用到动作

    49820
    领券