」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > Flexbox – 對齊和分配空間的現代方式

Flexbox – 對齊和分配空間的現代方式

發佈於2024-11-09
瀏覽:580

Flexbox – The Modern Way to Align and Distribute Space

第 14 講:Flexbox – 對齊與分配空間的現代方式

嘿!準備好深入研究 CSS 中最酷、最強大的工具之一了嗎?今天,我們將探索Flexbox。如果您曾經在以簡潔且響應迅速的方式對齊專案或分配空間方面遇到困難,Flexbox 是您最好的新朋友。

1.什麼是 Flexbox?

Flexbox(靈活框佈局)是一種一維佈局系統,可讓您控制容器內元素的對齊、間距和分佈 - 即使這些元素的大小未知或動態。

將 Flexbox 視為一個工具箱,用於建立可以根據可用空間拉伸、收縮或對齊的佈局。

2.魔法從顯示開始:flex

要開始使用 Flexbox,您只需在容器上設定 display: flex 即可。一旦你這樣做了,該容器的所有直接子代都會變成彈性項目,並且它們將立即開始表現不同。

Item 1
Item 2
Item 3
.flex-container {
    display: flex;
}

現在,.flex-container 內的所有項目都是 Flex 項目,可以輕鬆操作。

3. Flex Direction – 我們該走哪條路?

預設情況下,Flexbox 將項目排列在一行(水平)中,但如果您希望將它們排列在一列(垂直)中怎麼辦? Flexbox 透過 flex-direction 屬性為您提供完全控制。

  • :在水平行中對齊項目(這是預設值)。
  • :將項目堆疊在垂直列。
  • row-reverse:與row相同,但專案的順序相反。
  • column-reverse:與column相同,但專案以相反的順序堆疊。
.flex-container {
    display: flex;
    flex-direction: column;
}

現在,物品將垂直堆疊!

4.證明內容的合理性-傳播事物

假設您有三件物品,並且您想將它們均勻地分佈在容器中。這就是 justify-content 派上用場的地方。

  • flex-start:項目與容器的開頭對齊(預設)。
  • center:計畫居中。
  • space- Between:專案均勻分佈,第一個專案在開始,最後一個專案在結束。
  • space-around:項目在每個項目周圍以相等的填充間隔。
.flex-container {
    display: flex;
    justify-content: space-between;
}

現在,項目將在容器內均勻分佈。

5.對齊項目 – 垂直魔法

justify-content 控制水平對齊,而 align-items 負責垂直對齊(或沿橫軸)。以下是您的選擇:

  • 拉伸:項目拉伸以填充容器(預設)。
  • flex-start:項目與頂部對齊。
  • flex-end:項目與底部對齊。
  • center:專案垂直居中。
.flex-container {
    display: flex;
    align-items: center;
}

現在,所有項目都將在容器內垂直居中。

6。 Flex-Grow、Flex-Shrink 和 Flex-Basis – 微調 Flex 專案

有時,您希望某些項目增大、縮小或具有固定的起始尺寸。 flex-growflex-shrinkflex-basis 屬性可讓您控制該行為:

  • flex-grow:控制一個專案相對於其他專案應該成長多少。
  • flex-shrink:控制一個項目相對於其他項目應收縮的程度。
  • flex-basis:設定項目在增大或縮小之前的初始大小。

例子:

.item {
    flex-grow: 1;
    flex-shrink: 0;
    flex-basis: 100px;
}

這可確保專案從 100 像素開始,但如果需要,它可以成長以填充額外的空間,而不會縮小。

7.實務上的 Flexbox 範例

讓我們用一個例子將所有這些放在一起!

Item 1
Item 2
Item 3
.flex-container {
    display: flex;
    flex-direction: row;
    justify-content: space-around;
    align-items: center;
    height: 300px;
    background-color: #f0f0f0;
}

.item {
    background-color: #4CAF50;
    padding: 20px;
    color: white;
    flex-grow: 1;
}

在此範例中:

  • 項目排列成行。
  • 它們透過 justify-content: space-around 均勻分佈。
  • 所有項目都在容器中垂直居中,對齊項目:center。
  • 由於 flex-grow,每個項目都會成長以均勻地填充可用空間:1.

8.為什麼 Flexbox 如此受歡迎

Flexbox 消除了我們過去在 CSS 中苦苦掙扎的佈局設計的大部分複雜性。不再有浮動,不再擔心清理,響應式設計更容易!

要點:

  • 使用display: flex將容器變成Flex容器。
  • 使用flex-direction設定流向(行或列)。
  • 使用justify-contentalign-items來控制間距和對齊。
  • 使用 flex-growflex-shrinkflex-basis 微調 Flex 專案。

在 LinkedIn 上關注我-

裡多伊‧哈桑

版本聲明 本文轉載於:https://dev.to/ridoy_hasan/flexbox-the-modern-way-to-align-and-distribute-space-2il3?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 您如何在Laravel Blade模板中定義變量?
    您如何在Laravel Blade模板中定義變量?
    在Laravel Blade模板中使用Elegance 在blade模板中如何分配變量對於存儲以後使用的數據至關重要。在使用“ {{}}”分配變量的同時,它可能並不總是最優雅的解決方案。 幸運的是,Blade通過@php Directive提供了更優雅的方法: $ old_section =...
    程式設計 發佈於2025-04-30
  • Python中生成浮點數範圍的技巧
    Python中生成浮點數範圍的技巧
    在python python range(&&&&&&&&&&&&&&&&&& equivalents()函數在整數上運行,但是floats有可比的功能嗎?默認情況下,range()即使開始和停止參數為floats。考慮以下示例:The output excludes the starting ...
    程式設計 發佈於2025-04-30
  • Go web應用何時關閉數據庫連接?
    Go web應用何時關閉數據庫連接?
    在GO Web Applications中管理數據庫連接很少,考慮以下簡化的web應用程序代碼:出現的問題:何時應在DB連接上調用Close()方法? ,該特定方案將自動關閉程序時,該程序將在EXITS EXITS EXITS出現時自動關閉。但是,其他考慮因素可能保證手動處理。 選項1:隱式關閉終...
    程式設計 發佈於2025-04-30
  • Python獲取任意月份最後一天的技巧
    Python獲取任意月份最後一天的技巧
    在Python 獲得一個月的最後一天,只需訪問tuple返回的第二個exterial.monthrange。月)[1] 以下是一些示例來說明其用法:日曆模塊在第二個示例中正確處理leap年。它還支持過去和未來的日期,以及前傾斜的日曆。但是,對於3.12之前的Python版本,工作日在互動pytho...
    程式設計 發佈於2025-04-30
  • 如何從PHP中的Unicode字符串中有效地產生對URL友好的sl。
    如何從PHP中的Unicode字符串中有效地產生對URL友好的sl。
    為有效的slug生成首先,該函數用指定的分隔符替換所有非字母或數字字符。此步驟可確保slug遵守URL慣例。隨後,它採用ICONV函數將文本簡化為us-ascii兼容格式,從而允許更廣泛的字符集合兼容性。 接下來,該函數使用正則表達式刪除了不需要的字符,例如特殊字符和空格。此步驟可確保slug僅包...
    程式設計 發佈於2025-04-30
  • 大批
    大批
    [2 數組是對象,因此它們在JS中也具有方法。 切片(開始):在新數組中提取部分數組,而無需突變原始數組。 令ARR = ['a','b','c','d','e']; // USECASE:提取直到索引作...
    程式設計 發佈於2025-04-30
  • 為什麼儘管有效代碼,為什麼在PHP中捕獲輸入?
    為什麼儘管有效代碼,為什麼在PHP中捕獲輸入?
    在php ;?>" method="post">The intention is to capture the input from the text box and display it when the submit button is clicked.但是,輸出...
    程式設計 發佈於2025-04-30
  • 如何在其容器中為DIV創建平滑的左右CSS動畫?
    如何在其容器中為DIV創建平滑的左右CSS動畫?
    通用CSS動畫,用於左右運動 ,我們將探索創建一個通用的CSS動畫,以向左和右移動DIV,從而到達其容器的邊緣。該動畫可以應用於具有絕對定位的任何div,無論其未知長度如何。 問題:使用左直接導致瞬時消失 更加流暢的解決方案:混合轉換和左 [並實現平穩的,線性的運動,我們介紹了線性的轉換。...
    程式設計 發佈於2025-04-30
  • 如何使用Depimal.parse()中的指數表示法中的數字?
    如何使用Depimal.parse()中的指數表示法中的數字?
    在嘗試使用Decimal.parse(“ 1.2345e-02”中的指數符號表示法表示的字符串時,您可能會遇到錯誤。這是因為默認解析方法無法識別指數符號。 成功解析這樣的字符串,您需要明確指定它代表浮點數。您可以使用numbersTyles.Float樣式進行此操作,如下所示:[&& && && ...
    程式設計 發佈於2025-04-30
  • 在細胞編輯後,如何維護自定義的JTable細胞渲染?
    在細胞編輯後,如何維護自定義的JTable細胞渲染?
    在JTable中維護jtable單元格渲染後,在JTable中,在JTable中實現自定義單元格渲染和編輯功能可以增強用戶體驗。但是,至關重要的是要確保即使在編輯操作後也保留所需的格式。 在設置用於格式化“價格”列的“價格”列,用戶遇到的數字格式丟失的“價格”列的“價格”之後,問題在設置自定義單元...
    程式設計 發佈於2025-04-30
  • 如何使用Python理解有效地創建字典?
    如何使用Python理解有效地創建字典?
    在python中,詞典綜合提供了一種生成新詞典的簡潔方法。儘管它們與列表綜合相似,但存在一些顯著差異。 與問題所暗示的不同,您無法為鑰匙創建字典理解。您必須明確指定鍵和值。 For example:d = {n: n**2 for n in range(5)}This creates a dict...
    程式設計 發佈於2025-04-30
  • 在程序退出之前,我需要在C ++中明確刪除堆的堆分配嗎?
    在程序退出之前,我需要在C ++中明確刪除堆的堆分配嗎?
    在C中的顯式刪除 在C中的動態內存分配時,開發人員通常會想知道是否需要手動調用“ delete”操作員在heap-exprogal exit exit上。本文深入研究了這個主題。 在C主函數中,使用了動態分配變量(HEAP內存)的指針。當應用程序退出時,此內存是否會自動發布?通常,是。但是,即使在...
    程式設計 發佈於2025-04-30
  • 如何正確使用與PDO參數的查詢一樣?
    如何正確使用與PDO參數的查詢一樣?
    在pdo 中使用類似QUERIES在PDO中的Queries時,您可能會遇到類似疑問中描述的問題:此查詢也可能不會返回結果,即使$ var1和$ var2包含有效的搜索詞。錯誤在於不正確包含%符號。 通過將變量包含在$ params數組中的%符號中,您確保將%字符正確替換到查詢中。沒有此修改,PD...
    程式設計 發佈於2025-04-30
  • 編譯器報錯“usr/bin/ld: cannot find -l”解決方法
    編譯器報錯“usr/bin/ld: cannot find -l”解決方法
    錯誤:“ usr/bin/ld:找不到-l “ 此錯誤表明鏈接器在鏈接您的可執行文件時無法找到指定的庫。為了解決此問題,我們將深入研究如何指定庫路徑並將鏈接引導到正確位置的詳細信息。 添加庫搜索路徑的一個可能的原因是,此錯誤是您的makefile中缺少庫搜索路徑。要解決它,您可以在鏈接器命令中添...
    程式設計 發佈於2025-04-30
  • JavaScript數組創建與操作技巧
    JavaScript數組創建與操作技巧
    深入浅出JavaScript数组:创建与操作详解 核心要点 JavaScript数组拥有length属性,可进行操作,并具有编号属性,名称范围在0到4294967294(含)之间。JavaScript不支持关联数组。 JavaScript数组的创建方式多样,建议使用数组字面量创建新数组。数组可以是密...
    程式設計 發佈於2025-04-30

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3