文章博客

技术团队文档示例


BFC块状格式化上下文

<blockquote> <p>块状格式化上下文,其实是一个隔离的独立盒子,他有以下特性:</p> </blockquote> <ul> <li>容器里面的子元素不会影响外面的元素,容器外的元素也不会影响</li> <li>BFC容器会一个挨着一个排列</li> <li>计算BFC高度时,浮动元素也参与计算</li> <li>BFC区域不会和flot box重叠</li> </ul> <h3>怎样触发创建一个BFC?</h3> <hr /> <ul> <li>body的根节点</li> <li>float除了none以外</li> <li>绝对定位元素 : position (fixed,absolute</li> <li>display为inline-block、table-cells、flex、inline-flex、flow-root(没有副作用的方案,但需注意兼容性)、grid、inline-grid等)</li> <li>overflow除了visible之外</li> </ul> <h3>BFC有什么用?</h3> <hr /> <ol> <li>清除浮动:因为BFC可以包含浮动的元素,故把浮动元素的父元素设为BFC容器即可 那么使用BFC特性怎么操作呢? 很简单,只需要给.box加多一个样式使其变成BFC就可以了</li> </ol> <pre><code>/* 添加CSS */ .box{ display: flow-root; }</code></pre> <p>2.解决元素间上下边距发生折叠的问题(外边距塌陷):把元素<em>放入(注意:是放入,不是设置成)</em>不同的BFC容器中 <img src="https://www.showdoc.cc/server/api/common/visitfile/sign/76f6751ceb326b4d9ec85f8c2d53c966?showdoc=.jpg" alt="" /></p> <p>3.防止元素间的重叠覆盖,可实现自适应两列布局:左边元素左浮动,右边元素设置为BFC容器</p> <pre><code>&lt;!-- html --&gt; &lt;div class="container"&gt; &lt;div class="left"&gt;&lt;/div&gt; &lt;div class="right"&gt;&lt;/div&gt; &lt;/div&gt;</code></pre> <p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/5af4250f84be8450acb8a8b774b794bb?showdoc=.jpg" alt="" /></p> <p>参考链接 : <a href="https://github.com/alianggu/blog/issues/6">https://github.com/alianggu/blog/issues/6</a></p> <h4>面试主要回答:</h4> <p>主要答案:BFC 就是块级格式上下文,是页面盒模型布局中的一种 CSS 渲染模式,相当于一个独立的容器,里面的元素和外部的元素相互不影响。</p> <p><strong>创建 BFC 的方式有:</strong></p> <pre><code>1.html 根元素 2.float 浮动 3.绝对定位 4.overflow 不为 visiable 5.display 为表格布局或者弹性布局</code></pre> <p><strong>BFC 主要的作用是:</strong></p> <pre><code>1.清除浮动 2.解决元素间上下边距发生折叠的问题(外边距塌陷) 3.防止元素间的重叠覆盖,可实现自适应两列布局:左边元素左浮动,右边元素设置为BFC容器</code></pre>

页面列表

ITEM_HTML