我有一个使用<li>
元素构建的流畅网格。
例如:
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
li
{
border:solid 1px green;
width: 100px;
min-height:50px;
display: inline;
margin: 10px;
float: left;
}
所以这看起来像:
----------- ----------- -----------
| | | | | |
| | | | | |
----------- ----------- -----------
----------- ----------- -----------
| | | | | |
| | | | | |
----------- ----------- -----------
万岁!
问题是当我在其中一个<li>
元素中添加内容时会拉伸高度。我想最终得到这样的东西:
----------- ----------- -----------
| apples | | | | |
| oranges | | | | |
| lemons | ----------- -----------
| cherries|
-----------
----------- ----------- -----------
| | | | | |
| | | | | |
----------- ----------- -----------
但实际上我最终会得到这样的结果:
----------- ----------- -----------
| apples | | | | |
| oranges | | | | |
| lemons | ----------- -----------
| cherries|
----------- ----------- -----------
| | | |
| | | |
----------- -----------
-----------
| |
| |
-----------
booo!
所以基本上,当我从上面的元素中推下一个<li>
时,我试图保持'row'对齐,而不是将它推到右边的可用空间。
答案 0 :(得分:2)
看看下面的代码。
显然,IE hacks和moz规则应该移入条件样式表并且存在一些填充问题(阅读:使用css reset )
但除此之外,这应该可以解决问题......
alt text http://img835.imageshack.us/img835/9594/example1281542227415.png
实施例
<style type="text/css">
ul {
background-color:#ddddff;
overflow:auto;
margin:0;
padding:0 0 0 4px;
width:296px;
}
li {
background-color:#ddffdd;
display:inline-block;
/* Trick FF2 into using inline-block */
display:-moz-inline-stack;
/* Trick IE6 into using inline-block */
*display: inline;
zoom:1;
list-style-type:none;
margin:0 0 0 -4px;
/* Trick IE6 into enforcing min height */
min-height:50px;
height:auto !important;
height:50px;
padding: 0;
vertical-align:top;
width:100px;
}
</style>
</head>
<body>
<ul>
<li>apples<br />oranges<br />lemons<br />cherries</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
</ul>
</body>