CSS选择器隐藏文本节点但不隐藏其他子元素

时间:2017-05-03 19:33:41

标签: css css-selectors

使用CSS,我如何选择文本This Text。我希望删除/隐藏它。

我无法改变HTML本身,只能更改CSS。

<h2 class="hello">
      This Text
     <span class="mark">05/03/2017 3:29 PM EDT</span>
 </h2>

4 个答案:

答案 0 :(得分:4)

如果您打算隐藏文字,请执行以下操作

&#13;
&#13;
.hello {
  font-size: 0;
}

.mark {
  font-size: 30px;
}
&#13;
<h2 class="hello">
      This Text
     <span class="mark">05/03/2017 3:29 PM EDT</span>
 </h2>
&#13;
&#13;
&#13;

答案 1 :(得分:2)

这是另一个想法,使用visibility,它不会覆盖在其他地方应用的任何font-size样式。

此方法的轻微潜在缺点是它将.hello更改为相对定位,这可能会覆盖您应用于它的某些布局。

我认为这不如覆盖字体大小。

.hello {
    visibility: hidden;
    position: relative;
}

.hello .mark {
    visibility: visible;
    position: absolute;
    left: 0;
}
<h2 class="hello">
    This Text
    <span class="mark">05/03/2017 3:29 PM EDT</span>
</h2>

答案 2 :(得分:0)

我能想到的唯一方法是在隐藏外部div后覆盖span内部。像这样:

.hello .mark {
  visibility: visible;
}

.hello {
  visibility: hidden;
}
<h2 class="hello">
  This Text
  <span class="mark">05/03/2017 3:29 PM EDT</span>
</h2>

答案 3 :(得分:0)

font-size: 0visibility: hidden都可用于隐藏&#34;父母。

结合这些方法将带来很多好处:

  • visibility: hidden以一种在选中时无法复制到剪贴板的方式隐藏文本。
  • font-size: 0会处理操作可见性后剩余的空间。这也可以通过使父母相对定位并且孩子绝对+ top: 0来解决。然而,搞乱定位可能会导致问题 - 迟早。
  • 无论如何定义字体大小都是个不错的主意。

&#13;
&#13;
.hello {
  visibility: hidden;
  font-size: 0;
}
.mark {
  visibility: visible;
  font-size: 1.5rem;
}
&#13;
<h2 class="hello">
  This Text
  <span class="mark">05/03/2017 3:29 PM EDT</span>
</h2>
&#13;
&#13;
&#13;

这结合了Steven Moseley'sMehul Mohan's回答。