是否有用于文本节点的CSS选择器?


173

我想做的事情(显然不在IE中)是:

p:not(.list):last-child + :text {
  margin-bottom: 10px;
}

这将使文本节点具有页边空白。(甚至有可能吗?)如何使用CSS获得文本节点?


2
您可以使用来近似::first-line,尽管顾名思义,它仅适用于文本的第一行。(此外,我认为只能在其中设置一些属性)
Mark Garcia

Answers:


114

文本节点不能具有边距或任何其他样式,因此,您需要样式应用的所有内容都必须在元素中。如果您希望元素内部的某些文本的样式不同,则将其包裹在span或中div


58
但是,我仍然在文本节点上极度缺少:: before和:: after。
shabunc

6
I'm nevertheless desperately missing ::before and ::after on text nodes.确实。它们可能不采用格式,但肯定采用content
Synetech

12
询问如何定位文本节点是一个完全合理的问题。我意识到OP专门说了“ margin”,但是它们是可以应用于文本节点的其他样式,您可能希望将其应用于文本节点而不是父节点。例如,假设我要在文本下方添加边框底部。将边界底部应用于文本节点将具有所需的结果,但将其应用于父div将在整个div周围创建底部边界。不幸的是,当然,CSS不允许您通过添加HTML元素来定位文本节点……至少到目前为止。
VKK

1
您可以为其设置字体,当然可以,但是未应用任何其他样式
Hamid Bahmanabady

你只能做这样的东西了,现在stackoverflow.com/questions/10645552/...
fearis

50

您不能使用CSS定位文本节点。我和你在一起; 我希望你可以...但是你不能:(

如果不使用<span> @Jacob建议的格式包装文本节点,则可以改用周围的元素padding,而不是margin

的HTML

<p id="theParagraph">The text node!</p>

的CSS

p#theParagraph
{
    border: 1px solid red;
    padding-bottom: 10px;
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.