我想要做的事情(显然不能在IE中实现)是:
p:not(.list):last-child + :text {
margin-bottom: 10px;
}
如何为文本节点添加边距?(这是否可能?)我该如何使用 CSS 获取文本节点?
我想要做的事情(显然不能在IE中实现)是:
p:not(.list):last-child + :text {
margin-bottom: 10px;
}
如何为文本节点添加边距?(这是否可能?)我该如何使用 CSS 获取文本节点?
文本节点不能有任何边距或其他样式应用于它们,因此您需要在元素中应用样式。如果您想要元素内部的某些文本具有不同的样式,请将其放入或
CSS无法选择文本节点。我知道你希望可以选择...但是不行 :(
如果您不想像@Jacob建议的那样将文本节点包装在<span>
中,则可以给周围的元素添加padding
而不是margin
:
<p id="theParagraph">The text node!</p>
p#theParagraph
{
border: 1px solid red;
padding-bottom: 10px;
}
文本节点(未包装在特定标签内的文本)现在可以使用::target-text
伪元素选择器在非常特定的情况下进行定位。匹配一段文本字符串的查询参数(URL编码;例如,空格必须编码为%20
)可以像这样进行样式设置:
::target-text { /* color, background color, etc */ }
有一个演示可以进行参考(父链接在::target-text
的MDN页面上)。更改查询参数字符串中的“text”为不同的字符串,以查看不同的文本如何被样式化。
::target-text
伪元素选择器的一个限制是只能为第一个匹配的文本字符串设置样式。此外,在2022年1月时,占比67.8%浏览器支持程度还很有限。
::target-text
功能是实验性的。 - Stephan::target-text
功能仍处于实验阶段。 - undefined
::first-line
来近似实现,但正如名称所示,它仅适用于文本的第一行。(此外,我认为只有某些属性可以在其上设置)。 - Mark Garcia