小编给大家分享一下css3中border-sizing属性有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
box-sizing
用于更改用于计算元素宽度和高度的默认的 CSS 盒子模型。它有content-box
、border-box
和inherit
三种取值。inherit
指的是从父元素继承box-sizing
表现形式,不再冗赘。
content-box
默认值,也是css2.1中的盒子模型。在计算width
和height
时候,不计算border
、padding
和margin
。高度、宽度都只是内容高度。
border-box
css3
新增。 width
和height
属性包括内容,内边距和边框,但不包括外边距。
计算公式:
width = width = border + padding + 内容宽度
height = border + padding + 内容高度
margin
从上面可以知道,即时是border-box
也是不计算margin
,只是多余计算了border
和padding
。因为border
和padding
都是盒子模型的一部分,但是margin
标记的是盒子和盒子的间距。所以,border-box
的解释很符合常理。
问题来了,如果有时候一定要设置
margin
,怎么做到自由控制来保证兼容?例如,我们下面要设置一个撑满页面的盒子元素,而且有外边距干扰,怎么做?
实现如下效果图:
代码:源码下载
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>yuanxin.me</title>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
#app {
box-sizing: border-box; /* 指定计算方式 */
margin: 10px; /* 外边距干扰 */
/* 利用 css3 的 calc */
width: calc(100vw - 2*10px);
height: calc(100vh - 2*10px);
}
</style>
</head>
<body>
<div id="app">
</div>
</body>
</html>
所以,当需要计算外边距(margin),可以配合css3中的四则运算(calc
)来使用。
根据项目中的使用经验和w3c的建议,推荐将
box-sizing
属性设置为border-box
。
* {
margin: 0;
padding: 0;
}
div {
box-sizing: border-box;
}
以上是“css3中border-sizing属性有什么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。