重置box sizing最佳实践

本文翻译自 css-tricks Inheriting box-sizing Probably Slightly Better Best-Practice

我是一个将box-sizing重置为border-box的狂热分子,所以我有a special day of the year这篇文章,但是本文于那篇文章有一点小差别,下面让我们来看看主要差别在什么地方。

html{
  box-sizing:border-box;
}
*,*:before,*:after{
  box-sizing:inherit;
}
复制代码

继承的概念出自于Jon Neal他说

这将会给你同样的结果,而且会让他更容易在插件和组件中改变box-sizing从而影响他的行为。

更进一步,如果你有一个组件只想用默认的content-box,box-sizing。你只想这样用他,而且不让其混乱

.component{
  /* designed to work in default box-sizing */
  /* in your page you could reset it to normal */
  
  box-sizing:content-box;
}
复制代码

那么问题出现了,这个样式没有重置所有的元素,也许这里有一个<header>在这个组件中,而且希望<header>元素也是content-box,如果这个选项在你的css里面,那么老的重置box-sizing方法

/* this selector is an most 'old way' box-sizing resets*/
*{
  box-sizing:border-box;
}
复制代码

那么这时候<header>并不是如你所想那样为content-box,他是border-box。像这样:

<div class='component'> <!-- i'am content-box -->
  <header><header> <!-- i'am border-box-->
</div>
复制代码

为了使重置更简单,更直观,您可以在顶部使用继承的代码段,继承将被保留。

看起来这些改善并没有什么大的意义,或许你用原来的老方法也不会遇到什么问题,我就是这样,但是只要我们推广了一个最佳的代码片段,那么我们就离完美更近了一步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值