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

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

移動端的自適應布局神奇—Flex Box(1)

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

Flex布局,是W3C于2009年提出的一種新的布局方式。傳統的CSS布局方式,經常會出現一些很難控制的問題,比如垂直居中、多列布局的自適應問題等。而Flex布局方式,可以很方便的實現這些功能,而且不容易出現布局錯誤。

最重要的是,在移動端Web開發過程中,采用Flex布局模式進行開發的效率是非常高的。Flex布局,更適合H5應用開發。

Flex,顧名思義,就是非常靈活的一種布局方式。一般的Flex布局中,首先都會有一個整體元素,稱為flex box。這個容器元素內部包含著的其他元素,就可以很靈活的適應整個容器的變化,而不會出現布局上的紊亂。注意,在flex box元素中,元素的某些屬性會失效,包括float、clear及vertical-align屬性。

在接下來的博客中,將帶大家學習Flex Box各種屬性,以及如何利用這些屬性實現自適應布局。隨文章附上了許多實驗代碼供大家參考。

彈性容器,指的就是使用flex布局的整體的父元素。這個父元素的所有子元素,都屬于這個flex容器的成員,稱為彈性項目。要想讓一個容器成為彈性容器,必須設置這個元素的display屬性為flex或者inline-flex。與block和inline一樣,flex和inline-flex都能將一個元素設定為彈性容器,區別是實用flex屬性值這個元素就是一個塊級元素的彈性容器,而實用inline-flex屬性值,這個元素就是一個保持了inline屬性的彈性容器。

彈性容器和彈性項目都可以通過設定一些屬性,達到我們想要的布局效果。那么一個彈性容器的內部是什么樣的呢?

每一個彈性容器都有一個水平軸和一個縱軸線,彈性容器中的彈性項目,就要根據這兩條軸線的方向進行排列。具體按照哪個軸線排列,可以定義彈性容器的flex-direction屬性進行設定。

一、flex-direction屬性

flex-direction屬性有四個屬性值:row,row-reverse,column,column-reverse。它們分別表示沿水平軸線從左向右排序,沿水平軸線從右向左排序,沿豎直軸從上到下排列,以及沿豎直軸從下到上排列。

下面的例子就是一個Flex布局例子,每個子元素都進行了編號,來直觀看看彈性容器不同的flex-direction屬性值是如何影響彈性項目的布局效果的。

代碼:

<!DOCTYPE><html><head><meta charSet="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/><style type="text/css">.container{  display:flex;  display:-webkit-flex;  border: 2px solid black;  padding: 20px;  margin: 20px;}.item{  background: green;  width: 100px;  height: 100px;  margin: 10px;  font-weight: bold;}.row{  flex-direction: row;}.row-reverse{  flex-direction: row-reverse;}.column{  flex-direction: column;}.column-reverse{  flex-direction: column-reverse;}</style></head><body><div class="container row">  <div class="item">1</div>  <div class="item">2</div>  <div class="item">3</div>  <div class="item">4</div></div><div class="container row-reverse">  <div class="item">1</div>  <div class="item">2</div>  <div class="item">3</div>  <div class="item">4</div></div><div class="container column">  <div class="item">1</div>  <div class="item">2</div>  <div class="item">3</div>  <div class="item">4</div></div><div class="container column-reverse">  <div class="item">1</div>  <div class="item">2</div>  <div class="item">3</div>  <div class="item">4</div></div></body></html>

打開瀏覽器,即可直觀觀察到flex-direction屬性對于元素布局的影響。使用row屬性值時,元素會從左側開始布局,使用row-reverse屬性值時,元素會從右側開始布局。使用column和column-reverse時結果類似,只是變成豎直方向的布局了。

現在,我們縮小網頁的屏幕,來看一下會發生什么效果。當我們縮小網頁屏幕到一定范圍后,所有彈性項目會發生等比例的收縮,從而保證元素的排列布局沒有任何紊亂。這就是flex布局最驚人的地方。如何控制彈性項目收縮的程度,將在下面的例子中繼續介紹。這個特性也是為什么彈性項目廣泛應用于移動端應用的原因,它可以很好的適應各種分辨率的手機屏幕。

另外一個需要注意的是,當為父元素設定display屬性時,針對-webkit內核的瀏覽器需要使用-webkit-flex或者-webkit-inline-flex屬性值來進行兼容。

二、flex-wrap屬性

上面的例子中,不管我們怎么在寬度上縮小父容器,其彈性項目都會以犧牲自身原本的大小來適應父元素的寬度,并排列在一行上。但是有的時候我們并不想改變元素形狀,而是當父元素寬度變小的時候,子元素可以自動換行。Flex布局也提供了滿足這個需求的方法,可以通過為父元素設定flex-wrap屬性來實現。

flex-wrap屬性有三個屬性值,nowrap屬性值是默認屬性值,表示不進行換行。wrap和wrap-reverse屬性值可以實現元素的自動換行,并且會保形狀不變。當父元素收縮時,子元素會保證自己的寬度,一行放不下的情況下會選擇換行,其中wrap是正向換行,而wrap-reverse會從反向進行換行。

代碼:

<!DOCTYPE><html><head><meta charSet="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/><style type="text/css">.container{  display:flex;  display:-webkit-flex;  border: 2px solid black;  padding: 20px;  margin: 20px;  flex-direction: row;}.item{  background: green;  width: 100px;  height: 100px;  margin: 10px;  font-weight: bold;}.nowrap{  flex-wrap: nowrap;}.wrap{  flex-wrap: wrap;}.wrap-reverse{  flex-wrap: wrap-reverse;}</style></head><body><div class="container nowrap">  <div class="item">1</div>  <div class="item">2</div>  <div class="item">3</div>  <div class="item">4</div>  <div class="item">5</div>  <div class="item">6</div>  <div class="item">7</div></div><div class="container wrap">  <div class="item">1</div>  <div class="item">2</div>  <div class="item">3</div>  <div class="item">4</div>  <div class="item">5</div>  <div class="item">6</div>  <div class="item">7</div></div><div class="container wrap-reverse">  <div class="item">1</div>  <div class="item">2</div>  <div class="item">3</div>  <div class="item">4</div>  <div class="item">5</div>  <div class="item">6</div>  <div class="item">7</div></div></body></html>

可以看到,如果彈性容器設置為允許子元素換行,那么這些子元素會保證自己的大小不發生變化。

三、justify-content屬性

當元素在一行內顯示時,如何規范的規定元素的排列方式呢?Flex布局中可以為父元素設定justify-content屬性。這個屬性有五個選項值,它們可以用來設定元素不同的對齊方式,類似于在Word文章中文字的對齊方式。

flex-start — 設定為左對齊

flex-end — 設定為右對齊

center — 設定為居中對齊

space-between — 設定為居中對齊

space-around — 設定每個元素兩側的距離都相等

為了直觀的看一下justify-content屬性值的作用,來看下面的例子。

代碼:

<!DOCTYPE><html><head><meta charSet="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/><style type="text/css">.container{  display:flex;  display:-webkit-flex;  border: 2px solid black;  padding: 20px;  margin: 20px;  flex-direction: row;  flex-wrap: nowrap;}.item1{  background: green;  width: 200px;  height: 100px;  margin: 10px;  font-weight: bold;}.item2{  background: green;  width: 300px;  height: 100px;  margin: 10px;  font-weight: bold;}.item3{  background: green;  width: 100px;  height: 100px;  margin: 10px;  font-weight: bold;}.flex-start{  justify-content: flex-start;}.flex-end{  justify-content: flex-end;}.space-between{  justify-content: space-between;}.space-around{  justify-content: space-around;}.center{  justify-content: center;}</style></head><body><div class="container flex-start">  <div class="item1">1</div>  <div class="item2">2</div>  <div class="item3">3</div></div><div class="container flex-end">  <div class="item1">1</div>  <div class="item2">2</div>  <div class="item3">3</div></div><div class="container center">  <div class="item1">1</div>  <div class="item2">2</div>  <div class="item3">3</div></div><div class="container space-between">  <div class="item1">1</div>  <div class="item2">2</div>  <div class="item3">3</div></div><div class="container space-around">  <div class="item1">1</div>  <div class="item2">2</div>  <div class="item3">3</div></div></body></html>

從上面的例子可以看出,使用justify-content屬性,可以很方便的設定好彈性項目在彈性容器之中的對齊方式。

喜歡讀書的,喜歡學知識的小伙伴,歡迎關注公眾號“精粹微閱讀”加入我們哦~~~


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
萌白酱国产一区二区| 亚洲男人天堂九九视频| 欧洲中文字幕国产精品| 中文字幕亚洲无线码a| 亚洲天堂男人天堂女人天堂| 国产精品久久久久久中文字| 欧美大片网站在线观看| 久久久欧美精品| 欧美精品一区在线播放| 亚洲午夜精品久久久久久性色| 国产成人综合av| 91福利视频在线观看| 亚洲国产成人av在线| 国模视频一区二区| 欧美日韩国产精品一区| 91久久夜色精品国产网站| 大桥未久av一区二区三区| 久久久久久久网站| 欧美在线观看视频| 一区二区三区视频免费| 91黑丝在线观看| 5566成人精品视频免费| 日韩精品中文字幕有码专区| 久久精品视频中文字幕| 一区二区三区四区在线观看视频| 成人一区二区电影| 97视频在线观看亚洲| 色婷婷综合久久久久| 国产精品精品久久久| 欧美香蕉大胸在线视频观看| 国产成人福利夜色影视| 亚洲美女激情视频| 欧美激情免费在线| 日本电影亚洲天堂| 91精品国产综合久久香蕉的用户体验| 欧美成人一区二区三区电影| 亚洲精品美女久久久| 日韩高清av在线| 日韩有码在线视频| 91精品综合视频| 日韩精品免费在线| 九九视频这里只有精品| 欧美另类高清videos| 欧美在线视频观看免费网站| 国产mv免费观看入口亚洲| 国产+人+亚洲| 668精品在线视频| 亚洲精品欧美日韩专区| 日韩国产高清污视频在线观看| 搡老女人一区二区三区视频tv| 一区二区三区回区在观看免费视频| 精品亚洲永久免费精品| 国产专区欧美专区| 国产69精品久久久久久| 亚洲激情免费观看| 欧美成人一区在线| 精品伊人久久97| 夜夜嗨av色综合久久久综合网| 亚洲免费电影一区| 中文字幕国产日韩| 久久亚洲精品国产亚洲老地址| 久久精品国产亚洲一区二区| 国产成人精品免费视频| 欧美极品少妇xxxxⅹ裸体艺术| 久久久精品一区| 国产日韩一区在线| 亚洲综合色激情五月| 亚洲国产天堂久久国产91| 日韩美女视频免费看| 欧洲亚洲免费在线| 欧洲美女免费图片一区| 国产婷婷成人久久av免费高清| 欧美成人中文字幕在线| 操91在线视频| 俺也去精品视频在线观看| 久久av红桃一区二区小说| 91精品视频在线免费观看| 91夜夜未满十八勿入爽爽影院| 久久精品国产96久久久香蕉| 这里只有精品久久| 国产精品视频免费在线| 国产日韩欧美91| 国产小视频91| 亚洲伦理中文字幕| 亚洲自拍另类欧美丝袜| 欧美性极品少妇精品网站| 中文字幕在线看视频国产欧美在线看完整| 久久99青青精品免费观看| 欧洲中文字幕国产精品| 久久69精品久久久久久久电影好| 97av视频在线| 国产一区二区三区丝袜| 日韩av在线导航| 久久久久国产精品免费网站| 日日摸夜夜添一区| 欧美理论片在线观看| 日韩欧美在线观看视频| 国产精品va在线播放我和闺蜜| 国产精品极品美女在线观看免费| 亚洲女人天堂成人av在线| 欧美性极品xxxx娇小| 国产精品久久久久av免费| 在线视频免费一区二区| 91久久中文字幕| 日韩av中文字幕在线免费观看| 精品久久久一区| 亚洲欧洲视频在线| 亚洲色图第一页| 久久久免费在线观看| 一区二区中文字幕| 亚洲精品美女免费| 欧美国产激情18| 成人激情免费在线| 成人国产精品久久久久久亚洲| 国产成+人+综合+亚洲欧洲| 亚洲欧洲激情在线| 97国产一区二区精品久久呦| 亚洲三级黄色在线观看| 久久国产精彩视频| 欧美福利视频在线观看| 亚洲深夜福利网站| 久久777国产线看观看精品| 久久久免费精品视频| 日韩高清人体午夜| 夜夜嗨av一区二区三区四区| 色无极影院亚洲| 欧美有码在线观看| 美日韩精品免费观看视频| 少妇高潮久久久久久潘金莲| 国产精品美女网站| 国产综合视频在线观看| 黑人精品xxx一区一二区| 色婷婷综合成人| 97超级碰碰人国产在线观看| 欧美精品久久久久久久久| 亚洲美女av黄| 亚洲永久在线观看| 久久91精品国产91久久跳| 91精品国产色综合久久不卡98口| 欧美又大粗又爽又黄大片视频| 国产精选久久久久久| 欧美成人精品一区| 不用播放器成人网| 久久国产精品久久国产精品| 国模精品视频一区二区| 狠狠躁天天躁日日躁欧美| 欧美理论在线观看| 久久久久久国产精品久久| 亚洲最新视频在线| 97在线观看免费高清| 疯狂做受xxxx高潮欧美日本| 亚洲人成电影在线播放| 亚洲人免费视频| 国产成人精品优优av| 亚洲天堂av网| 亚洲一区二区三区香蕉| 日韩av大片免费看| 欧美麻豆久久久久久中文| 欧美做受高潮1| 日韩成人中文电影| 欧美大荫蒂xxx| 日韩有码在线播放| 日韩成人在线网站| 国产精品18久久久久久首页狼|