亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > WEB開發 > 正文

(轉)Flex 布局教程:語法篇

2024-04-27 15:19:25
字體:
來源:轉載
供稿:網友

本篇轉自 阮一峰的網絡日志 http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html?utm_source=tuicool 這個博客非常高質量,關于前端的文章,可以去搜索查看,其他的文章也很有質量,強烈推薦的博客。


網頁布局(layout)是CSS的一個重點應用。

這里寫圖片描述

布局的傳統解決方案,基于盒狀模型,依賴 display屬性 + position屬性 + float屬性。它對于那些特殊布局非常不方便,比如,垂直居中就不容易實現。

這里寫圖片描述

2009年,W3C提出了一種新的方案—-Flex布局,可以簡便、完整、響應式地實現各種頁面布局。目前,它已經得到了所有瀏覽器的支持,這意味著,現在就能很安全地使用這項功能。

這里寫圖片描述

Flex布局將成為未來布局的首選方案。本文介紹它的語法,下一篇文章給出常見布局的Flex寫法。

以下內容主要參考了下面兩篇文章:A Complete Guide to Flexbox 和 A Visual Guide to CSS3 Flexbox PRoperties。

一、Flex布局是什么?


Flex是Flexible Box的縮寫,意為”彈性布局”,用來為盒狀模型提供最大的靈活性。

任何一個容器都可以指定為Flex布局。

.box{ display: flex;}

行內元素也可以使用Flex布局。

.box{ display: inline-flex;}

Webkit內核的瀏覽器,必須加上-webkit前綴。

.box{ display: -webkit-flex; /* Safari */ display: flex;}

注意,設為Flex布局以后,子元素的float、clear和vertical-align屬性將失效。

二、基本概念


采用Flex布局的元素,稱為Flex容器(flex container),簡稱”容器”。它的所有子元素自動成為容器成員,稱為Flex項目(flex item),簡稱”項目”。

這里寫圖片描述

容器默認存在兩根軸:水平的主軸(main axis)和垂直的交叉軸(cross axis)。主軸的開始位置(與邊框的交叉點)叫做main start,結束位置叫做main end;交叉軸的開始位置叫做cross start,結束位置叫做cross end。

項目默認沿主軸排列。單個項目占據的主軸空間叫做main size,占據的交叉軸空間叫做cross size。

三、容器的屬性


以下6個屬性設置在容器上。

flex-direction flex-wrap flex-flow justify-content align-items align-content

3.1 flex-direction屬性

flex-direction屬性決定主軸的方向(即項目的排列方向)。

.box { flex-direction: row | row-reverse | column | column-reverse;}

這里寫圖片描述

它可能有4個值。

row(默認值):主軸為水平方向,起點在左端。 row-reverse:主軸為水平方向,起點在右端。 column:主軸為垂直方向,起點在上沿。 column-reverse:主軸為垂直方向,起點在下沿。

3.2 flex-wrap屬性

默認情況下,項目都排在一條線(又稱”軸線”)上。flex-wrap屬性定義,如果一條軸線排不下,如何換行。

這里寫圖片描述

.box{ flex-wrap: nowrap | wrap | wrap-reverse;}

它可能取三個值。

(1)nowrap(默認):不換行。

這里寫圖片描述

(2)wrap:換行,第一行在上方。

這里寫圖片描述

(3)wrap-reverse:換行,第一行在下方。

這里寫圖片描述

3.3 flex-flow

flex-flow屬性是flex-direction屬性和flex-wrap屬性的簡寫形式,默認值為row nowrap。

.box { flex-flow: <flex-direction> || <flex-wrap>;}

3.4 justify-content屬性

justify-content屬性定義了項目在主軸上的對齊方式。

.box { justify-content: flex-start | flex-end | center | space-between | space-around;}

這里寫圖片描述

它可能取5個值,具體對齊方式與軸的方向有關。下面假設主軸為從左到右。

flex-start(默認值):左對齊 flex-end:右對齊 center: 居中 space-between:兩端對齊,項目之間的間隔都相等。 space-around:每個項目兩側的間隔相等。所以,項目之間的間隔比項目與邊框的間隔大一倍。

3.5 align-items屬性

align-items屬性定義項目在交叉軸上如何對齊。

.box { align-items: flex-start | flex-end | center | baseline | stretch;}

這里寫圖片描述

它可能取5個值。具體的對齊方式與交叉軸的方向有關,下面假設交叉軸從上到下。

flex-start:交叉軸的起點對齊。 flex-end:交叉軸的終點對齊。 center:交叉軸的中點對齊。 baseline: 項目的第一行文字的基線對齊。 stretch(默認值):如果項目未設置高度或設為auto,將占滿整個容器的高度。

3.6 align-content屬性

align-content屬性定義了多根軸線的對齊方式。如果項目只有一根軸線,該屬性不起作用。

.box { align-content: flex-start | flex-end | center | space-between | space-around | stretch;}

這里寫圖片描述

該屬性可能取6個值。

flex-start:與交叉軸的起點對齊。 flex-end:與交叉軸的終點對齊。 center:與交叉軸的中點對齊。 space-between:與交叉軸兩端對齊,軸線之間的間隔平均分布。 space-around:每根軸線兩側的間隔都相等。所以,軸線之間的間隔比軸線與邊框的間隔大一倍。 stretch(默認值):軸線占滿整個交叉軸。

四、項目的屬性


以下6個屬性設置在項目上。

order flex-grow flex-shrink flex-basis flex align-self

4.1 order屬性

order屬性定義項目的排列順序。數值越小,排列越靠前,默認為0。

.item { order: <integer>;}

這里寫圖片描述

4.2 flex-grow屬性

flex-grow屬性定義項目的放大比例,默認為0,即如果存在剩余空間,也不放大。

.item { flex-grow: <number>; /* default 0 */}

這里寫圖片描述

如果所有項目的flex-grow屬性都為1,則它們將等分剩余空間(如果有的話)。如果一個項目的flex-grow屬性為2,其他項目都為1,則前者占據的剩余空間將比其他項多一倍。

4.3 flex-shrink屬性

flex-shrink屬性定義了項目的縮小比例,默認為1,即如果空間不足,該項目將縮小。

.item { flex-shrink: <number>; /* default 1 */}

這里寫圖片描述

如果所有項目的flex-shrink屬性都為1,當空間不足時,都將等比例縮小。如果一個項目的flex-shrink屬性為0,其他項目都為1,則空間不足時,前者不縮小。

負值對該屬性無效。

4.4 flex-basis屬性

flex-basis屬性定義了在分配多余空間之前,項目占據的主軸空間(main size)。瀏覽器根據這個屬性,計算主軸是否有多余空間。它的默認值為auto,即項目的本來大小。

.item { flex-basis: <length> | auto; /* default auto */}

它可以設為跟width或height屬性一樣的值(比如350px),則項目將占據固定空間。

4.5 flex屬性

flex屬性是flex-grow, flex-shrink 和 flex-basis的簡寫,默認值為0 1 auto。后兩個屬性可選。

.item { flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]}

該屬性有兩個快捷值:auto (1 1 auto) 和 none (0 0 auto)。

建議優先使用這個屬性,而不是單獨寫三個分離的屬性,因為瀏覽器會推算相關值。

4.6 align-self屬性

align-self屬性允許單個項目有與其他項目不一樣的對齊方式,可覆蓋align-items屬性。默認值為auto,表示繼承父元素的align-items屬性,如果沒有父元素,則等同于stretch。

.item { align-self: auto | flex-start | flex-end | center | baseline | stretch;}

這里寫圖片描述

該屬性可能取6個值,除了auto,其他都與align-items屬性完全一致。

(完)


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国内精品一区二区三区四区| 少妇高潮久久77777| 亚洲第一男人天堂| 欧美与欧洲交xxxx免费观看| 91在线视频免费| 操人视频在线观看欧美| 亚洲国产91精品在线观看| 久久久久久欧美| 亚洲成年网站在线观看| 国产免费一区视频观看免费| 亚洲人成77777在线观看网| 日韩av在线不卡| 国产男人精品视频| 欧美日韩国产第一页| 欧美视频在线视频| 久久久久亚洲精品成人网小说| 在线观看日韩av| 国产精品视频中文字幕91| 欧美日韩成人黄色| 福利一区福利二区微拍刺激| 欧美日韩国产中文精品字幕自在自线| 亚洲专区在线视频| 亚洲午夜精品视频| 在线观看国产成人av片| 精品国产户外野外| 欧美日韩国产一区二区三区| 日韩成人在线免费观看| 欧美做爰性生交视频| 国产精品极品尤物在线观看| 日韩av综合中文字幕| 久久福利视频导航| 欧美成人一区二区三区电影| 国模极品一区二区三区| 精品久久久久久中文字幕大豆网| 欧美成年人视频网站欧美| 国产亚洲精品美女久久久| 中文日韩在线视频| 国产精品丝袜白浆摸在线| 中文字幕一区电影| 91久久夜色精品国产网站| 欧美日韩福利电影| 欧美成人亚洲成人日韩成人| 国产精品露脸自拍| 国产中文字幕日韩| 精品久久久久久久久久久久| 亚洲欧美另类自拍| 欧美精品在线播放| 人人澡人人澡人人看欧美| 日韩欧美高清视频| 成人免费福利在线| 久久久久久久久爱| 欧美性xxxx极品hd欧美风情| 国产97免费视| 国产精品久久久久久久久影视| 国产视频亚洲视频| 91视频国产一区| 亚洲欧洲第一视频| 最近2019中文免费高清视频观看www99| 国产精品久久网| 538国产精品一区二区在线| 久久国产精品久久久久久久久久| 国产精品久久久久aaaa九色| 久久成人精品一区二区三区| 日韩欧美在线字幕| 日韩精品丝袜在线| 国产有码一区二区| 91精品在线观看视频| 欧美风情在线观看| 亚洲精品v天堂中文字幕| 国产精品视频资源| 波霸ol色综合久久| 最新国产精品亚洲| 亚洲色图狂野欧美| 人九九综合九九宗合| 亚洲欧美中文日韩在线v日本| 国产一区二区三区在线| 日韩成人av网| 亚洲最大福利视频网站| 欧美成人免费视频| 国产日本欧美视频| 久久久电影免费观看完整版| 欧美裸体xxxxx| 亚洲曰本av电影| 欧美激情精品久久久久久| 亚洲精品aⅴ中文字幕乱码| 色噜噜久久综合伊人一本| 亚洲成人精品av| 国产欧美在线观看| 日韩在线视频观看| 黄色一区二区三区| 欧美网站在线观看| www.xxxx精品| 欧美激情欧美激情| 国产福利成人在线| 亚洲毛茸茸少妇高潮呻吟| 亚洲最新中文字幕| 欧美大胆a视频| 日韩av中文字幕在线免费观看| 亚洲精品第一国产综合精品| 日韩一区二区三区xxxx| 日韩性生活视频| 成人av电影天堂| 日韩在线视频免费观看高清中文| 亚洲人成电影在线播放| 亚洲全黄一级网站| 日韩高清人体午夜| 日韩a**中文字幕| 日韩极品精品视频免费观看| 国产精品国产福利国产秒拍| 5252色成人免费视频| 日韩欧美国产视频| 亚洲欧美国产一区二区三区| 久久国产精彩视频| 欧美一级大片视频| 日av在线播放中文不卡| 亚洲色图17p| 九色精品美女在线| 麻豆乱码国产一区二区三区| 亚洲在线视频福利| 久久国产精品久久国产精品| 国模视频一区二区三区| 亚洲精品在线观看www| 国产精品va在线播放我和闺蜜| 少妇激情综合网| 欧美限制级电影在线观看| 亚洲第一福利网| 一区二区三区www| 日韩成人网免费视频| 日韩中文综合网| 一个人看的www欧美| 国产精品人成电影在线观看| 日韩国产高清污视频在线观看| 亚洲美女动态图120秒| 国产精品黄视频| 亚洲电影免费观看高清完整版| 91色精品视频在线| 亚洲精品国产精品国自产在线| 欧美日韩激情视频8区| 久久久久久久久爱| 精品国产依人香蕉在线精品| 久久不射热爱视频精品| 国产精品三级网站| 狠狠久久亚洲欧美专区| 国产日韩中文字幕| 欧美亚洲第一区| 亚洲人成电影网| 久久久成人av| 最近中文字幕2019免费| 亚洲天堂影视av| 91青草视频久久| 欧美日韩国产区| 国产日韩在线播放| 久久最新资源网| 97**国产露脸精品国产| 亚洲精品视频久久| 欧美色道久久88综合亚洲精品| 欧美激情伊人电影| 97欧美精品一区二区三区| 成人免费高清完整版在线观看| 91精品免费看| 国产精品69久久| 国产一区二区丝袜| 亚洲欧美日韩在线高清直播| 亚洲国产成人爱av在线播放|