CSS flex

目錄

flex-box和flex-item

主軸和副軸

?編輯

flex-box的屬性

flex-direction

flex-wrap

flex-flow

justify-content

?編輯?align-items

align-content

flex-item的屬性

flex-basis

flex-grow

flex-shrink

flex


flex-box和flex-item

當把一個塊級元素的display設置為flex時,這個塊級元素就成為了flex-box,flex-box也稱為flex-container、盒子、容器等,

flex-box內部的所有子塊級元素都是flex-item,flex-item也稱為項目等

主軸和副軸

默認主軸是水平軸,副軸是垂直軸,副軸也叫交叉軸,

軸可以影響item的排列

原始代碼:

    <div class="flex-box"><h2>test</h2><div class="flex-item">1</div><div class="flex-item">2</div><div class="flex-item">3</div><div class="flex-item">4</div><div class="flex-item">5</div><div class="flex-item">6</div><div class="flex-item">7</div><div class="flex-item">8</div><div class="flex-item">9</div><div class="flex-item">10</div><div class="flex-item">11</div><div class="flex-item">12</div><div class="flex-item">13</div><div class="flex-item">14</div><div class="flex-item">15</div></div><style>.flex-box{background-color: aqua;width: 1000px;height: 200px;display: flex;}.flex-item{background-color: blue;width: 100px;height: 100px;border: 1px solid gray;font-size: 50px;}</style>

初始設置了box的width是1000px,內部每個item的width是100px,但是15個item的width超過box的width了,item的width自動縮小了,為什么會導致這種現象,與flex-grow、flex-shrink、flex-basis的默認值有關,默認值為0 1 auto,元素不會自動擴展,但是會按比例收縮。

flex-box的屬性

flex-direction

flex-direction定義了主軸的方向,內部的item在主軸方向上會按設定的方向排列。

flex-direction:row?

flex-direction:row-reverse

flex-direction:column

flex-direction:column-reverse

flex-direction:initial

默認值,為row

flex-wrap

指定 flex 元素單行顯示還是多行顯示。

flex-wrap:nowarp

不換行。flex 的元素被擺放到到一行,這可能導致 flex 容器溢出,為默認值。

flex-wrap:warp

換行。flex 元素 被打斷到多個行中。

flex-wrap:warp-reverse

換行、倒序。

flex-flow

是 flex-direction 和 flex-wrap 的簡寫。

比如flex-flow:column-reverse wrap

justify-content

定義瀏覽器如何沿著彈性容器的主軸分配內容元素之間和周圍的空間。

這里為了展示出效果,把item數降到六個了。

justify-content:start

從行首開始排列。每行第一個元素與行首對齊,同時所有后續的元素與前一個對齊。

justify-content:end

從行尾開始排列。每行最后一個元素與行尾對齊,同時所有前面的元素與后一個對齊。

justify-content:flex-start

和start效果是一樣的。flex-start只用于flex容器。

justify-content:flex-end

元素緊密地排列在彈性容器的主軸結束側。僅應用于彈性布局的元素。對于不是彈性容器里的元素,此值將被視為end。

和end效果是一樣的。

justify-content:center

伸縮元素向每行中點排列。每行第一個元素到行首的距離將與每行最后一個元素到行尾的距離相同。

justify-content:left

左對齊。

justify-content:right

右對齊。

justify-content:space-between

在每行上均勻分配彈性元素。相鄰元素間距離相同。每行第一個元素與行首對齊,每行最后一個元素與行尾對齊。

justify-content:space-around

在每行上均勻分配彈性元素。相鄰元素間距離相同。每行第一個元素到行首的距離和每行最后一個元素到行尾的距離將會是相鄰元素之間距離的一半。

justify-content:space-evenly

flex 項都沿著主軸均勻分布在指定的對齊容器中。相鄰 flex 項之間的間距,主軸起始位置到第一個 flex 項的間距,主軸結束位置到最后一個 flex 項的間距,都完全一樣。

justify-content:stretch

雖然彈性盒子支持strech屬性,但將其應用于彈性盒子時,由于拉伸是由flex屬性控制的,所以stretch的行為與start相同。

?align-items

控制子元素在副軸上的對齊。

align-items:flex-start

將item與 flex 容器的主軸起點或副軸起點對齊。

?

align-items:flex-end

將item與 flex 容器的主軸末端或副軸末端對齊。

?

align-items:center

flex 元素的外邊距框在交叉軸上居中對齊。如果元素的交叉軸尺寸大于 flex 容器,它將在兩個方向上等距溢出。

?

align-items:start

將元素與容器的主軸起點或交叉軸起點對齊。和flex-start一樣。

align-items:end

將元素與容器的主軸末端或交叉軸末端對齊。和flex-end一樣。

align-items:stretch

如果(多個)元素的組合大小小于容器的大小,其中自動調整大小的元素將等量增大,以填滿容器,同時這些元素仍然保持其寬高比例的約束。

但單獨設置stretch不會生效。

?

總的來說:

?

align-content

當flex-box的flex-wrap為wrap時生效。

align-content:start

所有行從容器的起始邊緣開始填充。

?

align-content:end

所有行從容器的結束邊緣開始填充。

?

align-content:flex-start

所有行從垂直軸起點開始填充。第一行的垂直軸起點邊和容器的垂直軸起點邊對齊。接下來的每一行緊跟前一行。

align-content:flex-end

所有行從垂直軸末尾開始填充。最后一行的垂直軸終點和容器的垂直軸終點對齊。同時所有后續行與前一個對齊。

align-content:center

所有行朝向容器的中心填充。每行互相緊挨,相對于容器居中對齊。容器的垂直軸起點邊和第一行的距離相等于容器的垂直軸終點邊和最后一行的距離。

?

align-content:normal

這些項按默認位置填充,就像沒有設置對齊內容值一樣。?

總的來說:

?

flex-item的屬性

flex-basis

指定了 flex 元素在主軸方向上的初始大小。

當一個元素同時被設置了flex-basis?(除值為auto外) 和width(或者在flex-direction:column情況下設置了height) ,flex-basis具有更高的優先級。

默認值為auto。

flex-basis:數字

設置px:設置的是對應item的width。

設置百分比:設置的是對應item的width。百分比是相對于父元素的width。

flex-basis:auto:width等于item本身的width。

flex-grow

用來規定彈性元素在有多余空間時的擴展比例。

是一個無單位的數值,默認值為0,這意味著元素不會主動擴展以填滿多余空間。

若設置為大于0的值,元素就會按比例擴展。例如,有兩個元素,一個flex-grow為1,另一個為2,那么后者擴展的空間會是前者的兩倍。

flex-shrink

規定彈性元素在空間不足時的收縮比例。同樣是無單位的數值,默認值為1,表示元素會按照比例收縮。若設置為0,元素就不會收縮。

flex

flex-grow flex-shrink flex-basis的簡寫形式。

flex:initial

元素會根據自身寬高設置尺寸。它會縮短自身以適應 flex 容器,但不會伸長并吸收 flex 容器中的額外自由空間來適應 flex 容器。相當于將屬性設置為flex:0 1 auto

flex:auto

元素會根據自身的寬度與高度來確定尺寸,但是會伸長并吸收 flex 容器中額外的自由空間,也會縮短自身來適應 flex 容器。這相當于將屬性設置為flex:1 1 auto

flex:none

元素會根據自身寬高來設置尺寸。它是完全非彈性的:既不會縮短,也不會伸長來適應 flex 容器。相當于將屬性設置為flex:0 0 auto

可以使用一個,兩個或三個值來指定flex屬性。

單值語法:

一個有效值:

若該值相當于有效flex-grow,該值相當于設置flex-grow,此時簡寫會擴展為flex:flex-grow 1 0.?

若該值相當于有效flex-basis,該值相當于設置flex-basis,此時簡寫會擴展為flex:1 1 flex-basis

兩個有效值:

第一個值必須是flex-grow有效值。

第二個值若為flex-shrink有效值,此時簡寫會擴展為flex:flex-grow flex-shrink 0?

第二個值若為flex-basis有效值,此時簡寫會擴展為flex:flex-grow 1 flex-basis

個有效值:?

依次對應flex-grow、flex-shrink、flex-basis。

flex-grow值的設置:

負值無效。省略時默認值為 1。 (初始值為?0)

flex-shrink值的設置:

負值無效。省略時默認值為1。 (初始值為?1)

flex-basis值的設置:

若值為0,則必須加上單位,以免被視作伸縮性。省略時默認值為 0。(初始值為 auto)

auto相當于按照元素本身的大小來。

0表示按元素的內容撐開來,設置的width無效。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/914158.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/914158.shtml
英文地址,請注明出處:http://en.pswp.cn/news/914158.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【JMeter】執行系統命令

步驟如下&#xff1a; 添加JSP233 Sampler&#xff1a;右擊線程組>添加>取樣器>JSR223 Sampler2.填寫腳本&#xff0c;執行后查看日志。res "ipconfig".execute().text log.info(res)res "python -c \"print(11)\"".execute().text l…

AI Agent開發學習系列 - langchain之memory(1):內存中的短時記憶

內存中的短時記憶&#xff0c;在 LangChain 中通常指 ConversationBufferMemory 這類“對話緩沖記憶”工具。它的作用是&#xff1a;在內存中保存最近的對話歷史&#xff0c;讓大模型能理解上下文&#xff0c;實現連續對話。 對話緩沖記憶”工具 主要特點 只保留最近的對話內容…

uniapp實現微信小程序端圖片保存到相冊

效果圖展示 安裝插件海報畫板導入到項目里面&#xff0c;在頁面直接使用 <template><view><button click"saveToAlbum" class"save-button">保存到相冊</button><image :src"path" mode"widthFix" v-if&qu…

Java生產帶文字、帶邊框的二維碼

Java 生成帶文字、帶邊框的二維碼1、Java 生成帶文字的二維碼1.1、導入jar包1.2、普通單一的二維碼1.2.1、代碼示例1.2.2、效果1.3、帶文字的二維碼1.&#xff13;.&#xff11;、代碼示例1.3.2、效果2、帶邊框的二維碼2.1、代碼示例2.2、帶邊框的二維碼效果 1、Java 生成帶文字…

ARM單片機啟動流程(三)(棧空間綜合理解及相關實際應用)

文章目錄1、引出棧空間問題2、解決問題2.1、RAM空間2.2、RAM空間具體分布2.3、關于棧空間的使用2.4、棧溢出2.5、變量的消亡2.6、回到關鍵字static2.7、合法性的判斷1、引出棧空間問題 從static關鍵字引出該部分內容。 為什么能從static引出來&#xff1f; 在使用該關鍵字的…

【RK3568+PG2L50H開發板實驗例程】FPGA部分 | 鍵控LED實驗

本原創文章由深圳市小眼睛科技有限公司創作&#xff0c;版權歸本公司所有&#xff0c;如需轉載&#xff0c;需授權并注明出處&#xff08;www.meyesemi.com) 1.實驗簡介 實驗目的&#xff1a; 從創建工程到編寫代碼&#xff0c;完成引腳約束&#xff0c;最后生成 bit 流下載到…

【Python練習】039. 編寫一個函數,反轉一個單鏈表

039. 編寫一個函數,反轉一個單鏈表 039. 編寫一個函數,反轉一個單鏈表方法 1:迭代實現運行結果代碼解釋方法 2:遞歸實現運行結果代碼解釋選擇方法迭代法與遞歸法的區別039. 編寫一個函數,反轉一個單鏈表 在 Python 中,可以通過迭代或遞歸的方式反轉一個單鏈表。 方法 1…

BERT代碼簡單筆記

參考視頻&#xff1a;BERT代碼(源碼)從零解讀【Pytorch-手把手教你從零實現一個BERT源碼模型】_嗶哩嗶哩_bilibili 一、BertTokenizer BertTokenizer 是基于 WordPiece 算法的 BERT 分詞器&#xff0c;繼承自 PreTrainedTokenizer。 繼承的PretrainedTokenizer&#xff0c;具…

PID控制算法理論學習基礎——單級PID控制

這是一篇我在學習PID控制算法的過程中的學習記錄。在一開始學習PID的時候&#xff0c;我也看了市面上許多的資料&#xff0c;好的資料固然有&#xff0c;但是更多的是不知所云。&#xff08;有的是寫的太過深奧&#xff0c;有的則是照搬挪用&#xff0c;對原理則一問三不知&…

【Elasticsearch】function_score與rescore

它們倆都是用來“**干涉評分**”的&#xff0c;但**工作階段不同、性能開銷不同、能做的事也不同**。一句話總結&#xff1a;> **function_score** 在 **第一次算分** 時就動手腳&#xff1b; > **rescore** 在 **拿到 Top-N 結果后** 再“重新打分”。下面把“能干嘛”…

無廣告純凈體驗 WPS2016 精簡版:移除聯網模塊 + 非核心組件,古董電腦也能跑

各位辦公小能手們&#xff01;今天給你們介紹一款超神的辦公軟件——WPS2016精簡版&#xff01;它有多小呢&#xff1f;才33MB&#xff0c;簡直就是軟件界的小不點兒&#xff01;別看它個頭小&#xff0c;功能可一點兒都不含糊&#xff0c;文字、表格、演示這三大功能它全都有。…

《PyWin32:Python與Windows的橋梁,解鎖系統自動化新姿勢》

什么是 PyWin32在 Windows 平臺的 Python 開發領域中&#xff0c;PyWin32 是一個舉足輕重的庫&#xff0c;它為 Python 開發者打開了一扇直接通往 Windows 操作系統底層功能的大門。簡單來說&#xff0c;PyWin32 是用于 Python 訪問 Windows API&#xff08;Application Progra…

vite如何生成gzip,并在服務器上如何設置開啟

1. 安裝插件npm install vite-plugin-compression -D2. 在 vite.config.ts 中配置TypeScriptimport { defineConfig } from vite import compression from vite-plugin-compressionexport default defineConfig({plugins: [compression({algorithm: gzip,ext: .gz,threshold: 1…

1068萬預算!中國足協大模型項目招標,用AI技術驅動足球革命

中國足協啟動國際足聯“前進計劃”下的大數據模型項目&#xff0c;預算1068萬元。該項目將建立足球大數據分析平臺&#xff0c;利用AI技術為國家隊、青少年足球、業余球員及教練員裁判員提供精準數據分析服務&#xff0c;旨在通過科技手段提升中國足球競技水平。 中國足球迎來數…

AI產品經理面試寶典第12天:AI產品經理的思維與轉型路徑面試題與答法

多樣化思維:如何跳出單一框架解題? 面試官:AI產品常面臨復雜場景,請舉例說明你如何運用多樣化思維解決問題? 你的回答:我會從三個維度展開:多角度拆解需求本質,多層級融合思維模式,多變量尋找最優解。比如設計兒童教育機器人時,不僅考慮功能實現(技術層),還融入情…

vscode.window對象講解

一、vscode.window 核心架構圖 #mermaid-svg-fyCxPz1vVhkf96nE {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-fyCxPz1vVhkf96nE .error-icon{fill:#552222;}#mermaid-svg-fyCxPz1vVhkf96nE .error-text{fill:#5522…

為什么一個 @Transactional 注解就能開啟事務?揭秘 Spring AOP 的底層魔法

你是否也曾深陷在各種“額外”邏輯的泥潭&#xff0c;為了給一個核心業務方法增加日志、權限校驗或緩存&#xff0c;而不得不將這些非核心代碼硬塞進業務類中&#xff0c;導致代碼臃腫、職責不清&#xff1f;是時候用代理設計模式 (Proxy Design Pattern) 來解脫了&#xff01;…

《Spring 中上下文傳遞的那些事兒》Part 8:構建統一上下文框架設計與實現(實戰篇)

&#x1f4dd; Part 8&#xff1a;構建統一上下文框架設計與實現&#xff08;實戰篇&#xff09; 在實際項目中&#xff0c;我們往往需要處理多種上下文來源&#xff0c;例如&#xff1a; Web 請求上下文&#xff08;RequestContextHolder&#xff09;日志追蹤上下文&#xf…

配置驅動開發:初探零代碼構建嵌入式軟件配置工具

前言在嵌入式軟件開發中&#xff0c;硬件初始化與寄存器配置長期依賴人工編寫重復代碼。以STM32外設初始化為例&#xff0c;開發者需手動完成時鐘使能、引腳模式設置、參數配置等步驟&#xff0c;不僅耗時易錯&#xff08;如位掩碼寫反、模式枚舉值混淆&#xff09;&#xff0c…

Elasticsearch混合搜索深度解析(下):執行機制與完整流程

引言 在上篇中&#xff0c;我們發現了KNN結果通過SubSearch機制被保留的關鍵事實。本篇將繼續深入分析混合搜索的執行機制&#xff0c;揭示完整的處理流程&#xff0c;并解答之前的所有疑惑。 深入源碼分析 1. SubSearch的執行機制 1.1 KnnScoreDocQueryBuilder的實現 KNN結果被…