CSS3 box-sizing属性
简介
box-sizing
属性定义了应该如何计算一个元素的总宽度和总高度。
// box-sizing 有三种属性
box-sizing: content-box|border-box|inherit;
content-box ( 默认值 - 标准盒模型 )
宽度和高度分别应用到元素的内容框。
在宽度和高度之外绘制元素的内边距和边框。
如果你设置一个元素的宽为100px,那么这个元素的内容区会有100px 宽,并且任何边框和内边距的宽度都会被增加到最后绘制出来的元素宽度中。
width = 内容的宽度 = 100px
height = 内容的高度 = 100px
但整体宽高会跟随变化(100px + 10px*2 + 5px*2 = 130px)
.
border-box ( 推荐设置 - IE盒模型 )
为元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制。
通过从已设定的宽度和高度分别减去边框和内边距才能得到内容的宽度和高度。
如果你将一个元素的width设为100px,那么这100px会包含它的border和padding,内容区的实际宽度是width减去(border + padding)的值。大多数情况下,这使得我们更容易地设定一个元素的宽高。
width = border + padding + 内容的宽度 = 100px
height = border + padding + 内容的高度 = 100px
但整体宽高不变(100px)
.
inherit
规定应从父元素继承 box-sizing
属性的值。
MDN建议
对于新的web站点,你可能希望首先将box-sizing
设置为border-box
,如下所示:
* { box-sizing: border-box; }
这使得处理元素大小的工作变得容易得多,并且通常消除了在布局内容时可能遇到的许多陷阱。然而,在某些情况下,你应谨慎使用这个属性。例如: 你正在编写一个将由其他人使用的共享组件库,如果他们网站的其余部分没有设置此值,他们可能会发现很难使用你的组件库。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通