成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

容易忽視的Flex屬性Align-Content

開發 前端
關于 flex 的容器屬性、項目屬性這里就不在贅述了, 網上有很多講的很清楚的文章,推薦阮一峰-flex 布局巧了, Tom 就是看了阮老師的文章,看到 align-content 的時候, 它迷糊了。

[[440698]]

本文轉載自微信公眾號「微醫大前端技術」,作者鄢棟。轉載本文請聯系微醫大前端技術公眾號。

背景

近期做項目,寫頁面的 css 寫的太多了,基本上都要用到 flex 布局, 而我所用到的 flex 布局中的屬性很有限, 基本只會用到flex-direction, justify-content, align-items這三個容器屬性, 最多涉及圖片被擠壓了, 使用一下子項的 flex-shrink: 0;來防止圖片被擠壓。

就當我一邊聽著音樂一邊沒有感情的敲打著justify-content: space-between;的時候, 我的腦袋瓜子好像有兩個小人在吵架:Jerry: 就不能用一下其他沒用過的 flex 屬性嗎!Tom: 又不是不能用!一把梭多快樂!Jerry: 朽木不可雕也!Tom: 朽木仍可灼!Jerry: ...

回過神來,Tom 貌似覺得 Jerry 說的有些道理, 多個方式多條路, 實在不行寫出來讓別人琢磨去(看不懂,<-_<-)。

flex 容器屬性之 align-content

關于 flex 的容器屬性、項目屬性這里就不在贅述了, 網上有很多講的很清楚的文章,推薦阮一峰-flex 布局巧了, Tom 就是看了阮老師的文章,看到 align-content 的時候, 它迷糊了。咋個意思?雖然畫圖了, 但是沒有實踐, 就等于看著健身視頻以為就能瘦是一樣的道理!

于是, Tom 開始開啟了學習 align-content.

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

Tom 思考著, flex 布局有主軸和交叉軸, 也就是 flex 布局默認的兩根軸。那怎么才算是定義了多根軸線呢?經過 Tom 反復實踐, 終于發現了規律, 原來需要顯示的定義一下布局方向, 比如:

  1. <div class="flex-container"
  2.   <div class="flex-item flex-item-1">1</div> 
  3.   <div class="flex-item flex-item-1">1</div> 
  4.   <div class="flex-item flex-item-2">2</div> 
  5.   <div class="flex-item flex-item-2">2</div> 
  6.   <div class="flex-item flex-item-3">3</div> 
  7.   <div class="flex-item flex-item-3">3</div> 
  8.   <div class="flex-item flex-item-4">4</div> 
  9.   <div class="flex-item flex-item-4">4</div> 
  10.   <div class="flex-item flex-item-5">5</div> 
  11.   <div class="flex-item flex-item-5">5</div> 
  12. </div> 

 

 

 

##橫向主軸:定義容器的布局方向flex-direction: row;

  1. .flex-container { 
  2.   height: 400px; 
  3.   display: flex; 
  4.   flex-flow: row wrap; /*必須定義某一個方向, 才會形成多根軸線*/ 
  5.   align-content: flex-end;/*更改 align-content 的值,體驗不同的效果*/ 
  6.   background: gray; 
  7. .flex-item { 
  8.   white-space: nowrap; 
  9.   margin-right: 10px; 
  10.   margin-bottom: 10px; 
  11.   text-align: end
  12. .flex-item-1, .flex-item-3 { 
  13.   width: 60px; 
  14.   height: 80px; 
  15.   background: lightcoral; 
  16. .flex-item-2, .flex-item-4 { 
  17.   width: 90px; 
  18.   height: 40px; 
  19.   background: lightblue; 
  20. .flex-item-5 { 
  21.   width: 105px; 
  22.   height: 20px; 
  23.   background: lightgreen; 

align-content: flex-start 效果

align-content: flex-end 效果

align-content: center 效果

align-content: space-around 效果

align-content: space-between 效果

align-content: stretch 效果

Tom:WTF?! stretch 不是要占滿容器的嗎, 為啥沒有效果!!看阮老師畫的圖也是充滿的呀, why is that so funny?! 文檔也沒有其他內容說明了!這時候, Tom 看了一眼 align-items 的值, 里面也有一個 stretch, 這里阮老師說:“如果項目未設置高度或設為 auto,將占滿整個容器的高度。” Tom: align-content 的 stretch 屬性跟這里應該是一個意思, 驗證一下!Tom 回去看了一下子項目的 css, 發現每個項目都設置了高度, 把這些高度去掉或者改為 auto 試一下:

子項目高度改為 auto 時,align-content: stretch 效果

Tom: 原來如此!只改了 item-1 和 item-3 的高度為 auto, 發現他們得到了延伸 stretch, 而其他沒有修改高度的子項還是沒有延伸。Tom 終于發現其中的奧秘了!!

Tom 又加以思索, 這個是設置了橫向的布局方向, 縱向的是什么表現?也來看一看。

縱向交叉軸:定義容器的布局方向flex-direction: column;

align-content: flex-start 效果

align-content: flex-end 效果

說明設置布局方向為 column 的時候, align-content 表現體現在水平方向上?如果是 center, 那就是水平居中了?試試!!

align-content: center 效果

align-content: space-around 效果

align-content: space-between 效果

align-content: stretch 效果

總結

經過一番實戰后,Tom 可算找到規律了。對于容器屬性align-content, 要讓它生效的條件是:必須顯式的設置布局方向

如果布局方向為橫向主軸:flex-direction: row;

1、此時 align-content 的變化體現在豎直方向

2、如果要讓 align-content: stretch;生效,這個時候應該去掉子項的高度或者設置子項的高度為 auto

如果布局方向為縱向交叉軸:flex-direction: column;

1、此時 align-content 的變化體現在水平方向

2、如果要讓 align-content: stretch;生效,這個時候應該去掉子項的寬度或者設置子項的寬度為 auto

 

這次 Tom 見到 Jerry 了Tom: Hey!Jerry, I've learned a new property of flex, align-content, you can look it up in my blog.Jerry: oh, I see! that's awesome! keep it on, find more intereting properties of flex.Tom: Good idea! I'll do it next time! thank you!Jerry: My pleasure!

 

責任編輯:武曉燕 來源: 微醫大前端技術
相關推薦

2024-04-22 09:12:36

CSSflexgrid

2012-11-28 15:53:16

災難恢復

2017-02-08 09:51:27

JavaScript細節

2012-11-09 13:32:29

2024-02-29 07:48:55

Python編程語言上下文管理器

2017-11-27 12:08:10

后端服務spring mvc項目

2017-08-15 17:09:31

Linux命令

2009-11-17 16:14:28

無線路由器

2019-01-18 13:22:10

布線事項網絡

2014-04-10 16:33:48

iOS 7新特性

2019-08-30 12:01:48

2011-07-03 20:38:33

SEO

2023-11-07 12:25:22

2009-11-09 09:57:39

交換機路由器

2010-08-25 15:49:04

CSSvertical-al

2010-02-23 11:22:47

Java

2011-03-11 15:49:52

Oracle數據庫

2013-01-22 09:21:28

云計算成本私房云

2013-08-01 13:55:55

Android 4.3新特性

2023-10-24 18:05:00

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩精品一区二区三区 | 亚州精品天堂中文字幕 | www日本在线 | 久久久蜜桃一区二区人 | 日韩福利 | 久久国产精品久久国产精品 | 在线观看免费av网 | 国产在线观看不卡一区二区三区 | 毛片黄片免费看 | av在线天天| 免费观看一级毛片视频 | 久久久久国产一区二区三区 | 少妇精品亚洲一区二区成人 | 久久九九色 | 夜夜爽99久久国产综合精品女不卡 | 免费在线国产视频 | 国产又色又爽又黄又免费 | 国产一区二区三区四区区 | 毛片高清 | 国产综合第一页 | 99在线免费观看 | 日韩中文字幕 | 亚洲第1页| 91久久精品国产91久久性色tv | 午夜日韩| 一级免费毛片 | 久久人人网 | 精品国产精品国产偷麻豆 | 九九视频在线观看 | 欧美国产一区二区 | 欧美三区| 射欧美| 欧美视频一区二区三区 | 美女爽到呻吟久久久久 | ririsao久久精品一区 | 午夜视频网站 | 亚洲三级av | 日韩av网址在线观看 | 日韩免费一区二区 | 亚洲欧美综合精品久久成人 | 91在线精品视频 |