首页 > 如何把Div分成3行*3列不用table.

如何把Div分成3行*3列不用table.

如何把一个Div等分成3行*3列不用table.


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

  • 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的这个内容

    【热门文章】
    【热门文章】