是否可以隐藏元素的内容,但保持其:before内容可见?说我有以下代码:
:before
HTML:
<span class="addbefore hidetext">You are here</span>
CSS:
.addbefore:before { content: "Show this"; } .hidetext { // What do I do here to hide the content without hiding the :before content? }
我试过了:
display: none
display: inline
width: 0; overflow: hidden
text-indent: -....px
关于如何执行此操作还有其他想法吗?
您可以使用visibility: hidden,但是使用此解决方案,隐藏的内容仍然 会占用空间 。如果这对您而言无关紧要,请按照以下步骤进行:
visibility: hidden
span { visibility: hidden; } span:before { visibility: visible; }
另一种解决方案是设置font-size跨度 归零 *的价值很小。这种方法的优点:隐藏的内容不会占用任何空间。缺点:您将无法使用诸如em或%之类的相对单位作为:before内容的字体大小。
font-size
span:before { content: "Lorem "; font-size: 16px; font-size: 1rem; /* Maintain relative font-size in browsers that support it */ letter-spacing: normal; color: #000; } span { font-size: 1px; letter-spacing: -1px; color: transparent; }
jsfiddle上的示例。
更新(2015年5月4日): 使用CSS3,您现在可以使用rem(Root EM)单元来维护:before元素中的相对字体大小。(浏览器支持。)
rem
*此帖子的先前版本建议将字体大小设置为零。但是,这在某些浏览器中无法正常工作,因为CSS并未定义将font-size设置为0时的预期行为。为了实现跨浏览器的兼容性,请使用上述较小的字体。