CSS margin百分比

之前一直没有注意到:margin取百分比的时候到底是根据什么值来取的百分比。其实这应该算是非常基础的一个问题了,现在想想自己觉得已经会用一些框架了,也能切除好看的页面了,就沾沾自得的心态是非常不可取的。

那么,今天写的这篇博文就从一个问题开始吧。

假设一个块级的父元素的margin值为800x 600px,那么当块级的子元素设置margin为10% 5%的时候,margin-top、margin-right、margin-bottom、margin-left的值分别是多少呢?

下面让我们在实际的HTML代码中尝试一下:

CSS:

#demo {
  width: 800px;
  height: 600px;
  background: #2E8B57;
}
#box {
  margin: 10% 5%;
  background: #9370DB;
}

HTML:

<div id="demo">
	<div id="box">test</div>
</div>

实际运行出来告诉我们结果是:80px 40px 80px 40px。

那么为什么是这个结果呢?

规范中注明margin的百分比值参照其包含块的宽度进行计算。

但这是发生在默认的 writing-mode: horizontal-tb; 和 direction: ltr; 的情况下。

当书写模式变成纵向的时候,其参照将会变成包含块的高度。我们改变一下上面例子中的CSS书写模式:

CSS:

#demo{
	writing-mode: vertical-rl;
}

就会发现,结果变成了60px 30px 60px 30px,也就是参照父元素的高度来实现的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值