【问题标题】:Select a text node following an element [duplicate]选择元素后面的文本节点[重复]
【发布时间】:2015-03-05 23:01:09
【问题描述】:

如何在以下代码中选择(隐藏)日期

<div class="myDiv">
  <h5>
    <strong>News header</strong> 2015-03-05
  </h5>
</div>

问题是日期没有id,没有类,也没有段落标签。也许有办法使用sibling selector 或类似的?

我无法访问 html,只能访问 css。

【问题讨论】:

  • 你试过的css是什么?如果是关于造型
  • 如果您还没有注意到,系统会自动在您问题的最顶部插入指向副本的链接。完全没有必要再次编辑它再次说“在这里解决”只是为了指向同一个问题。

标签: css css-selectors


【解决方案1】:

您可以使用 一些 样式来定位它:

.myDiv h5 {
  color: red;
}
.myDiv h5 * {
  color: lime;
}
<div class="myDiv">
  <h5>
    <strong>News header</strong> 2015-03-05
  </h5>
</div>

但是,您的编辑要求显示/隐藏日期!

不幸的是,这无法实现,因为隐藏父元素也会隐藏其中的所有子元素,即隐藏 .mdDiv h5 将隐藏其中的所有内容

单独隐藏它的唯一方法是将它放在它自己的元素中,例如

<div class="myDiv">
  <h5>
    <strong>News header</strong> <span>2015-03-05</span>
  </h5>
</div>

然后你可以用.myDiv h5 span { display: none }攻击它

【讨论】:

  • 您的代码 sn-p 在这里工作,但是当我尝试隐藏日期(这是我尝试做的)时,它会隐藏 h5-tag 中的所有内容。
  • 这是fiddle的另一个选项
  • @sand 啊,你从来没有指定过!不幸的是,当您隐藏一个元素时,它也会隐藏所有子元素。解决此问题的唯一方法是将要隐藏的内容放在其自己的单独元素中。
  • 是的,我刚刚用那个细节更新了原始帖子。我明白了,谢谢你的帮助!
  • @sand 答案也更新了。
【解决方案2】:

不太确定你尝试实现。如果是关于样式颜色或bg,则为强元素覆盖css:

h5 {
  color:purple;
  background:yellow;
  display:table;
}
h5 strong {
  color:yellow;
  background:purple;
}
<div class="myDiv">
  <h5>
    <strong>News header</strong> 2015-03-05
  </h5>
</div>

【讨论】:

    猜你喜欢
    • 2018-07-20
    • 1970-01-01
    • 2017-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-21
    • 2021-06-21
    • 1970-01-01
    相关资源
    最近更新 更多