3.25 浮動

  ####一、網(wǎng)頁布局

網(wǎng)頁的布局方式其實就是指瀏覽器是如何對網(wǎng)頁中的元素進行排版的

1. 標(biāo)準(zhǔn)流(文檔流/普通流)排版方式
  1. 其實瀏覽器默認的排版方式就是標(biāo)準(zhǔn)流的排版方式
  2. 在CSS中將元素分為三類,分別是塊級元素/行內(nèi)元素/行內(nèi)塊級元素
  3. 在標(biāo)準(zhǔn)流中有兩種排版方式,一種是垂直排版,一種是水平排版.如果是塊級元素就是垂直排版,如果是行內(nèi)塊級或者是行內(nèi)元素時就是水平排版
  4. 標(biāo)準(zhǔn)流中內(nèi)容的高度可以撐起父元素的高度
2. 浮動流排版方式
  1. 浮動流是一種"半脫離標(biāo)準(zhǔn)流"的排版方式
  2. 浮動流只有一種排版方式,就是水平排版,只能設(shè)置某個元素的左對齊或右對齊
  3. 浮動流不區(qū)分塊級,行內(nèi)塊級和行內(nèi)元素,都可以設(shè)置寬高
  4. 浮動元素的脫標(biāo):
    當(dāng)某個元素浮動的時候,這個元素看上去就像是從標(biāo)準(zhǔn)流中刪除了一樣.如果前面一個元素浮動了,后面一個元素沒有浮動,那么前面浮動元素就會蓋住后面的標(biāo)準(zhǔn)流元素
  5. 浮動元素排序規(guī)則:
  6. 相同方向上的浮動元素,先浮動的元素會顯示在前面,后浮動的元素會顯示在后面
  7. 不同方向上的元素,左浮動找左浮動,右浮動找右浮
  8. 浮動元素浮動之后的位置取決于它之前在標(biāo)準(zhǔn)流中的位置
  9. 浮動元素的貼靠現(xiàn)象:
    如果父元素的寬度不夠,浮動元素會自動貼靠上上一個浮動元素,如果仍然不夠,便會貼靠最外層父元素,這時不管夠不夠都顯示
  10. 浮動元素的自圍現(xiàn)象(圖文混排):
    浮動元素不會覆蓋標(biāo)準(zhǔn)流中的文字,文字會自動包裹浮動元素
  11. 浮動元素不能撐起父元素的高度
注意:
  1. 浮動流中沒有居中對齊,float沒有center這個取值
  2. 在浮動流中不能使用margin:0 auto;
3. 清除浮動
  1. 給盒子添加一個高度,但是在企業(yè)開發(fā)中不常用,能不設(shè)置高度就不設(shè)置高度
  2. clear:both
    none: 默認取值, 按照浮動元素的排序規(guī)則來排序(左浮動找左浮動, 右浮動找右浮動)
    left: 不要找前面的左浮動元素
    right: 不要找前面的右浮動元素
    both: 不要找前面的左浮動元素和右浮動元素
    注意:當(dāng)給某個元素添加clear屬性后,那么這個屬性的margin屬性就會失效
  3. 隔墻法(在企業(yè)開發(fā)中不常用)
  4. 外墻法:兩個盒子之間添加一個額外的塊級元素,給他設(shè)置clear:both屬性
    注意:外墻法可以讓第二個盒子使用margin:top但是不能使用第一個盒子的margin:buttom,所以我們哪個都不用,我們直接設(shè)置墻的高度以達到margin效果
  5. 內(nèi)墻法:在第一個盒子最后設(shè)置一個塊級元素,給他設(shè)置一個clear:both屬性.

區(qū)別:外墻法不能撐起第一個盒子的高度而內(nèi)墻法可以撐起

  1. 偽元素選擇器(推薦使用)
    名稱::before{ 屬性名稱:值; }:給指定標(biāo)簽的內(nèi)容前面添加一個子元素
    名稱::after{ 屬性名稱:值; }:給指定標(biāo)簽的內(nèi)容后面添加一個子元素
    visibility:hidden可以將添加的子元素隱藏
    清除浮動代碼:
名稱::after{
           content:"";
           height:0;
           display:block;
           clear:both;
           visibility:hidden;
}
名稱{
       *zoom:1;/*兼容IE6*/
}
  1. 利用overflow:hidden清除浮動(推薦使用)
    overflow:hidden:超標(biāo)標(biāo)簽的內(nèi)容裁剪掉,還可以用來清除浮動,在第一個標(biāo)簽中添加overflow:hidden,但是還得加上*zoom:1;以保持IE6的兼容
    兩個盒子嵌套時,里面的盒子設(shè)置margin-top時會把大盒子也頂下來(margin塌陷),這時除了可以設(shè)置大盒子的邊框外,還可以在大盒子中添加overflow:hidden;即可解決
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容