CSS 中 inline-flex 和 inline-block 的區別


CSS inline-flex 和 inline-block 是 CSS display 屬性的值,用於控制元素在其容器中的對齊方式和行為。

在處理響應式佈局時,開發人員通常需要控制元素在其容器中的對齊方式和行為。有時,我們需要元素像內聯元素一樣表現,但同時擁有某些塊級屬性,而其他時候,我們需要更多地控制子元素的對齊方式和間距。這引出了兩個重要 CSS 屬性 inline-block 和 inline-flex 的比較。

CSS inline-block 和 inline-flex 的 display 值

  • CSS inline-block:它允許元素與其他內聯元素一起流動,同時具有塊級特性,例如寬度和高度。
  • CSS inline-flex:它將元素顯示為內聯級彈性容器。

示例

在本示例中,我們將看到兩者在相似元素上的輸出。

<!DOCTYPE html>
<html lang="en">
<head>
    <title>inline-block vs inline-flex</title>
    <style>
        /* Setting margin and background Color on Containers*/
        .container {
            background-color: #f0f0f0;
            margin-bottom: 20px;
        }
        
        /* Styling Child Elements*/
        .child {
            width: 100px;
            height: 100px;
            margin: 5px;
            background-color: #99ff99;
            justify-content: center;
            align-items: center;
        }
        
        .inline-block {
            display: inline-block;
        }
        .inline-flex {
            display: inline-flex;
            
        }
    </style>
</head>
<body>
    <h2>inline-block</h2>
    <div class="container">
        <div class="child inline-block">Box 1</div>
        <div class="child inline-block">Box 2</div>
        <div class="child inline-block">Box 3</div>
    </div>

    <h2>inline-flex</h2>
    <div class="container">
        <div class="child inline-flex">Box 1</div>
        <div class="child inline-flex">Box 2</div>
        <div class="child inline-flex">Box 3</div>
    </div>
</body>
</html>

inline-block 和 inline-flex 的區別

特性 Inline-block Inline-flex
佈局行為 內聯級;不換行,但允許調整寬度和高度 內聯級,也充當彈性容器
子元素佈局 子元素遵循正常的塊級或內聯規則。 子元素遵循彈性盒規則(對齊、對正、分配空間)。
彈性盒支援 不可用 完全支援彈性盒,用於對齊和分配子元素。
使用場景 當需要簡單的內聯佈局和自定義大小時。 當在內聯容器內需要複雜的子元素佈局管理(彈性盒)時。
對齊控制 僅限於邊距和填充。 使用彈性盒屬性(如 justify-content 和 align-items)進行完全的對齊控制

更新於: 2024年9月20日

97 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告