IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Trick:不用table,怎么等分DIV

    dwqs发表于 2015-05-14 23:43:51
    love 0

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

    第一种方式

    html:

    1. id="box">
    2. 1
    3. 2
    4. 3
    5. 4
    6. 5
    7. 6
    8. 7
    9. 8
    10. 9

    csss:

    1. *{
    2. margin:0 auto;
    3. padding:0;
    4. }
    5. #box{
    6. height:200px;
    7. width:200px;
    8. border:1px solid red;
    9. }
    10. div div{
    11. width:100%;
    12. height:32.855%;
    13. }
    14. span{
    15. display:inline-block;
    16. height:100%;
    17. width:32%;
    18. border:1px solid blue;
    19. }
    20. #box span:nth-child(2n+2){
    21. border:1px solid red;
    22. margin-left:-7px;
    23. }
    24. #box span:nth-child(2n+3){
    25. border:1px solid green;
    26. margin-left:-7px;
    27. }

    在线预览:https://jsfiddle.net/dwqs/wrj2xvhg/2/

    第二种方式

    可以考虑display的table、table-row和table-cell属性
    html:

    1. id="box">
    2. 1
    3. 2
    4. 3
    5. 4
    6. 5
    7. 6
    8. 7
    9. 8
    10. 9

    css:

    1. *{
    2. margin:0 auto;
    3. padding:0;
    4. }
    5. #box{
    6. height:200px;
    7. width:200px;
    8. border:1px solid red;
    9. display:table;
    10. }
    11. div div{
    12. width:100%;
    13. display:table-row;
    14. }
    15. span{
    16. display:table-cell;
    17. border:1px solid blue;
    18. vertical-align:middle;
    19. text-align:center;
    20. }

    在线预览:demo

    第三种方式

    利用css3的column-count布局
    html:

    1. id="box">
    2. id="first">
    3. 人民网北京2月24日电 (记者 刘阳)国家发展改革委知,
    4. 人民网北京2月24日电 (记者 刘阳)国家发展改革委知,
    5. 人民网北京2月24日电 (记者 刘阳)国家发展改革委知,

    css

    1. *{
    2. margin:0 auto;
    3. padding:0;
    4. }
    5. #box{
    6. height:200px;
    7. width:200px;
    8. border:1px solid red;
    9. }
    10. #box>div{
    11. width:100%;
    12. height:32.855%;
    13. border:1px solid blue;
    14. -moz-column-count:3; /* Firefox */
    15. -webkit-column-count:3; /* Safari and Chrome */
    16. column-count:3;
    17. -moz-column-rule:4px outset #ff0000; /* Firefox */
    18. -webkit-column-rule:4px outset #ff0000; /* Safari and Chrome */
    19. column-rule:4px outset #ff0000;
    20. }
    21. #first{
    22. }

    在线预览:column-count实现
    但要注意的是,使用列布局时,其包含的内容本身的宽度必读大于等于容器宽度,在大于容器宽度时,会自行增加列数。

    淡忘~浅思猜你喜欢

    问题:如何在固定大小的DIV层插入N多个图片

    Trick:CSS3的:target实现选项卡切换

    【译】下一代选择器:CSS4

    怎么解决div覆盖内容却没覆盖的问题?

    trick:CSS 3+checkbox实现JQuery的6个基本动画效果
    无觅

    转载请注明:淡忘~浅思 » Trick:不用table,怎么等分DIV



沪ICP备19023445号-2号
友情链接