::first-letter (:first-letter) - CSS(层叠样式表) 编辑

CSS 伪元素 ::first-letter会选中某 block-level element(块级元素)第一行的第一个字母,并且文字所处的行之前没有其他内容(如图片和内联的表格) 。

/* Selects the first letter of a <p> */
p::first-letter {
  font-size: 130%;
}

元素首字符并不总是很容易识别:

 

  • 首字符之前或紧跟首字符的标点符号在伪元素匹配范围内。标点符号(Punctuation)包括在开(Ps),闭(Pe),初始引用(Pi),结束引用(Pf)当中定义的任何Unicode字符以及其他种类的标点符号(Po)。
  • 另外还会有一些以大写双字母组合命名的语言, 比如荷兰的 IJ . 在这种罕见情况下, 两个大写字母都理应被 ::first-letter 伪元素匹配到. (但是浏览器对此支持得很糟糕, 可以用 browser compatibility table进行核实).
  • ::before 伪元素 和 content 属性结合起来有可能会在元素前面注入一些文本。如此,::first-letter 将会匹配到content文本的首字母。

首行只在 block-container box内部才有意义, 因此 ::first-letter 伪元素 只在display属性值为block, inline-block, table-cell, list-item 或者 table-caption的元素上才起作用. 其他情况下, ::first-letter 毫无意义.

 

允许的属性值

 

只有一小部分CSS可以在包含使用了::first-letter 伪元素选择器的CSS规则集声明块内运用:

当这个列表以后被实现时,  为了保持css不过时.建议你不要在声明块内使用任何其他属性.

对于 CSS 2, 伪元素采用单冒号前缀语法. 因为伪类也是同样的语法,所以使得两者难以区分. CSS2.1 改变了伪元素的前缀语法可以解决这个问题. 现在伪元素采用双冒号前缀, 并且伪类仍然采用单冒号前缀.

CSS2伪类单冒号语法已得到广泛支持时, 所有支持双冒号的浏览器同样也支持旧的单冒号语法.

考虑浏览器兼容性的话, :first-letter 是一个更有效的选择; 否则, ::first-letter 更受欢迎.

示例

/* 使每段开头的第一个字母变红变大 */

p::first-letter {  /* 使用:first来兼容IE8- */
  color: red;
  font-size: 130%;
}

规范

SpecificationStatusComment
CSS Pseudo-Elements Level 4
::first-letter
Working Draft允许属性的类型设置, 文本修适和内联布局属性, opacity 以及 box-shadow.
CSS Text Decoration Module Level 3
text-shadow with ::first-letter
Candidate Recommendation可以对text-shadow 属性使用 ::first-letter.
Selectors Level 3
::first-letter
Recommendation定义列表项的特殊行为, 或者是语言特定行为 (比如荷兰的Python). 伪元素的双冒号语法已经介绍过了.
CSS Level 2 (Revision 1)
::first-letter
Recommendation没有重大改变, 而且 CSS2 仍然使用单冒号语法.
CSS Level 1
::first-letter
Recommendation使用单冒号语法的初始定义.

浏览器兼容性

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support1.01.0 (1.7 or earlier)9.07.01.0 (85)
Old one-colon syntax (:first-letter)1.01.0 (1.7 or earlier)5.53.51.0 (85)
Support for the Dutch digraph IJ未实现未实现 bug 92176 未实现未实现未实现
FeatureAndroidFirefox Mobile (Gecko)IE PhoneOpera MobileSafari Mobile
Basic support?1.0 (1)未实现??
Old one-colon syntax (:first-letter)?1.0 (1)???
Support for the Dutch digraph IJ?未实现???

参见

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

词条统计

浏览:47 次

字数:13101

最后编辑:7 年前

编辑次数:0 次

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文