DigitalOcean 为您的旅程的每个阶段提供云产品。立即开始使用 $200 的免费信用额度!
::first-letter
是一个伪元素,它允许您对元素中的第一个字母进行样式设置,而无需在 HTML 中将第一个字母周围添加 <span> 标签。虽然没有将标签添加到 DOM,但它就像目标的第一个字母被包含在一个 标签中一样。您可以像使用真实元素一样,使用以下方法对第一个字母进行样式设置:
p::first-letter {
font-weight: bold;
color: red;
}
<p>The first letter is bold and red</p>
结果就像您在第一个字母周围添加了一个假元素一样
<!-- Just an example, does not work! -->
<p>
<firstletter>T</firstletter>he first letter is bold and red.
</p>
The first letter is bold and red
- 此伪元素仅在父元素是块级容器框时才有效(换句话说,它不适用于
display: inline;
元素的第一个字母)。 - 如果元素上同时具有
::first-letter
和::first-line
,则第一个字母将继承自第一行样式,但::first-letter
上的样式在样式冲突时会覆盖。 - 如果您使用
::before
生成内容,则第一个字母或标点符号字符(无论它是原始文本节点的一部分还是通过生成的内容创建的),都将是目标。
更多信息
- 在用于首字母下降时,与
p:first-of-type
结合使用,这样不会对每个第一个字母进行样式设置。 - 示例 Pen - 带有生成的内容
- W3C 维基
- W3C CSS3 选择器模块
浏览器支持
此浏览器支持数据来自 Caniuse,其中包含更多详细信息。数字表示浏览器在该版本及其更高版本上支持该功能。
桌面
Chrome | Firefox | IE | Edge | Safari |
---|---|---|---|---|
9 | 3.5 | 9 | 12 | 5.1 |
移动设备/平板电脑
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
127 | 127 | 3 | 5.0-5.1 |
注意:对于 Internet Explorer 8 及更低版本,请使用单个冒号 :first-letter
而不是双冒号表示法。
非常好。非常棒的 CSS 和设计网站。
非常好
这个网站设计和 CSS 都很好。
谢谢
不适用于锚点
a::first-child{
text-transform:uppercase;
}
只有当父元素是块级元素时才有效。默认情况下,锚点是内联元素。
a:first-child{
text-transform:uppercase;
}
为什么我不能只自定义“*”元素
不能为“*”元素设置样式
p:first-letter{ color:#BB0000; font-size:12px; font-weight:bolder;}
* MY
奇怪的是,当我应用这段代码并在 Chrome 上运行时,当我尝试使用突出显示选项时,第一个字母没有被选中。这是一个已知问题吗?
似乎是一个已知错误 - http://stackoverflow.com/questions/19649540/css-first-letter-selection-highlighting
我尝试过,但它对最新版本的 Firefox 不起作用!即 **28.0 & 29.0**!我完全震惊了!!
非常适合制作类似书籍的博文。您知道,在书籍中,每一章都会以一个开头字母开头,这个字母会非常大,非常粗体,或者用不同的颜色……
使用“*”字符要小心。
在这些示例中,不仅会获取第一个字母
*abc
- 突出显示*a
**abc
-**a
(在所有示例中,* 的数量无关紧要,它会突出显示所有)a*bc
-a*
a**
-a**
*a*bc
-*a*
。好的,有人可以解释一下规范编写者在只将其应用于块元素时是怎么想的吗?我愿意接受可能存在充分的理由,但现在我正在看红色。
您好,感谢您提供此 CSS-Tricks。
请帮忙,是否可以使用 CSS 将单词中的第 4 个字母设置为不同的颜色?
不是等等 - 仅使用 CSS。
示例:boxCode << 'C' 必须为红色。
@Frank,我认为仅使用 CSS 是不可能的,但这里有一些使用 JS 可以实现的方法。
Firefox 忽略 $ 并对其他特殊/标点符号字符执行奇怪的操作。再加上生效的具体情况,使得选择器感觉不可靠,这很可惜,因为它本来可以非常有用。
我在 Firefox 中使用 ::first-letter 伪元素时遇到了一个非常奇怪的事情。我将 ::first-letter 分配给 div 标签并将一些属性应用于伪元素,但没有发生任何事情。在所有其他浏览器(如 safari、chrome、edge)中它都可以工作,但在 Firefox 中却不行。如果我将 ::first-letter 与其属性一起放在 p 标签中,Firefox 会渲染它。
奇怪的是,Firefox 的 iOS 版本确实渲染了属性。
有人知道吗?
div::first-letter
在 Firefox 50.0.2 中运行得很好。另外,您应该知道,iOS 上的 Firefox 使用 Webkit 而不是 Geeko 作为其引擎(因为 Apple 的一项规则禁止使用除默认包含的引擎以外的其他引擎!)
如果父元素有
display:flex
,它也不起作用。我有一个标签
这是开始
如何只对最后一个单词“开始”应用 CSS
也就是说,我想在一个标签中对每个单词应用不同的 CSS
任何帮助?
为什么我们需要 :first-letter,而我们有 span 标签?
与 :first-letter 伪元素和 span 标签相比,:first-letter 可以使用的属性有限于 span 标签。