如果div和p -elements是空的,如何在源代码中没有为用户显示标记,那么如何折叠它们?
这些元素在我的源代码中,尽管它们是空的。 这会导致网站其他部分出现错误。
我运行不成功
div.unsuccessful,
div.unsuccessful p {
visibility: collapse;
}
这表明我显然不能通过CSS做这样的事情。 也许,需要其他工具,如PHP。
答案 0 :(得分:5)
CSS对实际HTML代码没有影响,因此无法完成。在(即将出现的)CSS3中,您可以使用:empty
伪类来阻止它们的呈现:
div:empty {
display: none;
}
这当然不是一回事,但它可能会解决您遇到的问题......如果只有浏览器实际支持它,那么它们还没有。
最好的选择是使用像PHP这样的脚本语言在服务器上删除它们。我想你可以使用JavaScript在客户端做它,但这是一个可怕的解决方案,imo。
话虽这么说,你对这些空标签有什么问题?他们为什么一开始就在那里?在我看来,有些重新设计是为了防止不必要的标签首先被生成。
另外,要小心。空标签并不总是毫无意义。事实上,删除每个空<div>
可能被视为有害。
答案 1 :(得分:1)
是的,如果您想阻止他们进入源,您需要在服务器代码中进行适当的考虑。或者,您也可以在JavaScript中设置HTML,但这可能不是推荐的解决此问题的方法。你可能想多说一点,关于你想要做什么。
答案 2 :(得分:1)
div { display: none; }
从页面中完全删除元素。
无论您使用CSS做什么,它仍会显示在您的源代码中。浏览器将HTML源和CSS指令组合到可显示的页面中,不修改原始源。 CSS只能影响元素的可视化显示,它不能改变元素。要从DOM中实际删除元素,您需要使用Javascript(或者不首先将元素放在那里)。
答案 3 :(得分:1)
Visibility属性用于设置是否显示对象的内容。它不会从DOM内部删除元素。
折叠Windows Internet的新功能 资源管理器8
在表中用于删除行和列;所有其他元素,与隐藏相同。
另外你为什么要这样做?
答案 4 :(得分:0)
是的,您必须使用服务器端处理来向用户显示或不显示某些代码:
if ($showAdminLink) {
echo "<p><a href=\"admin.php\">Admin panel</a></p>";
}
无论你尝试什么技巧,在客户端(HTML,Javascript,CSS)完成的任何事情都可以改变和播放。