我正在使用 display:table 创建嵌套的行和列集的布局。我注意到当表格单元格中的第一个元素不是文本时,列的对齐似乎会中断。诚然,我还没有测试过哪些元素会导致这种情况,但是这个 JSFiddle 中有一个例子:http: //jsfiddle.net/ekx4v/
代码:
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
#container {
width:200px;
height:200px;
display:table;
}
#column1 {
display:table-cell;
background-color:blue;
}
#column2 {
display:table-cell;
background-color:red;
}
</style>
</head>
<body>
<div id="container">
<div id="column1">
Col1
<form>
<select size="2">
<option>Options go here...</option>
</select>
</form>
</div>
<div id="column2">Col2</div>
</div>
</body>
</html>
删除“Col1”文本会导致第二列不对齐。如果这在其他浏览器上无法重现,这里有一些屏幕截图,在 Chrome 中拍摄:
使用“Col1”:
没有“Col1”:
我在 Firefox 中得到相同的结果。这是预期的行为吗?如果是这样,是否有一种解决方法,以便我不必在每个 div 的开头放置文本?