CSS布局-網(wǎng)頁的布局方式

1.什么是網(wǎng)頁的布局方式?

  • 網(wǎng)頁的布局方式其實(shí)就是指瀏覽器是如何對(duì)網(wǎng)頁中的元素進(jìn)行排版的追逮,有三種:
    1.標(biāo)準(zhǔn)流(又叫文檔流/普通流)
    2.浮動(dòng)流
    3.定位流
1.標(biāo)準(zhǔn)流(文檔流/普通流)排版方式
  • 1.1其實(shí)瀏覽器默認(rèn)的排版方式就是標(biāo)準(zhǔn)流的排版方式
  • 1.2在CSS中將元素分為三類, 分別是塊級(jí)元素/行內(nèi)元素/行內(nèi)塊級(jí)元素
  • 1.3 在標(biāo)準(zhǔn)流中有兩種排版方式, 一種是垂直排版, 一種是水平排版
    • 垂直排版, 如果元素是塊級(jí)元素, 那么就會(huì)垂直排版
    • 水平排版, 如果元素是行內(nèi)元素/行內(nèi)塊級(jí)元素, 那么就會(huì)水平排版
2.浮動(dòng)流排版方式
  • 2.1浮動(dòng)流是一種 "半脫離標(biāo)準(zhǔn)流"的排版方式

  • 2.2浮動(dòng)流只有一種排版方式, 就是水平排版. 它只能設(shè)置某個(gè)元素左對(duì)齊或者右對(duì)齊

  • 注意點(diǎn):

    • 1.浮動(dòng)流中沒有居中對(duì)齊, 也就是沒有center這個(gè)取值
    • 2.在浮動(dòng)流中是不可以使用margin: 0 auto;
  • 特點(diǎn):

  • 1.在浮動(dòng)流中是不區(qū)分塊級(jí)元素/行內(nèi)元素/行內(nèi)塊級(jí)元素的
    無論是級(jí)元素/行內(nèi)元素/行內(nèi)塊級(jí)元素都可以水平排版

  • 2.在浮動(dòng)流中無論是塊級(jí)元素/行內(nèi)元素/行內(nèi)塊級(jí)元素都可以設(shè)置寬高

  • 3.綜上所述, 浮動(dòng)流中的元素和標(biāo)準(zhǔn)流中的行內(nèi)塊級(jí)元素很像

脫標(biāo): 脫離標(biāo)準(zhǔn)流
  • 1.當(dāng)某一個(gè)元素浮動(dòng)之后, 那么這個(gè)元素看上去就像被從標(biāo)準(zhǔn)流中刪除了一樣, 這個(gè)就是浮動(dòng)元素的脫標(biāo)
  • 2.浮動(dòng)元素脫標(biāo)之后會(huì)有什么影響?
    如果前面一個(gè)元素浮動(dòng)了, 而后面一個(gè)元素沒有浮動(dòng) , 那么這個(gè)時(shí)候前面一個(gè)元就會(huì)蓋住后面一個(gè)元素
浮動(dòng)元素排序規(guī)則
  • 1.1相同方向上的浮動(dòng)元素, 先浮動(dòng)的元素會(huì)顯示在前面, 后浮動(dòng)的元素會(huì)顯示在后面
  • 1.2不同方向上的浮動(dòng)元素, 左浮動(dòng)會(huì)找左浮動(dòng), 右浮動(dòng)會(huì)找右浮動(dòng)
  • 1.3浮動(dòng)元素浮動(dòng)之后的位置, 由浮動(dòng)元素浮動(dòng)之前在標(biāo)準(zhǔn)流中的位置來確定
浮動(dòng)元素的貼靠現(xiàn)象
浮動(dòng)元素的字圍效果

案例:企業(yè)開發(fā)中,垂直方向一般使用標(biāo)準(zhǔn)流布局菇篡,水平方向使用浮動(dòng)流布局

垂直方向使用標(biāo)準(zhǔn)流, 水平方向使用浮動(dòng)流
  • 2.拿到一個(gè)很復(fù)雜的界面如何入手?
    2.1從上至下布局
    2.2從外向內(nèi)布局
    2.3水平方向可以先劃分為一左一右再對(duì)左邊或者右邊進(jìn)行進(jìn)一步布局
浮動(dòng)元素高度問題

1.在標(biāo)準(zhǔn)流中內(nèi)容的高度可以撐起父元素的高度
2.在浮動(dòng)流中浮動(dòng)的元素是不可以撐起父元素的高度的

清除浮動(dòng)的方式一:給父元素設(shè)置一個(gè)高度(企業(yè)開發(fā)中哪廓,能不寫高度就不寫高度)
清除浮動(dòng)的方式二:給后面的盒子添加clear屬性
clear屬性取值:
  • none: 默認(rèn)取值, 按照浮動(dòng)元素的排序規(guī)則來排序(左浮動(dòng)找左浮動(dòng), 右浮動(dòng)找右浮動(dòng))

  • left: 不要找前面的左浮動(dòng)元素

  • right: 不要找前面的右浮動(dòng)元素

  • both: 不要找前面的左浮動(dòng)元素和右浮動(dòng)元素

  • 注意點(diǎn):
    當(dāng)我們給某個(gè)元素添加clear屬性之后, 那么這個(gè)屬性的margin屬性就會(huì)失效

清除浮動(dòng)的方式三:隔墻法
  • 2.外墻法
    2.1在兩個(gè)盒子中間添加一個(gè)額外的塊級(jí)元素
    2.2給這個(gè)額外添加的塊級(jí)元素設(shè)置clear: both;屬性

  • 注意點(diǎn):
    外墻法它可以讓第二個(gè)盒子使用margin-top屬性
    外墻法不可以讓第一個(gè)盒子使用margin-bottom屬性

  • 3.內(nèi)墻法
    3.1在第一個(gè)盒子中所有子元素最后添加一個(gè)額外的塊級(jí)元素
    3.2給這個(gè)額外添加的塊級(jí)元素設(shè)置clear: both;屬性

  • 注意點(diǎn):
    內(nèi)墻法它可以讓第二個(gè)盒子使用margin-top屬性
    內(nèi)墻法它可以讓第一個(gè)盒子使用margin-bottom屬性

  • 4.外墻法和內(nèi)墻法區(qū)別?
    外墻法不能撐起第一個(gè)盒子的高度, 而內(nèi)墻法可以撐起第一個(gè)盒子的高度

  • 5.在企業(yè)開發(fā)中不常用隔墻法來清除浮動(dòng)

清除浮動(dòng)的方式四:利用偽元素選擇器清除浮動(dòng)
  • 本質(zhì)上就是內(nèi)墻法, 只不過是直接通過CSS代碼添加了內(nèi)墻, 其它特性和內(nèi)墻法都一樣
清除浮動(dòng)的方式五:overflow: hidden;
  • 1.overflow: hidden;作用
    1.1可以將超出標(biāo)簽范圍的內(nèi)容裁剪掉
    1.2清除浮動(dòng)
    1.3可以通過overflow: hidden;讓里面的盒子設(shè)置margin-top之后, 外面的盒子不被頂下來

  • 注意點(diǎn):
    IE6中不支持這種方式, 為了兼容IE6必須給前面的盒子添加*zoom:1;屬性

3.定位流排版方式

  • 1.定位流排版方式分類
    1.1相對(duì)定位
    1.2絕對(duì)定位
    1.3固定定位
    1.4靜態(tài)定位
2.什么是相對(duì)定位?

相對(duì)定位就是相對(duì)于自己以前在標(biāo)準(zhǔn)流中的位置來移動(dòng)

  • 3.相對(duì)定位注意點(diǎn)
    3.1相對(duì)定位是不脫離標(biāo)準(zhǔn)流的, 會(huì)繼續(xù)在標(biāo)準(zhǔn)流中占用一份空間
    3.2在相對(duì)定位中同一個(gè)方向上的定位屬性只能使用一個(gè)
    3.3由于相對(duì)定位是不脫離標(biāo)準(zhǔn)流的, 所以在相對(duì)定位中是區(qū)分塊級(jí)元素/行內(nèi)元素/行內(nèi)塊級(jí)元素
    3.4由于相對(duì)定位是不脫離標(biāo)準(zhǔn)流的, 并且相對(duì)定位的元素會(huì)占用標(biāo)準(zhǔn)流中的位置, 所以當(dāng)給相對(duì)定位的元素設(shè)置margin/padding等屬性的時(shí)會(huì)影響到標(biāo)準(zhǔn)流的布局

  • 4.相對(duì)定位應(yīng)用場景
    4.1用于對(duì)元素進(jìn)行微調(diào)
    4.2配合后面學(xué)習(xí)的絕對(duì)定位來使用

絕對(duì)定位

就是相對(duì)于body來定位

  • 2.絕對(duì)定位注意點(diǎn)
    2.1絕對(duì)定位的元素是脫離標(biāo)準(zhǔn)流的
    2.2絕對(duì)定位的元素是不區(qū)分塊級(jí)元素/行內(nèi)元素/行內(nèi)塊級(jí)元素
絕對(duì)定位規(guī)律
  • 1.規(guī)律
    1.默認(rèn)情況下所有的絕對(duì)定位的元素, 無論有沒有祖先元素, 都會(huì)以body作為參考點(diǎn)

  • 2.如果一個(gè)絕對(duì)定位的元素有祖先元素, 并且祖先元素也是定位流, 那么這個(gè)絕對(duì)定位的元素就會(huì)以定位流的那個(gè)祖先元素作為參考點(diǎn)
    2.1只要是這個(gè)絕對(duì)定位元素的祖先元素都可以
    2.2指的定位流是指絕對(duì)定位/相對(duì)定位/固定定位
    2.3定位流中只有靜態(tài)定位不行

  • 3.如果一個(gè)絕對(duì)定位的元素有祖先元素, 并且祖先元素也是定位流, 而且祖先元素中有多個(gè)元素都是定位流, 那么這個(gè)絕對(duì)定位的元素會(huì)以離它最近的那個(gè)定位流的祖先元素為參考點(diǎn)

  • 注意點(diǎn)
    1.如果一個(gè)絕對(duì)定位的元素是以body作為參考點(diǎn), 那么其實(shí)是以網(wǎng)頁首屏的寬度和高度作為參考點(diǎn), 而不是以整個(gè)網(wǎng)頁的寬度和高度作為參考點(diǎn)
    2.一個(gè)絕對(duì)定位的元素會(huì)忽略祖先元素的padding

  • 相對(duì)定位不會(huì)脫離標(biāo)準(zhǔn)流, 會(huì)繼續(xù)在標(biāo)準(zhǔn)流中占用一份空間, 所以不利于布局界面

絕對(duì)定位弊端:
  • 默認(rèn)情況下絕對(duì)定位的元素會(huì)以body作為參考點(diǎn), 所以會(huì)隨著瀏覽器的寬度高度的變化而變化
  • 子絕父相
    子元素用絕對(duì)定位, 父元素用相對(duì)定位

絕對(duì)定位流中設(shè)置元素動(dòng)態(tài)居中

  • 1.只需要設(shè)置絕對(duì)定位元素的left:50%;
  • 2.然后再設(shè)置絕對(duì)定位元素的margin-left: -元素寬度的一半px;

固定定位

  • 1.什么是固定定位?
    固定定位和前面學(xué)習(xí)的背景關(guān)聯(lián)方式很像, 背景定位可以讓背景圖片不隨著滾動(dòng)條的滾動(dòng)而滾動(dòng), 而固定定位可以讓某個(gè)盒子不隨著滾動(dòng)條的滾動(dòng)而滾動(dòng)
div{
            width: 200px;
            height: 2000px;
            border: 1px solid #000;
            background-image: url(images/girl.jpg);
            background-repeat: no-repeat;
            background-attachment: fixed;
        }


  • 注意點(diǎn):
    1.固定定位的元素是脫離標(biāo)準(zhǔn)流的, 不會(huì)占用標(biāo)準(zhǔn)流中的空間
    2.固定定位和絕對(duì)定位一樣不區(qū)分行內(nèi)/塊級(jí)/行內(nèi)塊級(jí)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子证逻,更是在濱河造成了極大的恐慌,老刑警劉巖抗斤,帶你破解...
    沈念sama閱讀 211,948評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件囚企,死亡現(xiàn)場離奇詭異,居然都是意外死亡瑞眼,警方通過查閱死者的電腦和手機(jī)龙宏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來伤疙,“玉大人银酗,你說我怎么就攤上這事⊥较瘢” “怎么了黍特?”我有些...
    開封第一講書人閱讀 157,490評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長锯蛀。 經(jīng)常有香客問我灭衷,道長一睁,這世上最難降的妖魔是什么骨稿? 我笑而不...
    開封第一講書人閱讀 56,521評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮漫玄,結(jié)果婚禮上劈愚,老公的妹妹穿的比我還像新娘部默。我一直安慰自己,他們只是感情好造虎,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評(píng)論 6 386
  • 文/花漫 我一把揭開白布傅蹂。 她就那樣靜靜地躺著,像睡著了一般算凿。 火紅的嫁衣襯著肌膚如雪份蝴。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,842評(píng)論 1 290
  • 那天氓轰,我揣著相機(jī)與錄音婚夫,去河邊找鬼。 笑死署鸡,一個(gè)胖子當(dāng)著我的面吹牛案糙,可吹牛的內(nèi)容都是我干的限嫌。 我是一名探鬼主播,決...
    沈念sama閱讀 38,997評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼时捌,長吁一口氣:“原來是場噩夢啊……” “哼怒医!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起奢讨,我...
    開封第一講書人閱讀 37,741評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤稚叹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后拿诸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體扒袖,經(jīng)...
    沈念sama閱讀 44,203評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評(píng)論 2 327
  • 正文 我和宋清朗相戀三年亩码,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了季率。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,673評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡描沟,死狀恐怖蚀同,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情啊掏,我是刑警寧澤蠢络,帶...
    沈念sama閱讀 34,339評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站迟蜜,受9級(jí)特大地震影響刹孔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜娜睛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評(píng)論 3 313
  • 文/蒙蒙 一髓霞、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧畦戒,春花似錦方库、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至垃环,卻和暖如春邀层,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背遂庄。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評(píng)論 1 266
  • 我被黑心中介騙來泰國打工寥院, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人涛目。 一個(gè)月前我還...
    沈念sama閱讀 46,394評(píng)論 2 360
  • 正文 我出身青樓秸谢,卻偏偏與公主長得像凛澎,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子估蹄,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評(píng)論 2 349