【问题标题】:Is there a way to select the first character? :first-letter does not seem to work [duplicate]有没有办法选择第一个字符? :第一个字母似乎不起作用[重复]
【发布时间】:2013-03-03 17:44:35
【问题描述】:

示例问题:http://jsfiddle.net/6WYXk/

我有一些 html:<p>% hello world</p>

我想让 % 加粗。为此,我通常会用 CSS 编写:

p:first-letter
{
    font-weight: bold;
}​

但是,这会使 % h 变粗。

理想情况下,我想要:first-character 的伪选择器

【问题讨论】:

  • +1 个有趣的问题 +
  • 感兴趣的浏览器会认为“%h”是一个字母。
  • 实际上它似乎是依赖于浏览器的——Firefox 不会使任何东西加粗,Chrome 和 Safari 使 "%h" 加粗。只有 Opera 成功地将“%”变为粗体。 (不知道 IE,它进入了某种兼容模式,根本无法渲染 jsfiddle 页面:)
  • 如果我说 IE9 似乎表现正确,你会相信我吗?
  • 令人着迷。 Chrome 和 Safari(即 webkit)是唯一根据规范正确处理的(% 是 unicode 字符类 Po — 其他标点符号 — 而 CSS 规范说前面的标点符号,包括该类,应该也匹配:first-letter)。我们可能会;目前尚不清楚空间(Zs 类)是否应该改变。我当然不相信 Opera 做对了,但 Firefox 可以说是做对了。

标签: html css css-selectors


【解决方案1】:

确实,这很奇怪。也不适用于其他符号字符,elsewhere on SO 也讨论了同样的问题。

你应该试试这样的:

<p>hello world</p>
p:before { content:"%"; font-weight: bold; padding-right: 5px;}

Try it yourself…

【讨论】:

  • 击败我找到对the :first-letter spec definition 的引用,尽管我很难找到对这些字符类的直接引用。 (即“open”(Ps)、“close”(Pe)、“initial”(Pi)。“final”(Pf)和“other”(Po)标点类,来自规范)
  • @Nightfirecat 最终版本位于unicode.org/Public/UNIDATA/UnicodeData.txt,但请注意,它超过一兆字节的纯文本,不易阅读。
【解决方案2】:

你可以这样写:

<p><span>%</span> hello world</p>

查看http://jsfiddle.net/6WYXk/30/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-29
    • 1970-01-01
    • 2022-11-04
    • 2014-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-12
    相关资源
    最近更新 更多