博客列表 >列间隙的两种设置方案和等高列的解决案例

列间隙的两种设置方案和等高列的解决案例

半生
半生原创
2020年10月30日 13:42:40991浏览

列间隙的两种设置方法和异同

  • 添加列间隙其实就是添加外边距(margin),当然可以左列加,也可以给右列加。
  • 添加列间距有两种方法:1.百分比,2.百分比 + em

  • 实例代码如下:
    ` <style>

    1. /* 添加背景颜色 */
    2. body {
    3. background-color: lightgoldenrodyellow;
    4. }
    5. header {
    6. color: lightgray;
    7. background-color: green;
    8. /* 设置圆角 */
    9. border-radius: 0.5em;
    10. }
    11. /* 这里使用群组选择器,同时匹配多个元素 */
    12. .main,
    13. .sidebar {
    14. background-color: ivory;
    15. border-radius: 0.5em;
    16. /* 这里使用浮动来实现 */
    17. float: left;
    18. /* 将w3c的盒子转为ie盒子:盒子大小包括了追加的padding,border */
    19. box-sizing: border-box;
    20. }
    21. .sidebar {
    22. /* 设置内边距 */
    23. padding: 1.5em;
    24. }
    25. /* 设置左侧main:使用相对值 x ,不管页面如何变化,
    26. 它始终占据页面的宽度的 x */
    27. .main {
    28. width: 70%;
    29. }
    30. /* sidebar占据右侧 ,同样给相对值*/
    31. .sidebar {
    32. /* 添加列间隙:其实就是添加margin(外边距),可以在左列加,也可以加在右列 */
    33. /* 添加列间隙有两种方式:1.百分比。2.百分比 + em */
    34. /* 这里使用百分比 */
    35. width: 29%;
    36. margin-left: 1%;
    37. }
    38. /* 这里示例百分比 + em */
    39. /* 百分比 + em :使用到函数【 calc(x + y)】,"+"操作数前面必须要有“空格” */
    40. .sidebar {
    41. width: calc(30% - 1em);
    42. /* 保证间隙是固定的,(相对于当前字号) */
    43. margin-left: 1em;
    44. }

    </style>`


  • 效果图

  • 总结:
  • 1.添加列间距有两种方法:1.百分比,2.百分比 + em
  • 2.百分比 + em,包含一个函数[ calc(x + y)],” + “操作数前必须加“空格”
  • 3.百分比:添加的列间隙是随着盒子大小变化而变化,它一直占据页面的 “ % ”。
  • 4.百分比 + em:添加的列间隙是固定的,但它随着字号大小变化而变化。因为是ie盒子,所以它的宽度=box-sizing,间距= % - em。
  • 5.无论哪种方法它们的效果都是一样的。

等高列解决案例

  • 设置列的等高:1.首先我们将容器转为table(表格)类型,在表格中表格宽高默认为表格内容决定,不像块级元素充满父级元素的整个空间,所以我们必须自己自定义。
  • 2.在table(表格中不支持margin),所以设置表格列间距/单元格间隙用(border-spacing:0 0),表格中单元格间隙有左右两个,所以我们赋予两个值。
  • 3.将表格(table)中每一列都转为单元格就会默认等高,这时我们的等高列就实现了。
  • 4.这时因为单元格的特性:当我们给它设置单元格间隙后,表格两边都会缩进所设置单元格间隙的值,所以我们要在容器的外面在加一个容器,给该容器左右设置一个负的表格中单元格间隙的值来进行调整。

  • 实例代码如下:
    `<!DOCTYPE html>
    <html lang="">
    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>等高列的解决方案:表格</title>
    <style>

    1. body {
    2. background-color: lavender;
    3. }
    4. .box,
    5. .box1 {
    6. height: 10em;
    7. background-color: rgb(141, 141, 243);
    8. /* 设置圆角 */
    9. border-radius: 0.5em;
    10. }
    11. .box {
    12. width: 60%;
    13. }
    14. /* 将容器转为table(表格) */
    15. .container {
    16. display: table;
    17. /* 表格宽高默认由内容决定,并不会像块元素那样充满
    18. 父级容器的全部空间 */
    19. /* 设置宽度 */
    20. width: 100%;
    21. /* 表格中不支持margin:列间隙/单元格间隙 */
    22. /* 表格设置列间距用:borde-spacing */
    23. /* 表格列间距左右两边都有 */
    24. border-spacing: 1.5em 0;
    25. }
    26. /* 将每一列转为单元格元素 */
    27. .box,
    28. .box1 {
    29. /* 转为单元格后就默认等高了,于是等高就实现了 */
    30. display: table-cell;
    31. }
    32. /* 给这个table类似的容器外面套一个壳,利用负的外边距进行跳整 */
    33. .wrapper {
    34. /* 左外边距 */
    35. margin-left: -1.5em;
    36. /* 右外边距 */
    37. margin-right: -1.5em;
    38. }

    </style>
    </head>
    <body>
    <div class="wrapper">

    1. <div class="container">
    2. <div class="box"></div>
    3. <div class="box1"></div>
    4. </div>

    </div>
    </body>
    </html>`


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