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

首頁 > 開發 > CSS > 正文

css Flex布局的可伸縮性(Flexibility)

2024-07-11 09:08:02
字體:
來源:轉載
供稿:網友

Flexibility

Flex伸縮布局決定性的特性是讓伸縮項目可伸縮,也就是讓伸縮項目的寬度或高度自動填充剩余的空間。這可以以flex屬性完成。一個伸縮容器會等比地按照各伸縮項目的 擴展比率 分配剩余空間,也會按照 收縮比率 縮小各項目以避免溢出。

Flex屬性

flex屬性可用來指定 可伸縮長度 的部件:擴展比率,收縮比率,伸縮基準線。當有一個元素是伸項目時,flex屬性將代替主軸長度屬性決定元素的主軸長度。若元素不是伸縮項目,則flex屬性不生效。

flex 是 flex-grow、flex-shrink、flex-basis的縮寫

.item {    flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]}
  1. <'flex-grow'> 取值為 <number> ,用來指定項目的擴展比率;若在flex縮寫省略了此屬性值,則flex-grow的指定值是 1;
  2. <'flex-shrink'>取值為 <number> ,用來指定項目的收縮比率;若在flex縮寫省略了此屬性值,則flex-shrink的指定值是 1;
  3. <'flex-basis'>取值為 <length> | auto ,用來定義在分配多余空間之前,項目占據的主軸空間,也就是子元素的基準值,flex-basis 規定的范圍取決于 box-sizing;若在flex縮寫省略了此屬性值,則flex-basis的指定值是 0%。

flex-basis取值的幾種情況:

  1. 固定的長度值,(比如350px),則該項目將占據固定長度的空間;
  2. auto,首先會檢索該項目的主尺寸(也就是該項目的width/height的值,是width還是height取決于主軸的方向,下面假設主軸的方向為水平方向),如果該項目的主尺寸不為auto,則該項目的flex-basis(基準值)采用主尺寸的值;如果該項目的主尺寸為auto(也就是width:auto或不設置項目的width屬性時),則使用該項目的內容content大小為基準值;
  3. 百分比,根據其包含塊(即伸縮父容器)的主尺寸計算。如果包含塊的主尺寸未定義(即父容器的主尺寸取決于子元素),則計算結果和設為 auto 一樣。

flex 的常見值

flex的默認值:由于 flex-grow、flex-shrink、flex-basis三個屬性值在不設置的情況下默認值分別為 0、1、auto,所以flex的默認值為:flex:0 1 auto;

.item {    flex: 0 1 auto;}/*這種情況先根據width/height屬性決定元素的尺寸。(如果項目的主尺寸為auto,則會以其內容大小為基準)當剩余空間為正值時,伸縮項目無法伸縮,但當空間不足時,伸縮項目可收縮至其[最小]值。默認狀態下,伸縮項目不會收縮至比其最小內容尺寸更小??梢酝ㄟ^設置「min-width」或「min-height」屬性來改變這個默認狀態。*/

flex: 0 auto:由于之前提到過,若在flex的縮寫中省略了flex-shrink的值,則該值指定為 1,所以flex:0 auto就相當于flex:0 1 auto(也就是與flex取默認值一樣);

flex: initial:與flex:0 1 auto相同;

flex: auto: 若在flex的縮寫中省略了flex-grow和flex-shrink的值,則他們的值都指定為 1,所以flex:auto就相當于flex:1 1 auto;

.item {    flex: auto;  /*相當于flex:1 1 auto;*/}/*根據width/height屬性決定元素的尺寸,但是完全可以伸縮,會吸收主軸上剩下的空間*/

flex:none:相當于flex: 0 0 auto;

.item {    flex: none;  /*相當于flex:0 0 auto;*/}/*根據width/height屬性決定元素的尺寸,但是完全不可以伸縮*/

當flex取值為某個正數時,則這個正數是flex-grow的取值,由于在flex的縮寫中省略了flex-shrink和flex-basis的值,而他們在被省略了時的取值分別為1、0%,所以flex:1就相當于flex:1 1 0%;

.item {    flex: 1;  /*相當于flex:1 1 0%;*/}/*以父容器的寬度為基數計算,元素完全可伸縮*/

當 flex 取值為一個長度或百分比,則視為 flex-basis 值,flex-grow 取 1,flex-shrink 取 1(注意 0% 是一個百分比而不是一個非負數字);

.item {    flex:120px;  /*相當于flex:1 1 120px;*/}.item1 {   flex: 0%; /*相當于flex:1 1 0%;*/}

當 flex 取值為兩個非負數字,則分別視為 flex-grow 和 flex-shrink 的值,flex-basis 取 0%;

.item {    flex:2 1;  /*相當于flex:2 1 0%;*/}

當 flex 取值為一個非負數字和一個長度或百分比,則分別視為 flex-grow 和 flex-basis 的值,flex-shrink 取 1;

.item {    flex:2 120px;  /*相當于flex:2 1 120px;*/}

舉例

html如下:

<div class="box">    <div class="item-1"></div>    <div class="item-2"></div>    <div class="item-3"></div>  </div>

css如下:

.box {  display: flex;  width: 800px;}.box > div {  height: 200px;}.item-1 {  width: 160px;  flex: 2 1 0%;  background: #2ecc71;}.item-2 {  width: 100px;  flex: 2 1 auto;  background: #3498db;}.item-3 {  flex: 1 1 200px;  background: #9b59b6;}

得到的結果如下:

css,Flex布局,可伸縮性,Flexibility

主軸上父容器總尺寸為 800px

子元素的總基準值是:0% + auto + 200px = 300px,其中

  1. - 0% 即 0 * 800px = 0寬度
  2. - auto 對應取主尺寸即 100px

故剩余空間為 800px - 300px = 500px

伸縮放大系數之和為: 2 + 2 + 1 = 5

剩余空間分配如下:

  1. - item-1 和 item-2 各分配 2/5,各得 200px
  2. - item-3 分配 1/5,得 100px

各項目最終寬度為:

  1. - item-1 = 0% + 200px = 200px
  2. - item-2 = auto + 200px = 300px
  3. - item-3 = 200px + 100px = 300px

當 item-1 基準值取 0% 的時候,是把該項目視為零尺寸的,故即便聲明其尺寸為 160px,也并沒有什么用,形同虛設

而 item-2 基準值取 auto 的時候,根據規則基準值使用值是主尺寸值即 100px,故這 100px 不會納入剩余空間

總結

flex 的缺省值并非是單一屬性的初始值,在flex屬性取值的縮寫中,flex-grow 、 flex-shrink 、flex-basis的缺省值分別為1 、 1 、0%,而不是這三屬性分別的默認值0、 1 、auto;

當項目沒有設置固定寬度(對于水平的情況,也就是寬度本身是auto的)時,flex-basis如果也是auto,那么flex-basis的使用值就是該項目的內容本身撐起來的寬度(對于水平的情況)。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。

 

注:相關教程知識閱讀請移步到CSS教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美丰满少妇xxxxx做受| 中文字幕欧美精品日韩中文字幕| 亚洲成人免费网站| 视频一区视频二区国产精品| 亚洲网址你懂得| 国产亚洲精品久久久优势| 欧美大尺度激情区在线播放| 欧美精品一二区| 亚洲跨种族黑人xxx| 亚洲国产精品中文| 岛国av午夜精品| 成人性生交xxxxx网站| 国产91免费观看| 成人免费视频网| 国产精品久久视频| 国产一区二区三区欧美| 亚洲xxxxx性| www.亚洲免费视频| 精品国产31久久久久久| 久久99精品久久久久久噜噜| 精品色蜜蜜精品视频在线观看| 色婷婷av一区二区三区在线观看| 成人免费淫片视频软件| 久久99热这里只有精品国产| 国内精品模特av私拍在线观看| 亚洲美女在线观看| 久久久精品中文字幕| 国产精品第1页| 91精品国产91久久久久久久久| 亚洲精品自拍第一页| 欧美日韩国产精品一区二区三区四区| 亚州国产精品久久久| 欧美精品久久久久久久免费观看| 亚洲欧洲日产国码av系列天堂| 亚洲美女福利视频网站| 国产丝袜一区二区三区| 国产精品第1页| 国产一区二中文字幕在线看| 欧洲成人性视频| 欧美日韩国产第一页| 搡老女人一区二区三区视频tv| 亚洲视频在线免费观看| 91美女片黄在线观看游戏| 国产精品日韩电影| 国产精品99久久久久久www| 欧美另类69精品久久久久9999| 久久精品免费电影| xxav国产精品美女主播| 欧美日韩成人黄色| 日韩av在线网站| 午夜剧场成人观在线视频免费观看| 日韩中文字幕在线免费观看| 色哟哟网站入口亚洲精品| 国产日韩欧美在线看| 668精品在线视频| 日韩美女写真福利在线观看| 91精品国产高清自在线看超| 国内精品久久久久久中文字幕| 国产精品美女网站| 97在线看免费观看视频在线观看| 亚洲人成绝费网站色www| 国产精品大陆在线观看| 在线看日韩欧美| 日本中文字幕不卡免费| 国产视频精品xxxx| 亚洲成年人在线| 青青在线视频一区二区三区| 国产精品精品视频| 2023亚洲男人天堂| 国产精品福利在线观看| 亚洲国产精品久久久久| 欧美亚洲第一页| 欧美色道久久88综合亚洲精品| 久久激情视频免费观看| 国产欧美日韩中文字幕| 中文字幕日韩av综合精品| 国产成人av在线| 亚洲奶大毛多的老太婆| 久久九九精品99国产精品| 国产精品成av人在线视午夜片| 亚洲国产成人91精品| 亚洲第一视频网站| 欧美激情精品久久久久久免费印度| 在线观看视频亚洲| 国产视频在线观看一区二区| 欧美日韩亚洲成人| 91久热免费在线视频| 2023亚洲男人天堂| 久久免费视频观看| 亚洲天堂男人天堂| 91超碰中文字幕久久精品| 91精品国产九九九久久久亚洲| 亚洲剧情一区二区| 欧美专区福利在线| 操人视频在线观看欧美| 亚洲伊人成综合成人网| 日本伊人精品一区二区三区介绍| 欧美国产日韩一区二区三区| 成人夜晚看av| 亚洲人成电影在线观看天堂色| 日韩av免费看网站| 久久久国产视频| 亚洲一区第一页| 狠狠色香婷婷久久亚洲精品| 亚洲欧美日韩一区二区在线| 日韩欧美在线视频免费观看| 色噜噜狠狠色综合网图区| 欧美成人精品三级在线观看| 久久久人成影片一区二区三区观看| 欧美另类在线观看| 国产精品福利无圣光在线一区| 亚洲影视九九影院在线观看| 欧美综合激情网| 美女久久久久久久| 精品久久久久久国产| 欧美一区二区.| 欧美日韩国产123| 这里只有精品在线播放| 91在线观看免费| 久久九九国产精品怡红院| 亚洲午夜性刺激影院| 尤物99国产成人精品视频| 国产成人avxxxxx在线看| 日韩人在线观看| 国产盗摄xxxx视频xxx69| 亚洲女人天堂网| 国内揄拍国内精品| 久久久久久久999精品视频| 国产亚洲美女久久| 日本欧美精品在线| 亚洲成人精品久久| 2021久久精品国产99国产精品| 色噜噜亚洲精品中文字幕| 国产精品影院在线观看| 美日韩在线视频| 日韩欧美一区二区三区| 精品毛片三在线观看| 欧美日本黄视频| 国产免费一区二区三区在线能观看| 欧美性猛交xxxx乱大交蜜桃| 国产精品视频xxxx| 超碰97人人做人人爱少妇| 久久精品国产久精国产思思| 欧美另类99xxxxx| 久久久久久久久久婷婷| 国产精品男人爽免费视频1| 国产精品日韩在线播放| 国模精品视频一区二区三区| 久久人人爽人人爽人人片av高清| 永久免费毛片在线播放不卡| 欧美日韩中文字幕在线视频| 欧美性视频精品| 欧美一区三区三区高中清蜜桃| 日韩成人中文字幕| 中文字幕亚洲色图| 大桥未久av一区二区三区| 久久99视频精品| 久久久久成人精品| 日韩在线视频一区| 91视频免费网站| 在线播放精品一区二区三区| 26uuu亚洲国产精品| 国产欧美一区二区三区视频| 欧美日韩在线观看视频小说|