2010-01-17 125 views
0

我有一个容器,看起来像这样使用CSS来隐藏非锚元素

<div id="container">This container has a <a href="#">link</a> in it</div> 

我想隐藏在它之外的所有链接。

我已经试过

#container {display:none;} 
#container a { display:block; } 

但是,这并不工作。

这是一种用户风格,所以我只能访问CSS。没有Javascript。没有标记。

回答

0

使用visibility将在这里工作,如果你不介意的无形的,非链接文本仍然占用空间。

#container { 
visibility: hidden; 
} 
#container a { 
visibility:visible; 
} 

如果你确实需要模仿显示块的风格,你可以尝试:作为OP不能访问页面

#container { 
visibility: hidden; 
position: relative; 
} 
#container a { 
visibility:visible; 
position: absolute; 
top: 0; 
left: 0; 
} 
+0

迄今为止的最佳建议。我将#container中的字体大小调整为0%。这个足够好。谢谢。 – 2010-01-17 20:48:40

0

这是不可能的,你正在使用的代码。由于文本片段是仅由anonymous inline boxes表示的文本节点,因此无法分别使用display进行样式设置。

但是,如果您将包含a元素的文本也放入元素中,例如, span S:

<div id="container"><span>This container has a </span><a href="#">link</a><span> in it</span></div> 

然后,你可以这样做:

#container span { display: none; } 
#container a { display: block; } 
+0

额外的标记不会在这里工作。 – 2010-01-17 20:41:01

+0

看起来不错。但由于这是针对用户样式的,因此我无法访问标记。谢谢,不过。 – 2010-01-17 20:42:16

+0

@Morten J:这取决于你想要做什么,如果你的努力会取得成功。 – Gumbo 2010-01-17 20:54:14