Rumah > hujung hadapan web > tutorial css > Perbezaan antara Flexbox (flex) dan Grid Layout (grid)

Perbezaan antara Flexbox (flex) dan Grid Layout (grid)

Mary-Kate Olsen
Lepaskan: 2024-10-07 20:09:02
asal
661 orang telah melayarinya

The Difference between Flexbox (flex) and Grid Layout (grid)

1. Reka Letak Satu Dimensi lwn. Dua Dimensi

  • Flexbox (Susun Letak Kotak Fleksibel):
    • Satu dimensi model reka letak.
    • Ia direka bentuk untuk mengurus reka letak dalam satu paksi (sama ada mendatar atau menegak).
    • Item dibentangkan dalam satu baris (di sepanjang paksi utama) atau dalam lajur (di sepanjang paksi silang), dan ruang antara/sekitarnya adalah fleksibel.

Contoh: Menyusun elemen dalam satu baris (sama ada baris atau lajur).


  .container {
    display: flex;
    flex-direction: row; /* or 'column' */
  }


Salin selepas log masuk
  • Susun Letak Grid:
    • model reka letak dua dimensi.
    • Ia membenarkan kawalan ke atas reka letak kedua-dua mendatar (baris) dan menegak (lajur) serentak.
    • Ia lebih sesuai untuk reka letak yang kompleks di mana kedua-dua baris dan lajur diperlukan.

Contoh: Menentukan grid dengan baris dan lajur untuk elemen dimuatkan.


<p>.container {<br>
    display: grid;<br>
    grid-template-columns: repeat(3, 1fr);<br>
    grid-template-rows: auto;<br>
  }</p>

Salin selepas log masuk



  1. Kes Penggunaan

  • Flexbox:

    • Terbaik untuk reka letak dalam satu arah (sama ada baris atau lajur) yang matlamat utamanya adalah untuk mengagihkan ruang antara item atau menjajarkan item dalam bekas.
    • Kes Penggunaan Biasa:
    • Bar navigasi.
    • Memusatkan item secara menegak atau mendatar.
    • Komponen ringkas seperti butang, menu atau bar alat.
  • Grid:

    • Terbaik untuk reka letak kompleks di mana anda perlu menentukan kedua-dua baris dan lajur serta meletakkan item dalam grid berstruktur.
    • Kes Penggunaan Biasa:
    • Lengkapkan reka letak halaman web.
    • Reka letak dengan pengepala, bar sisi dan kawasan kandungan.
    • Apabila anda memerlukan kawalan terperinci ke atas kedua-dua baris dan lajur.

3. Kawalan ke atas Penjajaran

  • Flexbox:

    • Flexbox membolehkan kawalan mudah ke atas penjajaran item di sepanjang paksi utama dan paksi silang.
    • Jajarkan item menggunakan sifat seperti justify-content (untuk paksi utama) dan align-item (untuk paksi silang).
  • Grid:

    • Grid menyediakan kawalan tepat ke atas tempat item diletakkan menggunakan baris baris dan lajur (garis grid).
    • Grid juga menawarkan kandungan justify dan align-content, tetapi dengan lebih kawalan ke atas cara item merentasi kawasan grid.

4. Penempatan Item

  • Flexbox:

    • Item diletakkan secara berurutan berdasarkan ruang yang tersedia dalam bekas (item seterusnya mengikuti yang sebelumnya dalam satu baris atau lajur).
    • Anda tidak boleh mengawal peletakan item dalam kedua-dua paksi pada masa yang sama.
  • Grid:

    • Grid membolehkan anda menempatkan item secara eksplisit dengan menyatakan baris dan lajur yang perlu diduduki oleh setiap item.
    • Anda boleh meletakkan item di mana-mana sahaja pada grid dengan merujuk garis grid.


<p>.item1 {<br>
    grid-column: 1 / 3;  /* Span two columns <em>/</em><br>
    grid-row: 1 / 2;     / Span one row */<br>
  }</p>

Salin selepas log masuk



  1. Kerumitan Reka Letak

  • Flexbox:

    • Sesuai untuk reka letak ringkas seperti baris atau lajur item, menjajarkan beberapa elemen.
    • Lebih terhad dari segi membina reka letak halaman yang kompleks.
  • Grid:

    • Sesuai untuk reka letak kompleks yang melibatkan berbilang baris dan lajur, elemen bertindih dan struktur grid yang canggih.
    • Grid boleh mengendalikan kedua-dua penjajaran dan kedudukan item, menjadikannya hebat untuk membuat reka letak keseluruhan halaman.

6. Kandungan lwn. Pendekatan Pertama Reka Letak

  • Flexbox:

    • Pendekatan mengutamakan kandungan: Flexbox berfungsi paling baik apabila anda mereka bentuk reka letak mengikut saiz kandungan. Reka letak menyesuaikan diri dengan saiz anak-anaknya (cth., item fleksibel).
    • Saiz dan penempatan item lebih bergantung pada kandungan di dalamnya.
  • Grid:

    • Layout-first approach: Grid is focused on defining areas on the page first (rows, columns) and then placing content within that defined structure.
    • The grid template structure is set first, and the content fits into it.

7. Browser Support

  • Both Flexbox and Grid have excellent browser support in modern browsers. However, Flexbox has been around longer and has more widespread support across older versions of browsers.

8. Nested Layouts

  • Flexbox:

    • Flexbox is great when used within a grid for nested layouts, such as when you need a row or column-based layout inside a grid item.
  • Grid:

    • Grid can also handle nested layouts, though it is more commonly used for the larger-scale structure, like the main layout of a page, while Flexbox is often used inside grid items.

Example: Comparing Flexbox vs. Grid Layout

Flexbox Example:


<p><div class="flex-container"><br>
  <div class="item">1</div><br>
  <div class="item">2</div><br>
  <div class="item">3</div><br>
</div></p>

Salin selepas log masuk

<p>.flex-container {<br>
  display: flex;<br>
  flex-direction: row;<br>
  justify-content: space-between;<br>
}</p>

<p>.item {<br>
  width: 100px;<br>
  height: 100px;<br>
  background-color: lightblue;<br>
}</p>

Salin selepas log masuk




Grid Example:



<p><div class="grid-container"><br>
  <div class="item">1</div><br>
  <div class="item">2</div><br>
  <div class="item">3</div><br>
</div></p>

Salin selepas log masuk

<p>.grid-container {<br>
  display: grid;<br>
  grid-template-columns: repeat(3, 1fr); /* 3 equal-width columns */<br>
  gap: 10px;<br>
}</p>

<p>.item {<br>
  background-color: lightblue;<br>
  height: 100px;<br>
}</p>

Salin selepas log masuk




Summary:

  • Flexbox: One-dimensional (row or column), great for simple, flexible layouts and aligning items along one axis. Ideal for small components or simpler layouts.
  • Grid: Two-dimensional (rows and columns), perfect for complex, large-scale layouts with precise control over positioning in both directions.

Use Flexbox when your layout is simpler and primarily involves elements in a row or column. Use Grid when you need a more complex, structured layout with both rows and columns. Both tools are complementary and can be used together in various parts of a web page or application.

Atas ialah kandungan terperinci Perbezaan antara Flexbox (flex) dan Grid Layout (grid). 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan