按CSS折叠div和p

rekjcdws  于 2022-11-27  发布在  其他
关注(0)|答案(5)|浏览(163)

如果div和p -元素在CSS中为空,那么如何折叠它们,从而在源代码中不为用户显示标签?

这些元素在我的源代码中,虽然它们是空的。这导致了网站其他部分的bug。
我运行失败

div.unsuccessful,
div.unsuccessful p {
    visibility: collapse;                                                                                                                                                                                      
}

这表明你显然不能用CSS来做这样的事情。也许,需要其他工具,如PHP。

kknvjkwl

kknvjkwl1#

CSS对实际的HTML代码没有影响,所以这是不可能的。在(即将到来的)CSS3中,你可以使用:empty伪类来阻止它们被呈现:

div:empty {
    display: none;
}

这当然不是一回事,但它可能会解决你的问题...如果只有浏览器实际上支持它,他们还没有。
最好的选择是在服务器端使用PHP这样的脚本语言删除它们。我想你 * 可以 * 在客户端使用JavaScript来删除它们,但这是一个可怕的解决方案,imo。
话虽如此,你对这些空标签有什么问题?为什么它们会出现在第一位?在我看来,一些重新设计是为了防止不必要的标签在第一位被生成。
另外,要小心。空标签并不总是毫无意义的。事实上,删除每个空的<div>都是有害的。

ee7vknir

ee7vknir2#

是的,如果你想阻止它们出现在 * 源代码 * 中,你需要在你的服务器代码中做出适当的考虑。或者,你也可以在JavaScript中设置HTML,但这可能不是解决这个问题的推荐方法。你可能想多说一点,关于你正在尝试做的事情。

xbp102n0

xbp102n03#

Visibility属性用于设置是否显示对象的内容。它不会从DOM中删除元素。

折叠Windows Internet Explorer 8的新功能

用于在表中删除行和列;对于所有其他元素,与隐藏相同。
还为什么要这样做呢?

4szc88ey

4szc88ey4#

div { display: none; }

会从页面中完全移除项目。
无论你如何使用CSS,它仍然会出现在你的 * 源代码 * 中。浏览器将HTML源代码和CSS指令组合成一个可显示的页面,原始源代码不会被修改。CSS只能影响元素的视觉显示,它不能改变元素。要真正从DOM中删除元素,你需要Javascript(或者一开始就不要把元素放在那里)。

cotxawn7

cotxawn75#

是的,您必须使用服务器端处理来向用户显示或不显示某些代码:

if ($showAdminLink) {
    echo "<p><a href=\"admin.php\">Admin panel</a></p>";
}

无论你尝试什么技巧,在客户端(HTML、Javascript、CSS)所做的任何事情都可以被修改和玩弄。

相关问题