最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

設(shè)置BFC功能及使用示例詳解

 更新時(shí)間:2023年03月20日 14:31:21   作者:傻小子  
這篇文章主要為大家介紹了設(shè)置BFC功能及使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

首先BFC是啥?

**官方描述:塊格式化上下文(Block Formatting Context,BFC)是 Web 頁面的可視 CSS 渲染的一部分,是塊級(jí)盒子的布局過程發(fā)生的區(qū)域,也是浮動(dòng)元素與其他元素交互的區(qū)域。

額......

是的,正常人看完還是不知道BFC是啥。

我用人類的語言嘗試翻譯一下:BFC就是一個(gè)就是一個(gè)容器。只不過這個(gè)容器里面元素怎么布局都不會(huì)影響外面的元素,外面的元素同樣也影響不到這個(gè)盒子里面的元素。

好......

看完差不多你就該問了,???到底怎么影響了?

好嘛,不要急......

不設(shè)置BFC會(huì)對(duì)網(wǎng)頁布局有怎么樣的影響?

    .box1 {
      width: 400px;
      border: 10px solid pink;
    }
    .c-box1 {
      width: 200px;
      height: 200px;
      background-color: skyblue;
      float: left;
    }
    .c-box2 {
      width: 200px;
      height: 200px;
      background-color: blueviolet;
      float: left;
    }
    .box2 {
      width: 300px;
      height: 300px;
      background-color: red;
    }
<div class="box1">
    <div class="c-box1">
    </div>
    <div class="c-box2">
    </div>
</div>
<div class="box2"></div>

由于box1沒有設(shè)置高度,box1里面的元素設(shè)置浮動(dòng)后,無法將其撐起,從而影響到了外面的box2。那么如果box1是一個(gè)BFC的話,那么效果就會(huì)如下圖一樣:

給box1加上 overflow: hidden;沒錯(cuò)這就是讓一個(gè)容器形成BFC的一種方式。

 .box1 {
      width: 400px;
      border: 10px solid pink;
      overflow: hidden;
  }

?。烤途途?.....就這?那么你肯定想問這個(gè)BFC還有其他作用嗎?

BFC還有啥作用?

- 解決盒子高度塌陷的問題

沒錯(cuò),也就是上面那種情況。

- 解決盒子margin塌陷的問題

.box1 {
      width: 100px;
      height: 100px;
      background-color: purple;
      margin-bottom: 30px;
 }
.box2 {
      width: 100px;
      height: 100px;
      background-color: red;
      margin-top: 10px;
 }
 <div class="box1"></div>
 <div class="box2"></div>

盒子垂直方向的margin是存在塌陷問題,box2設(shè)置的10px向上的margin沒起作用。所以,把box1和box2變成一個(gè)BFC就可以解決這個(gè)問題。

- 可以防止元素被相鄰的浮動(dòng)盒子覆蓋

    .box1 {
      float: left;
      width: 150px;
      height: 200px;
      background-color: purple;
     }
    .box2 {
      width: 200px;
      height: 200px;
      background-color: red;
    }
    <div class="box1"></div>
    <div class="box2"></div>

這種情況,除了可以box2設(shè)置overflow: hidden; 還可以設(shè)置float: left。

沒錯(cuò),上面一直用使用overflow: hidden來設(shè)置BFC,其實(shí)設(shè)置浮動(dòng)也是一種形成BFC的方式。那么還有沒有其他方式?答案是肯定的。

都有哪些方式來創(chuàng)建BFC

- 設(shè)置浮動(dòng),不管是左浮動(dòng)還是右浮動(dòng)都可以,float屬性值不是none即可

- 設(shè)置定位,position的值不是static或者ralative

- 設(shè)置display,display的值是inline-block、flex或者inline-flex

- overflow值不為 visible,為 auto、scroll或者h(yuǎn)idden

完結(jié)感想

有沒有發(fā)現(xiàn)創(chuàng)建一個(gè)BFC容器其實(shí)大部分是為了解決浮動(dòng)布局所引起的問題,另外一種說法就叫清除浮動(dòng)。浮動(dòng)布局常見于一些PC端門戶網(wǎng)站,因?yàn)槿温毜墓局饕菍懸苿?dòng)端H5,常用的flex布局、定位這些無意間已經(jīng)是在創(chuàng)建BFC,而且基本上沒有用到浮動(dòng),所以對(duì)這塊知識(shí)是比較模糊的。不過概念還是得捋清楚,面試好像挺喜歡問關(guān)于這個(gè)BFC的問題。

以上就是設(shè)置BFC功能及使用示例詳解的詳細(xì)內(nèi)容,更多關(guān)于BFC 設(shè)置使用的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

徐闻县| 水富县| 隆昌县| 南平市| 西藏| 永嘉县| 崇信县| 静安区| 旌德县| 五家渠市| 内丘县| 哈尔滨市| 嘉荫县| 江西省| 金堂县| 临高县| 铜梁县| 霍州市| 清镇市| 大洼县| 星座| 淳化县| 稻城县| 吉首市| 原平市| 宣汉县| 武义县| 家居| 枣庄市| 固安县| 綦江县| 尉犁县| 丰镇市| 栾川县| 绵阳市| 阳曲县| 仙居县| 句容市| 德化县| 胶南市| 湄潭县|