请考虑以下HTML
<nav id="nav-main">
<li>
<a href="javascript:void(0)">
<img src="http://jsfiddle.net/img/initializing.png">
<span>Sample Link</span>
</a>
Hide Me with CSS
</li>
</nav>
是否可以使用CSS删除或隐藏使用CSS隐藏我?
我试过了:
#nav-main li a:after{
content: "";
}
但没有运气。
我无法更改上面的HTML,因为这是一个动态生成的代码(带有JSP标记)。
答案 0 :(得分:5)
我无法更改上面的html,因为这是一个动态生成的代码
更改font-size
#nav-main li {
font-size: 0;
}
#nav-main li a {
font-size: 12px;
}
<nav id="nav-main">
<li>
<a href="javascript:void(0)">
<img src="http://jsfiddle.net/img/initializing.png" />
<span>Sample Link</span>
</a>
Hide Me with CSS</li>
</nav>
答案 1 :(得分:2)
实现此目的的一种方法是为visibility: hidden
设置li
,然后为visible
内的a
将其设置为li
。
#nav-main li {
visibility: hidden;
}
#nav-main li a {
visibility: visible;
}
&#13;
<nav id="nav-main">
<li>
<a href="javascript:void(0)">
<img src="http://jsfiddle.net/img/initializing.png">
<span>Sample Link</span>
</a>Hide Me with CSS</li>
</nav>
&#13;
答案 2 :(得分:2)
使用JS删除文本节点:
var node = document.querySelector('#nav-main > LI > A').nextSibling;
node.parentNode.removeChild(node);
答案 3 :(得分:1)
你如何尝试以下方法(尽管如此可能不确定):
之后,您可以根据所需的颜色设置单个元素的样式。如果容器背景为白色,则以:
开头等
答案 4 :(得分:0)
来自W3Schools:
:: after选择器在每个所选元素的内容之后插入。
这意味着您在after
&#34;元素中添加的任何内容&#34;将出现在 in 原始元素之后,在您的情况下是a
标记。
此外,您无法使用未使用content
属性添加的content
属性删除文本。因此,要隐藏在a
之外但在li
内的特定事件(例如悬停)上的文字,您可以改为执行此类操作。
#nav-main li:after {
content: "Hide Me With CSS";
}
#nav-main li:hover:after {
content: "";
}
&#13;
<nav id="nav-main">
<li>
<a href="javascript:void(0)">
<img src="http://jsfiddle.net/img/initializing.png">
<span>Sample Link</span>
</a>
</li>
</nav>
&#13;