亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
博主信息
博文 16
粉絲 0
評(píng)論 0
訪問(wèn)量 22143
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
什么是flex布局,它的常用屬性有哪些
剛哥哥
原創(chuàng)
4021人瀏覽過(guò)

什么是flex 布局;

flex是 flexible box 的縮寫(xiě),就是彈性布局的意思。

任何一個(gè)元素(塊元素、行內(nèi)塊元素、行內(nèi)元素),都可以設(shè)置為彈性盒子屬性。

語(yǔ)法:塊元素: display:flex; 行內(nèi)元素:display:inline-flex;

注意:webkit 內(nèi)核的瀏覽器,須要加上 -webkit 前綴;

  1. 須要注意的是:設(shè)置為flex 布局后,子元素 clear(清除浮動(dòng))、float(浮動(dòng))和vertical-align(垂直對(duì)齊方式)屬性將失效;

flex布局的基本概念:

  1. 設(shè)置為flex布局的元素,稱(chēng)為flex容器,它的所有子元素就是容器成員,被稱(chēng)為項(xiàng)目。

flex容器默認(rèn)有兩個(gè)軸:

水平主軸(main axis)和垂直交叉軸(cross axis)。

  1. 主軸的開(kāi)始位置叫做 main start(與容器邊框的交叉點(diǎn)),結(jié)束位置叫做 main end;
  2. 交叉軸的開(kāi)始位置叫做cross start,結(jié)束位置叫做 cross end;

項(xiàng)目(容器成員)默認(rèn)沿著主軸排列,單個(gè)項(xiàng)目占據(jù)的主軸空間叫做main size,占據(jù)的交叉軸空間叫做cross size;

容器的屬性:

1、flex-direction 設(shè)置項(xiàng)目的排列方向;

值:

  1. row (默認(rèn)值):主軸為水平方向,起點(diǎn)在左端;
  2. row-reverse: 主軸為水平方向,起點(diǎn)在右端;
  3. column:主軸為垂直方向,起點(diǎn)在上端。
  4. column-reverse: 主軸為垂直方向,起點(diǎn)在下端。

2、flex-wrap 設(shè)置項(xiàng)目換行方式;

值:

  1. nowrap(默認(rèn)值) :不換換;
  2. wrap :換行,第一行在上方;
  3. wrap-reverse: 換行,第一行在下方;

3、flex-flow(常用,設(shè)置主軸方向和換行方式)

flex-flow屬性是flex-direction屬性和flex-wrap屬性的簡(jiǎn)寫(xiě)形式,默認(rèn)值為row nowrap

值;

  1. row(默認(rèn)值):
  2. row-reverse
  3. column
  4. column-reverse
  5. nowrap | wrap | wrap-reverse

4、justify-content :(常用)定義項(xiàng)目在主軸上的對(duì)齊方式。

值:

  1. flex-start(默認(rèn)值):左對(duì)齊
  2. flex-end:右對(duì)齊
  3. center 居中
  4. space-between:兩端對(duì)齊,項(xiàng)目之間的間隔都相等。
  5. space-around:每個(gè)項(xiàng)目?jī)蓚?cè)的間隔相等。所以,項(xiàng)目之間的間 隔比項(xiàng)目與邊框的間隔大一倍。

5、align-items: 定義項(xiàng)目在交叉軸上的對(duì)齊方式;

值:

  1. flex-start:交叉軸的起點(diǎn)對(duì)齊。
  2. flex-end:交叉軸的終點(diǎn)對(duì)齊。
  3. center:交叉軸的中點(diǎn)對(duì)齊。
  4. baseline: 項(xiàng)目的第一行文字的基線(xiàn)對(duì)齊。
  5. stretch(默認(rèn)值):如果項(xiàng)目未設(shè)置高度或設(shè)為auto,將占滿(mǎn)整個(gè)容器的高度。

6、align-content :定義項(xiàng)目在多行容器中的對(duì)齊方式;如果項(xiàng)目只有一行容器,該屬性不起作用。

值:

  1. flex-start:與交叉軸的起點(diǎn)對(duì)齊。
  2. flex-end:與交叉軸的終點(diǎn)對(duì)齊。
  3. center:與交叉軸的中點(diǎn)對(duì)齊。
  4. space-between:與交叉軸兩端對(duì)齊,軸線(xiàn)之間的間隔平均分布。
  5. space-around:每根軸線(xiàn)兩側(cè)的間隔都相等。所以,軸線(xiàn)之間的間隔比軸線(xiàn)與邊框的間 隔大一倍。
  6. stretch(默認(rèn)值):軸線(xiàn)占滿(mǎn)整個(gè)交叉軸。

項(xiàng)目的屬性:

1、order屬性;定義項(xiàng)目在主軸上的排列順序;

  1. 語(yǔ)法: *{order: 1}數(shù)字1是根據(jù)需求自己定義的值,填寫(xiě)整數(shù),*表示須要設(shè)置排序的項(xiàng)目;

2、flex屬性:定義項(xiàng)目的縮放比例與基準(zhǔn)款寬;

  1. flex-grow/flex-shrink/flex-basis的簡(jiǎn)寫(xiě),默認(rèn)值為0 1 auto,后面2各屬性可選;
  2. flex屬性有兩個(gè)快捷值: noneautonone表示0 0 auto)(auto表示1 1 auto)

3、align-self: 定義單個(gè)項(xiàng)目在交叉軸上的對(duì)齊方式;可覆蓋align-items屬性。

  1. 默認(rèn)值為auto,表示繼承父元素的align-items屬性,如果沒(méi)有父元素,則等同于stretch。

4、flex-grow屬性

  1. flex-grow屬性定義項(xiàng)目的放大比例,默認(rèn)為0,即如果存在剩余空間,也不放大。
  2. flex-grow:1;默認(rèn)值為0;

5、flex-shrink屬性

  1. flex-shrink:屬性定義項(xiàng)目的縮小比例,默認(rèn)為1,即如果空間不足,該項(xiàng)目將縮小。

6、flex-basis屬性

  1. flex-basis屬性定義項(xiàng)目在分配多余空間之前,項(xiàng)目占據(jù)的主軸空間(main size)。瀏覽 器根據(jù)這個(gè)屬性,計(jì)算主軸是否有多余空間。它的默認(rèn)值為auto,即項(xiàng)目的本來(lái)大小。
  2. 語(yǔ)法:
  3. .項(xiàng)目 {
  4. flex-basis: <length> | auto; /* default auto */
  5. }
  6. 它可以設(shè)為跟widthheight屬性一樣的值(比如500px),則項(xiàng)目將占據(jù)固定空間。

代碼練習(xí):

  1. <title>flex布局示例代碼</title>
  2. <style>
  3. * {
  4. margin: 0;
  5. padding: 0;
  6. box-sizing: border-box;
  7. }
  8. .rongqi {
  9. width: 480px;
  10. height: 180px;
  11. background-color: skyblue;
  12. display: flex;
  13. /* 設(shè)置項(xiàng)目排列方式 */
  14. /* flex-direction
  15. row(默認(rèn)值):主軸為水平方向,起點(diǎn)在左端。
  16. row-reverse:主軸為水平方向,起點(diǎn)在右端。
  17. column:主軸為垂直方向,起點(diǎn)在上沿。
  18. column-reverse:主軸為垂直方向,起點(diǎn)在下沿。 */
  19. /* flex-direction: row;
  20. flex-direction:row-reverse;
  21. flex-direction: column-reverse;
  22. flex-direction: column; */
  23. /* 設(shè)置項(xiàng)目換行方式 */
  24. /* flex-wrap */
  25. /* nowrap: 默認(rèn)值 不換行
  26. wrap:換行,第一行上方(向下?lián)Q行)
  27. wrap-reverse: 換行,第一行在下方(向上換行) */
  28. /* flex-wrap:wrap;
  29. flex-wrap: nowrap;
  30. flex-wrap: wrap-reverse; */
  31. /* 設(shè)置主軸方向與換行方式 */
  32. /* flex-flow */
  33. /* 垂直(起點(diǎn)在下方),換行 */
  34. /* flex-flow:column wrap; */
  35. /* 水平從左往右排,不換行 */
  36. /* flex-flow: row nowrap; */
  37. /* 垂直(起點(diǎn)在上方),不換行 */
  38. /* flex-flow:column nowrap; */
  39. /* 設(shè)置項(xiàng)目在主軸上的對(duì)齊方式 */
  40. /* justify-content: */
  41. /* 從左往右排并且對(duì)齊,默認(rèn)值 */
  42. /* justify-content: flex-start; */
  43. /* 從右往左排 并且對(duì)齊*/
  44. /* justify-content: flex-end; */
  45. /* 居中排列 */
  46. /* justify-content: center; */
  47. /* 兩端對(duì)齊,并且項(xiàng)目之間的間隔都相等 */
  48. /* justify-content: space-between; */
  49. /* 每個(gè)項(xiàng)目?jī)蓚?cè)的間隔相等,項(xiàng)目之間的間隔比項(xiàng)目與邊框的間隔大一倍 */
  50. /* justify-content: space-around; */
  51. /* 設(shè)置項(xiàng)目在交叉軸上的對(duì)齊方式 */
  52. /* align-items */
  53. /* flex-start 從交叉軸的起點(diǎn)對(duì)齊 */
  54. /* align-items: flex-start; */
  55. /* flex-end 從交叉軸的終點(diǎn)對(duì)齊 */
  56. /* align-items: flex-end; */
  57. /* center 從交叉軸的中間點(diǎn)對(duì)齊 */
  58. /* align-items: center; */
  59. /* flex-start 從交叉軸的起點(diǎn)對(duì)齊 */
  60. /* baseline 從項(xiàng)目的第一行文字基線(xiàn)對(duì)齊 */
  61. /* align-items: baseline; */
  62. /* 默認(rèn)值,如果項(xiàng)目沒(méi)有設(shè)置高度或者設(shè)置為auto時(shí),將占滿(mǎn)整個(gè)容器高度 */
  63. /* align-items:stretch; */
  64. /* 設(shè)置項(xiàng)目在多行容器中的對(duì)齊方式 */
  65. /* align-content:; */
  66. /* 與交叉軸的起點(diǎn)對(duì)齊 */
  67. /* align-content: flex-start; */
  68. /* 與交叉軸的終點(diǎn)對(duì)齊 */
  69. /* align-content:flex-end; */
  70. /* 與交叉軸的中間點(diǎn)對(duì)齊 */
  71. /* align-content: center; */
  72. /* 與交叉軸的兩端(上下/左右)對(duì)齊,軸線(xiàn)之間的間隔平均分布 */
  73. /* flex-flow:column wrap; */
  74. /* align-content:space-between; */
  75. /* 每根軸線(xiàn)(水平)上下兩側(cè)的間隔相等,靠邊框的一側(cè)的間隔是軸線(xiàn)之間的間隔的一半 */
  76. /* align-content: space-around; */
  77. /* 占滿(mǎn)整個(gè)交叉軸,默認(rèn)值 */
  78. /* align-content: stretch; */
  79. /* 允許換行 */
  80. /* flex-wrap: wrap; */
  81. /* 設(shè)置主軸為水平方向 */
  82. flex-flow: row wrap;
  83. }
  84. .rongqi .xiangmu {
  85. width: 60px;
  86. height: 60px;
  87. background-color: red;
  88. border: 1px solid violet;
  89. }
  90. /* 項(xiàng)目屬性 */
  91. /* 項(xiàng)目屬性有:
  92. order(排序、默認(rèn)為零,數(shù)字越小排名越靠前,可以為負(fù)數(shù))
  93. flex-grow(定義項(xiàng)目的放大比例,默認(rèn)為0,即如果存在剩余空間也不放大)
  94. flex-shrink(定義項(xiàng)目的縮小比例,默認(rèn)為1,即如果空間不足,該項(xiàng)目將自動(dòng)縮?。?/span>
  95. flex-basis(定義項(xiàng)目在分配多余空間之前,項(xiàng)目占據(jù)的主軸空間(main size),瀏覽器根據(jù)這個(gè)屬性,計(jì)算主軸是否有多
  96. 余空間,它的默認(rèn)值為auto,即項(xiàng)目原本的大小。值可以設(shè)置根寬高一樣的值,這樣它的空間會(huì)被固定)
  97. flex(這屬性最常用,flex是 flex-frow、flex-shrink、flex-basis的簡(jiǎn)寫(xiě)語(yǔ)法,默認(rèn)值為(0 1 auto),后面兩個(gè)屬性可選,
  98. 快捷值:[auto(1 1 auto)、none (0 0 auto)]語(yǔ)法:flex:flex-grow flex-shrink flex-basis;
  99. align-self(設(shè)置單個(gè)項(xiàng)目的對(duì)齊方式(與其它項(xiàng)目的對(duì)齊方式不一樣,個(gè)性化定制對(duì)齊方式)可以覆蓋align-itmes屬性。默認(rèn)
  100. 值為 auto,即繼承父元素的align-itmes屬性,如果沒(méi)有父元素,則等同于stretch(占滿(mǎn)整個(gè)容器高度)) */
  101. /* 排列順序 */
  102. /* .rongqi .xiangmu:first-of-type {
  103. order: 2;
  104. }
  105. .rongqi .xiangmu:nth-of-type(2) {
  106. order: 3;
  107. }
  108. .rongqi .xiangmu:nth-of-type(5) {
  109. order: -1;
  110. } */
  111. /* 放大比例,0為默認(rèn),有剩余也不放大;都為1 有剩余空間 等分;某個(gè)項(xiàng)目為2,其它為1,為2的項(xiàng)目不為1的項(xiàng)目多占1倍的空間 */
  112. /* .rongqi .xiangmu:nth-of-type(1) {
  113. flex-grow: 0;
  114. flex-grow: 1;
  115. }
  116. .rongqi .xiangmu:nth-of-type(3) {
  117. flex-grow: 0;
  118. flex-grow: 1;
  119. }
  120. .rongqi .xiangmu:nth-of-type(2) {
  121. flex-grow: 2;
  122. flex-grow: 1;
  123. } */
  124. /* 定義項(xiàng)目縮小比例,默認(rèn)為1,即如果空間不足,該項(xiàng)目將縮小,通過(guò)設(shè)置值來(lái)控制項(xiàng)目是否縮小,多個(gè)項(xiàng)目可以分別設(shè)置,值越小優(yōu)先級(jí)越高(不縮?。?*/
  125. /* .rongqi .xiangmu:first-of-type{
  126. flex-shrink:0;
  127. } */
  128. /* 定義項(xiàng)目在分配多余空間之前,項(xiàng)目占據(jù)的主軸空間 */
  129. /* .rongqi .xiangmu:first-of-type{
  130. flex-basis: 200px;
  131. }
  132. */
  133. /* 語(yǔ)法:flex:flex-grow flex-shrink flex-basis; */
  134. /* .rongqi .xiangmu:nth-of-type(9){
  135. flex:auto;
  136. flex:auto;
  137. } */
  138. /* 定義單個(gè)項(xiàng)目的對(duì)齊方式 align-self */
  139. .rongqi .xiangmu:nth-of-type(9) {
  140. align-self: flex-end;
  141. align-self: flex-start;
  142. align-self: center;
  143. align-self: baseline;
  144. align-self: stretch;
  145. }
  146. </style>
  147. </head>
  148. <body>
  149. <div class="rongqi">
  150. <div class="xiangmu">1</div>
  151. <div class="xiangmu">2</div>
  152. <div class="xiangmu">3</div>
  153. <div class="xiangmu">4</div>
  154. <div class="xiangmu">5</div>
  155. <div class="xiangmu">6</div>
  156. <div class="xiangmu">7</div>
  157. <div class="xiangmu">8</div>
  158. <div class="xiangmu">8</div>
  159. <div class="xiangmu">7</div>
  160. </div>
  161. </body>
批改老師:天蓬老師天蓬老師

批改狀態(tài):合格

老師批語(yǔ):flex已經(jīng)應(yīng)用了十幾年了,已成為標(biāo)準(zhǔn),不需要再加瀏覽器前綴了,除非用戶(hù)使用了非常古老的瀏覽器
本博文版權(quán)歸博主所有,轉(zhuǎn)載請(qǐng)注明地址!如有侵權(quán)、違法,請(qǐng)聯(lián)系admin@php.cn舉報(bào)處理!
全部評(píng)論 文明上網(wǎng)理性發(fā)言,請(qǐng)遵守新聞評(píng)論服務(wù)協(xié)議
0條評(píng)論
作者最新博文
關(guān)于我們 免責(zé)申明 意見(jiàn)反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線(xiàn)php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長(zhǎng)!
關(guān)注服務(wù)號(hào) 技術(shù)交流群
PHP中文網(wǎng)訂閱號(hào)
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號(hào)
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)

  • 登錄PHP中文網(wǎng),和優(yōu)秀的人一起學(xué)習(xí)!
    全站2000+教程免費(fèi)學(xué)