关于margin与padding设置百分比的问题

来源:互联网 发布:陆逊 知乎 编辑:程序博客网 时间:2024/06/10 15:50

margin 与 padding 设置为百分比

之前一直认为 margin-topmargin-bottom 设置百分比以父容器的高度计算,而 margin-leftmargin-right 设置百分比以父容器的宽度计算,直到今天群里一个群友问

boostrap 中的栅格系统是如何设置 margin-top 百分比以宽度计算的?

原因是他发现设置的 margin: 10% 10%; 中 top 和 bottom 值是以父容器的宽度计算得到的结果。

经过一番测试及网上查找,才发现:原来 margin-topmargin-bottom 并不是以父容器的高度计算百分比的,而是同样以父容器宽度来计算,同样的 padding 内边距也是一样。

如按照以下样式设置

  .father {    width: 200px;    height: 100px;    border: 1px solid #000;  }  .son {    width: 80%;    height: 50%;    margin: 10% 10%;    background-color: #ff0000;  }
<div class="father">  <div class="son"></div></div>

得到的结果是:

margin-top百分比盒模型

不过也不是绝对这样,如果设置了 writing-mode 为纵向书写,比如 -webkit-writing-mode: vertical-lr; 此时按百分比书写的margin就会参照容器的高度来计算了。

在上例中的 father 中添加 -webkit-writing-mode: vertical-lr;

  .father {    width: 200px;    height: 100px;    border: 1px solid #000;    -webkit-writing-mode: vertical-lr;  }

得到的结果就是:

竖向的margin盒模型

以上内容查找来自于:
cxxsn的博文:margin-top百分比问题

感谢!

原创粉丝点击