CSS カウンターと<code>
タグを使用して、構文が強調表示されたコード スニペットと自動生成された行番号を表示しています。
HTML:
<code>
<div class="line"><span>line 1</span></div>
<div class="line"><span>line 2</span></div>
...
</code>
CSS:
code {
display: inline-block;
border: 1px black solid;
padding: 1em;
font-family: "Consolas", "Monaco", "Courier New", monospace;
counter-reset: line;
}
code .line {
display: block;
counter-increment: line;
}
code .line::before {
border-right: 1px black solid;
padding-right: 1em;
margin-right: 1em;
content: counter(line);
}
9 行までは問題なく動作しますが、2 桁になると整列しなくなります。
線の左端を揃えるにはどうすればよいですか? または、行番号を右揃えにしますか?
私はすでに試しました:
counter(line, decimal-leading-zero)
- 99 行までは動作しますが、100 行で壊れてしまい、見た目が気に入りません- JavaScript でコンテンツを変更するが、
getComputedStyle(line, '::before').content
単に返す"counter(line)"