【问题标题】:Do any browsers support the CSS3 pseudo-element "marker"?是否有任何浏览器支持 CSS3 伪元素“标记”?
【发布时间】:2010-12-31 21:20:26
【问题描述】:

规范 specifies 可以使用伪元素“标记”修改列表项 (li) 标记,如下所示:

li::marker { color: blue; }

但我似乎无法在我的任何浏览器中使用它。

有浏览器支持吗?还是我做错了什么?

【问题讨论】:

  • +1 感谢您提出这个问题!没有它,我不会知道规范的这一部分。
  • 你做错了什么是假设仅仅因为 W3C TR 是公开可用的,它会自动使其成为“规范”的规范部分,因此必须存在实现才能让您使用所描述的功能.从序言中:“作为工作草案发布并不意味着 W3C 成员的认可。这是一份草案文件,可能随时被其他文件更新、替换或废止。引用本文件作为工作以外的内容是不恰当的进行中。”
  • 6 年后,人们仍在寻找这个,显然它不是工具。我想我们将不得不继续使用 hack-arounds。

标签: browser css


【解决方案1】:

2021 年更新:所有现代浏览器都添加了对 ::marker 的支持

  • Firefox v68 起
  • 自 v11.1 起的 Safari(仅限于 colorfont
  • 自 v86 起的 Chrome(和 Edge)
  • Opera v72 起

https://developer.mozilla.org/en-US/docs/Web/CSS/::marker#browser_compatibility

【讨论】:

  • 截至 2014 年 3 月,似乎还没有主流浏览器实现此功能。
  • 截至 2015 年 10 月,情况相同。没有相应的 CanIUse 页面,但可以在CSS-Tricks 跟踪支持状态。
  • 截至 2016 年 2 月,情况仍然如此。
  • 截至 2016 年 9 月,情况仍然如此。
  • 尽管 caniuse developer.mozilla.org/en-US/docs/Web/CSS/::marker 仍然无法在 safari 上工作
【解决方案2】:

你能改用:before吗?

li {
 display: block;
 list-style-position: inside;
 margin: 0;
}
li:before { 
 content:" • ";  
 color: green;
}

【讨论】:

  • 可能,但这并不是问题所在。
  • 是的。不过,在它被支持之前,有人可能会觉得它很有帮助。
  • 使用 CSS 生成的项目符号而不是默认的浏览器生成的项目符号会更改项目符号的大小和位置。这并不需要阻止使用此解决方法,但您应该考虑它是否可以接受。
【解决方案3】:

虽然没有浏览器支持该规范,但 Firefox 有自己的处理方式:

li::-moz-list-bullet {
color:blue;
}

来源:https://bugzilla.mozilla.org/show_bug.cgi?id=205202

【讨论】:

    【解决方案4】:

    您无法单独更改标记的颜色,但是您可以使用 list-style-image 更改其图像,请参阅here。解决方法:

    <ul><li style="color:blue;"><span style="color:black">test</span></li></ul>
    

    【讨论】:

    • 谢谢,但颜色位只是作为示例。我真的只是想知道是否有任何浏览器支持这个特定的伪元素。 (我特别希望使用 content 属性。)
    • 谢谢。对我来说非常有用的想法
    【解决方案5】:

    没有浏览器支持这一点,但可以使用 (list-style-type: 和 list-style-image) 属性或伪类之前和之后。

    【讨论】:

      猜你喜欢
      • 2011-11-01
      • 1970-01-01
      • 2015-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-12
      • 2015-07-29
      相关资源
      最近更新 更多