前端面试系列:CSS盒模型

2020-01-03  本文已影响0人  乌龟小姐v

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

一、 基本概念

标准模型+IE模型。盒子模型包括 border、margin、padding、content。

二、 标准模型和IE模型区别

计算宽度和高度的方式不同。

三、CSS如何设置这两种模型
四、JS如何设置获取盒模型对应的宽和高
五、实例题(根据盒模型解释边距重叠)

边距重叠是指两个或多个盒子(可能相邻也可以嵌套)的相邻边界(其间没有任何非空内容、补白、边框)重合在一起而形成的一个单一边界。

两个或多个块级盒子的垂直相邻边界会重合,它们的边界宽度是相邻边界宽度中的最大值。注意水平边界是不会重合的。

边距重叠例子

<style>
    .parent {
        background: #E7A1C5;
    }
    .parent .child {
        background: #C8CDF5;
        height: 100px;
        margin-top: 10px;
    }
</style>
<section class="parent">
    <article class="child"></article>
</section>
想实现的效果
实际上的效果

在这里父元素的高度不是110px,而是100px。发生了高度坍塌。原因是如果块元素的 margin-top 与它的第一个子元素的margin-top 之间没有 border、padding、inline content、 clearance 来分隔,或者块元素的 margin-bottom 与它的最后一个子元素的margin-bottom 之间没有 border、padding、inline content、height、min-height、 max-height 分隔,那么外边距会塌陷。子元素多余的外边距会被父元素的外边距截断。

六、BFC(边距重叠解决方案)

1、基本概念
BFC(Block formatting context)直译为“块级格式化上下文”。
具有BFC特性的元素可以看做是隔离了的独立容器,容器里面的元素不会在布局上影响到外面的元素。通俗一点来讲,可以把BFC理解为一个封闭的箱子,箱子内部的元素无论如何翻江倒海,都不会影响到外部。

2、 原理/特性/渲染规则

拓展IFC
Inline Formatting Contexts,也就是“内联格式化上下文”。

3、如何创建BFC

4、BFC的使用场景

#float {
    background: #FEC68B;
    overflow: hidden;  /*这里也可以用float:left*/
}

解决方案为给右侧元素创建一个BFC,原理是BFC不会与float元素发生重叠。

参考链接:https://segmentfault.com/a/1190000012265930

上一篇 下一篇

猜你喜欢

热点阅读