【发布时间】:2014-08-29 06:52:49
【问题描述】:
我在使特定的 CSS 布局与 Firefox 一起使用时遇到问题。我想要实现的是一个列,其中有一些红色框将位于固定位置,然后其他一些绿色框将相应地占用可用空间。
我在 Chrome 和 Safari 中为 OSX 和 Win7 中的 IE10 测试了以下小提琴,效果很好,正如预期的那样。我遇到的唯一问题是使用“display: inline-block;”时将“Item 4”和“Item 8”推到右侧的 Firefox(OSX 的 v31,也可能是 Win)。并在使用“display: table;”时在底部切割它们。
使用显示:内联块; http://jsfiddle.net/akrycoem/1/
使用显示:表格; http://jsfiddle.net/akrycoem/
我搜索了很多关于“firefox”和“inline-block”的内容,但只能找到与非常旧的版本(v2 和 v3)相关的旧东西。谁能帮我解开这个大谜团? 我想避免使用 JS 来实现这一点,因为我认为仅使用纯 CSS 解决方案会更好更快,尤其是每列都有很多元素。
非常感谢任何可以为我指明正确方向甚至更好地解决我的问题的人!
干杯,
卢卡
附言这里有我在 jsfiddle 中用作参考的 HTML 和 CSS 代码
HTML
<div class="column">
<div class="spacer"></div>
<div class="redBlock"></div>
<div class="spacer"></div>
<div class="redBlock"></div>
<div class="spacer"></div>
<div class="redBlock"></div>
<ul class="itemsList"><li>Item 1</li><li>Item 2</li><li>Item 3</li><li>Item 4</li><li>Item 5</li><li>Item 6</li><li>Item 7</li><li>Item 8</li><li>Item 9</li><li>Item 10</li></ul>
</div>
CSS
.column {
width: 200px;
float: left;
margin-left: 30px;
background-color: #333;
}
.column:after {
content: ".";
visibility: hidden;
height: 0;
display: block;
clear: both;
}
.spacer {
width: 0px;
height: 180px;
float: left;
clear: left;
background-color: #00d;
}
.redBlock {
width: 200px;
height: 100px;
float: left;
clear: left;
background-color: #d00;
}
ul.itemsList {
list-style: none;
padding: 0;
margin: 0;
background-color: #ddd;
}
ul.itemsList li {
display: inline-block;
width: 200px;
height: 50px;
line-height: 50px;
background-color: #0d0;
text-align: center;
}
【问题讨论】:
-
从您的描述中,我不明白您在这里真正想要实现什么。
-
基本上,我的应用程序需要一些红色框,它们的距离和高度不同。然后有一些绿色盒子需要尽可能地填充红色盒子之间的可用空白空间(如果它们最终留下一些空白空间也可以)。请查看我的答案以查看 jsfiddle 中的工作示例