web前端 之 CSS盒模型

题目:谈谈你对CSS盒模型的认识

基本概念:标准模型+IE模型

盒模型包括margin、border、padding、content(由外向里)
盒模型包括标准模型和IE模型
如下图所示:(注意他们的高宽度包含的内容)
在这里插入图片描述
在这里插入图片描述

这两者的区别(计算高度和宽度的不同)

标准模型高度和宽度指的是content的高度和宽度
IE模型高度和宽度指的是content+padding+border加起来的高度和宽度

CSS如何设置这两种模型

标准模型:box-sizing: content-box
IE模型:box-sizing: border-box

JS如何设置获取盒模型对应得高和宽

(1)dom.style.width/heigt
这种方式只能获取dom元素通过内联样式所得的高宽(dom元素设置元素一般有三种方式:网节点上内嵌<内联>;html中加style节点<内联>;link引外部的样式<外联>)
(2)dom.currentStyle.width/height
这种方式获取的是页面渲染之后即时运行的结果,也就是外联/内联都可以获取,相对来说比较准确;
缺点:但是这种方式只有IE支持
(3)window.getComputedStyle(dom).width/height
原理与(2)相似,但是通用性更高,兼容性更好
(4)dom.getBoundingClientRect().width/height
根据dom元素在视窗中的绝对位置来获取高宽的
(5)dom.offsetWidth/offsetHeight
最常用的,也是兼容性最好的

实例题(根据盒模型解释边距重叠)

父子元素边界重叠(父元素没有设置边距,子元素设置了边距,那么父元素也有了边距)
在这里插入图片描述
兄弟元素边界重叠(取两者之间的最大值作为边距)
空元素的边距(margin-top/margin-bottom取一个最大值作为边距)

BFC(边距重叠解决方案):

1、BFC的基本概念
边距重叠解决方案
2、BFC的原理
(1)内部的box会在垂直方向一个接着一个放置;
(2)box垂直方向的边距由margin决定,属于同一个BFC的两个相邻box会发生重叠;
(3)计算BFC的高度时,float浮动的高度宽度会被计算进去;
(4)BFC区域不会与浮动区域发生重叠;
(5)BFC区域的元素不会影响外面的元素,同样,外面的元素也不会影响BFC里面的元素
3、如何创建BFC
(1)float不为none(脱离文档流);
(2)position为fixed和absolute;
(3)dislapy为inline-block,table-cell,table-caption,flex,inine-flex;
(4)overflow不为visible
(5)根元素
4、BFC的使用场景
(1)分栏布局时某一个分栏文字溢出覆盖了相邻分栏的部分(对应原理(4))
在这里插入图片描述

效果图:
(前)
在这里插入图片描述
(后)
在这里插入图片描述
(2)解决边距重叠问题(对应原理(1)原理(2))
在这里插入图片描述
(3)清除内部浮动(对应原理(3))
在这里插入图片描述
效果图:
(前)
在这里插入图片描述
(后)
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值