这是一个在 div 上使用 CSS 表格设置的示例。调整大小和添加内容时,它可以很好地保持在一起。另一个好处是左右两列将保持相同的高度,并将环绕内容。如果您希望左右列看起来具有不同的高度,只需插入嵌套 div 并设置样式即可。
在第一个示例中,右侧 div 具有 text-align:center。嵌套的 div 是 display:inline-block ,它识别父级上的 text-align:center 。因此,嵌套的 div 是真正居中的。 Inline-block 也将环绕其内容的宽度,如果您的居中元素具有设定的宽度或较小的可变宽度,这将很有帮助。如果您的内容像示例一样填充其父级,只需设置一个最大宽度。
在第二个示例中,右侧 div 在左侧和右侧具有相等的填充以“居中”其内容。
注意:如果你支持 IE6 和 IE7 - CSS 表格设置和 inline-block 有很好的浏览器兼容性,除了 IE6 和 IE7。对于 css 表设置,有一个polyfill。 IE6 和 IE7 也不能识别 inline-block,但可以识别 display:inline。 IE6 和 IE7 只需使用 *display:inline; *zoom:1;。
给它一个很好的测试,看看你的想法。
JSFiddle Example
CSS Table Browser Compatibility Chart
Inline-block Browser Compatibility Chart
CSS
.table-holder {
display:table;
width:100%;
}
.table-row {
display:table-row;
}
.table-cell-right {
display:table-cell;
width:90px; /* small px used for example */
background-color:#ccffcc;
padding:.5em;
vertical-align:top;
}
.table-cell-left {
display:table-cell;
background-color:#ccffff;
text-align:center;
}
.center-nested {
width:85%; /*set to desired width */
display:inline-block;
padding:.5em;
text-align:left;
vertical-align:top;
background-color:#ffffcc;
}
/* ------------ center using padding -------------*/
.padded-table-cell-left {
display:table-cell;
background-color:#ccffff;
padding:0em 2em 0em 2em;
}
.padded-center-nested {
padding:.5em;
background-color:#ffffcc;
}
HTML
<p>Table using inline-block to center</p>
<div class="table-holder">
<div class="table-row">
<div class="table-cell-right">Left Container set at 90px</div>
<div class="table-cell-left">
<div class="center-nested">
This is a CSS table. The blue parent cell has text-align:center. The yellow nested div is display:block, which responds to the text-align:center on the parent: therefore, the yellow div is truely centered. Lorem ipsum dolor sit amet, usu ad fugit indoctum molestiae, inermis mediocrem in quo, sed affert sadipscing no. Per solum rebum forensibus id, his prima everti epicuri te. Vis diam tation ei, audire tritani adipiscing eam at. Ea modo nonumy feugiat usu, pri an ubique electram. Aeque adversarium ea vim. Pri te novum veritus scriptorem, vero blandit mei eu.
</div>
</div>
</div>
</div>
<p>Table using padding to center</p>
<div class="table-holder">
<div class="table-row">
<div class="table-cell-right">Left Container set at 90px</div>
<div class="padded-table-cell-left">
<div class="padded-center-nested">
The yellow centered cell appears centered because the parent has equal left and right padding. - Lorem ipsum dolor sit amet, usu ad fugit indoctum molestiae, inermis mediocrem in quo, sed affert sadipscing no. Per solum rebum forensibus id, his prima everti epicuri te. Vis diam tation ei, audire tritani adipiscing eam at. Ea modo nonumy feugiat usu, pri an ubique electram. Aeque adversarium ea vim. Pri te novum veritus scriptorem, vero blandit mei eu.
</div>
</div>
</div>
</div>