Blogger Information
Blog 9
fans 0
comment 1
visits 12316
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
高效设置列间距的方法,以及用“表格”设置等高列的思考
黑色郁金香
Original
1458 people have browsed it

一、列间距的设置:

通过设置 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属性设置为表格元素的属性来显示。这个方法可能是一个比较简单的解决方案。不过,因为是用到了”表格”。所有需要特别小心浏览器兼容性问题。

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:table布局不存在兼容性的
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post