【前端】CSS Flexbox布局示例介紹

CSS Flexbox(彈性盒子)簡介

Flexbox 是一種一維布局模型,用于高效處理元素在容器內的空間分配、對齊和排序。它通過父容器(flex container)和子元素(flex items)的配合實現靈活響應式布局。


核心概念

  1. 容器屬性(作用于父元素)

    • display: flex | inline-flex;
    • flex-direction: 主軸方向(row | column | row-reverse | column-reverse
    • flex-wrap: 換行(nowrap | wrap | wrap-reverse
    • justify-content: 主軸對齊(center | space-between | space-around 等)
    • align-items: 交叉軸對齊(stretch | center | flex-start 等)
  2. 項目屬性(作用于子元素)

    • order: 排序優先級(數值越小越靠前)
    • flex-grow: 放大比例(默認 0 不放大)
    • flex-shrink: 縮小比例(默認 1 可縮小)
    • flex-basis: 初始尺寸(auto | 長度值
    • align-self: 覆蓋父容器的 align-items

關鍵優勢

  • 自適應布局:元素自動填充/收縮適應容器。
  • 簡化對齊:無需浮動或定位即可實現居中/均分。
  • 響應式友好:結合媒體查詢輕松適配不同屏幕。

💡 提示:Flexbox 適合局部布局(如導航、卡片列表),復雜網格布局建議使用 CSS Grid。

以下是整合后的Flexbox示例代碼,每個示例均為完整HTML+CSS文件,可直接運行:

示例1:水平居中導航欄

<!DOCTYPE html>
<html>
<head>
<style>
.navbar {display: flex;justify-content: center;gap: 20px;background: #333;padding: 10px;
}
.navbar > div {color: white;padding: 5px 10px;border-radius: 4px;transition: background 0.3s;
}
.navbar > div:hover {background: #555;cursor: pointer;
}
</style>
</head>
<body>
<div class="navbar"><div>首頁</div><div>產品</div><div>關于</div><div>聯系</div>
</div>
</body>
</html>

示例2:自適應兩欄布局

<!DOCTYPE html>
<html>
<head>
<style>
.container {display: flex;height: 200px;border: 1px solid #ccc;margin-top: 20px;
}
.sidebar {flex: 0 0 200px;background: #3498db;color: white;padding: 20px;font-weight: bold;
}
.content {flex: 1;background: #ecf0f1;padding: 20px;
}
</style>
</head>
<body>
<div class="container"><div class="sidebar">側邊欄導航</div><div class="content"><h3>主要內容區</h3><p>自適應填充剩余空間</p></div>
</div>
</body>
</html>

示例3:響應式相冊布局

<!DOCTYPE html>
<html>
<head>
<style>
.gallery {display: flex;flex-wrap: wrap;justify-content: center;gap: 15px;padding: 20px;background: #f5f5f5;margin-top: 20px;
}
.gallery > div {width: 120px;height: 120px;background: #e74c3c;color: white;display: flex;align-items: center;justify-content: center;border-radius: 8px;box-shadow: 0 2px 4px rgba(0,0,0,0.1);transition: transform 0.3s;
}
.gallery > div:hover {transform: scale(1.05);
}
@media (max-width: 600px) {.gallery > div {width: 100px;height: 100px;}
}
</style>
</head>
<body>
<div class="gallery"><div>風景</div><div>建筑</div><div>人像</div><div>美食</div><div>動物</div><div>夜景</div>
</div>
</body>
</html>

示例4:動態排序卡片

<!DOCTYPE html>
<html>
<head>
<style>
.card-container {display: flex;flex-direction: column;gap: 10px;max-width: 400px;margin-top: 20px;
}
.card {padding: 15px;border: 1px solid #ddd;border-radius: 8px;background: #f9f9f9;
}
.card:nth-child(1) { order: 3; background: #ffebee; }
.card:nth-child(2) { order: 1; background: #e8f5e9; }
.card:nth-child(3) { order: 2; background: #e3f2fd; }
.card:nth-child(4) { order: 4; background: #fff8e1; }
</style>
</head>
<body>
<div class="card-container"><div class="card">卡片3 (order:3)</div><div class="card">卡片1 (order:1)</div><div class="card">卡片2 (order:2)</div><div class="card">卡片4 (order:4)</div>
</div>
</body>
</html>

示例5:圣杯布局(頁眉+主體+頁腳)

<!DOCTYPE html>
<html>
<head>
<style>
body {margin: 0;min-height: 100vh;display: flex;flex-direction: column;
}
header {background: #2c3e50;color: white;padding: 15px;text-align: center;
}
main {flex: 1;display: flex;padding: 20px;gap: 20px;
}
.content {flex: 1;background: #ecf0f1;padding: 20px;border-radius: 8px;
}
.sidebar {width: 200px;background: #3498db;color: white;padding: 20px;border-radius: 8px;
}
footer {background: #34495e;color: white;text-align: center;padding: 10px;
}
</style>
</head>
<body>
<header><h1>網站標題</h1></header>
<main><div class="sidebar"><h3>側邊欄</h3><p>導航菜單</p></div><div class="content"><h2>主要內容</h2><p>使用flex:1自動填充剩余空間</p></div>
</main>
<footer>? 2023 版權信息</footer>
</body>
</html>

關鍵特性演示:

  1. 容器屬性display: flexflex-directionjustify-contentalign-items
  2. 項目屬性flexorderalign-self
  3. 響應式:結合flex-wrap和媒體查詢
  4. 實用技巧:等分布局、垂直居中、間距控制

💡 提示:復制單個示例到HTML文件直接運行,或組合使用創建復雜布局。Flexbox特別適合構建組件級布局(導航欄、卡片、表單等),結合CSS Grid可實現完整的頁面布局體系。

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

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

相關文章

Vue3核心語法基礎

一、為什么要學 Composition API&#xff1f;在以前我們寫代碼用Vue2寫&#xff1a;export default {data() {return { count: 0, msg: hello }},methods: {add() { this.count }},computed: {double() { return this.count * 2 }} }很明顯 一個功能被拆成三塊&#xff1a;data…

FSMC的配置和應用

一、FSMC 簡介與工作原理FSMC&#xff08;Flexible Static Memory Controller&#xff09;是 STM32 微控制器中用于與外部靜態存儲器&#xff08;如 SRAM、PSRAM、NOR Flash、LCD 等&#xff09;進行通信的一個外設模塊。1、支持的設備類型&#xff1a;SRAM / PSRAMNOR FlashNA…

Linux I/O 系統調用完整對比分析

Linux I/O 系統調用完整對比分析 1. 概述 Linux 提供了豐富的 I/O 系統調用&#xff0c;每種都有其特定的用途和優勢。本文將詳細分析這些系統調用的特點、使用場景和性能特征。 2. 系統調用詳細對比 2.1 基本讀寫函數 pread/pwrite #include <unistd.h>// 位置指定…

TiDB集群部署

架構&#xff1a; tidb–3臺&#xff0c;pd–3臺&#xff0c;tikv–3臺 8c16g200g 1x2.2x.2x7.124 1x2.2x.2x7.148 1x2.2x.2x7.87 1x2.2x.2x7.93 1x2.2x.2x7.127 1x2.2x.2x7.104 pd-3臺 4c8g100g 1x2.2x.2x7.143 1x2.2x.2x7.132 1x2.2x.2x7.91 1、下載安裝包 #注&#xff1a;我…

C#中對于List的多種排序方式

在 C# 中給 List<AI> 排序&#xff0c;只要 明確排序規則&#xff08;比如按某個字段、某幾個字段、或外部規則&#xff09;&#xff0c;就能用下面幾種常見寫法。下面全部基于這個示例類&#xff1a;public class AI {public int country; // 國家編號public int pr…

Spring框架中Bean的生命周期:源碼解析與最佳實踐

第1章&#xff1a;Spring Bean生命周期概述1.1 什么是Spring Bean生命周期&#xff1f;定義&#xff1a;Spring Bean生命周期是指從Bean的創建、初始化、使用到銷毀的完整過程&#xff0c;由Spring容器嚴格管理 。核心思想是Spring容器通過IoC&#xff08;控制反轉&#xff09;…

【51單片機6位數碼管密碼鎖】2022-10-15

緣由六位密碼器設計連接LED-嵌入式-CSDN問答 矩陣51單片機密碼鎖,回復:https://bbs.csdn.net/topics/392713242_智者知已應修善業的博客-CSDN博客 #include "REG52.h" unsigned char code smgduan[]{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x…

?我的第一個開源項目:躍動的心

還是一個編程初學者時&#xff0c;我懷著激動的心情完成了人生第一個開源項目——一個用HTML5 Canvas制作的動態跳動愛心效果。這個項目雖然簡單&#xff0c;卻讓我深刻體會到了開源分享的快樂和技術創造的魅力。 壹、項目靈感 這個項目的靈感來源于瀏覽網頁時&#xff0c;被各…

技術演進中的開發沉思-53 DELPHI VCL系列:windows的消息(下):TApplication窗體

今天我們梳理下關于TApplication的窗體消息下半部分的內容。前面也說過&#xff0c;在 Delphi 的世界里&#xff0c;TApplication 就像一位經驗豐富的總工程師&#xff0c;而主窗體則是它傾注心血打造的核心建筑。如果你第一次在實驗室里敲出 Delphi 代碼時&#xff0c;屏幕上彈…

cesium FBO(四)自定義相機渲染到Canvas(離屏渲染)

前面幾節的例子是將Cesium默認的相機渲染到紋理&#xff08;RTT&#xff09;或Canvas&#xff0c;這片文章講解如何將自定義的一個camera的畫面渲染到Canvas上&#xff0c;有了前面幾篇的基礎了&#xff0c;也能將自定義的畫面渲染紋理、也可以灰度處理&#xff0c;原理是一樣的…

雙機并聯無功環流抑制虛擬阻抗VSG控制【simulink仿真模型實現】

雙機并聯虛擬同步發電機&#xff08;VSG&#xff09;系統中&#xff0c;因線路阻抗不匹配及參數差異&#xff0c;易引發無功環流。本方案在傳統VSG控制基礎上&#xff0c;引入自適應虛擬阻抗環節。其核心在于&#xff1a;實時檢測兩機間無功環流分量&#xff0c;據此動態調節各…

python測試總結

測試題的基礎知識點總結 1.循環求和 for循環步長&#xff08;range(2,101,2)&#xff09; while循環條件判斷&#xff08;i%20&#xff09; 生成器表達式&#xff08;sum(i for i in range )&#xff09; 所以&#xff1a;sum(range(1,101,2))&#xff08;奇數和&#xff09;和…

識別和分類惡意軟件樣本的工具YARA

YARA 是一個用于識別和分類惡意軟件樣本的工具,廣泛應用于惡意軟件分析、威脅情報、入侵檢測等領域。它通過編寫規則(YARA Rules)來匹配文件中的特定字符串、十六進制模式、正則表達式等特征。 一、YARA 的基本使用方法 1. 安裝 YARA Linux(Ubuntu/Debian) sudo apt-ge…

GaussDB 約束的語法

1 約束的作用約束是作用于數據表中列上的規則&#xff0c;用于限制表中數據的類型。約束的存在保證了數據庫中數據的精確性和可靠性。約束有列級和表級之分&#xff0c;列級約束作用于單一的列&#xff0c;而表級約束作用于整張數據表。下面是 GaussDB SQL 中常用的約束。NOT …

SecurityContextHolder 管理安全上下文的核心組件詳解

SecurityContextHolder 管理安全上下文的核心組件詳解在 Spring Security 中&#xff0c;SecurityContextHolder 是??安全上下文&#xff08;Security Context&#xff09;的核心存儲容器??&#xff0c;其核心作用是??在當前線程中保存當前用戶的認證信息&#xff08;如用…

c++詳解系列(引用指針)

目錄 1.什么是引用 2.引用的定義 3.引用的特性 4.引用的使用 4.1引用傳參 4.2傳引用返回 5.const引用&#xff08;在引用的定義前用const修飾&#xff09; 5.1對于引用 5.2對于指針 6.引用&指針 總結 1.什么是引用 引用就是給變量起別名&#xff0c;一個變量可以…

深度學習loss總結(二)

對于目前深度學習主流任務學習,loss的設置至關重要。下面就不同任務的loss設置進行如下總結: (1)目標檢測 2D/3D目標檢測中的 Loss(損失函數)是訓練模型時優化目標的核心,通常包括位置、類別、尺寸、方向等多個方面。以下是目前 常見的 2D 和 3D 目標檢測 Loss 分類與…

【Linux網絡】netstat 的 -anptu 各個參數各自表示什么意思?

netstat 是一個網絡統計工具&#xff0c;它可以顯示網絡連接、路由表、接口統計、偽裝連接和多播成員資格。在 netstat 命令中&#xff0c;不同的參數可以用來定制輸出的內容。 你提到的 -anptu 參數組合各自的功能如下&#xff1a; -a (all): 顯示所有活動的連接和監聽端口。它…

[硬件電路-115]:模擬電路 - 信號處理電路 - 功能放大器工作分類、工作原理、常見芯片

功能放大器是以特定功能為核心的集成化放大電路&#xff0c;通過將運算放大器與外圍電阻、電容等元件集成在單一芯片中&#xff0c;實現標準化、高性能的信號放大功能。其核心優勢在于簡化設計流程、提升系統穩定性&#xff0c;并針對特定應用場景優化性能參數。以下從定義、分…

雙網卡UDP廣播通信機制詳解

UDP廣播通信機制詳解 一、通信流程分析 發送階段 通過Client.Bind(192.168.0.3, 60000)將UDP套接字綁定到指定網卡和端口設置RemoteHost "255.255.255.255"實現全網段廣播數據流向&#xff1a;192.168.0.3:60000 → 255.255.255.255:50000 接收階段 設備響應數據應返…