Rumah hujung hadapan web tutorial css 详解CSS3实现弹性布局的方式

详解CSS3实现弹性布局的方式

Jul 11, 2020 pm 04:33 PM
css3 flexbox Susun atur yang fleksibel

详解CSS3实现弹性布局的方式

一、CSS3弹性盒子

弹性盒子是CSS3的一种新布局模式。

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

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

二、浏览器支持

表格中的数字表示支持该属性的第一个浏览器的版本号。

紧跟在数字后面的 -webkit- 或 -moz- 为指定浏览器的前缀。

属性 1.png 2.png 3.png 4.png 5.png
Basic support (single-line flexbox) 29.0 21.0 -webkit- 11.0 22.0 18.0 -moz- 6.1 -webkit- 12.1 -webkit-
Multi-line flexbox 29.0 21.0 -webkit- 11.0 28.0 6.1 -webkit- 17.0 15.0 -webkit- 12.1

三、CSS3 弹性盒子内容

弹性盒子由弹性容器(Flex container)和弹性子元素(Flex item)组成。

弹性容器通过设置 display 属性的值为 flex 或 inline-flex将其定义为弹性容器。

弹性容器内包含了一个或多个弹性子元素。

注意: 弹性容器外及弹性子元素内是正常渲染的。弹性盒子只定义了弹性子元素如何在弹性容器内布局。

弹性子元素通常在弹性盒子内一行显示。默认情况每个容器只有一行。

以下元素展示了弹性子元素在一行内显示,从左到右:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>FLEX</title>
    <style>
        .flex-container {
            display: flex;
            flex-direction: row;
            flex-wrap: wrap;
            width: 1200px;
            height: 640px;
            background-color: lightsteelblue;
        }
        .flex-container .flex-item {
            width: 320px;
            height: 240px;
            margin: 10px;
            background-color:lightsalmon;
        }
    </style>
</head>
<body>
    <div>
        <div></div>
        <div></div>
        <div></div>
    </div>
</body>
</html>
Salin selepas log masuk

6.png

四、CSS3 弹性盒子常用属性

属性描述
flex-direction指定弹性容器中子元素排列方式
flex-wrap设置弹性盒子的子元素超出父容器时是否换行
flex-flowflex-direction 和 flex-wrap 的简写
align-items设置弹性盒子元素在侧轴(纵轴)方向上的对齐方式
align-content修改 flex-wrap 属性的行为,类似 align-items, 但不是设置子元素对齐,而是设置行对齐
justify-content设置弹性盒子元素在主轴(横轴)方向上的对齐方式

1. flex-direction 属性

决定项目的方向。

注意:如果元素不是弹性盒对象的元素,则 flex-direction 属性不起作用。

.flex-container { flex-direction: row | row-reverse | column | column-reverse; }
Salin selepas log masuk

7.png

属性值

描述
row默认值。元素将水平显示,正如一个行一样。
row-reverse与 row 相同,但是以相反的顺序。
column元素将垂直显示,正如一个列一样。
column-reverse与 column 相同,但是以相反的顺序。

2. flex-wrap 属性

flex-wrap 属性规定flex容器是单行或者多行,同时横轴的方向决定了新行堆叠的方向。

描述
nowrap默认值。规定元素不拆行或不拆列。
wrap规定元素在必要的时候拆行或拆列。
wrap-reverse规定元素在必要的时候拆行或拆列,但是以相反的顺序。
.flex-container { flex-wrap: nowrap | wrap | wrap-reverse; }
Salin selepas log masuk

可以取三个值:

(1) nowrap (默认):不换行。

8.png

(2)wrap:换行,第一行在上方。

9.png

(3)wrap-reverse:换行,第一行在下方。

10.png

3. flex-flow 属性

flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap。

.flex-container { flex-flow: <flex-direction> <flex-wrap> }
Salin selepas log masuk

4. align-items属性

align-items 属性定义flex子项在flex容器的当前行的侧轴(纵轴)方向上的对齐方式。

描述
stretch默认值。项目被拉伸以适应容器。
center项目位于容器的中心。
flex-start项目位于容器的开头。
flex-end项目位于容器的结尾。
baseline项目位于容器的基线上。

11.png

5. justify-content属性

justify-content 用于设置或检索弹性盒子元素在主轴(横轴)方向上的对齐方式。

描述
flex-start默认值。项目位于容器的开头。
flex-end项目位于容器的结尾。
center项目位于容器的中心。
space-between项目位于各行之间留有空白的容器内。
space-around项目位于各行之前、之间、之后都留有空白的容器内。

12.png

五、弹性子元素属性

属性描述
order设置弹性盒子的子元素排列顺序。
flex-grow设置或检索弹性盒子元素的扩展比率。
flex-shrink指定了 flex 元素的收缩规则。flex 元素仅在默认宽度之和大于容器的时候才会发生收缩,其收缩的大小是依据 flex-shrink 的值。
flex-basis用于设置或检索弹性盒伸缩基准值。
flex设置弹性盒子的子元素如何分配空间。
align-self在弹性子元素上使用。覆盖容器的 align-items 属性。

1. order属性

.flex-container .flex-item { order: <integer>; }
Salin selepas log masuk

:用整数值来定义排列顺序,数值小的排在前面。可以为负值,默认为0。

13.png

2. flex-grow属性

.flex-container .flex-item { flex-grow: <integer>; }
Salin selepas log masuk

:一个数字,规定项目将相对于其他灵活的项目进行扩展的量。默认值是 0。

14.png

3. flex-shrink属性

.flex-container .flex-item { flex-shrink: <integer>; }
Salin selepas log masuk

:一个数字,规定项目将相对于其他灵活的项目进行收缩的量。默认值是 1。

15.png

4. flex-basis属性

.flex-container .flex-item { flex-basis: <integer> | auto; }
Salin selepas log masuk

:一个长度单位或者一个百分比,规定元素的初始长度。

auto:默认值。长度等于元素的长度。如果该项目未指定长度,则长度将根据内容决定。

5. flex属性

flex 属性用于设置或检索弹性盒模型对象的子元素如何分配空间。

flex 属性是 flex-grow、flex-shrink 和 flex-basis 属性的简写属性。

.flex-container .flex-item {
flex:flex-grow flex-shrink flex-basis|auto|initial|inherit;
}
Salin selepas log masuk
描述
flex-grow一个数字,规定项目将相对于其他元素进行扩展的量。
flex-shrink一个数字,规定项目将相对于其他元素进行收缩的量。
flex-basis项目的长度。合法值:"auto"、"inherit" 或一个后跟 "%"、"px"、"em" 或任何其他长度单位的数字。
auto与 1 1 auto 相同。
none与 0 0 auto 相同。
initial设置该属性为它的默认值,即为 0 1 auto。
inherit从父元素继承该属性。

6. align-self属性

.flex-container .flex-item {
align-self: auto|stretch|center|flex-start|flex-end|baseline|initial|inherit;
}
Salin selepas log masuk
描述
auto 默认值。元素继承了它的父容器的 align-items 属性。如果没有父容器则为 "stretch"。
stretch 元素被拉伸以适应容器。
center 元素位于容器的中心。
flex-start 元素位于容器的开头。
flex-end 元素位于容器的结尾。
baseline 元素位于容器的基线上。
initial 设置该属性为它的默认值。
inherit 从父元素继承该属性。

16.png

取值同 align-items。

参考

本文转载自:https://www.jianshu.com/p/5856c4ae91f2

相关推荐:CSS视频教程

Atas ialah kandungan terperinci 详解CSS3实现弹性布局的方式. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Petua pengoptimuman sifat reka letak CSS: kedudukan melekit dan flexbox Petua pengoptimuman sifat reka letak CSS: kedudukan melekit dan flexbox Oct 20, 2023 pm 03:15 PM

Petua pengoptimuman atribut reka letak CSS: positionsticky dan flexbox Dalam pembangunan web, reka letak adalah aspek yang sangat penting. Struktur susun atur yang baik boleh meningkatkan pengalaman pengguna dan menjadikan halaman lebih cantik dan mudah dinavigasi. Ciri reka letak CSS adalah kunci untuk mencapai matlamat ini. Dalam artikel ini, saya akan memperkenalkan dua teknik pengoptimuman sifat reka letak CSS yang biasa digunakan: positionsticky dan flexbox, dan memberikan contoh kod khusus. 1. jawatan

Kemahiran aplikasi fleksibel atribut kedudukan dalam H5 Kemahiran aplikasi fleksibel atribut kedudukan dalam H5 Dec 27, 2023 pm 01:05 PM

Bagaimana untuk menggunakan atribut kedudukan secara fleksibel dalam H5 Dalam pembangunan H5, kedudukan dan susun atur elemen sering terlibat. Pada masa ini, sifat kedudukan CSS akan mula dimainkan. Atribut kedudukan boleh mengawal kedudukan elemen pada halaman, termasuk kedudukan relatif, kedudukan mutlak, kedudukan tetap dan kedudukan melekit. Artikel ini akan memperkenalkan secara terperinci cara menggunakan atribut kedudukan secara fleksibel dalam pembangunan H5.

Bagaimana untuk memusatkan div dalam html Bagaimana untuk memusatkan div dalam html Apr 05, 2024 am 09:00 AM

Terdapat dua cara untuk memusatkan div dalam HTML: Gunakan atribut penjajaran teks (text-align: center): Untuk reka letak yang lebih ringkas. Gunakan reka letak fleksibel (Flexbox): Sediakan kawalan reka letak yang lebih fleksibel Langkah-langkahnya termasuk: mendayakan Flexbox (paparan: flex) dalam elemen induk. Tetapkan div sebagai item Flex (flex: 1). Gunakan sifat align-item dan justify-content untuk pemusatan menegak dan mendatar.

Cara menggunakan susun atur CSS Flex untuk mencapai susun atur lajur ketinggian yang sama Cara menggunakan susun atur CSS Flex untuk mencapai susun atur lajur ketinggian yang sama Sep 27, 2023 pm 03:17 PM

Cara menggunakan Reka Letak Fleksibel CSS untuk melaksanakan susun atur lajur sama ketinggian Layout Kotak Fleksibel CSS (CsS FlexibleBox Layout), dirujuk sebagai reka letak Flex, ialah modul yang digunakan untuk reka letak halaman. Reka letak fleksibel memudahkan kami melaksanakan reka letak lajur sama ketinggian, supaya ia boleh dipaparkan pada ketinggian yang sama tanpa mengira ketinggian kandungan. Dalam artikel ini, kami akan memperkenalkan cara menggunakan susun atur CSSFlex untuk mencapai susun atur lajur ketinggian yang sama. Di bawah ialah contoh kod khusus. Struktur HTML: &

Bagaimana untuk melaksanakan susun atur grid yang tidak teratur melalui susun atur CSS Flex Bagaimana untuk melaksanakan susun atur grid yang tidak teratur melalui susun atur CSS Flex Sep 28, 2023 pm 09:49 PM

Bagaimana untuk melaksanakan susun atur grid yang tidak teratur melalui reka letak elastik CSSFlex, selalunya perlu menggunakan reka letak grid untuk mencapai pembahagian halaman dan susun atur biasanya, dan setiap grid adalah saiz yang sama beberapa susun atur grid yang tidak teratur. Reka letak anjal CSSFlex ialah kaedah susun atur berkuasa yang boleh melaksanakan pelbagai susun atur grid dengan mudah, termasuk susun atur grid yang tidak teratur. Di bawah ini kami akan memperkenalkan cara menggunakan susun atur elastik CSSFlex untuk mencapai yang berbeza

Panduan untuk sifat susun atur fleksibel CSS: letak melekit dan kotak fleksibel Panduan untuk sifat susun atur fleksibel CSS: letak melekit dan kotak fleksibel Oct 27, 2023 am 10:06 AM

Panduan untuk Ciri Reka Letak Fleksibel CSS: positionsticky dan flexbox Reka letak fleksibel telah menjadi teknik yang sangat popular dan berguna dalam reka bentuk web moden. Ia boleh membantu kami membuat reka letak halaman web yang boleh suai supaya halaman web boleh memaparkan dan bertindak balas dengan baik pada peranti dan saiz skrin yang berbeza. Artikel ini akan menumpukan pada dua sifat susun atur yang fleksibel: position:sticky dan flexbox. Kami akan membincangkan penggunaannya secara terperinci, dengan contoh kod konkrit

Tutorial HTML: Cara menggunakan Flexbox untuk susun atur sama ketinggian, lebar sama, dan jarak yang sama Tutorial HTML: Cara menggunakan Flexbox untuk susun atur sama ketinggian, lebar sama, dan jarak yang sama Oct 27, 2023 pm 05:51 PM

Tutorial HTML: Cara menggunakan Flexbox untuk susun atur sama tinggi, sama lebar, sama jarak Contoh kod khusus Pengenalan: Dalam reka bentuk web moden, reka letak adalah faktor yang sangat kritikal. Untuk halaman yang perlu memaparkan sejumlah besar kandungan, cara mengatur kedudukan dan saiz elemen secara munasabah untuk mencapai keterlihatan yang baik dan kemudahan penggunaan adalah isu penting. Flexbox (Tempat Letak Kotak Fleksibel) ialah alat yang sangat berkuasa di mana pelbagai keperluan susun atur fleksibel boleh direalisasikan dengan mudah. Artikel ini akan memperkenalkan Flexbox secara terperinci

Cara menggunakan susun atur CSS Flex untuk melaksanakan susun atur aliran air terjun Cara menggunakan susun atur CSS Flex untuk melaksanakan susun atur aliran air terjun Sep 27, 2023 pm 04:22 PM

Cara menggunakan susun atur elastik CSSFlex untuk melaksanakan reka letak aliran air terjun Dengan pembangunan berterusan reka bentuk web, reka letak aliran air terjun telah menjadi kaedah susun atur halaman yang sangat popular. Tidak seperti susun atur grid tradisional, susun atur aliran air terjun boleh menyesuaikan diri dengan saiz skrin dan memberikan deria aliran yang unik. Dalam artikel ini, kami akan memperkenalkan cara menggunakan reka letak anjal CSSFlex untuk melaksanakan reka letak aliran air terjun dan memberikan contoh kod khusus. Reka letak anjal CSSFlex ialah model susun atur berkuasa yang digunakan di

See all articles