divs之间的空间 – 显示表格单元格
我在这里有两个div:
<div style="display:table-cell" id="div1"> content </div> <div style="display:table-cell" id="div2"> content </div>
有没有办法让这两个div(有display:table-cell
)之间的空间?
你可以使用border-spacing
属性:
HTML:
<div class="table"> <div class="row"> <div class="cell">Cell 1</div> <div class="cell">Cell 2</div> </div> </div>
CSS:
.table { display: table; border-collapse: separate; border-spacing: 10px; } .row { display:table-row; } .cell { display:table-cell; padding:5px; background-color: gold; }
JSBin演示
任何其他选项?
那么 ,不是真的。
为什么?
-
margin
属性不适用于display: table-cell
元素。 -
padding
属性不会在单元的边缘之间创build空间。 -
float
属性破坏了能够像父元素一样高的table-cell
元素的预期行为。
如果可能的话使用透明边框
JSFiddle演示
https://jsfiddle.net/74q3na62/
HTML
<div class="table"> <div class="row"> <div class="cell">Cell 1</div> <div class="cell">Cell 2</div> <div class="cell">Cell 3</div> </div> </div>
CSS
.table { display: table; border: 1px solid black; } .row { display:table-row; } .cell { display: table-cell; background-clip: padding-box; background-color: gold; border-right: 10px solid transparent; } .cell:last-child { border-right: 0 none; }
说明
您可以使用border-spacing
属性,但不仅在表格单元格之间生成空间,而且还在表格单元格和表格容器之间生成空间。
如果您不需要在表格单元格上显示可见边框,则应该使用transparent
border
来生成单元格边距。 透明边框需要设置background-clip: padding-box;
因为否则表格单元格的背景颜色会显示在边框上。
IE9以上版本(以及所有其他现代浏览器)都支持透明边框和背景剪辑。 如果您需要兼容IE8或不需要实际的透明空间,您可以简单地设置一个白色的边框颜色,并留下background-clip
。
使用任何名称(我将只使用table-split)创build一个新的div,并给它一个宽度,而不添加内容,同时将其放置在需要分隔的必要div之间。
你可以添加任何你觉得有必要的宽度。 我只用0.6%,因为这是我必须做的。
.table-split { display: table-cell; width: 0.6% }
<div class="table-split"></div>
你可以把你的内联css样式放到一个css类中。 您可以使用css样式(如padding:5px或margin:5px)在两个div之间添加空格。
<div class="tile"> content </div> <div class="tile"> content </div> .tile { display: table-cell; padding: 5px; }