搜尋
首頁web前端css教學CSS伸縮盒佈局(總結分享)

這篇文章為大家帶來了關於css的相關知識,其中主要介紹了關於css伸縮盒佈局的相關問題,一個元素設定CSS 屬性display:flex 或者display:inline-flex ,該元素就變成伸縮容器,下面一起來看一下,希望對大家有幫助。

CSS伸縮盒佈局(總結分享)

(學習影片分享:css影片教學html影片教學

伸縮盒子佈局

1 伸縮容器與伸縮項目

#伸展容器: 一個元素設定CSS 屬性display:flexdisplay:inline-flex ,該元素就變成伸縮容器。

伸縮項目: 伸縮容器的子元素就是伸縮項目。

伸縮項目的特性:

  1. 伸縮項目會在伸縮容器預設中水平排列。
  2. 伸縮項目可以設定寬高、內外邊距且不存在外邊距塌陷, 不會脫離文件流,具有伸縮性。
  3. 一個元素可以同時是伸縮項目和伸縮容器。

2 設定主軸方向與換行方式

#主軸: 伸縮項目沿著主軸排列, 預設的主軸方向是從左到右。

側軸: 與主軸垂直的軸叫側軸,側軸方向隨主軸方向變化。

設定主軸方向

給伸縮容器給CSS 屬性flex-direction 可以設定主軸方向,值如下:

row				水平从左到右,默认值
row-reverse		水平从右到左
column			垂直从上到下
column-reverse	垂直从下到上

設定換行方式

給伸縮容器CSS 屬性flex-wrap 可以設定伸縮項目在主軸方向上的換行方式,屬性的值如下:

nowrap			默认值,不换行
wrap			自动换行
wrap-reverse	自动换行,行翻转

同時設定主軸方向和換行方式

flex-flow 是flex-directrion 和flex-wrap 的複合屬性,可以同時設定主軸方向和換行方式。

flex-flow 可以設定 1 個值也可以設定 2 個值(兩個值之間沒有順序要求)。

3 設定伸縮項目在主軸上的對齊方式

給伸縮容器設定justify-content 屬性,可以設定伸縮項目在主軸上的對齊方式,屬性的值如下:

flex-start			默认值,主轴起始对齐
flex-end			主轴结束对齐
center				居中
space-between		两端没有空隙,中间有空隙
space-around		两端空隙是中间空隙的一半
space-enenly		两端空隙与中间空隙相等

4 設定伸縮項目在側軸上的對齊方式

一條主軸線(伸縮項目在主軸上不換行)

給伸縮容器設定align-items 屬性進行設置,屬性值如下:

stretch			默认值,伸缩项目在侧轴方向的长度(高度)在侧轴方向拉伸(不设置在侧轴方向的长度,才会生效)
flex-start		侧轴起点对齐
flex-end		侧轴终点对齐
center			居中对齐
baseline		文本基线对齐

多條主軸線(伸縮項目在主軸上發生換行)

給予伸縮容易設定align-content 屬性進行設置,屬性值如下:

strecch			默认值
flex-start		侧轴起点对齐
flex-end		侧轴终点对齐
center			居中对齐
space-between	两端没有空隙,中间有空隙
space-around	两端空隙是中间空隙的一半
space-enenly	两端空隙与中间空隙相等

#總結:

  1. align-content 實際上設定的是多條主軸之間如何對齊。
  2. align-items 屬性不論一條主軸線或多條主軸線都會起作用;但是 align-content 只對多條主軸線情況下起作用。

5 伸縮項目的伸縮性

#伸展項目在主軸上的基準長度flex-basis

#flex-basis 指定長度可以設定該伸縮項目在主軸上的長度。

如果沒有設定 flex-basis,伸縮項目在主軸上的長度取決於所設定的 width 或 height。

擴展比率 flex-grow

指定數字表示擴展的比率,該屬性的預設值是 0。

伸縮項目發生擴展的前提: 伸縮容器在主軸方向向上有富餘的長度。

伸縮項目進行擴展的時候只考慮伸縮項目的擴展比率。

縮比 flex-shrink

指定數字表示縮小的比率,該屬性的預設值是 1。

伸縮項目發生收縮的前提: 伸縮容器在主軸方向上長度不足。

伸縮項目進行收縮既要考慮收縮比率,也要考慮收縮項目原來在主軸上的長度。

flex 複合屬性

同時設定擴展比率、收縮比率、主軸基準長度,設定規則如下:

flex: grow shrink basis;flex: 0 1 auto;   /* 扩展比率是0,收缩比率是1,基准值是auto */
flex: 1;      /* flex: 1 1 0; */flex: auto;   /* flex: 1 1 auto; */flex: none;   /* flex: 0 0 auto    不伸不缩*/flex: 0 auto; /* flex: 0 1 auto */

6 伸縮項目排序

使用order 屬性設定伸縮項目的排序,值是數字,數字越小排序越靠前,可以是負值。預設值是 0。

order: 1;

7 單獨設定伸縮項目在側軸上的對齊方式

給伸縮項目設定屬性align-self 可以單獨設定該伸縮項目在側軸上的對齊方式,屬性的值與align-items 一致。

8 伸縮盒相關CSS 屬性總結

設定給伸縮容器的屬性

CSS屬性名稱 意義
#display 設定伸縮容器 flex:區塊級伸縮容器。
**inline-flex:**行內伸縮容器。
flex-direction 設定主軸方向 row: 預設值,水平從左到右。
row-reverse: 水平從右到左。
column: 垂直從上到下。
**column-reverse:**垂直從下往上
flex-wrap 設定換行方式 nowrap : 預設值,不換行。
wrap: 自動換行。
wrap-reverse: 自動換行且行翻轉。
flex-flow 同時設定主軸方向和換行方式 flex-dierection 和flex-wrap 的值
#justify-content 設定伸縮項目在主軸上的對齊方式 flex-start: 主軸起點對齊。
flex-end: 主軸終點對齊。
center: 居中對齊。
space-between: 兩端無空隙,中間有空隙。
**space-around:**兩端空隙是中間空隙的一半。
**space-evenly:**兩端空隙與中間空隙一致。
align-items 設定伸縮項目在側軸上的對齊方式(適用於一條主軸線) stretch: 預設值,在側軸上拉伸。
flex-start: 側軸起點對齊。
flex-end: 側軸終點對齊。
center: 居中對齊。
baseline: 基線對齊。
align-content 設定伸縮項目在側軸上的對齊方式(適用於多條主軸線) stretch: 預設值,在側軸上拉伸。
flex-start: 側軸起點對齊。
flex-end: 側軸終點對齊。
center: 居中對齊。
space-between: 兩端無空隙,中間有空隙。
**space-around:**兩端空隙是中間空隙的一半。
**space-evenly:**兩端空隙與中間空隙一致。

設定給伸縮項目的屬性

##複合屬性,同時設定grow shrink basisgrow shrink basisorder伸展項目的排序數字,預設值是0#align-self單獨設定伸縮項目在側軸上的對齊方式**auto:**預設值,依照伸縮容器的設定。

示例如下:

CSS3 弹性盒(Flexible Box 或 flexbox ),是一种当页面需要适应不同的屏幕大 小以及设备类型时确保元素拥有恰当的行为的布局方式。

        引入弹性盒布局模型的目的是提供一种更加有效的方式来对一个容器中的子元素 进行排列、对齐和分配空白空间。

        容器  使用弹性盒布局的父元素 display:flex;

本质:给父盒子添加flex属性,来控制子盒子的位置和排列方式。

CSS伸縮盒佈局(總結分享)

       主轴:Flex容器的主轴主要用来配置Flex项目。他不一定是水平的,这主要取决于fle-direction属性。

  侧轴:与主轴垂直的轴称作侧轴,是侧轴方向的延伸。

Flex父容器属性

要改变元素的模式为伸缩容器,需要使用display属性。

display:flex | inline-flex

 flex:设置为块级伸缩容器。

inline-flex:设置为内联级伸缩容器。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            margin:0;
            padding:0;
        }
        div>div{
            width:100px;
            height:100px;
            line-height:100px;
            border:1px solid;
            text-align:center;
            margin:10px;
        }
        #box{
            display:flex;     
            border:1px solid;
            margin:20px;
        }
        #inline{            
            display:inline-flex;
            border:1px solid;
            margin:20px;
        }
    </style>
    </head>
    <body>
    <div id="box">
        <div>A</div><div>B</div><div>C</div><div>D</div>
    </div>
    <div id="inline">
        <div>A</div><div>B</div><div>c</div><div>D</div>
    </div>
    </body>
    </html>

输出结果:

CSS伸縮盒佈局(總結分享)

       块级伸缩容器与内联级伸缩容器类似,默认都是从左往右排列,唯一不同的是块级伸缩容器独占一行,而内联级伸缩容器随着内容改变。

  Flex容器不是块容器,因此有些设计用来控制块布局的属性在伸缩布局中不适用。浮动无法影响伸缩容器,而且伸缩容器的margin与其内容的margin不会重叠。如果内联伸缩容器设置了浮动,元素将会以块级伸缩容器显示。

(学习视频分享:css视频教程html视频教程

CSS 屬性名稱 意義
flex-grow 擴展比率 數字,預設值是0
flex-shrink 縮比率 數字,預設值是1
flex-basis 在主軸上的基準長度 指定長度,預設值是auto
#flex

stretch: 預設值,在側軸上拉伸。
flex-start: 側軸起點對齊。
flex-end: 側軸終點對齊。
center: 居中對齊。
baseline: 基線對齊。

以上是CSS伸縮盒佈局(總結分享)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:CSDN。如有侵權,請聯絡admin@php.cn刪除
讓我們做一個花哨的,但簡單的頁面加載程序讓我們做一個花哨的,但簡單的頁面加載程序Apr 15, 2025 am 09:33 AM

如今,在網站上看到加載狀態很常見,尤其是隨著漸進式的Web應用程序和反應性站點正在上升。這是一種方法

跨平台應用程序開發的景觀跨平台應用程序開發的景觀Apr 15, 2025 am 09:29 AM

我不太了解這些東西,但我明白了。如果您想要一個用於Android和iOS的本機應用

電信型文本元素一直存在...至少在此網站上電信型文本元素一直存在...至少在此網站上Apr 15, 2025 am 09:28 AM

就是這樣:

使用Fusebox作為webpack的捆綁替代品使用Fusebox作為webpack的捆綁替代品Apr 15, 2025 am 09:26 AM

如果您正在尋找WebPack的替代捆綁包,則可能需要查看Fusebox。它建立在WebPack提供的基礎上 - 代碼拆分,熱

我喜歡用Svelte編寫樣式我喜歡用Svelte編寫樣式Apr 15, 2025 am 09:25 AM

最近,Svelte周圍有很多當之無愧的炒作,該項目累積了24,000多個Github星星。可以說是最簡單的JavaScript

每周平台新聞:CSS列跨度屬性,ADA適用於網站,自動生成圖像說明每周平台新聞:CSS列跨度屬性,ADA適用於網站,自動生成圖像說明Apr 15, 2025 am 09:23 AM

在本週的綜述中:多列佈局獲得廣泛的支持,ADA意味著更多的零售商,而Google正在對所有空圖像做些事情

當前樣式的狀態在2019年選擇當前樣式的狀態在2019年選擇Apr 15, 2025 am 09:18 AM

最好從上次編譯CSS的最想要的功能時可以看出,造型形式控件是一個重要的問題。前五名,我說。和本地人

通過這10個項目想法成為2020年的前端大師通過這10個項目想法成為2020年的前端大師Apr 15, 2025 am 09:17 AM

這是我在Dev上寫的一篇Quickie文章中更新的交叉點。 i&#039; m在此處出版&#039; cuz i&#039; m ash lir Indieweb。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具