显示伪元素但不显示父元素

mhe*_*ers 6 css css3 pseudo-element

嗨我有一个包含这样的文本的列表项:

<li>Search</li>
Run Code Online (Sandbox Code Playgroud)

我想用字体真棒显示一个图标

li:before {
  content: "\f002";
}
Run Code Online (Sandbox Code Playgroud)

我没有能力删除"搜索"文本(它是从Drupal CMS生成的,标记和类名称也是如此),但我想隐藏搜索文本,但显示伪元素(搜索图标).我该怎么做呢?通常,我要隐藏文本的方法就是:

li {
  text-indent: -1000px;
  overflow: hidden;
}
Run Code Online (Sandbox Code Playgroud)

但这也会隐藏伪元素

小智 6

聚会有点晚了,但您可以随时将 li 的字体大小更改为 0,并将图标的字体大小更改回原始字体大小。像这样:

li {
    font-size: 0;
}

li:after {
    font-size: 1em;
}
Run Code Online (Sandbox Code Playgroud)


Her*_*lek 4

您可以坚持使用“text-indent”方法(或者更好的“ Kellum Method ”)并使用 CSS 定位伪元素:

li {
display:block;
position:relative;
text-indent: -100%;
white-space: nowrap;
overflow: hidden;
}
li:after {
content: "visible pseudo-element";
position:absolute;
right:0;
}
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/Fiddel/aopteq8m/