CSS 布局的三種機(jī)制

一、標(biāo)準(zhǔn)流

塊級(jí)元素

  • 獨(dú)占一行,從上到下排列
  • 默認(rèn)寬度同父元素
    div、hr、p、h、ul、ol、dl、form、table

行內(nèi)元素

  • 一行內(nèi)顯示,超出自動(dòng)換行
    span、a、i、em

二、浮動(dòng)

  • 任何元素都可以添加,變?yōu)閴K級(jí)元素(相當(dāng)于行內(nèi)塊)
  • 脫離標(biāo)準(zhǔn)流,到指定位置
  • 漂浮在普通流的上面
  • 添加浮動(dòng)屬性,元素不占位置

多個(gè)盒子處于一行處理

  • 行內(nèi)塊屬性
    默認(rèn)有縫隙,難以處理
  • 浮動(dòng)完美解決

屬性

  • none
  • left
  • right

注:一般為了避免和標(biāo)準(zhǔn)流影響,浮動(dòng)元素必須有一個(gè)標(biāo)準(zhǔn)流的父親規(guī)范

與父盒子

  • 貼著盒子的內(nèi)邊框
  • 不會(huì)超過盒子的內(nèi)邊距

與兄弟盒子

  • 浮動(dòng)的元素只會(huì)影響當(dāng)前的或者后面的標(biāo)準(zhǔn)流盒子,不影響前面的標(biāo)準(zhǔn)流
  • 建議兄弟盒子都浮動(dòng),方便處理

清除浮動(dòng)

  • 很多情況下父元素不方便給高度,子元素浮動(dòng)后不占位置,導(dǎo)致父盒子無高度,影響整個(gè)頁面布局
  • 清除浮動(dòng),父盒子自動(dòng)獲取子元素最大的高度
  • clear
    屬性left、right、both(常用)
    a> 額外標(biāo)簽法
    浮動(dòng)元素末尾添加空標(biāo)簽,并為該標(biāo)簽添加屬性clear: both;
    注:W3C推薦,通俗易懂,但無意義
    b> 父級(jí)添加overflow
    overflow屬性設(shè)為hidden|auto|scroll
    注:內(nèi)容增多時(shí)不會(huì)自動(dòng)換行導(dǎo)致內(nèi)容被隱藏,無法顯示需要溢出的元素
    c> 使用after偽元素
    .clearfix:after { content:""; display:block; height:0; clear:both; visibility:hidden;}
    .clearfix {*zoom:1;} /IE6、7專有/
    d> 雙偽元素
.clearfix:before,
.clearfix:after {
  content:"";
  display: table;
}
.clearfix:after {
  clear:both;
}
.clearfix {
  *zoom:1;
}

三、定位

  • 定位 = 定位模式 + 邊偏移
  • 邊偏移
    top、bottom、left、right
  • 定位模式 position
    static、relative、absolute、fixed,默認(rèn)靜態(tài)定位

靜態(tài)定位

  • 默認(rèn)定位方式
  • 按照標(biāo)準(zhǔn)流特性擺放,無偏移

相對(duì)定位

  • 相對(duì)于原來自身在標(biāo)準(zhǔn)流中的位置偏移
  • 保留原來標(biāo)準(zhǔn)流中的位置

絕對(duì)定位

  • 以帶有定位的父級(jí)元素來移動(dòng)位置(父元素?zé)o定位時(shí),以瀏覽器為基準(zhǔn))
  • 完全脫離標(biāo)準(zhǔn)流,不占位置
  • 子絕父相 (子級(jí)絕對(duì)定位,父級(jí)相對(duì)定位)

固定定位

  • 絕對(duì)定位的特殊形式,以瀏覽器可視窗口為基準(zhǔn)

定位拓展

  • margin auto在絕對(duì)定位|固定定位中無效,水平居中寫法
    左移父級(jí)的一半,再返回自身的一半
.abs {
          position: relative;
}
 .abs .son {
            width: 200px;
            height: 200px;
            position: absolute;
            left: 50%;
            margin-left: -100px;
        }
  • 在相對(duì)、絕對(duì)、固定定位中,z-index 調(diào)整堆疊順序,默認(rèn)0,賦值正整數(shù)或負(fù)整數(shù),在其他流中無效
  • float、固定定位和絕對(duì)定位,造成inline-block效果
  • 浮動(dòng)、絕對(duì)定位不會(huì)造成外邊距合并
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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