(二)前端面试:盒模型
盒模型是前端最基础的一部分了,需要熟练掌握。
1.标准模型
从途中可以看出,标准模型的宽高就是内容content部分的宽高。
2.IE模型
IE模型中的宽高包含padding(内边距)和border(边框),这是两者的区别所在。
3.标准模型与IE模型之间的转换
标准模型 ==> IE模型 :box-sizing: border-box;
IE模型 ==> 标准模型 :box-sizing: content-box;
4.js获取盒模型的宽高
1) dom.style.width/height;
注:只能获取行内样式的宽高
2) dom.currentStyle.width/height;
注:获取页面渲染后dom的宽高,比方式一好,但只支持IE
3) window.getComputedStyle(dom).width/height;
注:常用的一种方式,效果好
4) dom.getBoundingClientRect().width/height;
注:此方法获取的宽高包含了padding和border,一般用于获取元素的位置,getBoundingClientRect()方法返回的数据如下:
5.BFC(Block formatting context) 块级格式化上下文
BFC是一种边距重叠的解决方案,比如我们在写代码的时候会发现左右或者上下两个元素都设有边距,但往往出现边距之间去最大值作为两个元素之间的边距,而不是取两者的边距和。
如何创建BFC ?
1)float不为none
2)position设置为absolute,fixed
3)display设置为table-cell,table-caption,inline-block, flex, inline-flex
4)overflow设置为除了visible以外的值,即hidden,auto,scroll
5)body根元素
BFC的应用:
1)BFC可以包含浮动的元素,清除浮动只需要将父元素变成一个BFC即可,常用的方法是给父元素设置overflow:hidden
2)同一BFC下外边距会发生合并,若想避免外边距合并,可以将其放在不同的BFC容器中
3)BFC可以阻止元素被浮动元素覆盖,创建自适应两栏布局,左边宽度固定,右边自适应宽度
详情请见:https://blog.****.net/zhouziyu2011/article/details/60573190
6.IFC(Inline formatting context) 内联格式化上下文
此处省略...