Jadual Kandungan
父元素上的属性
子元素上的属性
特别注意,为简化布局理解,上面事例都使用了默认的 flex-direction:row 作为子元素排序方向为基础。如果改为 flex-direction:column ,主轴将为变成 Y 轴,而副轴将变成 X 轴,所有属性的效果将会改变,这个留给读者自行实践。
Rumah hujung hadapan web html tutorial css3 中最出色的功能--flex 布局

css3 中最出色的功能--flex 布局

Jun 26, 2017 am 09:06 AM
css css3 flex susun atur

flex 布局是 css3 中使用最频繁也是最出色的功能,有点复杂,分为应用在容器上的属性和项目上的属性,即父元素上的与子元素上的属性。

父元素上的属性

  • display: flex

    <style>div{display: flex; background-color: yellow;}b{background-color: red;}</style><body>  <div>      <b>a</b><b>b</b><b>c</b><b>d</b><b>e</b><b>f</b><b>g</b><b>h</b><b>i</b>  </div></body>
    Salin selepas log masuk

    当父元素设置为 flex 后,其父元素自身会表现成块级元素,如果想表现为行内元素,可以使用 inline-flex。 所有子元素不管是块级的还是行内的,会立即变成行内布局,这是其他属性的默认值所致的,后面可以修改。

  • flex-direction

    <style>div{display: flex; background-color: yellow; margin: 5px;}div.row{ flex-direction: row;}div.row-reverse{ flex-direction: row-reverse;}div.column{ flex-direction: column;}div.column-reverse{ flex-direction: column-reverse;}b{background-color: red;}</style><body>  <div class="row">      <b>a</b><b>b</b><b>c</b><b>d</b>  </div>  <div class="row-reverse">      <b>a</b><b>b</b><b>c</b><b>d</b>  </div>  <div class="column">      <b>a</b><b>b</b><b>c</b><b>d</b>  </div>  <div class="column-reverse">      <b>a</b><b>b</b><b>c</b><b>d</b>  </div></body>
    Salin selepas log masuk

    flex-direction 决定子元素的排列方向,默认值 row

  • flex-wrap

    <style>div{display: flex; background-color: yellow; margin: 5px; }div.nowrap{ flex-wrap: nowrap;}div.wrap{ flex-wrap: wrap;}div.wrap-reverse{ flex-wrap: wrap-reverse;}b{background-color: red; width: 100px;}</style><body>  <div class="nowrap">      <b>a</b><b>b</b><b>c</b><b>d</b>  </div>  <div class="wrap">      <b>a</b><b>b</b><b>c</b><b>d</b>  </div>  <div class="wrap-reverse">      <b>a</b><b>b</b><b>c</b><b>d</b>  </div></body>
    Salin selepas log masuk

    flex-wrap 决定子元素超出一行时应该如何处理,默认值 nowrap 会压缩子元素的宽度,wrap 是换行,wrap-reverse 则是向上增加新一行。注意:这是在主轴为X轴的前提下讨论的。

  • justify-content

    <style>b{background-color: red; }div{display: flex; background-color: yellow; margin: 5px; }div.start{ justify-content: flex-start;}div.end{justify-content: flex-end;}div.center{ justify-content: center;}div.space-between{ justify-content: space-between;}div.space-around{ justify-content: space-around;}</style><body>  <div class="start">      <b>a</b><b>b</b><b>c</b><b>d</b>  </div>  <div class="end">      <b>a</b><b>b</b><b>c</b><b>d</b>  </div>  <div class="center">      <b>a</b><b>b</b><b>c</b><b>d</b>  </div>  <div class="space-between">      <b>a</b><b>b</b><b>c</b><b>d</b>  </div>  <div class="space-around">      <b>a</b><b>b</b><b>c</b><b>d</b>  </div></body>
    Salin selepas log masuk

    justify-content 决定子元素在主轴(当前是X轴)上的位置,默认值 flex-startspace-betweenspace-around 的间隔是多余空间平分出来的,但后者会为左右端也计入空间。

  • align-items

    <style>b{background-color: red; width: 40px;}b:nth-child(1){}b:nth-child(2){font-size: 30px; height: 40px;}b:nth-child(3){height: 50px;}b:nth-child(4){height: 60px;}div{display: flex; flex-wrap: wrap; background-color: yellow; margin: 5px; }div.start{ align-items: flex-start;}div.end{ align-items: flex-end;}div.center{ align-items: center;}div.baseline{ align-items: baseline;}div.stretch{ align-items: stretch;}</style><body>  <div class="start">      <b>a</b><b>b</b><b>c</b><b>d</b>  </div>  <div class="end">      <b>a</b><b>b</b><b>c</b><b>d</b>  </div>  <div class="center">      <b>a</b><b>b</b><b>c</b><b>d</b>  </div>  <div class="baseline">      <b>a</b><b>b</b><b>c</b><b>d</b>  </div>  <div class="stretch">      <b>a</b><b>b</b><b>c</b><b>d</b>  </div></body>
    Salin selepas log masuk

    align-items 决定副轴(当前为Y轴)上元素的对其方式。默认值 stretch,表示当子元素不设置高度时,充满父类高度。

  • align-content

    <style>b{background-color: red; width: 100px;}div{display: flex; flex-wrap: wrap; background-color: yellow; margin: 5px; height: 70px;}div.start{ align-content: flex-start;}div.end{ align-content: flex-end;}div.center{ align-content: center;}div.space-between{ align-content: space-between;}div.space-around{ align-content: space-around;}div.stretch{ align-content: stretch;}</style><body>  <div class="start">      <b>a</b><b>b</b><b>c</b><b>d</b>  </div>  <div class="end">      <b>a</b><b>b</b><b>c</b><b>d</b>  </div>  <div class="center">      <b>a</b><b>b</b><b>c</b><b>d</b>  </div>  <div class="space-between">      <b>a</b><b>b</b><b>c</b><b>d</b>  </div>  <div class="space-around">      <b>a</b><b>b</b><b>c</b><b>d</b>  </div>  <div class="stretch">      <b>a</b><b>b</b><b>c</b><b>d</b>  </div></body>
    Salin selepas log masuk

    align-content 表示子元素有多行时,每行在副轴(当前为Y轴)上的位置。默认值 stretch,表示变动子元素每行的高度,直到充满父元素。

子元素上的属性

  • order

    <style>div{display: flex; background-color: yellow; margin: 5px;}b{background-color: red; }b.test{order: -1;}</style><body>  <div class="start">      <b>a</b><b>b</b><b class="test">c</b><b>d</b>  </div></body>
    Salin selepas log masuk

    order 表示从小到大排列同级元素,默认值 0

  • flex-grow

    <style>div{display: flex; background-color: yellow; margin: 5px;}b{background-color: red; }b.test{flex-grow: 1; background-color: green;}</style><body>  <div class="start">      <b>a</b><b>b</b><b class="test">c</b><b>d</b>  </div></body>
    Salin selepas log masuk

    flex-grow 表示当主轴(当前为X轴)上有剩余空间时,平分空间时所占的比例。默认值 0,表示不占空间。当前空间平分比例为 0 : 0 : 1 : 0,所以 c 占据所有剩余空间。

  • flex-shrink

    <style>div{display: flex; background-color: yellow; margin: 5px;}b{background-color: red; width: 100px; flex-shrink: 0;}b.test{flex-shrink: 1; background-color: green;}</style><body>  <div class="start">      <b>a</b><b>b</b><b class="test">c</b><b>d</b>  </div></body>
    Salin selepas log masuk

    flex-shrink 表示当主轴(当前为X轴)空间不足以填充所有子元素时,应该如何压缩子元素,默认值 1,表示 1 : 1 : 1 : 1,即等比压缩,当前比例为 0 : 0 : 1 : 0,表示所有空间由 c 来压缩。

  • flex-basis

    <style>div{display: flex; background-color: yellow; margin: 5px;}b{background-color: red; flex-grow: 1;}b.test{flex-basis: 100px; background-color: green;}</style><body>  <div class="start">      <b>a</b><b>b</b><b class="test">c</b><b>d</b>  </div></body>
    Salin selepas log masuk

    flex-basis 表示当主轴(当前为X轴)上平分空间前,先占据的位置,当主轴为X轴,与设置 width 是等效的,当主轴为Y轴,与设置 height 是等效的。默认值 auto,表示与 widthheight 相等。

  • align-self

    <style>div{display: flex; background-color: yellow; margin: 5px;}b{background-color: red; flex-grow: 1;}b:nth-child(1){height: 20px;}b:nth-child(2){height: 40px;}b:nth-child(3){height: 50px;}b:nth-child(4){height: 60px;}b.test{align-self: flex-end; background-color: green;}</style><body>  <div class="start">      <b>a</b><b>b</b><b class="test">c</b><b>d</b>  </div></body>
    Salin selepas log masuk

    align-self 表示当前元素可以覆盖父元素 align-items 所决定的副轴(当前为Y轴)上的方向。默认 auto,即不设置。可选择与 align-items 一致,auto | flex-start | flex-end | center | baseline | stretch 。


特别注意,为简化布局理解,上面事例都使用了默认的 flex-direction:row 作为子元素排序方向为基础。如果改为 flex-direction:column ,主轴将为变成 Y 轴,而副轴将变成 X 轴,所有属性的效果将会改变,这个留给读者自行实践。

学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入学习交流群

Atas ialah kandungan terperinci css3 中最出色的功能--flex 布局. 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)

Cara Menulis Garis Pecah Di Bootstrap Cara Menulis Garis Pecah Di Bootstrap Apr 07, 2025 pm 03:12 PM

Terdapat dua cara untuk membuat garis perpecahan bootstrap: menggunakan tag, yang mewujudkan garis perpecahan mendatar. Gunakan harta sempadan CSS untuk membuat garis perpecahan gaya tersuai.

Cara memasukkan gambar di bootstrap Cara memasukkan gambar di bootstrap Apr 07, 2025 pm 03:30 PM

Terdapat beberapa cara untuk memasukkan imej dalam bootstrap: masukkan imej secara langsung, menggunakan tag HTML IMG. Dengan komponen imej bootstrap, anda boleh memberikan imej yang responsif dan lebih banyak gaya. Tetapkan saiz imej, gunakan kelas IMG-cecair untuk membuat imej boleh disesuaikan. Tetapkan sempadan, menggunakan kelas IMG-Sempadan. Tetapkan sudut bulat dan gunakan kelas IMG-bulat. Tetapkan bayangan, gunakan kelas bayangan. Saiz semula dan letakkan imej, menggunakan gaya CSS. Menggunakan imej latar belakang, gunakan harta CSS imej latar belakang.

Cara mengubah saiz bootstrap Cara mengubah saiz bootstrap Apr 07, 2025 pm 03:18 PM

Untuk menyesuaikan saiz unsur-unsur dalam bootstrap, anda boleh menggunakan kelas dimensi, yang termasuk: menyesuaikan lebar: .col-, .w-, .mw-adjust ketinggian: .h-, .min-h-, .max-h-

Cara Menyiapkan Kerangka untuk Bootstrap Cara Menyiapkan Kerangka untuk Bootstrap Apr 07, 2025 pm 03:27 PM

Untuk menubuhkan rangka kerja bootstrap, anda perlu mengikuti langkah -langkah ini: 1. Rujuk fail bootstrap melalui CDN; 2. Muat turun dan tuan rumah fail pada pelayan anda sendiri; 3. Sertakan fail bootstrap di HTML; 4. Menyusun sass/kurang seperti yang diperlukan; 5. Import fail tersuai (pilihan). Setelah persediaan selesai, anda boleh menggunakan sistem grid Bootstrap, komponen, dan gaya untuk membuat laman web dan aplikasi yang responsif.

Peranan HTML, CSS, dan JavaScript: Tanggungjawab Teras Peranan HTML, CSS, dan JavaScript: Tanggungjawab Teras Apr 08, 2025 pm 07:05 PM

HTML mentakrifkan struktur web, CSS bertanggungjawab untuk gaya dan susun atur, dan JavaScript memberikan interaksi dinamik. Ketiga melaksanakan tugas mereka dalam pembangunan web dan bersama -sama membina laman web yang berwarna -warni.

Cara menggunakan butang bootstrap Cara menggunakan butang bootstrap Apr 07, 2025 pm 03:09 PM

Bagaimana cara menggunakan butang bootstrap? Perkenalkan CSS bootstrap untuk membuat elemen butang dan tambahkan kelas butang bootstrap untuk menambah teks butang

Cara menggunakan bootstrap di vue Cara menggunakan bootstrap di vue Apr 07, 2025 pm 11:33 PM

Menggunakan bootstrap dalam vue.js dibahagikan kepada lima langkah: Pasang bootstrap. Import bootstrap di main.js. Gunakan komponen bootstrap secara langsung dalam templat. Pilihan: Gaya tersuai. Pilihan: Gunakan pemalam.

Cara melihat tarikh bootstrap Cara melihat tarikh bootstrap Apr 07, 2025 pm 03:03 PM

Jawapan: Anda boleh menggunakan komponen pemetik tarikh bootstrap untuk melihat tarikh di halaman. Langkah -langkah: Memperkenalkan rangka kerja bootstrap. Buat kotak input pemilih Tarikh dalam HTML. Bootstrap secara automatik akan menambah gaya kepada pemilih. Gunakan JavaScript untuk mendapatkan tarikh yang dipilih.

See all articles