CSS布局方法

左右/左中右布局

1. 浮動

給所有子元素添加float:left;,同時給父元素添加clearfix類,解決浮動出現(xiàn)的bug。
CSS:

image

image

HTML:
image

2. 行內(nèi)塊

使用display: inline-block;使塊元素成為行內(nèi)塊姻采,此時會出現(xiàn)bug:下方出現(xiàn)一個空隙泉懦,一定要用vertical-align: top;來解決。

3. 絕對定位

為父元素設(shè)置position:relative;餐济,為子元素設(shè)置position:absolute; 鹏往。如圖:

image

特定情況下使用浮動還是絕對定位:
1.使用浮動時:不需要計算特別精確的位置冷蚂,不過不易操控议双,浮動元素的寬度需要注意痘番,否則會換行展示,適用于導(dǎo)航欄等地方平痰。
2.使用絕對定位:需要計算元素的具體位置汞舱,不過更加準確,易于操控宗雇。
3.當某些元素的位置要根據(jù)父元素的大小自適應(yīng)昂芜,內(nèi)容寬度無法確定時,建議使用浮動赔蒲。
4.當特定元素的位置是相對父元素固定说铃,或者內(nèi)容寬高確定,需要精確定位甚至以后要用js操作變換位置時嘹履,建議使用浮動。

4. Flex布局

給父級加上 display: flex;定義其為flex容器债热,使用flex-direction: row;使主軸水平砾嫉;

HTML:

image

CSS:
image

布局的傳統(tǒng)解決方案,基于盒狀模型窒篱,依賴 display 屬性 + position屬性 + float屬性焕刮。它對于那些特殊布局非常不方便舶沿,比如,垂直居中就不容易實現(xiàn)配并。
2009年括荡,W3C 提出了一種新的方案----Flex 布局,可以簡便溉旋、完整畸冲、響應(yīng)式地實現(xiàn)各種頁面布局。目前观腊,它已經(jīng)得到了所有瀏覽器的支持邑闲,這意味著,現(xiàn)在就能很安全地使用這項功能梧油。Flex 布局將成為未來布局的首選方案苫耸。

  • 設(shè)為 Flex 布局以后,子元素的float儡陨、clear和vertical-align屬性將失效;
  • flex-direction屬性決定主軸的方向(即項目的排列方向),它可能有4個值;
  • row(默認值):主軸為水平方向褪子,起點在左端。
  • row-reverse:主軸為水平方向骗村,起點在右端嫌褪。
  • column:主軸為垂直方向,起點在上沿叙身。
  • column-reverse:主軸為垂直方向渔扎,起點在下沿。
  • 更多flex語法:阮一峰博客--http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html


水平居中

1.內(nèi)聯(lián)元素水平居中:

將內(nèi)聯(lián)元素外部的塊級元素的text-align設(shè)置為center,即可實現(xiàn)內(nèi)聯(lián)元素(inline信轿、inline-block)的水平居中晃痴。可設(shè)置內(nèi)聯(lián)元素的行高line-height控制內(nèi)聯(lián)元素所占高度财忽。

image

2. 塊級元素水平居中:

將固定寬度的塊級元素的margin-leftmargin-right設(shè)置成auto倘核,即可實現(xiàn)元素的水平居中。

image

3. 多個塊級元素水平居中:

如圖中ol的布局問題即彪,

image
block默認會擴展紧唱,使用display: inline-block;使其成為行內(nèi)塊,默認收縮隶校。此時會出現(xiàn)bug:下方出現(xiàn)一個空隙漏益,一定要用vertical-align: top;來解決,結(jié)果如圖:
image

此時這是一個內(nèi)聯(lián)元素深胳,在父級中加入text-align: center;可以實現(xiàn)子元素水平居中绰疤。
CSS:
image

4.絕對定位

通過position:absolute;實現(xiàn)CSS水平居中。

5.flex布局

justify-content屬性定義了項目在主軸上的對齊方式舞终;
使用justify-content:center;實現(xiàn)居中轻庆;

CSS:


image
image
  • justify-content可能取5個值癣猾,具體對齊方式與軸的方向有關(guān),下面假設(shè)主軸為從左到右。
  • flex-start(默認值):左對齊
  • flex-end:右對齊
  • center: 居中
  • space-between:兩端對齊余爆,項目之間的間隔都相等纷宇。
  • space-around:每個項目兩側(cè)的間隔相等。所以蛾方,項目之間的間隔比項目與邊框的間隔大一倍沥邻。

垂直居中

1.內(nèi)聯(lián)元素垂直居中

設(shè)置內(nèi)聯(lián)元素的行高(line-height)和內(nèi)聯(lián)元素的父元素的高度(height)相等哀军,且內(nèi)聯(lián)元素的字體大小遠小于行高腻菇,即可使內(nèi)聯(lián)元素垂直居中耗式。

2.塊級元素垂直居中

  • 固定高度的塊級元素:
    通過絕對定位使元素距離頂部50%,并設(shè)置margin-top向上移元素高度的一半五芝,實現(xiàn)垂直居中痘儡。
  • 通過verticle-align:middle實現(xiàn)CSS垂直居中。(vertical生效的前提是元素的display:inline-block枢步。)

3.flex布局

使用align-items:center;使子元素相對交叉軸的中點對齊(默認交叉軸從上到下)沉删。

CSS:

image

image

  • align-items屬性定義項目在交叉軸上如何對齊。具體的對齊方式與交叉軸的方向有關(guān)醉途,下面假設(shè)交叉軸從上到下矾瑰。
  • flex-start:交叉軸的起點對齊。
  • flex-end:交叉軸的終點對齊隘擎。
  • center:交叉軸的中點對齊殴穴。
  • baseline: 項目的第一行文字的基線對齊。
  • stretch(默認值):如果項目未設(shè)置高度或設(shè)為auto货葬,將占滿整個容器的高度采幌。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市震桶,隨后出現(xiàn)的幾起案子休傍,更是在濱河造成了極大的恐慌,老刑警劉巖蹲姐,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件磨取,死亡現(xiàn)場離奇詭異,居然都是意外死亡柴墩,警方通過查閱死者的電腦和手機忙厌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來江咳,“玉大人逢净,你說我怎么就攤上這事。” “怎么了汹胃?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長东臀。 經(jīng)常有香客問我着饥,道長,這世上最難降的妖魔是什么惰赋? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任宰掉,我火速辦了婚禮,結(jié)果婚禮上赁濒,老公的妹妹穿的比我還像新娘轨奄。我一直安慰自己,他們只是感情好拒炎,可當我...
    茶點故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布挪拟。 她就那樣靜靜地躺著,像睡著了一般击你。 火紅的嫁衣襯著肌膚如雪玉组。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天丁侄,我揣著相機與錄音惯雳,去河邊找鬼。 笑死鸿摇,一個胖子當著我的面吹牛石景,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播拙吉,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼潮孽,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了庐镐?” 一聲冷哼從身側(cè)響起恩商,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎必逆,沒想到半個月后怠堪,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡名眉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年粟矿,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片损拢。...
    茶點故事閱讀 40,427評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡陌粹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出福压,到底是詐尸還是另有隱情掏秩,我是刑警寧澤或舞,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站蒙幻,受9級特大地震影響映凳,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜邮破,卻給世界環(huán)境...
    茶點故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一诈豌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧抒和,春花似錦矫渔、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至范嘱,卻和暖如春送膳,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背丑蛤。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工叠聋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人受裹。 一個月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓碌补,卻偏偏與公主長得像,于是被迫代替她去往敵國和親棉饶。 傳聞我的和親對象是個殘疾皇子厦章,可洞房花燭夜當晚...
    茶點故事閱讀 45,440評論 2 359

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

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽?zāi)J的外補...
    _Yfling閱讀 13,756評論 1 92
  • CSS 是什么 css(Cascading Style Sheets)照藻,層疊樣式表袜啃,選擇器{屬性:值;屬性:值}h...
    崔敏嫣閱讀 1,487評論 0 5
  • 一幸缕、CSS入門 1群发、css選擇器 選擇器的作用是“用于確定(選定)要進行樣式設(shè)定的標簽(元素)”。 有若干種形式的...
    寵辱不驚丶歲月靜好閱讀 1,600評論 0 6
  • 本文主要是起筆記的作用发乔,內(nèi)容來自慕課網(wǎng). 認識CSS樣式 CSS全稱為“層疊樣式表 (Cascading Styl...
    0o凍僵的企鵝o0閱讀 2,651評論 0 30
  • 敬愛的李老師栏尚,智慧的馬教授起愈,親愛的家人們,大家好,我是侯宇辰 今天是我日精進分享的第37天抬虽,每天進步一點點官觅,距離成...
    所以努力閱讀 186評論 0 3