我的目标是创建行(行号)行:
我有一个片段可以在特定浏览器上实现其中一些目标:
.code { counter-reset: line; }
.line { counter-increment: line; white-space: pre-wrap; }
.line:before { content: counter(line) " - "; }
<div class="code">
<div class="line">Line 1</div>
<div class="line"> Line 2</div>
<div class="line">Line 3</div>
</div>
问题在于:
(我无法访问Mac,所以我不了解Safari。我太懒了,无法测试Opera。)
有没有办法在所有常见的浏览器中使用它?
答案 0 :(得分:1)
简短的回答:你可能无法获得IE&amp; FF的行为与Chrome相同,甚至相互之间。
此时Opera本质上就是Chrome(即使使用Google的引擎,也不使用Webkit),所以请考虑在Chrome运行时进行测试。
我发现更长的信息...
这个问题揭示了其他两个浏览器的两个不良行为:
::before
伪元素中选择生成的内容。根据我的理解(以及其他浏览器的理解)规则说它不应该:它不是DOM的一部分,它是由CSS生成的。unselectable="on"
通常会让IE停止选择文字。但是,如果您在IE中打开this question,则会看到您可以选择&#34;不可选择的&#34;文字,如果你在&amp;之前的街区开始继续拖过它,或右键单击框内&amp;选择&#34;全选&#34;然后复制。所以它甚至不是轻微的防弹。此外,属性不会帮助您保护伪元素。 user-select:none
(以及供应商前缀),但在使用IE浏览器的JSFiddle中尝试时,我认为没有效果。 onselectstart="return false"
,这是剪辑优惠券的完美电锯。pre
白空间到剪贴板,但Mozilla大多忽略它。 about:config
option告诉Firefox双击选择它时是否占用一个单词旁边的空格,但这里完全没用。我提到它只是为了排除它。 :(