博客列表 >盒子的列间隙和等高列

盒子的列间隙和等高列

骨头
骨头原创
2020年10月24日 13:06:56610浏览

1. 列间隙

  • 实现列间隙的方法:

    1. <style>
    2. :root {
    3. font-size: 1.25em; /*字号为 20px*/
    4. }
    5. *,
    6. ::before,
    7. ::after {
    8. margin: 0px; /*清除外边距*/
    9. padding: 0px; /*清除内边距*/
    10. +
    11. box-sizing: border-box; /*将盒子换为IE盒子 边框和内边距将不占据盒子大小*/
    12. }
    13. body {
    14. background-color: #eee; /*背景颜色*/
    15. }
    16. /*头部设置样式*/
    17. header {
    18. color: #fff; /*字体颜色*/
    19. background-color: #203d81; /*背景色*/
    20. margin-bottom: 1em; /*盒子底部的外边距*/
    21. }
    22. /*内容设置样式*/
    23. .left,
    24. .right {
    25. float: left; /*左浮动*/
    26. border-top: 3px solid; /*上边框线*/
    27. text-align: center; /*文本居中*/
    28. background-color: #fff; /*背景颜色*/
    29. border-radius: 0.5em; /*边框圆角*/
    30. }
    31. /*左边盒子*/
    32. .left {
    33. padding: 1em; /*内边距*/
    34. width: 19%;
    35. margin-right: 1%;
    36. line-height: 3em; /*行高*/
    37. }
    38. /*右边盒子*/
    39. .right {
    40. width: 80%; /*右边内容宽度*/
    41. }
    42. .left ul li {
    43. list-style: none; /*去除无序列表的黑点*/
    44. }
    45. </style>
    46. <body>
    47. <!--头部-->
    48. <header><h1>国际新闻</h1></header>
    49. <!--内容-->
    50. <div class="content">
    51. <div class="left">
    52. <ul>
    53. <li>国内新闻</li>
    54. <li>国外新闻</li>
    55. <li>南海新闻</li>
    56. <li>经济新闻</li>
    57. <li>社会新闻</li>
    58. </ul>
    59. </div>
    60. <div class="right">
    61. <h2>普京:中德正崛起为超级大国</h2>
    62. <p>
    63. 当地时间22日,普京以视频形式在瓦尔代辩论俱乐部的智库会议发表演讲,其演讲重点是新冠危机时期各国之间需要合作而非对抗。报道称,普京当天表示,莫斯科和华盛顿决定国际事务的时代已经过去了,中德等国也正崛起为超级大国。
    64. </p>
    65. </div>
    66. </div>
    67. </body>
    1. 第一种方法:
    2. .left {
    3. padding: 1em; /*内边距*/
    4. width: 19%;
    5. margin-right: 1%;
    6. 利用百分比和margin外边距赋值到一个盒子实现,但是有缺点,它的间隙会根据视口的大小发生变化.
    7. }
    1. 第二种方法:
    2. .left {
    3. padding: 1em; /*内边距*/
    4. width: calc(20% - 1em);
    5. margin-right: 1em;
    6. 给外边距赋值 1em,再用:calc()函数减去1em,保证我们盒子的百分比宽度不变,又可以给外边距赋一个绝对的值,这个值em只会跟随当前字号的大小去改变,效果就是不会因为视口的大小而变化,列间隙固定(相对于字号大小).
    7. }

    效果:

    2. 等高列

    1. <style>
    2. :root {
    3. font-size: 1.25em; /*字号为 20px*/
    4. }
    5. *,
    6. ::before,
    7. ::after {
    8. margin: 0px; /*清除外边距*/
    9. padding: 0px; /*清除内边距*/
    10. box-sizing: border-box; /*将盒子换为IE盒子 边框和内边距将不占据盒子大小*/
    11. }
    12. body {
    13. background-color: #eee; /*背景颜色*/
    14. }
    15. /*头部设置样式*/
    16. header {
    17. color: #fff; /*字体颜色*/
    18. background-color: #203d81; /*背景色*/
    19. margin-bottom: 1em; /*盒子底部的外边距*/
    20. }
    21. /*内容设置样式*/
    22. .left,
    23. .right {
    24. border-top: 3px solid; /*上边框线*/
    25. text-align: center; /*文本居中*/
    26. background-color: #fff; /*背景颜色*/
    27. border-radius: 0.5em; /*边框圆角*/
    28. display: table-cell; /*将每一列转换为单元格元素*/
    29. }
    30. .left {
    31. padding: 1em; /*内边距*/
    32. width: calc(20% - 1em);
    33. margin-right: 1em;
    34. line-height: 3em; /*行高*/
    35. }
    36. .right {
    37. width: 80%; /*右边内容宽度*/
    38. }
    39. .content {
    40. display: table; /*将盒子转换成 表格*/
    41. width: 100%; /*宽度*/
    42. border-spacing: 1.5em; /*列间隙*/
    43. }
    44. .hezi{ margin-left: -1.5em;/*在父盒子里减1.5em*/
    45. margin-right: -1.5em;/*在父盒子里减1.5em*/}
    46. .left ul li {
    47. list-style: none; /*去除无序列表的黑点*/
    48. }
    49. </style>
    50. </head>
    51. <body>
    52. <!--头部-->
    53. <header><h1>国际新闻</h1></header>
    54. <!--内容-->
    55. <div class="hezi">
    56. <div class="content">
    57. <div class="left">
    58. <ul>
    59. <li>国内新闻</li>
    60. <li>国外新闻</li>
    61. <li>南海新闻</li>
    62. <li>经济新闻</li>
    63. <li>社会新闻</li>
    64. </ul>
    65. </div>
    66. <div class="right">
    67. <h2>普京:中德正崛起为超级大国</h2>
    68. <p>
    69. 当地时间22日,普京以视频形式在瓦尔代辩论俱乐部的智库会议发表演讲,其演讲重点是新冠危机时期各国之间需要合作而非对抗。报道称,普京当天表示,莫斯科和华盛顿决定国际事务的时代已经过去了,中德等国也正崛起为超级大国。
    70. </p>
    71. </div>
    72. </div>
    73. </div>
    74. </body>
  • 第一步:将.content容器
    {display: table; /将盒子转换成 表格/
    border-spacing: 1.5em; /列间隙/
    width:100% ; /宽度/

  • 第二步:将 .left .right列
    {display:table-cell/转换为单元格元素}

  • 第三部给容器再套上一个父容器:
    在父容器 {
    1. margin-left: -1.5em;/*在父盒子里减1.5em*/
    2. margin-right: -1.5em;/*在父盒子里减1.5em*/
    3. }

效果:

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议