我制作了一个网络应用程序并且遇到了一个有趣的事情。 所以我有一个包含其他div的包装div。包装器具有以下格式:
#ready{
height:568px;
white-space: nowrap;
}
他们的孩子们有这个:
.theme{
overflow: hidden;
position:relative;
display: inline-block;
height:568px;
width:320px;
text-align: center;
background-color: #FFF;
}
它适用于firefox和chrome,div按照预期彼此相邻。我必须将float:left
添加到.theme
才能在Safari中使用。虽然当我添加float:left
时,Mobile Safari会将div分解为新行。
这是一个错误,还是我做错了什么?任何想法,解决方法?
[编辑] 添加了html
<div id="ready">
<div id="welcome"class="theme active">
...
</div>
<div id="cat"class="theme">
...
</div>
<div id="minap"class="theme">
...
</div>
<div id="minecraft"class="theme">
...
</div>
<div id="padthai"class="theme">
...
</div>
<div id="orange"class="theme">
...
</div>
<div id="bszn"class="theme">
...
</div>
</div>
答案 0 :(得分:1)
由于您已经尝试了float: left
,display: inline-block
,position: relative
和position: absolute
的变体来让您的行保持在一行,但它始终会突破一个设备/浏览器或另一个设备上的两行,也许一个表格布局将实现您的目标。
您可以使用HTML <table>
元素或CSS table
属性。在我下面的例子中,我已经使用了CSS。
http://jsfiddle.net/w01ckufb/2/
<强> HTML 强>
<div id="container">
<div id="ready">
<div id="welcome"class="theme active">IMAGE</div>
<div id="cat"class="theme">IMAGE</div>
<div id="minap"class="theme">IMAGE</div>
<div id="minecraft"class="theme">IMAGE</div>
<div id="padthai"class="theme">IMAGE</div>
<div id="orange"class="theme">IMAGE</div>
<div id="bszn"class="theme">IMAGE</div>
</div><!-- end .ready -->
</div><!-- end #container -->
<强> CSS 强>
#container {
display: table;
width: 4000px;
border-spacing: 15px;
}
#ready{
display: table-row;
border: 2px solid red;
}
.theme {
display: table-cell;
height: 568px;
width: 820px;
text-align: center;
background-color: #FFF;
border: 2px dashed blue;
}
希望这会有所帮助。如果您有任何问题,请在下面发表评论。