博客列表 >高效设置列间距的方法,以及用“表格”设置等高列的思考

高效设置列间距的方法,以及用“表格”设置等高列的思考

黑色郁金香
黑色郁金香原创
2020年10月27日 12:36:291466浏览

一、列间距的设置:

通过设置 margin 来实现列间距,目前有两种方法: 1.通过百分比设置 2.通过(百分比 - em )来实现(推荐使用)

1. 第一种方法

设置百分比

设置百分比

代码部分

  1. <style>
  2. body {
  3. background-color: #f1f1f1;
  4. /* 把盒子设置为IE盒子 */
  5. box-sizing: border-box;
  6. }
  7. .container {
  8. background-color: rgb(46, 101, 250);
  9. border-radius: 0.5em;
  10. text-align: center;
  11. color: #fff;
  12. }
  13. /* 将main转换为块元素 */
  14. .main {
  15. display: block;
  16. width: 70%;
  17. }
  18. .main ,.right {
  19. border: 1px solid #333;
  20. border-radius: 0.5em;
  21. background: #fff;
  22. float: left;
  23. /* 将main和right转换为IE盒子 */
  24. box-sizing: border-box;
  25. }
  26. /* 把右边的块元素撑开 */
  27. .right {
  28. padding: 1.5em;
  29. }
  30. /* 第一种设置列间距的方法 */
  31. /* 1. 用相对单位百分比来设置 */
  32. .right {
  33. width: 29%;
  34. margin-left: 1%;
  35. }
  36. </style>

总结:

将右列(right)的宽度设置为 29%,然后设置左侧外边距为 1%,即 margin-left: 1%

虽然通过设置百分比,得到了我们想要的效果。但是,在改变视窗大小后,块元素之间的间距大小也会随之改变,在一些特定场景下,我们是不希望出现这种情况的。所以,这种实现方法并不推荐。

2. 第二种方法

设置(百分比 - em)

设置百分比

代码部分

  1. <style>
  2. body {
  3. background-color: #f1f1f1;
  4. /* 把盒子设置为IE盒子 */
  5. box-sizing: border-box;
  6. }
  7. .container {
  8. background-color: rgb(46, 101, 250);
  9. border-radius: 0.5em;
  10. text-align: center;
  11. color: #fff;
  12. }
  13. /* 将main转换为块元素 */
  14. .main {
  15. display: block;
  16. width: 70%;
  17. }
  18. .main ,.right{
  19. border: 1px solid #333;
  20. border-radius: 0.5em;
  21. background: #fff;
  22. float: left;
  23. /* 将main和right转换为IE盒子 */
  24. box-sizing: border-box;
  25. }
  26. /* 把右边的块元素撑开 */
  27. .right {
  28. padding: 1.5em;
  29. }
  30. /* 第二种设置列间距的方法 */
  31. /* 2. 用相对单位百分比和em组合来设置
  32. 注意计算格式之间有空格,否则计算无效
  33. */
  34. .right {
  35. width: calc(30% - 1em);
  36. margin-left: 1em;
  37. }
  38. </style>

总结:

设置右边的块元素,左侧外边距为 1em,因为(right)的宽度包含了这个外边距,所以应当减去,运用函数计算。表达式为:calc(百分比 - em),即:calc(30% - 1em)
注意表达式里的空格,必须隔开,否则会导致运算无效。【切记!!!切记!!!切记!!!】

通过设置后发现,运用这种方法,无论怎么调整视窗的大小,这个列间距都是相对一致的,并不会随视窗改变而改变。所以,我们推荐使用这种方法来实现列间距的设置。


二、实现一个等高列的代码实例

思考:???

用表格实现等高列的设置

我们在前面学习了使用百分比来实现列间距的设置,虽然能实现左右两边块元素的间距,但是,一旦两个块元素里所包含的元素数量不等时,是无法实现块元素等高的。也不能通过写死数据,来设置高度。还有什么办法呢?

办法肯定是有的,我们知道表格的属性中,具有同行列高相等的特性,单元格内不管包含的元素有多少,这行表格两边元素的列高始终一致。为了验证想法,通过下面的代码案例,来实践一下。

代码部分:

  1. <style>
  2. body {
  3. background-color: #eee;
  4. color: #000;
  5. }
  6. .top > h2 {
  7. background-color: #fff;
  8. }
  9. .conter {
  10. display: table;
  11. width: 100%;
  12. border-spacing: 0.5em 0;
  13. text-align: center;
  14. }
  15. .main,.sider {
  16. display: table-cell;
  17. background-color: #fff;
  18. color: #000;
  19. border-radius: 0.5em;
  20. }
  21. .right-box {
  22. margin: 0;
  23. padding: 0;
  24. }
  25. .container {
  26. margin-left: -0.5em;
  27. margin-right: -0.5em;
  28. }
  29. </style>

等高列案例

总结:

使用表格来实现列的等高并不会真正使用表格,(在HTML里没有用到表格元素), 而只是是把CSS属性设置为表格元素的属性来显示。这个方法可能是一个比较简单的解决方案。不过,因为是用到了”表格”。所有需要特别小心浏览器兼容性问题。

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