Pengenalan:
Mereka bentuk laman web adalah seperti mencipta seni. Sama seperti susunan lukisan menceritakan kisah, reka letak tapak web lebih banyak bercakap tentang mesejnya. Flexbox ialah alat yang berkuasa untuk mencapai ini.
Sebelum Flexbox, pembangun terpaksa menggunakan teknik seperti elemen terapung, penggodaman margin dan reka letak meja untuk mencipta reka bentuk responsif. Kaedah ini berfungsi tetapi tidak berskala dan memerlukan pertanyaan media tambahan untuk melaraskan saiz skrin yang berbeza.
Flexbox menukar perkara ini dengan menyediakan cara yang mudah dan cekap untuk menjajarkan, mengedar dan saiz elemen dalam bekas.
Apakah itu Flexbox?
Flexbox ialah model reka letak yang membantu anda membuat reka letak yang kompleks dengan mudah. Ia membolehkan anda menjajarkan item secara mendatar atau menegak dalam bekas. Flexbox ialah satu dimensi, bermakna ia mengawal reka letak sepanjang paksi tunggal (sama ada mendatar atau menegak) pada satu masa.
- Penjajaran Mendatar: Anda boleh menjajarkan item sebelah menyebelah dalam baris dengan mudah.
- Penjajaran Menegak: Menjajarkan item dalam lajur.
Dalam blog ini, kita akan menyelami sifat utama Flexbox dan cara ia memudahkan pengurusan reka letak.
Sifat Bekas Flex:
Sebelum menyelami sifat flex, adalah penting untuk memahami dua paksi Flexbox:
- Paksi Utama
- Paksi Silang
Memahami paksi ini penting kerana sesetengah sifat menjajarkan item di sepanjang paksi utama, manakala yang lain menjajarkannya di sepanjang paksi silang. Mengetahui perkara ini akan membantu anda memahami cara hartanah berfungsi dengan lebih baik.
arah lentur: baris | lajur
Flexbox ialah mengenai menjajarkan item dalam baris atau lajur. Secara lalai, ia ditetapkan kepada baris.
- baris: Menjajarkan item secara mendatar (lalai).
- lajur: Menjajarkan item secara menegak.
<div style="display: flex; flex-direction: row;"> <div>Item 1</div> <div>Item 2</div> <div>Item 3</div> </div>
flex-wrap: nowrap | bungkus | bungkus-balik
Ia membenarkan item flex untuk membalut ke baris seterusnya dan bukannya mengecilkannya. Lalai ialah nowrap.
- nowrap: Semua item fleksibel akan berada pada satu baris (lalai).
- balut: Item fleksibel akan dibalut ke baris seterusnya jika tidak muat.
- balut-balik: Item fleksibel akan membalut ke arah sebaliknya.
<div style="display: flex; flex-wrap: wrap;"> <div class="box">Item 1</div> <div class="box">Item 2</div> <div class="box">Item 3</div> </div>
justify-kandungan: flex-start | hujung lentur | pusat | ruang-antara | ruang-sekitar | ruang-sekata
Digunakan untuk menjajarkan item di sepanjang paksi utama. Untuk arah lentur: baris, paksi-x ialah paksi utama dan paksi-y ialah paksi silang.
- flex-start: Menjajarkan item ke permulaan bekas.
- flex-end: Menjajarkan item ke hujung.
- pusat: Memusatkan item.
- ruang-antara: Mengedarkan item dengan ruang di antara mereka.
- ruang-sekitar: Mengedarkan item dengan ruang di sekelilingnya.
- ruang-sekata: Mengagihkan ruang secara sekata antara item.
<div style="display: flex; justify-content: space-between;"> <div>Item 1</div> <div>Item 2</div> <div>Item 3</div> </div>
selaraskan-item: mula lentur | hujung lentur | pusat | menghulurkan | garis dasar
Digunakan untuk menjajarkan item di sepanjang paksi silang. Untuk arah lentur lajur, paksi-y ialah paksi utama dan paksi-x ialah paksi silang.
- flex-start: Menjajarkan item ke permulaan paksi silang.
- flex-end: Menjajarkan item ke hujung.
- tengah: Memusatkan item pada paksi silang.
- regangkan: Regangkan item untuk mengisi bekas.
- garis dasar: Menjajarkan item berdasarkan garis dasar teksnya.
<div style="display: flex; align-items: center; height: 200px;"> <div>Item 1</div> <div>Item 2</div> <div>Item 3</div> </div>
Sifat Item Fleksibel
selaraskan diri: mulakan lentur | hujung lentur | pusat | menghulurkan | garis dasar
Sifat align-self membolehkan anda menjajarkan anak individu di sepanjang paksi silang.
<div style="display: flex; height: 200px;"> <div style="align-self: flex-start;">Item 1</div> <div style="align-self: center;">Item 2</div> <div style="align-self: flex-end;">Item 3</div> </div>
Membesar dan Mengecut
3 sifat yang perlu diketahui: flex-grow, flex-shrink dan flex-basis.
flex-grow:
This property defines how much a flex item will grow relative to the other items inside a flex container when there is extra space available. By default, flex-grow is set to 0, meaning items won't grow beyond their natural size. Setting flex-grow: 1 allows the item to expand and occupy the remaining available space within the container.
If multiple items have flex-grow:1 applied, they will divide the extra space proportionally, based on the grow values set for each item.
Imagine a dashboard layout where you have a sidebar and a main content area. You want the sidebar to stay fixed in size, but the main content area should expand and take up the remaining space.
<div style="display: flex;"> <div style="flex-grow: 0; width: 200px;">Sidebar</div> <!-- Fixed width sidebar --> <div style="flex-grow: 1;">Main Content Area</div> <!-- Expanding content area --> </div>
flex-shrink:
When the container size reduces, items inside will also shrink proportionally.
For example, consider a profile card with a rounded image and a name. As the container shrinks, the image may distort, turning from a circle to an oval. To prevent this, you can set flex-shrink: 0, ensuring the image retains its original size while the rest of the content adapts.
<div style="display: flex;"> <img src="/static/imghwm/default1.png" data-src="profile.jpg" class="lazy" style="max-width:90%" alt="Profile Picture"> <!-- Image won't shrink --> <div style="flex-shrink: 1;">User Name</div> <!-- Name can shrink --> </div>
While you might think of using min-width to achieve the same effect, flex-shrink is a more straightforward and flexible approach within the Flexbox algorithm.
- flex-grow controls how extra space is distributed among items.
- flex-shrink controls how space is reduced when the container size decreases.
flex-basis: Setting the Initial Size
The flex-basis property defines the initial size of a flex item. If the flex-direction is set to row, flex-basis controls the width of the items. If the flex-direction is column, it controls the height.
flex-basis is similar to the width or height properties, but with one key difference: it only sets the initial size, while allowing the item to grow or shrink depending on the available space and the flex-grow and flex-shrink values.
- If flex-basis is set to auto or content, the size of the item is based on its content.
- If you want to define a fixed starting size but still allow the item to grow or shrink, use flex-basis.
.child { flex-basis: 25%; /* Starts at 25% width, but can grow to fill space */ flex-grow: 1; /* Will grow to take up more space if available */ }
In this example, the child element initially takes up 25% of the container’s width, but it can grow beyond that if there’s more space available.
Setting a fixed size:
If you want the item to have a fixed size (not grow or shrink), you can use the flex shorthand, like this:
.child { flex: 0 0 100px; /* No growth, no shrinking, stays fixed at 100px */ }
This shorthand breaks down as:
- 0 (flex-grow): The item will not grow.
- 0 (flex-shrink): The item will not shrink.
- 100px (flex-basis): The item has a fixed size of 100px.
Using width instead of flex-basis inside a flex layout can lead to issues sometimes.because the item defined with width and won't adjust if the container grows or shrinks, making the layout less responsive. So use it appropriately.
align-content:
We've already learned about flex-wrap. Flex-wrap allows flex items to wrap to the next lines instead of shrinking, right?
Each of these flex lines acts like a separate "mini flex container". We also know that the align-items property is used to align items on the cross axis. Here, this align-items property will work inside this flex line only, because as I mentioned, each line itself is a mini flex container. We also have an outer flex container, right? If we need to align these lines with respect to the outer container, we need one more property that aligns these flex lines on the cross axis. That property is align-content.
.container { display: flex; flex-wrap: wrap; align-content: center; height: 300px; } .item { width: 30%; height: 50px; background-color: #3498db; margin: 5px; }
In this example, we have a flex container with multiple items that wrap onto multiple lines. The align-content: center; property centers the wrapped lines along the container's cross-axis.
The possible values for align-content include:
- flex-start: Lines are aligned toward the start of the container.
- flex-end: Lines are aligned toward the end of the container.
- center: Lines are centered in the container.
- space-between: Lines are evenly distributed; the first line is at the start of the container while the last one is at the end.
- space-around: Lines are evenly distributed with equal space around each line.
- stretch (default): Lines stretch to take up the remaining space.
Gaps
The gap property was not available in earlier versions of Flexbox. Previously, developers relied on margin properties to create space between flex items. The introduction of the gap property marked a significant improvement in Flexbox functionality.
It provides a straightforward method for creating space between flex items, simplifying the layout process.
.flex-container { display: flex; gap: 10px; /* Adds a 10px gap between all flex items */ }
Auto margins
margin: auto:
Last but not least, a commonly used spacing trick
The margin: auto property in Flexbox is a powerful tool for aligning flex items. It automatically uses the leftover space around the item, making it useful for centering or pushing items to opposite sides of a container.
For example, you can use margin-left: auto to push an item to the right side of a flex container:
.flex-container { display: flex; } .push-right { margin-left: auto; }
This technique allows for quick and easy alignment without the need for additional positioning properties.
Conclusion
In this guide, we explored how Flexbox has simplified the task of aligning and distributing items within a webpage. Flexbox isn't just a layout tool—it's a critical skill for any web developer aiming to create responsive, well-structured designs. I hope this guide has helped you understand the power of Flexbox.
Try these demos and feel free to share your thoughts or questions. Thanks!
Atas ialah kandungan terperinci Memahami Sifat Flex dalam CSS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Ekosistem React menawarkan kita banyak perpustakaan yang semuanya memberi tumpuan kepada interaksi seret dan penurunan. Kami mempunyai React-Dnd, React-Beautiful-Dnd,

Terdapat beberapa perkara yang saling berkaitan dengan perisian cepat sejak kebelakangan ini.

Saya tidak boleh mengatakan saya menggunakan klip latar belakang semua yang kerap. Saya ' Tetapi saya diingatkan dalam jawatan oleh Stefan Judis,

Animasi dengan RequestAnimationFrame semestinya mudah, tetapi jika anda belum membaca dokumentasi React dengan teliti maka anda mungkin akan mengalami beberapa perkara

Mungkin cara paling mudah untuk menawarkan kepada pengguna adalah pautan yang mensasarkan ID pada elemen. Begitu seperti ...

Dengar, saya bukan pakar GraphQL tetapi saya suka bekerja dengannya. Cara ia mendedahkan data kepada saya sebagai pemaju front-end cukup sejuk. Ia seperti menu

Pada minggu ini, roundup, sebuah bookmarklet yang berguna untuk memeriksa tipografi, menggunakan menunggu untuk mengamuk dengan cara modul JavaScript mengimport satu sama lain, ditambah Facebook ' s

Saya baru -baru ini melihat perubahan yang menarik pada Codepen: apabila melayang pena di laman web, ada persegi panjang dengan sudut bulat yang berkembang di belakang.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Pelayar Peperiksaan Selamat
Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna