国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

前端知識——css 之 flex 布局

這篇具有很好參考價值的文章主要介紹了前端知識——css 之 flex 布局。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

??????更多知識,歡迎訪問我的個人博客:Nan-ying’s Blog

一、認(rèn)識 flex 布局

長久以來,CSS 布局中唯一可靠且跨瀏覽器兼容的布局工具只有 floats 和 positioning。 但是這兩種方法本身存在很大的局限性, 并且他們用于布局實(shí)在是無奈之舉。

一些布局上的痛點(diǎn)無法解決:

  • 比如在父內(nèi)容里面垂直居中一個塊內(nèi)容
  • 比如使容器的所有子項(xiàng)等分可用寬度/高度,而不管有多少寬度/高度可用
  • 比如使多列布局中的所有列采用相同的高度,即使它們包含的內(nèi)容量不同

1. flex 布局的重要概念

兩個重要的概念:

  • 開啟了 flex 布局的元素叫 flex container
  • flex container 里面的直接子元素叫做 flex item

使元素成為 flex container:

  • display: flex: flex container 以 block-level 形式存在(常用)
  • display: inline-flex: flex container 以 inline-level 形式存在

flex item元素具有以下特點(diǎn):

  • flex item的布局將受flex container屬性的設(shè)置來進(jìn)行控制和布局
  • flex item不再嚴(yán)格區(qū)分塊級元素和行內(nèi)級元素
  • flex item默認(rèn)情況下是包裹內(nèi)容的, 但是可以設(shè)置寬度和高度

css flex,CSS,css,前端,css3

二、flex 相關(guān)屬性

屬性分為兩類:
css flex,CSS,css,前端,css3

1. flex container 中的屬性

1.1 flex-direction:item 的排布方向

flex items 默認(rèn)都是沿著 main axis(主軸)從 main start 開始往 main end 方向排布

flex-direction 決定了 main axis 的方向,有 4 個取值:

  • row(默認(rèn)值)
  • row-reverse
  • column
  • column-reverse

css flex,CSS,css,前端,css3

1.2 flex-wrap:排布是否換行

flex-wrap 決定了 flex container 是單行還是多行:

  • nowrap(默認(rèn)):單行
  • wrap:多行
  • wrap-reverse:多行(對比 wrap,cross start 與 cross end 相反)

css flex,CSS,css,前端,css3

注意:
flex-wrap 取默認(rèn)值時,若一行放不下所有的item元素,則會等比例壓縮每個item的寬度,不會換行

1.3 flex-flow:屬性的合并寫法

flex-flow 屬性是 flex-direction 和 flex-wrap 的簡寫,順序任何

flex-flow: row-reverse wrap-reverse

1.4 justify-content:item 的水平對齊方式

justify-content 決定了 flex items 在 main axis 上的對齊方式:

  • flex-start(默認(rèn)值):與 main start 對齊
  • flex-end:與 main end 對齊
  • center:居中對齊
  • space-between
    • flex items 之間的距離相等
    • 與 main start、main end兩端對齊
  • space-around
    • flex items 之間的距離相等
    • flex items 與 main start、main end 之間的距離是 flex items 之間距離的一半
  • space-evenly
    • flex items 之間的距離相等
    • flex items 與 main start、main end 之間的距離等于 flex items 之間的距離

css flex,CSS,css,前端,css3

1.5 align-item:item 的垂直對齊方式

align-items 決定了 flex items 在 cross axis 上的對齊方式:

  • normal:在彈性布局中,效果和stretch一樣
  • flex-start:與 cross start 對齊
  • flex-end:與 cross end 對齊
  • center:居中對齊
  • stretch:當(dāng) flex items 在 cross axis 方向的 size 為 auto 時(未定義高度),會自動拉伸至填充 flex container
  • baseline:與文字的基準(zhǔn)線對齊

css flex,CSS,css,前端,css3

1.6 align-content:多行 item 的垂直對齊方式

align-content 決定了多行 flex items 在 cross axis 上的對齊方式:

  • stretch(默認(rèn)值):與 align-items 的 stretch 類似
  • flex-start:與 cross start 對齊
  • flex-end:與 cross end 對齊
  • center:居中對齊
  • space-between
    • flex items 之間的距離相等
    • 與 cross start、cross end兩端對齊
  • space-around
    • flex items 之間的距離相等
    • flex items 與 cross start、cross end 之間的距離是 flex items 之間距離的一半
  • space-evenly
    • flex items 之間的距離相等
    • flex items 與 cross start、cross end 之間的距離等于 flex items 之間的距離

css flex,CSS,css,前端,css3

2. flex-item 中的屬性

2.1 order:item 的排布順序

order 決定了 flex items 的排布順序:

  • 可以設(shè)置任意整數(shù)(正整數(shù)、負(fù)整數(shù)、0),值越小就越排在前面
  • 默認(rèn)值是 0

2.2 align-self:覆蓋 align-items 設(shè)置的垂直對齊方式

通過 align-self 覆蓋 flex container 設(shè)置的 align-items:

  • auto(默認(rèn)值):遵從 flex container 的 align-items 設(shè)置
  • stretch、flex-start、flex-end、center、baseline,效果跟 align-items 一致

css flex,CSS,css,前端,css3

2.3 flex-grow:item 如何拉伸

flex-grow 決定了 flex items 如何擴(kuò)展(拉伸/成長) :

  • 可以設(shè)置任意非負(fù)數(shù)字(正小數(shù)、正整數(shù)、0),默認(rèn)值是 0
  • 當(dāng) flex container 在 main axis 方向上有剩余 size 時,flex-grow 屬性才會有效

注意:

  • 如果所有 flex items 的 flex-grow 總和 sum 超過 1,每個 flex item 擴(kuò)展的 size = flex container的剩余size * (flex-grow / sum)
  • items 擴(kuò)展后的最終 size 不能超過 max-width\max-height

css flex,CSS,css,前端,css3

2.4 flex-shrink:item 如何收縮

flex-shrink 決定了 flex items 如何收縮(縮小):

  • 可以設(shè)置任意非負(fù)數(shù)字(正小數(shù)、正整數(shù)、0),默認(rèn)值是 1
  • 當(dāng) flex items 在 main axis 方向上超過了 flex container 的 size,flex-shrink 屬性才會有效

注意:

  • 如果所有 flex items 的 flex-shrink 總和超過 1,每個 flex item 收縮的 size = items超出flex container的size * (收縮比例 / 所有flex items的收縮比例之和)
  • flex items 收縮后的最終 size 不能小于 min-width\min-height

2.5 flex-basis:設(shè)置 items 的 base size

flex-basis 用來設(shè)置 flex items 在 main axis 方向上的 base size:

  • auto(默認(rèn)值)、具體的寬度數(shù)值(100px)
  • 若item中某個英文單詞超出flex-basis寬度(中文不會出現(xiàn)此種情況),可以自動顯示完全,若設(shè)置的是width則不可

css flex,CSS,css,前端,css3

決定 flex items 最終 base size 的因素,從優(yōu)先級高到低:

  • max-width\max-height\min-width\min-height
  • flex-basis
  • width\height
  • 內(nèi)容本身的 size

2.6 flex 屬性:屬性的合并寫法

flex 是 flex-grow || flex-shrink || flex-basis 的簡寫,flex 屬性可以指定1個、2個或3個值。
css flex,CSS,css,前端,css3

單值:

  • 一個無單位數(shù)(number): 它會被當(dāng)作 flex-grow 的值。
  • 一個有效的寬度(width)值: 它會被當(dāng)作 flex-basis 的值。
  • 關(guān)鍵字none,auto或initial

雙值:

  • 第一個值必須為一個無單位數(shù),并且它會被當(dāng)作 flex-grow 的值
  • 第二個值必須為以下之一:
    • 一個無單位數(shù):它會被當(dāng)作 flex-shrink 的值
    • 一個有效的寬度值: 它會被當(dāng)作 flex-basis 的值

三值:

  • 第一個值必須為一個無單位數(shù),并且它會被當(dāng)作 flex-grow 的值。
  • 第二個值必須為一個無單位數(shù),并且它會被當(dāng)作 flex-shrink 的值。
  • 第三個值必須為一個有效的寬度值, 并且它會被當(dāng)作 flex-basis 的值

三、一個布局思考

在日常應(yīng)用布局中,經(jīng)常會出現(xiàn)item個數(shù)未知的情況。此時布局會出現(xiàn)下列情況:

css flex,CSS,css,前端,css3

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta http-equiv="X-UA-Compatible" content="IE=edge" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>Document</title>
		<style>
			.container {
				width: 500px;
				background-color: orange;
				
				display: flex;
				flex-wrap: wrap;
				justify-content: space-between;
			}
			
			.item {
				width: 110px;
				height: 140px;
			}
			.container > i {
				/* 只能設(shè)置寬度,不能設(shè)置高度,這樣i的數(shù)量超出時也不會影響布局 */
				width: 110px;
			}
		</style>
	</head>
	
	<body>
		<div class="container">
			<div class="item item1">1</div>
			<div class="item item2">2</div>
			<div class="item item3">3</div>
			<div class="item item1">1</div>
			<div class="item item2">2</div>
			<div class="item item3">3</div>
			<div class="item item1">1</div>
			<div class="item item2">2</div>
			<div class="item item3">3</div>
			<div class="item item3">3</div>
			<div class="item item3">3</div>
			<!-- 添加i的個數(shù)是列數(shù)減-2 -->
			<i></i><i></i>
		</div>
		
		<script src="./js/itemRandomColor.js"></script>
	</body>
</html>

item 多出1個的時候,布局仍是正常的;只有item大于等于2個時,才會出現(xiàn)分散的分布,需要i進(jìn)行補(bǔ)齊。因此添加i的個數(shù)是列數(shù)減-2

css flex,CSS,css,前端,css3文章來源地址http://www.zghlxwxcb.cn/news/detail-724501.html

到了這里,關(guān)于前端知識——css 之 flex 布局的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • CSS3 轉(zhuǎn)換,死磕原理,寫給前端開發(fā)的小程序布局指南

    CSS3 轉(zhuǎn)換,死磕原理,寫給前端開發(fā)的小程序布局指南

    height: 100px; border: 1px solid red; background-color: #cccccc; position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); } 2D 縮放 -?scale() scale()?方法用于改變元素的尺寸。 根據(jù)給定的高度和寬度。 scale(x)?或者?scale(x,y) 一個參數(shù)時,第二個參數(shù)默認(rèn)和第一個一樣。 可取值 -? 默認(rèn)為1

    2024年03月26日
    瀏覽(28)
  • HTML5+CSS3學(xué)習(xí)筆記(九)前端頁面六大布局(文檔流布局、浮動布局、定位布局、表格布局、彈性布局、網(wǎng)格布局)

    HTML5+CSS3學(xué)習(xí)筆記(九)前端頁面六大布局(文檔流布局、浮動布局、定位布局、表格布局、彈性布局、網(wǎng)格布局)

    本系列更多文章,可以查看專欄 HTML+CSS學(xué)習(xí)筆記 塊級元素自上至下垂直排列,行內(nèi)元素自左至右水平排列 塊級元素獨(dú)占一行,行內(nèi)元素不會另起一行 默認(rèn)情況下,height和width決定內(nèi)容區(qū)的大?。粌?nèi)容區(qū)、內(nèi)邊距和邊框構(gòu)成可見區(qū)域的大小;外邊距決定元素的位置 更多內(nèi)容可

    2024年02月02日
    瀏覽(70)
  • CSS3盒模型+flex

    CSS3盒模型+flex

    1.盒模型 標(biāo)準(zhǔn)盒模型: w=width+padding+border h=height+padding+border 怪異盒模型(ie盒模型) w=width包含了(padding+border) h=height包含了(padding+border) 2.CSS3彈性盒(重點(diǎn)新版彈性盒) 彈性盒: 設(shè)置為彈性盒后,父元素為容器,子元素為項(xiàng)目 彈性盒中存在兩根軸,默認(rèn)水平為主軸,垂直為側(cè)軸 項(xiàng)目默認(rèn)沿

    2024年02月11日
    瀏覽(20)
  • 【前端基礎(chǔ)篇】HTML5 + CSS3 入門知識

    萬維網(wǎng)的核心語言、標(biāo)準(zhǔn)通用標(biāo)記語言下的一個應(yīng)用超文本標(biāo)記語言(HTML)的第五次重大修改(這是一項(xiàng)推薦標(biāo)準(zhǔn)、外語原文:W3C Recommendation) HTML5是HTML最新的修訂版本,2014年10月由萬維網(wǎng)聯(lián)盟(W3C)完成標(biāo)準(zhǔn)制定。 HTML5的設(shè)計目的是為了在移動設(shè)備上支持多媒體。 HTML5 簡

    2024年02月09日
    瀏覽(24)
  • CSS---flex布局

    CSS---flex布局

    主要記錄flex布局的要點(diǎn)以及實(shí)例 flex包含6個屬性,分別為:flex-direction、flex-wrap、flex-flow、justify-content、align-items、align-content。 row表示按照行正序排列 row-reverse表示按照行反序排列 column表示按照列正序排列 column-reverse表示按照列反序排列 nowrap為默認(rèn)值,默認(rèn)不換行 wrap表示

    2024年02月09日
    瀏覽(26)
  • CSS Flex布局

    CSS Flex布局

    Flex布局(彈性盒子布局) 是一種用于在容器中進(jìn)行靈活和自適應(yīng)布局的CSS布局模型。通過使用Flex布局,可以更方便地實(shí)現(xiàn)各種不同尺寸和比例的布局,使元素在容器內(nèi)自動調(diào)整空間分配。 目錄 容器屬性 ??display屬性 ??flex-direction屬性 ??flex-wrap屬性 ??flex-flow屬性 ??jus

    2024年02月10日
    瀏覽(24)
  • CSS-Flex布局

    Flex布局是一種彈性盒子布局,適用于構(gòu)建響應(yīng)式的頁面布局 Flex布局是一種彈性盒子布局,適用于構(gòu)建響應(yīng)式的頁面布局。以下是一些Flex布局的技巧: 使用flex屬性設(shè)置彈性容器的布局方式,常見的取值有row(水平排列)、column(垂直排列)、row-reverse和column-reverse等。 例如

    2024年01月16日
    瀏覽(18)
  • CSS 用 flex 布局繪制骰子

    CSS 用 flex 布局繪制骰子

    ? ? ?

    2024年03月10日
    瀏覽(25)
  • CSS-flex布局詳細(xì)講解:

    CSS-flex布局詳細(xì)講解:

    一、flex布局體驗(yàn) 傳統(tǒng)布局與flex彈性布局的區(qū)別: 傳統(tǒng)布局: ·兼容性好 ·布局繁瑣 ·局限性,不能再移動端很好的布局 flex彈性布局: ·操作方便,布局極為簡單,移動端應(yīng)用很廣泛 ·PC端支持情況不好 ·IE11或更低版本僅部分支持或者不支持 建議:1、如果是PC端布局,更多

    2024年02月11日
    瀏覽(23)
  • [HTML]Web前端開發(fā)技術(shù)10(HTML5、CSS3、JavaScript )CSS+DIV頁面布局,固定定位,相對定位relative,絕對定位absolute,層定位的應(yīng)用——喵喵畫網(wǎng)頁

    [HTML]Web前端開發(fā)技術(shù)10(HTML5、CSS3、JavaScript )CSS+DIV頁面布局,固定定位,相對定位relative,絕對定位absolute,層定位的應(yīng)用——喵喵畫網(wǎng)頁

    希望你開心,希望你健康,希望你幸福,希望你點(diǎn)贊! 最后的最后,關(guān)注喵,關(guān)注喵,關(guān)注喵,佬佬會看到更多有趣的博客哦!?。?喵喵喵,你對我真的很重要! 目錄 前言 課后練習(xí) 網(wǎng)頁標(biāo)題:固定定位 網(wǎng)頁標(biāo)題:相對定位relative 網(wǎng)頁標(biāo)題:絕對定位absolute 網(wǎng)頁標(biāo)題:層定

    2024年02月02日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包