Trick:不用table,怎么等分DIV

37 篇文章 0 订阅

在SF上,有人提出一个问题:不用table,如何把Div分成3行*3列。提供了三种思路:

第一种方式

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">
        人民网北京224日电 (记者 刘阳)国家发展改革委知,
    </div>
     <div>
         人民网北京224日电 (记者 刘阳)国家发展改革委知,
    </div>
     <div>
         人民网北京224日电 (记者 刘阳)国家发展改革委知,
    </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实现
但要注意的是,使用列布局时,其包含的内容本身的宽度必读大于等于容器宽度,在大于容器宽度时,会自行增加列数。

原文链接:http://www.ido321.com/1562.html

ps:原文下方的评论给出第四种方式。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值