css:box-sizing告诉浏览器如何计算一个元素的总宽度和总高度

简介: css:box-sizing告诉浏览器如何计算一个元素的总宽度和总高度

box-sizing 告诉浏览器如何计算一个元素的总宽度和总高度


语法

box-sizing: content-box|border-box|inherit:

1、content-box: W3C标准盒模型


[扩展] 内容尺寸不变,总尺寸增加


total = content + border + padding

image.png



2、border-box: IE怪异盒模型


[压缩] 总尺寸不变,内容尺寸减少


content = total - border - padding;

image.png


计算示例

<style type="text/css">
  * {
    margin: 0;
    padding: 0;
  }
  .box {
    width: 200px;
    height: 100px;
    padding: 20px;
    border: 10px solid red;
    background:yellow;
  }
  .content-box {
    box-sizing: content-box;
  }
  .border-box {
    box-sizing: border-box;
  }
</style>
<body>
  <div class="box">box</div>
  <div class="box content-box">content-box</div>
  <div class="box border-box">border-box</div>
</body>

image.png

计算方式


1、box-sizing: content-box

Total width: 200px + (2 * 20px) + (2 * 10px) = 260px
Total height: 100px + (2 * 20px) + (2 * 10px) = 160px
Content box width: 200px
Content box height: 100px

image.png

2、box-sizing: border-box

Total width: 200px
Total height: 100px
Content box width: 200px - (2 * 20px) - (2 * 10px) = 140px
Content box height: 100px - (2 * 20px) - (2 * 10px) = 40px

image.png


参考

MDN-box-sizing

菜鸟教程-CSS3 box-sizing 属性

相关文章
|
4天前
CSS_定位_网页布局总结_元素的显示与隐藏
CSS_定位_网页布局总结_元素的显示与隐藏
10 0
|
17天前
|
前端开发 开发者 容器
CSS3:flex&box-sizing
本文介绍了CSS中的Flex布局及其相关属性,如`flex-direction`、`flex-wrap`、`justify-content`等,并通过代码示例展示了如何使用这些属性来控制容器内的项目排列方式。同时,还讲解了`align-items`属性用于定义子元素在交叉轴上的对齐方式,以及`box-sizing`属性的不同取值对元素尺寸计算的影响。
|
2月前
获取元素到浏览器顶部的距离
文章介绍了两种方法来获取页面元素到浏览器顶部的距离:使用元素的`getBoundingClientRect().top`属性和自定义函数`getElementTop`结合`offsetParent`和`offsetTop`属性。
73 1
|
19天前
|
前端开发
css 块元素、行内元素、行内块元素相互转换
css 块元素、行内元素、行内块元素相互转换
48 0
|
2月前
|
前端开发
Vue3基础(十ba)___在css中使用props或者计算属性的变量,来实现动态样式
本文介绍了如何在Vue3中通过CSS变量和props或计算属性来实现动态样式。
27 0
|
3月前
|
前端开发 容器
最新CSS3定位元素
【8月更文挑战第28天】
27 5
|
3月前
|
前端开发
CSS - 使用 clip-path 轻松实现正六边形块状元素
如何使用CSS的`clip-path`属性来创建正六边形的块状元素。文章提供了详细的HTML和CSS代码示例,展示了如何实现六边形的布局和样式,并通过CSS动画增强了视觉效果。最终效果是一个包含文本的可交互的正六边形元素,当鼠标悬停时会改变颜色。
130 0
CSS - 使用 clip-path 轻松实现正六边形块状元素
|
3月前
|
存储 前端开发
为 HTML 元素指定 CSS 样式的方式
【8月更文挑战第24天】
68 0
|
3月前
|
前端开发
CSS动画新潮流:炫酷水波效果,让网页元素生动起来!
CSS动画新潮流:炫酷水波效果,让网页元素生动起来!
|
13天前
|
JavaScript API
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
32 0