html border 边距,深入学习border-sizing属性

本文介绍了CSS3的box-sizing属性,该属性用于改变元素宽度和高度的计算方式。content-box是默认值,仅计算内容宽度和高度;border-box则将边框和内边距包含在内。当需要在外边距影响布局时,可以结合使用border-box和calc()函数来确保兼容性。文章建议通常将box-sizing设为border-box以简化布局,并提供了示例代码展示如何实现全屏元素并设置外边距。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

box-sizing属性是css3中新增的属性,允许你以某种方式定义某些元素,以适应指定区域(假如您需要并排放置两个带边框的框。下面本篇文章就来给大家介绍一下border-sizing属性及其应用。

5e32efe64b1fa221.jpgbox-sizing用于更改用于计算元素宽度和高度的默认的 CSS 盒子模型。它有content-box、border-box和inherit三种取值。inherit指的是从父元素继承box-sizing表现形式,不再冗赘。

1. 属性讲解

content-box

默认值,也是css2.1中的盒子模型。在计算width和height时候,不计算border、padding和margin。高度、宽度都只是内容高度。

border-box

css3新增。 width和height属性包括内容,内边距和边框,但不包括外边距。

计算公式:width = width = border + padding + 内容宽度

height = border + padding + 内容高度

2. 考虑盒子模型的margin

从上面可以知道,即时是border-box也是不计算margin,只是多余计算了border和padding。因为border和padding都是盒子模型的一部分,但是margin标记的是盒子和盒子的间距。所以,border-box的解释很符合常理。问题来了,如果有时候一定要设置margin,怎么做到自由控制来保证兼容?例如,我们下面要设置一个撑满页面的盒子元素,而且有外边距干扰,怎么做?

实现如下效果图:

1580396319656161.png

yuanxin.me

*{

margin: 0;

padding: 0;

}

#app {

box-sizing: border-box; /* 指定计算方式 */

margin: 10px; /* 外边距干扰 */

/* 利用 css3 的 calc */

width: calc(100vw - 2*10px);

height: calc(100vh - 2*10px);

}

所以,当需要计算外边距(margin),可以配合css3中的四则运算(calc)来使用。

3. 使用建议根据项目中的使用经验和w3c的建议,推荐将box-sizing属性设置为border-box。* {

margin: 0;

padding: 0;

}

div {

box-sizing: border-box;

}

更多web前端开发知识,请查阅 HTML中文网 !!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值