CSS 盒模型

盒模型分类

1.IE盒模型
box-sizing:border-box;
2.W3C标准盒模型
box-sizing:content-box;

js 如何获取盒模型对应的宽和高

 // 只能取到内联样式的宽高
 console.log('style:' + box.style.width) // 100px

 // 内联样式和外联样式的宽高都能取到,但只有 IE 支持
 console.log('currentStyle:' + box.currentStyle.width) // 100px

 // 内联样式和外联样式的宽高都能取到,几乎所有主流浏览器都支持
 console.log('getComputedStyle:' + getComputedStyle(box).width) // 100px

 // 内联样式和外联样式的宽高都能取到,几乎所有主流浏览器都支持,取到的是盒子总宽度
 console.log('getBoundingClientRect:' + box.getBoundingClientRect().width) 

BFC 原理

  1. 在 BFC 的垂直方向上,边距会发生重叠
  2. BFC 区域不会与 浮动区域重叠
  3. BFC 在页面上是一个独立的容器,与其他元素互不影响
  4. 计算 BFC 高度时,浮动元素也会参与计算

如何创建 BFC

  1. float 值不为 none ,只要设置了浮动,当前元素就创建了一个 BFC
  2. position 值不为 static/relative ,只要设置了定位,当前元素就创建了一个 BFC
  3. display 值不为默认,只要设置了 display,当前元素就创建了一个 BFC
  4. overflow 值不为 visible ,只要设置了 overflow,当前元素就创建了一个 BFC

BFC 使用场景

1.解决margin塌陷问题
给子元素加一个父元素,并设置父元素为BFC
2.侵占浮动元素的位置
设置非浮动元素为 BFC
3.清除浮动
设置父元素为BFC

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,868评论 1 92
  • 题目:谈谈你对css盒模型的认识? 答: 基本概念:padding,margin,border,content 标...
    noyanse阅读 315评论 0 0
  • css盒模型 1.题目:谈谈你对css盒模型的认识(从理论转化到应用) 基本概念:标准模型+ IE模型border...
    飞菲fly阅读 968评论 0 2
  • 对CSS盒模型的认识 标准模型 + IE模型 标准模型和IE模型的区别 CSS如何设置这两种模型 js如何设置盒模...
    cAce阅读 286评论 0 0
  • 那年夏天 ,风遇见云 ,花遇见树 ,萤火虫遇见星光, 而我遇见你们。 从此四年,我们宛若君子之交淡如水。其实,这样...
    Cherish秀阅读 539评论 0 3