如何把一个Div等分成3行*3列不用table.
bootstrap 的栅格系统就是干这个的。
可以参考下它的内部实现。
第一种方式
html:
<div id="box">
<div>
<span>1</span>
<span>2</span>
<span>3</span>
</div>
<div>
<span>4</span>
<span>5</span>
<span>6</span>
</div>
<div>
<span>7</span>
<span>8</span>
<span>9</span>
</div>
</div>
csss:
*{
margin:0 auto;
padding:0;
}
#box{
height:200px;
width:200px;
border:1px solid red;
}
div div{
width:100%;
height:32.855%;
}
span{
display:inline-block;
height:100%;
width:32%;
border:1px solid blue;
}
#box span:nth-child(2n+2){
border:1px solid red;
margin-left:-7px;
}
#box span:nth-child(2n+3){
border:1px solid green;
margin-left:-7px;
}
在线预览:https://jsfiddle.net/dwqs/wrj2xvhg/2/
第二种方式
可以考虑display的table、table-row和table-cell属性
html:
<div id="box">
<div>
<span>1</span>
<span>2</span>
<span>3</span>
</div>
<div>
<span>4</span>
<span>5</span>
<span>6</span>
</div>
<div>
<span>7</span>
<span>8</span>
<span>9</span>
</div>
</div>
css:
*{
margin:0 auto;
padding:0;
}
#box{
height:200px;
width:200px;
border:1px solid red;
display:table;
}
div div{
width:100%;
display:table-row;
}
span{
display:table-cell;
border:1px solid blue;
vertical-align:middle;
text-align:center;
}
在线预览:demo
第三种方式
利用css3的column-count布局
html:
<div id="box">
<div id="first">
人民网北京2月24日电 (记者 刘阳)国家发展改革委知,
</div>
<div>
人民网北京2月24日电 (记者 刘阳)国家发展改革委知,
</div>
<div>
人民网北京2月24日电 (记者 刘阳)国家发展改革委知,
</div>
</div>
css
*{
margin:0 auto;
padding:0;
}
#box{
height:200px;
width:200px;
border:1px solid red;
}
#box>div{
width:100%;
height:32.855%;
border:1px solid blue;
-moz-column-count:3; /* Firefox */
-webkit-column-count:3; /* Safari and Chrome */
column-count:3;
-moz-column-rule:4px outset #ff0000; /* Firefox */
-webkit-column-rule:4px outset #ff0000; /* Safari and Chrome */
column-rule:4px outset #ff0000;
}
#first{
}
在线预览:column-count实现
但要注意的是,使用列布局时,其包含的内容本身的宽度必读大于等于容器宽度,在大于容器宽度时,会自行增加列数。
第四种方式
修改css如下:
*{
margin:0 auto;
padding:0;
}
#box{
height:200px;
width:200px;
border:1px solid red;
}
#box div{
display:flex;
border:1px solid blue;
height:32%;
}
#box div span{
display:inline-block;
border:1px solid green;
width:100%;
}
在线预览:demo
已经总结我的博客:不用table,怎么等分DIV
欢迎各位补充其他方式
或许你需要的是淘宝UED的这个内容