面试觉得自己实在太垃圾了,就来整理一下面试常问问题,做人还是要 多总结。
基本类型:undefined;null;string;number;boolean。 引用类型:基本类型之外的。 参见:链接

Box 是 CSS 布局的对象和基本单位, 直观点来说,就是一个页面是由很多个 Box 组成的。元素的类型和 display 属性,决定了这个 Box 的类型。不同类型的Box,会参与不同的 Formatting Context(一个决定如何渲染文档的容器),因此Box内的元素会以不同的方式渲染。让我们看看有哪些盒子:
formatting context 是 w3c css2.1规范中的一个概念。它是页面中的一块渲染区域,并且有一套渲染规则,它决定了元素将如何定位,以及和其他元素的关系和相互作用。最常见的是Formatting context有Block formatting context(简称BFC)和inline formatting context(简称IFC)
1、利用BFC避免margin重叠
<style>
*{
margin: 0;
padding: 0;
}
p {
color: #f55;
background: yellow;
width: 200px;
line-height: 100px;
text-align:center;
margin: 30px;
}
</style>
<body>
<p>看看我的 margin是多少</p>
<p>看看我的 margin是多少</p>
</body>
这两个p属于同一个BFC所以会发生margin重叠,所以想避免margin重叠可以设置它们分属于不同BFC。可以把第二个p用div包裹起来,激活这个div使之成为BFC。
<div style="overflow:hidden;">
<p>看看我的 margin是多少</p>
</div>
2、自适应两栏布局 根据:
<style>
*{
margin: 0;
padding: 0;
}
body {
width: 100%;
position: relative;
}
.left {
width: 100px;
height: 150px;
float: left;
background: rgb(139, 214, 78);
text-align: center;
line-height: 150px;
font-size: 20px;
}
.right {
height: 300px;
background: rgb(170, 54, 236);
text-align: center;
line-height: 300px;
font-size: 40px;
}
</style>
<body>
<div class="left">LEFT</div>
<div class="right">RIGHT</div>
</body>
再根据:BFC的区域不会与float box重叠
我们让right单独成为一个BFC,给right加上overflow:hidden;;注意不要设置width;
这时right会自动适应宽度,形成两栏自适应布局。
如果是三栏自适应布局,则加一个div(float设置为right),注意要写在right前面,先于right渲染占位置。
注: 设置高度充满屏幕的方法:
3、清除浮动 如果父节点不设定高度,子节点设置浮动的时候,会发生高度塌陷,这时可利用BFC清除浮动。 原理: 计算BFC的高度时,浮动元素也参与计算。(注意是给父节点激活BFC)