我将尽力在下面详细解释我的问题,但所提出的问题保持不变。简而言之,我的问题是:
有没有一种方法可以使元素隐藏/不可见,即高度为0px或至少高度小于1px但仍保持元素的宽度以便它也可以在Safari中使用?
问题的完整详细说明:
我在Safari中的CSS min-height
属性有问题。
例如,在Chrome,Firefox和其他浏览器中,允许1px
属性使用min-height
以下的值。虽然Safari不允许您在1px
以下设置值。
例如,我正在处理仅在Safari中发生的RTL问题。
它与以下事实有关:有些项目是根据用户以表格形式选择的特定值有条件地隐藏的。必须将可见元素左侧的项目至少具有一些高度(但仍不可见),否则,将右边元素(具有float:left
属性)放置在左侧,直到所有左侧的元素将有条件地可见。
现在您可以说只对这些元素使用float:right
,但是在这种情况下这不是解决方案,因为RTL设置在系统中必须是可选的,并且是用户的首选项,并且我们不控制元素的顺序(因为表单以并排排列的本来没有RTL状态保存。
因此,例如在Chrome中,该元素已将min-height
设置为0.0105px
,并且该元素实际上具有足够的高度,即使在有条件不可见的情况下,该元素也可以主动将其他元素向右推(这就是为什么我不能使用由于RTL布局,display:none
首先必须保持原样)。
现在的问题是,例如Safari不允许我使用0.0105px
作为min-height
CSS属性的最小值。我测试了最低要求值是什么,对于Safari,它等于或大于1px
。因此,一种解决方案是仅将这种1px
仅用于野生动物园浏览器,但是在这种情况下,这并不是理想的解决方案,我将解释原因。
该系统允许用户创建表单,并且可能是用户在表单中间有50个甚至更多的列元素,这些元素可能有条件地被隐藏。在这种情况下,这意味着当它们全部有条件地隐藏时,它们的总高度(当所有列的宽度均为1/1时)将为50px。最终用户构建表单时不希望这样做,也不希望这样做。
在Chrome示例中,50px改为0.5px,这对我来说是可以接受的。
任何对此的想法或想法将不胜感激。也许这是我的条件隐藏/显示系统中的一个设计问题,也许我应该采用一种完全不同的方法来使这项工作顺利进行?任何想法都欢迎。
我目前在Safari中可以执行的操作示例,但我想保持左侧2列的高度0px:
.column-wrapper {
background-color:red;
float:left;
width:30%;
}
.column-content {
background-color:grey;
}
.conditionally-hidden {
visibility:hidden;
height:0.1px;
}
<div class="column-wrapper"> <!-- column must keep it's original width, but must be 0px in height when inner content is conditionally hidden -->
<div class="column-content conditionally-hidden">
This content is conditionally hidden
</div>
</div>
<div class="column-wrapper"> <!-- column must keep it's original width, but must be 0px in height when inner content is conditionally hidden -->
<div class="column-content conditionally-hidden">
This content is conditionally hidden
</div>
</div>
<div class="column-wrapper"> <!-- column must stay on right side, because of RTL layout -->
<div class="column-content">
This content visible
</div>
</div>
最佳答案
div {
width: 50%;
height:0;
display: inline-block;
overflow: hidden;
padding: 0;
}
<div></div>Simple test.
...创建一个空白空间的跨浏览器,该跨设备具有所需的
width
而不显示任何内容。如果以上内容不足以解决您的问题,那么,如果您针对所遇到的实际问题(恕我直言)创建Minimal, Complete, and Verifiable example,则可以节省您和我们的时间。
关于html - 当高度为0px时,有没有办法保持元素宽度?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49114720/