当前位置: 首页 > 面试题库 >

我应该在第一个字母和第一行伪元素之前,之后使用单冒号(:)还是双冒号(::)?

林英锐
2023-03-14
问题内容

从MDN:

::在CSS 3中引入了该符号,以便在伪类和伪元素之间建立区别。浏览器还接受:CSS 2中引入的符号。

如果该表示法:将始终被CSS3浏览器接受,那么我应该使用它,因为它适用于新旧浏览器吗?

还是应该将它们都:用于旧浏览器和::新浏览器,因为这种表示法:不会总是被接受?

注意
:我认为我的问题不是重复项,也不是我应该对伪元素使用单冒号还是双冒号表示的重复项?因为另一个问题询问所有伪元素的单符号还是双符号;虽然我的问题只是关于CSS2中定义的伪元素,而不是CSS3中定义的新元素,因为我已经知道必须使用::


问题答案:

对于它的价值,选择器4现在明确指示1作者继续对所有伪元素( 包括CSS1和CSS2伪元素) 使用双冒号(强调我的意思):

因为CSS级别1和CSS
2级通过共享两个单冒号语法混为一谈伪元素和伪类,用户代理也必须接受级别1和2伪元素前一个冒号符号(::before::after::first- line,和::first-letter)。不允许任何其他伪元素使用此兼容性表示法。
但是,由于不赞成使用此语法,因此对于这些伪元素,作者应使用Level 3+双冒号语法。

这意味着, 只有 今天适当使用单冒号语法的是,如果你确实需要旧版浏览器支持-
的事项这里是IE8及以上的浏览器。如果不这样做,则应使用双冒号语法,以便与仅接受双冒号的较新的伪元素保持一致。此外,这是相当没有意义的使用单冒号语法如果,例如,你要的是不被支持IE8属性适用 无论如何 ,如border- radiusbox-shadow,你::before::after伪元素。

我想相信选择器3至少在其声明中_暗示了_这一点,即单冒号语法不适用于任何较新的伪元素,但是用黑色和白色表示这种东西永远不会伤害任何人,而且很高兴知道即将到来的标准就可以做到这一点。

另外,绝对没有理由在同一样式表(例如:before, :after { ... } ::before, ::after { ... })中用两种表示法编写重复规则,因为现有的浏览器都不支持新语法而不支持旧语法。

1 我说这完全意识到,在问这个问题时,它可能尚未声明这一点- 2013年5月的WD当然没有。



 类似资料:
  • 问题内容: 由于IE7和IE8不支持对伪元素(例如或)使用双冒号表示法,并且由于现代浏览器支持向后兼容的单冒号(例如),我应该仅使用单冒号表示法以及何时使用IE8的市场份额下降到可以忽略的水平,然后回去查找/替换我的代码库?还是我都应该同时包括: 如果我关心IE8用户(可怜的朋友),单独使用double似乎很愚蠢。 问题答案: 请勿 同时 使用逗号和逗号。兼容CSS 2.1(不支持CSS3)的用户

  • 本文向大家介绍::before和:after中单冒号和双冒号的区别是什么,这两个伪元素有什么作用?相关面试题,主要包含被问及::before和:after中单冒号和双冒号的区别是什么,这两个伪元素有什么作用?时的应答技巧和注意事项,需要的朋友参考一下 区别: 伪元素在css1中已经存在当时用单冒号,css3时做了修订用双冒号 ::before ::after表示伪元素用来区别伪类。 作用: 在元素

  • 问题内容: 我对了解何时可以将和伪元素应用于自动关闭标签特别感兴趣。根据W3生成的内容CSS规范,这是这些伪元素的定义: 12.1:before和:after伪元素 :作者使用 :before和:after伪元素 指定生成内容的样式和位置。顾名思义,:before和:after伪元素指定元素的文档树内容之前和之后的内容位置。“ content”属性与这些伪元素一起指定了要插入的内容。 基于此,这些

  • 我有一个列表[z”,“1”,“3”,“x”,“y”,“00”,“x”,“y”,“4”],在这种情况下,我需要得到字符串后的第一个

  • 问题内容: 这是一些示例输入: 我想提取代表实际类型的字符串。所以我的输出是: 这是我到目前为止使用的正则表达式(因为它是Java语言,所以进行了两次转义): 它适用于,但不适用于其他两个。我认为最好的解决方案是基本上说“在最后一个冒号之后得到所有内容”,但我不确定如何做。请注意,它还必须包含这些内容。 问题答案: 您不需要正则表达式: 只需找到最后一个,然后把所有东西都拿走。然后修剪它以删除前导

  • 问题内容: 我有这样的字符串 我想用冒号作为分隔符,而不是双冒号。所需结果: 我正在尝试: 但我得到了错误的结果。 在此期间,我逃避,用 问题答案: 您可以继续讨论。这使用两个否定的环视(回溯和回溯),它们断言有效匹配只有一个冒号,在它之前或之后没有冒号。 解释模式: 这两种环视都是必需的,因为如果只有后向,则正则表达式引擎将匹配其中的第一个冒号(因为前一个字符不是冒号),如果只有前瞻,则第二个冒