如何使DIV不包装?
我需要创build一个包含多个其他DIV的容器DIV样式。 有人问,如果浏览器窗口的大小缩小,这些DIV将不会打包。
我试图让它像下面一样工作。
<style> .container { min-width: 3000px; overflow: hidden; } .slide { float: left; } </style> <div class="container"> <div class="slide">something</div> <div class="slide">something</div> <div class="slide">something</div> <div class="slide">something</div> </div>
这在大多数情况下工作。 但在某些特殊情况下,渲染不正确。 我发现容器DIV在IE7的RTL中变成3000px宽度; 它变得混乱。
有没有其他的方法来使容器DIV不能包装?
尝试使用white-space: nowrap;
在容器风格(而不是overflow: hidden;
)
如果我不想定义一个最小宽度,因为我不知道元素的数量,唯一对我工作的是:
display: inline-block; white-space: nowrap;
但只有在Chrome和Safari中:/
下面的工作对我来说没有浮动 (我修改你的例子有点视觉效果):
.container { white-space: nowrap; /*Prevents Wrapping*/ width: 300px; height: 120px; overflow-x: scroll; overflow-y: hidden; } .slide { display: inline-block; /*Display inline and maintain block characteristics.*/ vertical-align: top; /*Makes sure all the divs are correctly aligned.*/ white-space: normal; /*Prevents child elements from inheriting nowrap.*/ width: 100px; height: 100px; background-color: red; margin: 5px; }
<div class="container"> <div class="slide">something something something</div> <div class="slide">something something something</div> <div class="slide">something something something</div> <div class="slide">something something something</div> </div>
这对我工作:
.container { display: inline-flex; } .slide { float: left; }
<div class="container"> <div class="slide">something1</div> <div class="slide">something2</div> <div class="slide">something3</div> <div class="slide">something4</div> </div>
overflow: hidden
应该给你正确的行为。 我的猜测是RTL
被搞乱了,因为你有float: left
在被封装的div
。
除了那个bug之外,你有正确的行为。
你需要的组合是
white-space: nowrap
在父母和
display: inline-block; // or inline
对孩子
尝试使用width: 3000px;
为IE的情况下。
以上都没有为我工作。
就我而言,我需要将以下内容添加到我创build的用户控件中:
display:inline-block;
min-width
属性在Internet Explorer中无法正常工作,这很可能是您的问题的原因。
阅读信息和一个辉煌的脚本,修复了许多IE CSS问题 。
您可以使用
display: table;
为您的容器,并因此避免overflow: hidden;
。 如果你只是为了扭曲目的而使用它,它应该做这个工作。
<span>
标签用于对文档中的内嵌元素进行分组。
(资源)