摘要:兩個值都是正值,取最大值,都是負值,取最小值,一正一負則相加。使回到正常位置。需要注意的是使用會把放在最前邊。而可以按照,,的順序放置。另外布局也不會出現(xiàn)中間擠掉兩邊的情況。
Question
以下三個div將會會如何放置(margin collapsing)?
三個元素的外邊距折疊
同一個BFC中,相鄰的塊狀元素都是垂直放置嗎?
如何清除浮動?根據(jù)什么原理?
如何對左側(cè)欄200px,主內(nèi)容自適應(yīng)進行布局?
如何使用margin完成圣杯布局(左側(cè)x px,右側(cè)y px,中間自適應(yīng)),用flex呢?
Answer
以下三個div將會會如何放置?
在同一個BFC中,相鄰的塊狀
元素會發(fā)生折疊。兩個margin值都是正值,取最大值,都是負值,取最小值,一正一負則相加。那么如題有三個呢,是從父元素往子元素算起,還是子元素往外算起?如果從外往里算,是0,從內(nèi)往外算是-10px。經(jīng)測試,是從內(nèi)往外計算。
live demo
同一個BFC中,相鄰的塊狀元素都是垂直放置嗎?
不一定,設(shè)置writing-mode值。查看以下Demo。
live demo
如何清除浮動?根據(jù)什么原理?
緊挨的塊級元素設(shè)置clear both來清除浮動,一般 會通過:after清除浮動。如Bootstrap的clearfix。
.clearfix { display: table; content: " "; clear: both }
使父級元素觸發(fā)一個新的BFC,如overfow:hidden或者display:table。
live demo
如何對左側(cè)欄200px,主內(nèi)容自適應(yīng)進行布局?
左欄設(shè)置200px的寬,設(shè)置浮動,主內(nèi)容設(shè)置overflow:hidden觸發(fā)一個BFC。因為BFC不會與浮動折疊,所以右側(cè)會自適應(yīng)。
live demo
如何使用margin完成圣杯布局(左側(cè)x px,右側(cè)y px,中間自適應(yīng)),用flex呢?
圣杯布局大致結(jié)構(gòu)如下
步驟如下:
.container設(shè)置內(nèi)邊距,留出放置左右固定寬度側(cè)欄的寬度。設(shè)置min-width:x px(content-box)下,如果.left寬度大于父元素content-box的寬度,自己會被擠下去。
.main,.left,.right設(shè)置浮動,.main設(shè)置100%的寬度。.main位置固定。
.left設(shè)置x px寬度,設(shè)置margin-left為-100%,此時與.main左上角重合,設(shè)置position:relative,left設(shè)為-x px或者right設(shè)置x px,.left位置固定。
.right設(shè)置y px寬度,把margin-left設(shè)為-y px,此時與.main右上角重合,相對定位回到自己的位置。(或者margin-right小于等于-y px,最后不用定位,查看margin demo2)。
footer設(shè)置clear:both清除浮動,或者container設(shè)置為display:table或者overflow:hidden閉合浮動。使.footer回到正常位置。
另外有flex布局就簡單多了。需要注意的是使用margin會把.main放在最前邊。而flex可以按照.left,.main,.right的順序放置。另外flex布局也不會出現(xiàn)中間擠掉兩邊的情況。
margin demo1
margin demo2
flex demo
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/115107.html
摘要:給父元素設(shè)置了一個灰色背景,并且沒有設(shè)置高度,因此高度會隨著內(nèi)容而擴展,設(shè)置為。這個元素的位置如下圖所示因為元素清除了左浮動,所以元素下移。由于這條規(guī)則的存在,導致他們折疊后的不能跟的進行折疊,因此的高度被撐開。 作者:https://coding.net/u/zhengkenghong原文:https://blog.coding.net/blog/css-margin 本文著重描述關(guān)...
摘要:它是用于決定盒子的布局及浮動相互影響范圍的一個區(qū)域。小白反思如果世界的運行都有自我運行的一套機制,那么的世界必然有自己的一套規(guī)則。外邊距合并當時在回答外邊距的問題時,總結(jié)出了合并的一條規(guī)則必須相鄰。 最初的夢 了解BFC后,能夠更深入的明白外邊距合并原理。了解BFC后,能夠更深入的明白浮動的行為。了解BFC后,知識就是你的,總不會吃虧對吧?哈哈 之前有兩篇文章《行內(nèi)元素的一些探索》、《...
摘要:上周末看這篇文章時,偶有靈光,所以,分享出來給大家一起看看前端面試四月二十家前端面試題分享請各位讀者添加一下作者的微信公眾號,以后有新的文章,將在微信公眾號直接推送給各位,非常感謝。 前端切圖神器 avocode 有了這個神器,切圖再也腰不酸,腿不疼了。 這一次,徹底弄懂 JavaScript 執(zhí)行機制 本文的目的就是要保證你徹底弄懂javascript的執(zhí)行機制,如果讀完本文還不懂,...
摘要:關(guān)于的概念性介紹就不贅述了,網(wǎng)上有很多關(guān)于此的介紹,后面也羅列了些個人認為很不錯的文摘。那今天要說的是關(guān)于它的一些技巧性應(yīng)用,通過示范比較常會接觸到的排版布局方面的需求來說明下。對于結(jié)構(gòu)有一點要求,觸發(fā)的元素必須位于最后一位。 關(guān)于Block Formatting Context(BFC)的概念性介紹就不贅述了,網(wǎng)上有很多關(guān)于此的介紹,后面也羅列了些個人認為很不錯的文摘。 那今天要說的...
閱讀 2039·2023-04-26 00:16
閱讀 3491·2021-11-15 11:38
閱讀 3182·2019-08-30 12:50
閱讀 3191·2019-08-29 13:59
閱讀 762·2019-08-29 13:54
閱讀 2512·2019-08-29 13:42
閱讀 3316·2019-08-26 11:45
閱讀 2197·2019-08-26 11:36