我想有一个隐藏的复选框,不占用屏幕上的任何空间。

如果我有这个:

<div id="divCheckbox" style="visibility: hidden">

我没有看到复选框,但它仍然创建了一个新行。

如果我有这个:

<div id="divCheckbox" style="visibility: hidden; display:inline;">

它不再创建新的行,但它会占用屏幕上的水平空间。

是否有一种方法可以让一个隐藏的div不占用任何空间(垂直或水平)?


当前回答

自HTML5发布以来,人们现在可以简单地做:

<div hidden>This div is hidden</div>

注意:一些旧的浏览器不支持这个功能,尤其是IE < 11。

隐藏属性文档(MDN,W3C)

其他回答

使用显示:没有;

<div id="divCheckbox" style="display: none;">

可视性:hidden隐藏了元素,但它仍然占用布局中的空间。 Display: none将元素完全从文档中移除,它不占用任何空间。

为了防止复选框占用任何空间而不将其从DOM中删除,请使用hidden属性。

<div hidden id="divCheckbox">

为了防止复选框占用任何空间并将其从DOM中移除,请使用display: none。

<div id="divCheckbox" style="display:none">

显示:没有;

这将使元素消失,不占用任何空间。

除了CMS的答案,你可能想要考虑将样式放在一个外部样式表中,并将样式分配给id,如下所示:

#divCheckbox {
display: none;
}

因为你应该关注CSS的可用性和通用性,而不是使用id来指向特定的布局元素(这会导致巨大或多个CSS文件),你应该在链接的.css文件中使用一个真正的类:

.hidden {
visibility: hidden;
display: none;
}

或者对于极简主义者来说:

.hidden {
display: none;
}

现在你可以简单地应用它通过:

<div class="hidden"> content </div>