【前端】【css】flex布局詳解

Flex 布局(Flexible Box Layout,彈性盒子布局)是 CSS3 中的一種布局模式,用于在容器中更高效地分配空間并對齊內容,即使它們的大小是動態未知的。它非常適用于響應式設計。


一、Flex 布局的基本概念

1. 啟用 Flex 布局
  • 只需要給父容器設置:
display: flex;
  • 或者:
display: inline-flex;  /* 行內彈性盒子 */
2. 容器與項目
  • 容器(Flex Container):設置了 display: flex 的元素。
  • 項目(Flex Item):容器內的直接子元素。

二、主軸和交叉軸

  • 主軸(Main Axis):項目排列的方向,默認是水平方向(從左到右)。
  • 交叉軸(Cross Axis):與主軸垂直的方向。

三、Flex 容器的屬性(作用于父元素)

1. flex-direction:主軸方向
說明
row(默認)主軸為水平方向,起點在左
row-reverse主軸為水平方向,起點在右
column主軸為垂直方向,起點在上
column-reverse主軸為垂直方向,起點在下
2. flex-wrap:是否換行
說明
nowrap(默認)不換行
wrap換行,第一行在上方
wrap-reverse換行,第一行在下方
3. flex-flowflex-direction + flex-wrap 的簡寫
flex-flow: row wrap;
4. justify-content:主軸對齊方式
說明
flex-start(默認)起始對齊
flex-end末尾對齊
center居中對齊
space-between兩端對齊,項目之間間隔相等
space-around每個項目兩側間隔相等
space-evenly所有間隔都相等(包括頭尾)
5. align-items:交叉軸對齊方式
說明
stretch(默認)填滿交叉軸
flex-start頂部對齊
flex-end底部對齊
center居中對齊
baseline按基線對齊
6. align-content:多行交叉軸對齊方式(有多行時生效)
說明
stretch(默認)填滿交叉軸
flex-start頂部對齊
flex-end底部對齊
center居中對齊
space-between兩端對齊
space-around間距相等
space-evenly間距全部相等

四、Flex 項目的屬性(作用于子元素)

1. order:定義排列順序
.order { order: 1; }

值越小,越靠前,默認是 0。

2. flex-grow:放大比例
.flex-grow { flex-grow: 1; }

所有項目的 flex-grow 總和決定空間分配比例。

3. flex-shrink:縮小比例
.flex-shrink { flex-shrink: 1; }

為負空間時如何縮小,默認是 1。

4. flex-basis:項目在主軸上的初始大小
.flex-basis { flex-basis: 100px; }
5. flex:簡寫屬性,包含 grow、shrink、basis
flex: 1 0 100px;

通常寫法:

  • flex: 1; 等價于 flex: 1 1 0%
  • flex: auto; 等價于 flex: 1 1 auto
  • flex: none; 等價于 flex: 0 0 auto
6. align-self:單獨設置某個項目在交叉軸上的對齊方式(覆蓋 align-items

五、常見使用場景舉例

1. 水平居中 + 垂直居中
.parent {display: flex;justify-content: center;align-items: center;
}
2. 兩端對齊,中間自適應
.left { flex: 0 0 auto; }
.middle { flex: 1; }
.right { flex: 0 0 auto; }

總結

Flex 是一種強大且靈活的布局方式,核心在于:

  • 設置主軸方向(flex-direction
  • 控制項目在主軸/交叉軸的對齊方式
  • 利用 flex 屬性實現伸縮布局
  • 響應式設計中的利器

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

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

相關文章

LEARNING DYNAMICS OF LLM FINETUNING【論文閱讀筆記】

LEARNING DYNAMICS OF LLM FINETUNING 一句話總結 作者將LLM的學習動力機制拆解成AKG三項,并分別觀察了SFT和DPO訓練過程中??正梯度信號??和??負梯度信號??的變化及其帶來的影響,并得到以下結論: ??SFT通過梯度相似性間接提升無關…

Mac 下載 PicGo 的踩坑指南

Mac 下載 PicGo 的踩坑指南 一、安裝問題 下載地址:https://github.com/Molunerfinn/PicGo/releases 下載之后直接安裝即可,此時打開會報錯:Picgo.app 文件已損壞,您應該將它移到廢紙簍。 這是因為 macOS 為了保護用戶不受惡意…

Element UI 設置 el-table-column 寬度 width 為百分比無效

問題描述: 想要每列寬度不同,不想使用 px 固定值,將 width 設置成百分比,但是每一列還是很窄 原因: el-table 組件會被 vue 解析成 html,vue 直接把百分號去掉把數值當做列寬來呈現,所以&#x…

第五篇:Python面向對象編程(OOP)深度教程

1. 類與對象 1.1 基本概念 ??類??是創建對象的藍圖,定義了對象的??屬性??(數據)和??方法??(行為)。??對象??是類的實例化實體,每個對象擁有獨立的屬性值和共享的類方法 ??示例??:定義Dog類 class Dog:species = "Canis familiaris" …

【數據結構】2.順序表實現通訊錄

文章目錄 一、通訊錄的要求二、通訊錄的具體實現0、 準備工作1、通訊錄的初始化2、通訊錄的銷毀3、通訊錄的展示4、通訊錄添加數據5、通訊錄刪除數據6、通訊錄的查找7、通訊錄的修改8、保存通訊錄數據到文件9、讀取文件內容到通訊錄 三、 通訊錄的完整實現 一、通訊錄的要求 通…

程序化廣告行業(79/89):技術革新與行業發展脈絡梳理

程序化廣告行業(79/89):技術革新與行業發展脈絡梳理 大家好!一直以來,我都熱衷于在技術領域不斷探索,也深知知識共享對于進步的重要性。寫這篇博客,就是希望能和大家一起深入研究程序化廣告行業…

【C++游戲引擎開發】第9篇:數學計算庫GLM(線性代數)、CGAL(幾何計算)的安裝與使用指南

寫在前面 兩天都沒手搓實現可用的凸包生成算法相關的代碼,自覺無法手搓相關數學庫,遂改為使用成熟數學庫。 一、GLM庫安裝與介紹 1.1 vcpkg安裝GLM 跨平臺C包管理利器vcpkg完全指南 在PowerShell中執行命令: vcpkg install glm# 集成到系…

python文件打包無法導入ultralytics模塊

💥打包的 .exe 閃退了?別慌!教你逐步排查 PyInstaller 打包的所有錯誤! 🛠 運行 .exe 查看報錯信息? 正確姿勢: ? importlib 動態導入導致打包失敗?什么是動態導入?? 解決方式: …

【React框架】什么是 Vite?如何使用vite自動生成react的目錄?

什么是 Vite? Vite 是一個基于原生 ES Modules 開發的前端構建工具,由 Evan You(Vue 的作者)開發。它最大的特點包括: 極速冷啟動:因為利用了瀏覽器原生的 ES Modules,所以在開發時無需等待整…

深入解讀 React 純組件(PureComponent)

什么是純組件? React 的純組件(PureComponent)是 React.Component 的一個變體,它通過淺比較(shallow comparison)props 和 state 來自動實現 shouldComponentUpdate() 方法,從而優化性能。 核心特點 1. 自動淺比較: PureCompon…

JavaScript數組方法:`some()`的全面解析與應用

文章目錄 JavaScript數組方法:some()的全面解析與應用一、some()方法的基本概念語法參數說明返回值 二、some()方法的核心特點三、基礎用法示例示例1:檢查數組中是否有大于10的元素示例2:檢查字符串數組中是否包含特定子串 四、實際應用場景1…

判斷兩個 IP 地址是否在同一子網 C

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> // 將點分十進制的 IP 地址轉換為 32 位無符號整數 unsigned int ip_to_uint(const char *ip) { struct in_addr addr; if (inet_pton(AF_INET, ip, &am…

React 組件樣式

在這里插入圖片描述 分為行內和css文件控制 行內 通過CSS中類名文件控制

尚硅谷Java第 4、5 章IDEA,數組

第 4 章&#xff1a;IDEA的使用 第 5 章&#xff1a;數組 5.1 數組的概述 數組(Array)&#xff1a;就可以理解為多個數據的組合。 程序中的容器&#xff1a;數組、集合框架&#xff08;List、Set、Map&#xff09;。 數組中的概念&#xff1a; 數組名 下標&#xff08;或索…

SQL注入基本原理靶場實現

? 一、前言 SQL注入漏洞(SQL injection)是WEB層面高危的漏洞之一&#xff0c;也是常見的攻擊方式。 二、本質 1、什么是SQL注入 SQL 注入是一種利用應用程序對用戶輸入數據過濾不嚴格&#xff0c;將惡意 SQL 代碼插入到正常 SQL 語句中&#xff0c;從而操控數據庫查詢邏輯的…

圖像預處理(OpenCV)

1 圖像翻轉(圖像鏡像旋轉) 在OpenCV中&#xff0c;圖片的鏡像旋轉是以圖像的中心為原點進行鏡像翻轉的。 cv2.flip(img,flipcode) 參數 img: 要翻轉的圖像 flipcode: 指定翻轉類型的標志 flipcode0: 垂直翻轉&#xff0c;圖片像素點沿x軸翻轉 flipcode>0: 水平翻轉&…

PCDN收益高低的關鍵因素

PCDN&#xff08;P2P內容分發網絡&#xff09;收益好的三個主要關鍵因素是&#xff1a;硬件配置與性能、網絡環境與質量、業務調度與策略。 1. 硬件配置與性能 設備穩定性與兼容性 PCDN節點需長時間穩定運行&#xff0c;硬件性能直接影響收益。例如&#xff0c;使用高性能CPU、…

『生成內容溯源系統』詳解

生成內容溯源系統詳解 1. 定義與核心目標 生成內容溯源系統&#xff08;Generative Content Provenance System&#xff09;是指能夠追蹤AI生成內容的來源、生成過程、版權歸屬及修改歷史的技術體系。其核心目標是&#xff1a; 驗證真實性&#xff1a;證明內容由特定AI模型生…

conda如何安裝和運行jupyter

在Conda環境中安裝和運行Jupyter Notebook是一項常見且實用的任務&#xff0c;特別是在數據科學和機器學習項目中。以下是使用Conda安裝和運行Jupyter Notebook的步驟&#xff1a; 安裝Jupyter Notebook 首先&#xff0c;確保你的Conda是最新的。打開終端或Anaconda Prompt&a…

QML之Flickable(滾動區域)

Flickable 是 QML 中用于創建可滾動區域的基礎組件&#xff0c;它比 ScrollView 提供更底層的控制&#xff0c;適合需要自定義滾動行為的場景。 基本用法 qml import QtQuick 2.15Flickable {width: 200height: 200contentWidth: 400 // 內容總寬度contentHeight: 800 // 內…