您好我有一个包含以下文字的列表项:
<li>Search</li>
我希望使用字体真棒
显示图标li:before {
content: "\f002";
}
我无法删除“搜索”文本(它是从Drupal CMS生成的,标记和类名称也是如此),但我想隐藏搜索文本,但显示伪元素(搜索图标)。我该怎么做呢?通常,我要隐藏文本的方法就是:
li {
text-indent: -1000px;
overflow: hidden;
}
但这也会隐藏伪元素
答案 0 :(得分: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;
}
答案 1 :(得分:2)
派对有点晚了,但您可以随时将li的字体大小更改为0,并将图标的字体大小更改回原始字体大小。像这样:
li {
font-size: 0;
}
li:after {
font-size: 1em;
}
答案 2 :(得分:1)
这非常hacky,不要告诉任何人我这样做,但是jsfiddle.net/57BGV。
li {
list-style: none;
text-indent: -65px;
}
li:after {
content: "Test";
display: inline-block;
padding-left: 80px;
}
答案 3 :(得分:0)
一种方法是将字体颜色更改为背景颜色。这不会从流程中删除文本,但会将其隐藏起来,这就是您所要求的技术。
假设你的背景是白色的:
li {
color: #FFF;
}