使用Highlight.js高亮显示代码时,如何为其添加行号?

碧海醫心
发布: 2025-03-16 08:18:28
原创
286人浏览过

使用Highlight.js高亮显示代码时,如何为其添加行号?

highlight.js本身不具备添加行号的功能,需要借助css和javascript实现。本文将详解如何为highlight.js高亮的html代码添加行号,并解释此前未能成功添加的原因。

问题根源在于Highlight.js缺乏内置行号支持,需手动添加。解决方案是通过JavaScript动态生成行号,并用CSS控制其样式和位置。 我们需要创建一个<ul></ul>元素来容纳行号,然后用JavaScript遍历代码行,为每个<li>元素添加对应的行号。 同时,CSS样式确保行号与代码块对齐。

以下是一个改进后的代码示例,包含必要的CSS和JavaScript代码:

芦笋演示
芦笋演示

一键出成片的录屏演示软件,专为制作产品演示、教学课程和使用教程而设计。

芦笋演示 34
查看详情 芦笋演示
<style>
    pre {
        position: relative;
        margin-bottom: 24px;
        border-radius: 3px;
        border: 1px solid #C3CCD0;
        background: #FFF;
        overflow: hidden;
    }

    code {
        display: block;
        padding: 12px 24px;
        overflow-y: auto;
        font-weight: 300;
        font-family: Menlo, monospace;
        font-size: 0.8em;
    }

    code.has-numbering {
        margin-left: 21px;
    }

    .pre-numbering {
        position: absolute;
        top: 0;
        left: 0;
        width: 20px;
        padding: 12px 2px 12px 0;
        border-right: 1px solid #C3CCD0;
        border-radius: 3px 0 0 3px;
        background-color: #EEE;
        text-align: right;
        font-family: Menlo, monospace;
        font-size: 0.8em;
        color: #AAA;
    }
</style>
<link href="http://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/default.min.css" rel="stylesheet">
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/highlight.min.js"></script>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script>
    hljs.highlightAll();
    $(function () {
        $('pre code').each(function () {
            var lines = $(this).text().split('\n').length - 1;
            var $numbering = $('<ul/>').addClass('pre-numbering');
            $(this)
                .addClass('has-numbering')
                .parent()
                .append($numbering);
            for (i = 1; i <= lines; i++) {
                $numbering.append($('<li/>').text(i));
            }
        });
    });
</script>

<pre class="brush:php;toolbar:false;"><code class="html">
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>行号</title>
</head>
<body>
    <p>测试页面</p>
</body>
</html>
登录后复制
此代码使用了jQuery简化DOM操作,当然也可以用纯JavaScript实现。 它先加载Highlight.js和jQuery,然后遍历代码行数,动态创建行号列表并添加到代码块中。 CSS样式控制行号的样式和位置,最终实现为Highlight.js高亮的代码添加行号。

以上就是使用Highlight.js高亮显示代码时,如何为其添加行号?的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号