码迷,mamicode.com
首页 > Web开发 > 详细

CSS盒子模型的理解及其计算方式汇总

时间:2019-08-15 19:36:31      阅读:305      评论:0      收藏:0      [点我收藏+]

标签:content   span   pre   ble   get   order   width   pad   结果   

一、盒模型的分类

 

技术图片

 

技术图片

 

 

二、标准模型与 IE 模型的区别

 

从上图可看出,两者的区别在于宽度和高度的计算方式不同:

标准模型计算的是 content 的宽/高

IE 模型计算的是 content + padding + border 的宽/高

 

 

三、标准模型与 IE 模型的设置

 

1、标准模型(默认)

box-sizing: content-box;

 

2、IE 模型

box-sizing: border-box;

 

 

四、盒模型宽高的计算

 

1、计算宽高的 6 种方式汇总

 

获取 dom 的宽度 width

只计算内容宽度(结果带单位px)

 

  • 仅限于行内样式
dom.style.width

 

  • 适用于行内样式与内外样式表,但仅支持 IE
dom.currentStyle.width

 

  • 适用于行内样式与内外样式表,且兼容性好 
window.getComputedStyle(dom).width

 

计算最终宽度(结果不带单位px)

 

  • 标准模型:内容 + 内边距
  • IE 模型:内容 - 边框
dom.clientWidth

 

  • 标准模型:内容 + 内边距 + 边框 
  • IE 模型:内容
dom.offsetWidth

 

  • 标准模型:内容 + 内边距 + 边框
  • IE 模型:内容
dom.getBoundingClientRect().width

 

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2、示例:

技术图片技术图片

(这里为标准模型下的计算结果)

div1.style.width
// ""
// 只限于行内样式(这里没有设置所以为空值)

div1.currentStyle.width
// 100px
// 只有 IE 支持

window.getComputedStyle(div1).width
// 100px

div1.clientWidth
// 标准模型下:120
// IE 模型下:98
div1.offsetWidth // 标准模型下:122
// IE 模型下:100
div1.getBoundingClientRect().width // 标准模型下:122
// IE 模型下:100

 

CSS盒子模型的理解及其计算方式汇总

标签:content   span   pre   ble   get   order   width   pad   结果   

原文地址:https://www.cnblogs.com/Leophen/p/11359508.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!