從css盒子與定位到布局

css盒子模型

原理:padding,border,margin三者構(gòu)成一個盒子。

圖片來自網(wǎng)絡(luò)
圖片來自網(wǎng)絡(luò)

Margin(外邊距) - 清除邊框外的區(qū)域姥宝,外邊距是透明的。
Border(邊框) - 圍繞在內(nèi)邊距和內(nèi)容外的邊框蒂萎。
Padding(內(nèi)邊距) - 清除內(nèi)容周圍的區(qū)域同欠,內(nèi)邊距是透明的。
Content(內(nèi)容) - 盒子的內(nèi)容帆谍,顯示文本和圖像伪朽。

w3c標準:總寬度 = margin-left + border-left + padding-left + width + padding-right + border-right + margin-right

IE標準:總寬度 = margin-left + width + margin-right

css定位機制

普通流
  • 元素的位置由元素在HTML文檔中的位置決定,從左到右汛蝙,自上而下烈涮。

  • 塊級框從上到下一個接一個地排列朴肺,框之間的垂直距離是由框的垂直外邊距計算出來。

  • 行內(nèi)框在一行中水平布置坚洽「旮澹可以使用水平內(nèi)邊距、邊框和外邊距調(diào)整它們的間距讶舰。但是鞍盗,垂直內(nèi)邊距、邊框和外邊距不影響行內(nèi)框的高度跳昼。由一行形成的水平框稱為行框(Line Box)般甲,行框的高度總是足以容納它包含的所有行內(nèi)框。不過鹅颊,設(shè)置行高可以增加這個框的高度敷存。

定位
  • 相對定位(reletive)

    元素保持其形狀及其所占空間,相對于普通流中其他元素的偏移堪伍。

  • 絕對定位(absloute)

    相對于已定位的祖先元素锚烦,如果沒有已定位的祖先元素則相對于最初的包含塊。
    脫離普通流帝雇,覆蓋在普通流定位之上

  • 固定定位(fixed)

    相對于瀏覽器窗口的絕對定位

浮動
  • 不在普通流中占據(jù)空間涮俄,但會對之后的浮動元素產(chǎn)生空間占位影響

布局

常見布局
  • 單列水平居中布局, 一列定寬一列自適應(yīng)布局, 兩列定寬一列自適應(yīng)布局, 兩側(cè)定寬中間自適應(yīng)三列布局。

  • 圣杯與雙飛翼是常見的三列布局尸闸,左右兩列寬度固定彻亲,中列自適應(yīng)。

圣杯布局
  • 為了給兩邊側(cè)欄空出位置室叉,給container元素設(shè)置padding

  • 左右兩個div用相對定位并分配left睹栖,right屬性,用負邊距消除占位

  • main div設(shè)置100%寬度

<div class="container">
    <div class="main"></div>
    <div class="left"></div>
    <div class="right"></div>
</div>
body {
    padding: 0;
    margin: 0;
    min-width: 600px; /* 2*left + right */
}
.container {
    padding-left: 200px;
    padding-right: 200px;
}
.main {
    float: left;
    width: 100%;
    height: 300px;
    background-color: red;
}
.left {
    position: relative;
    left: -200px;
    float: left;
    width: 190px;
    height: 300px;
    margin-left: -100%;
    background-color: blue;
}
.right {
    position: relative;
    right: -210px;
    float: left;
    width: 190px;
    height: 300px;
    margin-left: -200px;
    background-color: green;
}
雙飛翼布局
  • 三列左浮動
  • 為了不讓main內(nèi)容被遮擋茧痕,給其設(shè)置padding
  • 用負邊距給左右兩列定位野来,消除占位
<div class="main-con">
    <div class="main"></div>
</div>
<div class="left"></div>
<div class="right"></div>
.main-con {
    float: left;
    width: 100%;
}

.main {
    height: 300px;
    margin-left: 210px;
    margin-right: 210px;
    background-color: red;
}

.left {
    float: left;
    width: 200px;
    height: 300px;
    margin-left: -100%;
    background-color: blue;
}

.right {
    float: left;
    width: 200px;
    height: 300px;
    margin-left: -200px;
    background-color: green;
}
兩者異同
  • 兩者都把主欄放在文檔流最前面,優(yōu)先加載踪旷。

  • 兩者都是三列浮動曼氛,然后通過負邊距定位消除占位形成三列布局

  • 中列main處理不同:圣杯布局是利用父容器的左、右內(nèi)邊距定位令野;雙飛翼布局是把主欄嵌套在div后利用主列的左舀患、右外邊距定位。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末气破,一起剝皮案震驚了整個濱河市聊浅,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖低匙,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件旷痕,死亡現(xiàn)場離奇詭異,居然都是意外死亡顽冶,警方通過查閱死者的電腦和手機欺抗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來强重,“玉大人绞呈,你說我怎么就攤上這事〖渚埃” “怎么了佃声?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長拱燃。 經(jīng)常有香客問我秉溉,道長,這世上最難降的妖魔是什么碗誉? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮父晶,結(jié)果婚禮上哮缺,老公的妹妹穿的比我還像新娘。我一直安慰自己甲喝,他們只是感情好尝苇,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著埠胖,像睡著了一般糠溜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上直撤,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天非竿,我揣著相機與錄音,去河邊找鬼谋竖。 笑死红柱,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的蓖乘。 我是一名探鬼主播锤悄,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼嘉抒!你這毒婦竟也來了零聚?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎隶症,沒想到半個月后政模,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡沿腰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年览徒,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片颂龙。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡习蓬,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出措嵌,到底是詐尸還是另有隱情躲叼,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布企巢,位于F島的核電站枫慷,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏浪规。R本人自食惡果不足惜或听,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望笋婿。 院中可真熱鬧誉裆,春花似錦、人聲如沸缸濒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽庇配。三九已至斩跌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間捞慌,已是汗流浹背耀鸦。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留卿闹,地道東北人揭糕。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像锻霎,于是被迫代替她去往敵國和親著角。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案旋恼? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽?zāi)J的外補...
    _Yfling閱讀 13,728評論 1 92
  • 學(xué)習(xí)CSS的最佳網(wǎng)站沒有之一 http://www.w3school.com.cn/tags/index.asp ...
    Amyyy_閱讀 1,029評論 0 1
  • 1.CSS基本概念 1.1 CSS的定義 CSS(Cascading Style Sheets)層疊樣式表吏口,主要用...
    寥寥十一閱讀 1,805評論 0 6
  • 1.塊級元素和行內(nèi)元素 塊級(block-level)元素奄容;行內(nèi)(內(nèi)聯(lián)、inline-level)元素产徊。 塊元素的...
    饑人谷_小侯閱讀 1,985評論 1 4
  • 引言 這次給大家?guī)砹薈SS-盒子模型部分的筆記昂勒,大家一同交流?? 認識盒子模型之前,先來了解一下CSS元素的分類吧...
    zhaolion閱讀 4,294評論 9 85