繁体   English   中英

如何根据容器的高度从 css 或 javascript 生成行号

[英]How can I generate line number from css or javascript based on height of container

我有一种情况,我必须制作一些看起来像代码编辑器的东西,为了实现这一点,我必须在没有任何库的情况下使用 HTML、CSS 和 Js。

除了行号之外,我几乎完成了所有工作,但我不知道该怎么做。

到目前为止,我已经实现了这一点: 在此处输入图像描述

这实际上是我的目标: 在此处输入图像描述

假设我有这个 html 结构:

<html>
    <head>
    </head>
    
    <body>
        <div class="lines"></div>
        <div class="code"></div>
    </body>
</html>

在此处输入图像描述

如何使用 CSS 或 JavaScript 在code中根据内容的高度填充lines

这里有一些东西:(写得很快,随时调整 CSS 等)

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
    <style>
    #code {
        line-height: 15px;
    }
    .holder {
        display: flex
    }
    
    </style>
</head>
<body>

        <div class="holder">
            <div>
                <pre id="lines">
            </pre>
            </div>
            <div>
                <pre id="code">
                .aaa {
                   bbb
                }
                .ccc {
                   ddd
                }
                </pre>
            </div>
        </div>

</body>
    <script>
    const codeHeight = document.getElementById('code').offsetHeight;    
    const lines = Math.ceil(codeHeight / 15);
    let html = '';
    for (i = 1; i < lines; i++) {
        html += i + '<br>'
    }
    document.getElementById('lines').innerHTML = html;  
    </script>
</html>

这是 JS 小提琴: https://jsfiddle.net/4aowc26f/

计算中的数字 15 是由于 15px 行高。 随意为此引入变量。

你应该把每一行作为一个 div <div><span>{line}</span> <span>some code</span> </div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM