我有一个表单,根据网站品牌,在给定的位置上应该显示其中两个输入字段中的一个。
我想把这两个输入字段放在同一个容器中,然后通过我的样式表将其中一个设置为display:none; 这确实隐藏了该字段,但仍使其占用空间。 我还尝试将高度和宽度设置为0或将可见性设置为hidden或collapse,但这些都没有起作用。
到目前为止,所有品牌事项都可以使用CSS样式表完成,因此我希望保持现状。 解决方案至少应受IE6及以上版本、Firefox 2及以上版本和Chrome(最新版本)支持。
我有一个表单,根据网站品牌,在给定的位置上应该显示其中两个输入字段中的一个。
我想把这两个输入字段放在同一个容器中,然后通过我的样式表将其中一个设置为display:none; 这确实隐藏了该字段,但仍使其占用空间。 我还尝试将高度和宽度设置为0或将可见性设置为hidden或collapse,但这些都没有起作用。
到目前为止,所有品牌事项都可以使用CSS样式表完成,因此我希望保持现状。 解决方案至少应受IE6及以上版本、Firefox 2及以上版本和Chrome(最新版本)支持。
把不可见的输入字段设置为position: absolute;
,可以使其脱离渲染流程。
但是,理论上将其设置为display: none
也应该可以实现相同的效果...
<style>
.hideme
{
display:none;
visibility:hidden;
}
.showme
{
display:inline;
visibility:visible;
}
</style>
<input type="text" name="mytext" class="hideme">
您可以将类设置为“hideme”来隐藏您的控件,或者将类设置为“showme”以显示您的控件。您可以使用JavaScript或服务器端编码来进行切换。
这样确实隐藏了该字段,但它仍然占据空间。
这不应该发生;display: none应该导致元素不包含在布局中。检查你的CSS(尝试使用Firebug来找出额外的“空间”,它可能只是某个周围元素的padding或margin)。
使用visibility属性会占用渲染空间,即使元素不可见。您必须使用display属性而不是使用visibility。
如果要隐藏元素,则可以将display设置为none,如果要显示它们,则可以将其设置为block或inline。
要查看display,请访问this
如果设置显示属性无法解决问题,则我认为文本框可能是绝对定位的。这可能是布局未更改的原因。
请发布完整的代码,好吗?
如果您想将 CSS 代码与其他输入隔离开,可以这样做:
input[type="checkbox"] {
display: none;
}
你还可以通过指定另一个类来进一步将其与相同类型隔离。
我对CSS不是很熟悉,但你可以尝试使用JQuery来实现,它结合了Javascript和CSS,让你能够相对容易地完成这样的操作。