css - 兄弟文本后的第一个元素的选择器?

标签 css

在这个 HTML 结构中:

<div>
  <span>A</span>
  <span>B</span>
  C
  <span>D</span>
  <span>E</span>
</div>

我想在 C 之后制作 element 以获得 color: red;,所以我想要字母 D 红色

这可能吗?

最佳答案

如果 HTML 结构不是静态的,则不能依赖 CSS 来执行此操作,您将需要一些 JS。

这是一个想法,我将文本节点作为目标并将它们包装在具有特定类的范围内,然后您可以使用 CSS 轻松调整样式。

为了简单起见,我使用了 jQuery 来展示这个想法,我们可以只用 JS 来做到这一点

$(".container").contents().filter(function () {
    return this.nodeType === 3 && this.nodeValue.trim() !== "";
}).wrap("<span class='text-node'></span>");
.text-node + * {
  color:red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
  <span>A</span>
  <span>B</span>
  C
  <span>D</span>
  <span>E</span>
  F
  <span>G</span>
  <span>H</span>
  <span>I</span>
</div>

关于css - 兄弟文本后的第一个元素的选择器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50092663/

相关文章:

html - 将第一个 div 放在其他两个下方 - 都具有可变高度

CSS 背景图像路径

html - JQMobile - 样式化 H1/span/div 文本

html - 添加标题时导航栏更改大小

html - 我怎样才能包裹 table (CSS)

html - IE中png文件的透明度

javascript - 未捕获的类型错误 : Cannot set properties of undefined (setting 'display' )

javascript - parent 的风格取决于 child 的动态值(value)

css - 如何从 SASS 的颜色列表中获取第 n 个值?

CSS 样式定义列表 <dl>