精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

CSS Flex 布局和 Grid 布局怎么選?

開發 前端
CSS 中的 Flex 布局?和 Grid 布局都是非常強大的布局方案,那什么情況下應該使用 Grid 布局,什么情況下應該使用 Flex 布局呢?本文就來通過一些示例看看兩者之間的區別以及使用場景!

大家好,我是 CUGGZ。

CSS 中的 Flex 布局?和 Grid 布局都是非常強大的布局方案,那什么情況下應該使用 Grid 布局,什么情況下應該使用 Flex 布局呢?本文就來通過一些示例看看兩者之間的區別以及使用場景!

Grid 和 Flexbox 的區別

Grid 是二維布局模型,它有列和行。而 Flexbox 是一維布局模型,可以將其子項目布局為列或行,但不能同時布局行和列。

/* Flexbox */
.wrapper {
display: flex;
}

/* Grid */
.wrapper {
display: grid;
grid-template-columns: 2fr 1fr;
grid-gap: 16px;
}

圖片

可以看到,Flexbox 正在布局元素的內聯列表(對一行元素進行布局),而 CSS 網格使它們組成列和行的網格。當然,也可以使用 Flexbox 布局對一列元素進行布局:

/* Flexbox */
.wrapper {
display: flex;
flex-direction: column;
}

如何決定使用哪個?

在選擇其中一種布局時,可以考慮以下問題:

  • 組件的子項如何顯示?內聯還是作為列和行?
  • 組件如何在各種尺寸的屏幕上顯示?

大多數情況下,如果組件的子項都以內聯的方式顯示,那么 Flexbox 布局可能是最好的解決方案。考慮以下組件:

圖片

這個組件中包含兩個子元素,需要在一行中顯示,就非常適合使用 Flex 布局。

如果布局需要多個列和行,那么 Grid 布局就是最合適的解決方案。考慮以下組件:

圖片

看完這些示例,下面來通過一些具體的示例學習如何決定使用哪個布局方案。

使用場景

CSS Flexbox

(1)網站導航

大多數情況下,網站導航可以使用 CSS Flexbox 來構建。最常見的模式就是左側為網站 Logo,右側為網站導航,中間為空白區域。Flex 就可以輕松實現這個布局:

圖片

布局代碼如下:

.site-header {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}

(2)操作列表

操作列表通常由一組可以執行的操作按鈕組成,它們排列在一行中:

圖片

可以看到,這些操作按鈕都是相鄰的,并且是水平分布的。這種情況就非常適合使用 Flex 來布局:

.actions-list {
display: flex;
}

.actions-list__item {
flex: 1;
}

下面這種包含標題欄或操作欄的場景也同樣適用 Flex 布局:

圖片

這個組件的頁眉和頁腳都有內聯顯示的子元素。對于頁眉,布局代碼如下:

.modal-header {
display: flex;
justify-content: space-between;
}

對于頁腳,Cancel 按鈕比較特殊,可以使用自動左邊距將其推到右側。

.cancel__action {
margin-left: auto;
}

(3)表單元素

下圖第一個組件中,左側的輸入框和右側的按鈕組合是 Flexbox 布局的完美用例:

圖片

在第二個組件中,使用 Flex 也可以快速完成布局。這里輸入框占據了所有剩余空間,其具有動態寬度。布局代碼如下:

.input {
flex: 1 1 auto;
}

(4)評論組件

Flexbox 的另一個常見用例就是評論組件。考慮以下示例:

圖片

這里左側是用戶的頭像,右側是評論內容,其占據了父元素的剩余空間。

(5)卡片組件

卡片組件有很多類型,最常見的卡片設計如下:

圖片

左側的卡片組件為上下布局,此時 Flex 容器的方向是列。右側的卡片組件為左右布局,此時 Flex 容器的方向是行,這是 Flex 布局方向的默認值。

.card {
display: flex;
flex-direction: column;
}

@media (min-width: 800px) {
.card {
flex-direction: row;
}
}

另一種卡片,圖標的下方帶有文本,它可以是一個按鈕、鏈接。這種模式下 Flex 布局同樣適用:

圖片

第一種模式的布局代碼如下:

.card {
display: flex;
justify-content: center;
}

第二種模式的布局代碼如下:

.card {
display: flex;
flex-direction: column;
align-items: center;
}

(6)Tab 菜單

當涉及到占據整個屏幕寬度的元素并且具有應該填滿所有可用空間的項目時,Flexbox 也是完美的解決方案。

圖片

這里,每個項目都應該填充可用空間,并且它們的寬度是相等的。通過將容器元素的 display? 屬性設置為 flex,即可輕松完成。

.tabs__item {
flex-grow: 1;
}

(7)功能列表

Flexbox 的一個很實用功能就是可以反轉元素的方向。默認情況下,Flexbox 的方向是從從左到右的行,我們可以可以這樣來反轉它:

.item {
flex-direction: row-reverse;
}

在下面的例子中,這個功能就非常實用:

圖片

在布局時,可以對偶數行的元素使用上述的方向反轉的屬性值。

(8)內容居中

假設有一個組件,它的內容需要在水平和垂直方向居中。可以通過 text-align 實現文本的水平居中。

圖片

.hero {
text-align: center;
}

可以使用 Flexbox 布局讓內容在水平和垂直方向居中:

.hero {
display: flex;
flex-direction: column;
align-items: center; /* 水平居中 */
justify-content: center; /* 垂直居中 */
}

CSS Grid

(1)側邊欄+內容區

當有側邊欄和內容區時,網格布局就是一個完美的解決方案。考慮以下組件:

圖片

可以在 CSS 中這樣定義:

<div class="wrapper">
<aside>Sidebar</aside>
<main>Main</main>
</div>
@media (min-width: 800px) {
.wrapper {
display: grid;
grid-template-columns: 200px 1fr;
grid-gap: 16px;
}

aside {
align-self: start;
}
}

如果 <aside>? 元素不使用 align-self?,它的高度將與 main 元素相同,無論內容長度如何。

(2)卡片網格

網格布局從名字就可以很好地理解,它很適合布局卡片網格:

圖片

布局代碼如下:

.wrapper {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
grid-gap: 16px;
}

這里的列寬至少為 200px,如果空間不夠,它會將卡片換行。如果視口寬度小于 200px,上面的布局會出現水平滾動。

我們可以僅在視口寬度足夠時才添加網格布局的定義:

@media (min-width: 800px) {
.wrapper {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
grid-gap: 16px;
}
}

(3)部分布局

在下面的設計中,可以使用兩次網格布局。第一次將整個區域劃分為左右兩個區域(左側的側邊欄,右側的表單),第二次在表單中使用網格布局。

圖片

布局代碼如下:

@media (min-width: 800px) {
.wrapper {
display: grid;
grid-template-columns: 200px 1fr;
}

.form-wrapper {
display: grid;
grid-template-columns: 1fr 1fr;
grid-gap: 16px;
}

.form-message,
.form-button {
grid-column: 1 / 3;
}
}

Grid 和 Flexbox 結合使用

上面介紹了這兩種布局單獨使用的場景,當然也可以結合使用這兩種布局。考慮下面的例子,對于卡片列表,可以使用 Grid 布局來實現,對于每個卡片組件,就可以使用 Flexbox 布局來實現:

圖片

以下是對布局的要求:

  • 每行卡片的高度應該相等;
  • Read more 鏈接應位于卡片的末尾,高度不固定;
  • Grid 應該使用 minmax() 函數

<div class="wrapper">
<article class="card">
<img src="sunrise.jpg" alt="" />
<div class="card__content">
<h2><!-- Title --></h2>
<p><!-- Desc --></p>
<p class="card_link"><a href="#">Read more</a></p>
</div>
</article>
</div>
@media (min-width: 500px) {
.wrapper {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
grid-gap: 16px;
}
}

.card {
display: flex; /* [1] */
flex-direction: column; /* [2] */
}

.card__content {
flex-grow: 1; /* [3] */
display: flex; /* [4] */
flex-direction: column;
}

.card__link {
margin-top: auto; /* [5] */
}

對于上面的代碼:

  1. card 元素作為 Flexbox 的容器;
  2. 布局方向為 column,表示卡片元素垂直分布;
  3. 讓卡片內容擴展并填充剩余空間;
  4. 卡片內容作為 Flexbox 的容器;
  5. 使用 margin-top: auto 將鏈接下推,無論卡片高度如何,這都會使其保持在末端。

可以看到,Grid 和 Flexbox 結合使用也不難,使用它們可以輕松實現日常開發的大多數布局。

責任編輯:武曉燕 來源: 前端充電寶
相關推薦

2022-04-15 14:57:57

Flex布局鴻蒙操作系統

2022-10-13 09:01:24

GridCSS二維布局

2021-12-01 09:53:46

CSS 技巧代碼重構

2022-10-08 00:02:00

CSS工具系統

2022-08-01 08:02:25

單元格可視化語法

2017-10-10 15:52:17

前端FlexboxCSS Grid

2024-04-09 10:10:23

GridCSS網格

2018-08-08 15:57:05

csshtml前端

2020-03-26 10:43:57

CSS Grid Ge Grid代碼

2025-04-08 05:55:00

CSS布局Grid

2025-04-27 09:12:42

2010-08-05 13:27:06

Flex布局

2022-03-23 08:01:36

CSSGrid小游戲

2019-04-03 13:00:27

CSSBFC前端

2010-08-06 15:20:25

Flex Builde

2017-03-12 10:38:56

Chromewindows

2022-08-26 09:01:07

CSSFlex 布局

2010-08-16 09:32:01

DivCSS

2010-09-01 11:34:33

CSS布局

2010-08-13 14:39:57

Flex布局
點贊
收藏

51CTO技術棧公眾號

国产不卡视频在线播放| 色琪琪久久se色| 午夜精品一区二区三区电影天堂| 国产一区视频观看| 超碰在线观看91| 欧美激情aⅴ一区二区三区| 亚洲精品电影在线| 免费看污污网站| 日韩激情av| 国产欧美日韩综合| 国产高清精品一区二区| 天堂网视频在线| 欧美在线免费| 亚洲最新av在线| 69亚洲乱人伦| 97精品资源在线观看| 色综合久久久久| 免费网站在线观看视频| 成人性生交大片免费看午夜| 成人黄色国产精品网站大全在线免费观看 | a毛片在线看免费观看| 97se亚洲国产综合自在线观| 51国偷自产一区二区三区| 亚洲永久精品一区| 亚洲在线电影| 久久久久久久91| 看黄色录像一级片| 日产精品一区二区| 亚洲乱码国产乱码精品精天堂| 亚洲一二三四五| 国产精品中文| 欧美三级电影网| 久久国产乱子伦免费精品| 男插女视频久久久| 亚洲色图视频网| 日韩精品久久久免费观看| 亚洲欧美一区二区三| 风间由美一区二区三区在线观看| 成人情趣片在线观看免费| 看黄色一级大片| 久久黄色网页| 17婷婷久久www| 久草精品视频在线观看| 韩日成人av| 欧美激情va永久在线播放| 亚洲熟女www一区二区三区| 久久伦理在线| www国产精品com| 国产麻豆a毛片| 欧美残忍xxxx极端| 丝袜一区二区三区| fc2ppv在线播放| **女人18毛片一区二区| www国产亚洲精品久久网站| 亚洲人做受高潮| 久久精品高清| 久久资源免费视频| 欧美激情精品久久| 亚洲一级一区| 欧洲一区二区视频| 99re这里只有精品在线| 日韩va亚洲va欧美va久久| 国产精品久久久久久久久久久久久 | 欧美性猛交xxxx久久久| av免费网站观看| 韩日一区二区| 欧美人与禽zozo性伦| 免费不卡av网站| 999久久久久久久久6666| 日韩极品精品视频免费观看| 青青草福利视频| 成人羞羞动漫| 欧美成人性生活| 国产午夜视频在线| 久久国产精品久久w女人spa| 国产精品视频大全| 精品国自产在线观看| 成人午夜看片网址| 日本精品二区| 国产黄色在线观看| 姬川优奈aav一区二区| 成年人在线看片| 亚洲91在线| 亚洲国产精品福利| 2019男人天堂| 欧美日韩一卡| 国产精品吹潮在线观看| 成人av无码一区二区三区| 91在线视频观看| 国产精品美女在线播放| 超碰在线视屏| 欧美日韩国产经典色站一区二区三区 | 亚洲综合第一| 爱情岛亚洲播放路线| 一本久道久久综合中文字幕| 99视频在线观看视频| 日本午夜精品| 久久九九全国免费精品观看| 国产一区二区99| 精品一区免费av| 久久精品日韩| 日韩成人伦理| 欧美日韩精品二区第二页| 捆绑裸体绳奴bdsm亚洲| 性欧美69xoxoxoxo| 国产成人精品一区| 国产 日韩 欧美 综合| 国产精品―色哟哟| www黄色日本| 日本99精品| 日韩在线观看av| 国产性猛交╳xxx乱大交| 国产在线看一区| 日韩三级电影网站| 蜜桃麻豆av在线| 日韩精品一区二区在线| 99久久99久久精品免费| 亚洲男女自偷自拍| 国产不卡一区二区在线观看 | 国产福利精品一区二区三区| 精品在线播放| 欧美一区二区色| 亚洲av无码国产综合专区| 一区在线观看免费| 2025韩国理伦片在线观看| 免费av一区| 45www国产精品网站| 粉嫩av一区二区夜夜嗨| 亚洲黄色性网站| 亚洲天堂网站在线| 久久中文视频| 国产精品中文字幕久久久| 国产黄色片在线播放| 欧美日在线观看| 醉酒壮男gay强迫野外xx| 99精品欧美| 国产精品视频福利| 欧美78videosex性欧美| 日韩午夜激情视频| 久草视频在线免费看| 国产成人在线影院| 亚洲成人蜜桃| 国产精品99久久久久久董美香 | 五月天精品视频| 免费看亚洲片| 欧美午夜精品久久久久免费视| 亚洲精品一区| 亚洲深夜福利视频| 正在播放亚洲精品| 国产精品短视频| 亚洲一二三不卡| 欧美日本精品| 精品国产免费久久久久久尖叫 | 合欧美一区二区三区| 99久久精品无码一区二区毛片 | 99精品国产在热久久下载| 国内外成人免费视频| 色老头在线一区二区三区| 日韩av在线网| 国产精品第六页| 中文字幕一区二区三区色视频| 亚洲18在线看污www麻豆 | 国产l精品国产亚洲区久久| 蜜桃一区二区三区| 国产日韩精品综合网站| 怡红院红怡院欧美aⅴ怡春院| 欧美xfplay| 亚洲高清毛片一区二区| 国产无人区一区二区三区| 亚洲久久中文字幕| 欧美私人啪啪vps| 久久影视中文粉嫩av| 日韩精品第一| 久久99视频免费| 日韩大胆视频| 欧美日韩高清一区二区三区| 久久久久久久久久99| 91丨国产丨九色丨pron| 鲁一鲁一鲁一鲁一av| 欧美国产免费| 欧美日韩亚洲免费| 国产精品亚洲欧美一级在线 | 色综久久综合桃花网| 精品国自产拍在线观看| 91精品福利视频| 久久久精品视频在线| 久久久欧美精品sm网站| 亚洲欧美日韩一二三区| 午夜在线视频一区二区区别| 亚洲免费av网| 天堂99x99es久久精品免费| 成人精品一区二区三区| 亚洲天堂免费电影| 九九久久精品一区| av资源在线观看免费高清| 日韩精品中文字幕在线不卡尤物| 久久久久久无码精品大片| 亚洲精品第1页| av手机在线播放| 成人精品视频一区二区三区| 视频二区在线播放| 中国女人久久久| 国产四区在线观看| 欧美午夜精品一区二区三区电影| 国产精品一区二区在线观看 | 精品视频在线看| 三级黄色在线视频| 一级做a爱片久久| 夜夜春很很躁夜夜躁| 99天天综合性| 真实乱偷全部视频| 寂寞少妇一区二区三区| 久久综合久久色| 国产一区导航| 激情小视频网站| 亚洲国产日韩欧美在线| 视频一区二区在线| 日韩中文av| 国产视频一区二区不卡| 玖玖精品一区| 国产一区二区色| 91p九色成人| 日韩av123| 欧美gv在线| 午夜精品蜜臀一区二区三区免费| 2020国产在线视频| 久久精品视频导航| 在线观看美女网站大全免费| 亚洲美女精品久久| 亚洲av成人无码久久精品老人| 日韩美女在线视频| 亚洲成人777777| 日韩午夜精品电影| 不卡视频在线播放| 日韩视频一区在线观看| 99热这里只有精| 日韩欧美一级精品久久| www.五月婷| 欧美r级电影在线观看| www.精品久久| 精品国一区二区三区| 老牛影视av牛牛影视av| 亚洲第一精品福利| 偷拍自拍在线| 国产丝袜一区二区三区| 国产午夜视频在线观看| 国产一区二区美女视频| 五月婷婷在线观看| 久久精品国产成人精品| 亚洲丝袜一区| 久久久久久久久国产精品| 国产精品25p| 日韩av不卡电影| 巨大黑人极品videos精品| 国产综合视频在线观看| 日韩一区二区三区精品| 国产精品免费看一区二区三区| 免费看久久久| 日产精品久久久一区二区| 色777狠狠狠综合伊人| 国产又爽又黄ai换脸| 欧美色一级片| 国产免费成人在线| 久久成人精品无人区| 日本xxxx免费| 久久蜜臀精品av| 在线免费看视频| 亚洲黄色尤物视频| 一级片视频在线观看| 欧美网站大全在线观看| 国产丰满果冻videossex| 亚洲精品av在线| 亚洲欧美视频一区二区| 欧美激情第1页| 精品123区| 91精品入口蜜桃| 久久综合亚洲| 黑人巨茎大战欧美白妇| 国产精品日韩欧美一区| 国产一级片自拍| 97精品国产97久久久久久久久久久久| 成人无码av片在线观看| 亚洲最快最全在线视频| 成人黄色三级视频| 欧美一二三四在线| 久久经典视频| 欧美老妇交乱视频| 国产一区二区精品调教| 国产99在线免费| 99久久亚洲精品蜜臀| 777精品久无码人妻蜜桃| 精品一区二区三区免费视频| 国产麻豆天美果冻无码视频 | 精品久久久久久久久久久久久久久久 | 久久精品视频免费观看| 日本黄色小说视频| 色综合av在线| 高清毛片aaaaaaaaa片| 中文字幕亚洲一区二区三区五十路| 呦呦在线视频| 国产在线一区二区三区| 国产欧美一区| 成人免费播放器| 国产一区二区免费在线| 国产成人无码精品久久二区三| 一区二区三区在线播| 中文字幕一级片| 亚洲欧美日韩天堂一区二区| 黑人极品ⅴideos精品欧美棵| 国产精品永久免费观看| 国产真实有声精品录音| 极品美女扒开粉嫩小泬| 国产成人午夜99999| 欧美成人短视频| 欧美午夜片欧美片在线观看| 黑人精品一区二区| 美乳少妇欧美精品| av日韩在线免费观看| 亚洲第一在线综合在线| 手机精品视频在线观看| 熟妇人妻久久中文字幕| 亚洲一二三专区| 国产成人免费看一级大黄| 久久久精品国产网站| 国产精品99| 自拍另类欧美| 日本免费在线视频不卡一不卡二| 国产精品高清无码在线观看| 精品欧美一区二区三区| 天天射天天色天天干| 国模gogo一区二区大胆私拍 | 亚洲精品91美女久久久久久久| 在线三级电影| av在线不卡观看| 狠狠久久婷婷| 男人网站在线观看| 亚洲成a人片在线观看中文| 六月丁香综合网| 久久久久久av| 秋霞综合在线视频| 日韩在线一级片| 久久综合九色综合97_久久久| 精品成人av一区二区在线播放| 亚洲精品国偷自产在线99热| 麻豆视频在线看| 欧洲国产精品| 麻豆精品久久久| 99久久99久久精品国产| 欧美一区二区三区四区五区 | 色天天综合色天天久久| 九色在线视频蝌蚪| 国产精品久久久久影院日本 | 久久久不卡网国产精品二区| 日本中文字幕久久| 在线视频亚洲欧美| 亚洲视频自拍| 日韩精品视频在线观看视频| 99久久精品国产麻豆演员表| 日本在线播放视频| 综合国产在线视频| 国产 日韩 欧美| 黄色一级片在线看| 2023国产精品| 在线免费av网| 国产69精品久久久| 精品视频国产| 原创真实夫妻啪啪av| 精品成人乱色一区二区| 第一视频专区在线| 亚洲最大的av网站| 国产日韩1区| 99自拍偷拍视频| 亚洲第一福利网站| 日韩经典一区| japanese在线播放| 91美女片黄在线观看| 一级做a爰片久久毛片16| 久久久久久久电影一区| 国产亚洲一区| 人妻巨大乳一二三区| 欧美日韩中文字幕| 九色porny在线| 欧美激情www| 国产精一区二区三区| 4438国产精品一区二区| 久久精品国产久精国产一老狼| 久久人人爽人人爽人人片av不| 2025韩国理伦片在线观看| 亚洲国产日韩在线一区模特| 国产在线视频网站| 国产精品乱子乱xxxx| 美女诱惑一区二区| 伊人久久综合视频| 久久国产精品久久国产精品| 伊人精品一区| 91超薄肉色丝袜交足高跟凉鞋| 欧洲亚洲精品在线| 55av亚洲| 在线观看18视频网站| 国产精品网站一区|