题目:谈谈你对CSS盒模型的认识dom
基本概念:标准模型(width只包括content)+IE模型(IE模型的width包括content、padding和border)spa
CSS如何设置这两种模型(box-sizing:content-box(标准) box-sizing:border-box(IE))code
JS如何设置获取盒模型对应的宽和高blog
经过dom.style.width/heightget
经过dom.currentStyle.width/heightit
经过getComputedStyle(dom).width/heightio
经过dom.getBoundingClientRect().width/heighttable
实例题(根据盒模型解释边距重叠) class
<section id='sec'> <style> #sec{ background:red; overflow:hidden;/*造成BFC*/ } .child{ height:100px; margin-top:10px; background:yellow; } </style> <article class='child'></article> </section>
BFC(边距重叠解决方案):块级格式化上下文容器
BFC的原理
BFC元素不会与float的元素重叠
BFC上下的边距不会重叠
BFC是一个独立的容器和外面的容器互不干扰
计算BFC高度的时候浮动子元素也会参与运算
如何建立BFC:
float的值不等于none;position的值不等于static或者relative;diaplay:table/table-cell;overflow:hidden/auto
BFC的使用场景
<!--BFC垂直方向边距重叠--> <section id='margin'> <style> #margin{ background:pink; overflow:hidden; } #margin>p{ margin:5px auto 25px; background:red; } </style> <p>1</p> <div style='overflow:hidden'> <p>2</p> </div> <p>3</p> </section> <!--BFC不与float重叠--> <section id="layout"> <style> #layout{ background:red; } #layout .left{ float:left; width:100px; height:100px; background:pink; } #layout .right{ height:110px; background:#ccc; overflow:auto; } </style> <div class='left'></div> <div class='right'></div> </section> <!--BFC子元素即便是float也会参与高度计算--> <section id="float"> <style> #float{ background:red; float:left; } .float{ float:left; font-size:30px; } </style> <div class='float'>我是浮动元素</div> </section>