


4 sifat grid CSS (dan satu nilai) untuk kebanyakan keperluan susun atur anda
Apr 08, 2025 am 11:32 AMCSS Grid memberi kami sistem susun atur laman web yang kuat. Panduan CSS-Tricks memberikan gambaran menyeluruh mengenai sifat dan contoh susun atur Grid. Kami akan mengambil pendekatan yang bertentangan, menunjukkan kepada anda set atribut grid minimum yang diperlukan untuk memenuhi keperluan susun atur yang paling.
Lima atribut ini akan membantu anda memulakan dengan cepat:
-
display
(untuk nilai grid) -
grid-template-columns
-
grid-gap
-
grid-auto-flow
-
grid-column
/grid-row
Inilah kesederhanaannya. Katakan anda ingin melaksanakan susun atur berikut untuk skrin kecil, sederhana dan besar.
Inilah markup yang akan kita gunakan:
<nav><ul> <li> <li> <li> <li> <li> <li> <li> <li> <li> </ul></nav><div></div>
Jika kita menggunakan beberapa gaya asas, kita akan mendapat hasil berikut, yang cukup untuk skrin kecil:
Sekarang kita dapat mendapatkan pemahaman yang lebih mendalam tentang sifat grid!
Gunakan display: grid
untuk membahagikan halaman ke dalam bekas susun atur bebas
Pertama, kita perlu menentukan bahagian halaman mana yang harus diselaraskan dengan susun atur grid. Susun atur grid tunggal boleh ditakrifkan untuk keseluruhan halaman. Walau bagaimanapun, untuk laman web yang mempunyai struktur yang sangat kompleks (seperti laman berita), mengendalikan grid besar dengan cepat boleh menjadi tidak terkawal. Dalam kes ini, saya cadangkan memecahkannya ke dalam beberapa bekas grid bebas.
Seperti ini:
Di manakah anda melukis sempadan antara grid dan apa yang bukan grid? Berikut adalah peraturan peribadi yang saya ikuti:
Jika susun atur bahagian tertentu halaman tidak sesuai dengan grid bahagian halaman bersebelahan atau sekitarnya, kemudian tetapkan bahagian itu sebagai bekas gridnya sendiri.
Saya telah menarik garis grid di bahagian halaman dengan kelas .container-main
seperti yang ditunjukkan dalam imej berikut. Anda mungkin mendapati bahawa bahagian kelas .container-inner
dari tag tidak sesuai dengan grid baris.
Ini adalah satu lagi susun atur yang mungkin, jika grid garis yang lebih baik dipilih, sebahagian kecil sesuai di sekitar grid. Tiada bekas grid yang berasingan diperlukan di sini.
Pertama, mari kita menukar .container-main
ke bekas grid. Berikut adalah blok bangunan asas grid CSS - menukarkan elemen ke dalam bekas grid menggunakan atribut display
:
.Container-Main { paparan: grid; }
Kita juga perlu melakukan perkara yang sama untuk bekas grid lain:
.container-inner { paparan: grid; } .container-nav { paparan: grid; }
Gunakan grid-template-columns
untuk menentukan lajur yang diperlukan
Seterusnya, kami akan menentukan bilangan lajur yang diperlukan dalam setiap bekas grid dan lebar lajur tersebut. Garis panduan saya mengenai bilangan lajur: Gunakan pelbagai minimum biasa bilangan lajur maksimum yang diperlukan untuk saiz skrin yang berbeza.
Bagaimana kerja ini? Unsur .container-main
mempunyai dua lajur pada skrin bersaiz sederhana. Sekiranya kita melipatgandakan ini dengan bilangan lajur pada skrin besar (tiga lajur), kita akan mendapat sejumlah enam lajur.
Kami juga boleh melakukan perkara yang sama untuk navigasi ( .container-inner
element). Terdapat tiga lajur pada skrin saiz sederhana, dan kami membiaknya dengan satu pada skrin besar dan kami mendapat tiga lajur.
Unsur .container-nav
tidak mempunyai nombor lajur. Dalam kes ini, sistem grid harus menyesuaikan bilangan lajur secara automatik ke bilangan elemen menu. Adalah biasa untuk menambah atau memadam item dalam navigasi, dan ia akan menjadi lebih baik jika ia bertindak balas dengan sewajarnya, yang mana grid dapat membantu kami melaksanakan kemudian.
Ok, jadi kami menentukan bilangan lajur untuk setiap bekas grid. Mari kita tetapkan mereka menggunakan harta grid-template-columns
. Tetapi pertama, terdapat beberapa butiran:
- Atribut
grid-template-columns
hanya digunakan dalam bekas grid. Dalam erti kata lain, anda tidak akan menemuinya di projek grid di dalam bekas (sekurang -kurangnya betul). - Harta ini menerima banyak nilai yang berbeza yang menentukan kedua -dua bilangan lajur dan lebar lajur. Apa yang kita berminat di sini ialah unit pecahan (FR). Saya sangat mengesyorkan anda menyemak gambaran Robin kerana ia unik untuk grid dan melakukan kerja yang baik untuk mengira cara meletakkan elemen grid ke dalam bekas grid.
Kita perlu menggunakan enam lajur monospace dalam .container-main
. Kita boleh menulis dengan cara ini:
.Container-Main { paparan: grid; GRID-Template-Columns: 1FR 1FR 1FR 1FR 1FR 1FR 1FR; }
Sebagai alternatif, kita boleh menggunakan fungsi repeat()
untuk memudahkannya kepada sesuatu yang lebih mudah dibaca:
.Container-Main { paparan: grid; Grid-template-lajur: Ulang (6, 1FR); }
Mari kita gunakan pengetahuan ini untuk menerapkannya ke elemen .container-inner
kami juga, dan kami memutuskan ia memerlukan tiga lajur.
.container-inner { paparan: grid; Grid-template-lajur: Ulang (3, 1FR); }
Tambah jarak antara projek grid menggunakan grid-gap
Secara lalai, Grid menggunakan semua ruang dalam bekas grid ke projek grid rumah. Menjaga unsur -unsur yang ditutup bersama mungkin menjadi keperluan reka bentuk, tetapi ia tidak berlaku untuk susun atur khusus yang kami buat. Kami mahukan ruang pernafasan antara perkara!
Untuk ini kita mempunyai atribut grid-gap
. Sekali lagi, ini adalah harta yang hanya berfungsi dengan bekas grid, semua yang dilakukan adalah mewujudkan jarak menegak dan mendatar antara projek grid. Ia sebenarnya adalah harta singkatan yang menggabungkan fungsi jarak menegak grid-row-gap
dan fungsi jarak mendatar grid-column-gap
. Dengan mudah, kita boleh memecahkannya seperti itu, tetapi dalam hal ini kita menggunakan jumlah jarak yang sama di setiap arah, grid-gap
singkatan lebih mudah ditulis.
Kami mahu mempunyai jarak 20px antara projek grid dalam .container-main
, jarak 10px dalam .container-inner
, dan jarak 5px dalam .container-nav
. Tiada masalah! Setiap bekas grid memerlukan hanya satu baris kod.
.Container-Main { paparan: grid; Grid-template-lajur: Ulang (6, 1FR); Grid-Gap: 20px; } .container-inner { paparan: grid; Grid-template-lajur: Ulang (3, 1FR); Grid-Gap: 10px; } .container-nav { paparan: grid; Grid-Gap: 5px; }
Gunakan grid-column
dan grid-row
untuk menentukan saiz setiap projek grid
Kini sudah tiba masanya untuk menjadikan susun atur ke dalam apa yang kita mahu!
Pertama ialah harta grid-column
, yang membolehkan kami melanjutkan projek grid ke lajur N, di mana n adalah bilangan lajur yang akan diselaraskan. Jika anda fikir ini sangat seperti harta rowspan
dalam jadual HTML yang membolehkan kami melanjutkan sel merentasi pelbagai baris, anda tidak boleh salah.
Apabila kita menggunakannya pada grid .item
dalam elemen .container-main
dan pada elemen .item-inner
dalam .container-inner
, ia kelihatan seperti ini:
.item { Grid-lajur: Span 6; } .Item-inner { grid-lajur: span 3; }
Apa yang kita bicarakan di sini ialah setiap item merangkumi enam baris dalam bekas utama kami dan tiga baris dalam bekas dalaman kami - ini adalah jumlah lajur dalam setiap bekas.
Satu perkara yang menarik mengenai grid CSS ialah kita boleh menamakan garis grid. Mereka datang dengan nama -nama tersirat dari kotak, tetapi menamakannya adalah cara yang berkesan untuk membezakan antara garis permulaan dan akhir setiap lajur di trek.
Kita boleh menukar bilangan lajur dan baris yang projek itu harus dijangkau pada titik putus yang berbeza:
Skrin @media dan (Min-lebar: 600px) { .item-jenis-b { grid-lajur: span 3; } .Item-inner { grid-lajur: span 1; } } Skrin @media dan (Min-lebar: 900px) { .item { grid-lajur: span 2; grid-baris: span 2; } .item-jenis-b { grid-baris: span 1; } .Item-inner { grid-lajur: span 3; } }
Gunakan grid-auto-flow
untuk mengawal penempatan elemen
Grid CSS meletakkan unsur -unsur satu demi satu dalam baris. Inilah sebabnya hasilnya dalam contoh kami pada masa ini kelihatan seperti ini:
Penempatan lajur demi lajur boleh dicapai dengan menetapkan sifat grid-auto-flow
ke column
( row
adalah lalai). Susun atur kami akan mendapat manfaat daripada penempatan kolumnar dalam kedua -dua kes. Pertama, ia menjadikan item menu kami akhirnya kelihatan mendatar. Kedua, ia membawa unsur -unsur kelas kontena ke dalam gabungan yang dikehendaki.
Hasil akhir
Kesimpulan: Lebih kurang norma?
Sistem grid membolehkan kita bekerja di bawah moto, "lakukan seberapa banyak spesifikasi yang diperlukan, tetapi seberapa sedikit yang mungkin". Untuk menggambarkan berapa banyak yang anda perlu tahu untuk membina atau bahkan susun atur yang kompleks dengan grid CSS, kami hanya meliputi beberapa spesifikasi yang diperlukan untuk menukar elemen ke bekas grid CSS dan untuk menukar item di dalamnya ke projek grid.
Grid CSS menyokong kes penggunaan tambahan berikut:
- Kami mahu membangunkan spesifikasi yang lebih sedikit untuk lebih bergantung pada kedudukan automatik.
- Kami ingin membangunkan lebih banyak spesifikasi untuk menentukan lebih banyak butiran mengenai susun atur hasilnya.
Sekiranya kes pertama terpakai, ia patut mempertimbangkan pilihan grid lain yang berikut:
- Apabila membuat grid menggunakan
grid-template-columns
, anda boleh menggunakan kata kunciauto
untuk membiarkan sistem grid secara automatik menentukan lebar setiap lajur, atau menyesuaikannya dengan kandungan sedia ada menggunakan tetapanmin-content
,max-content
ataufit-content
. - Anda boleh menggunakan
repeat
,auto-fill
,auto-fit
danminmax
untuk membiarkan sistem grid secara automatik menentukan bilangan lajur yang diperlukan. Malah pertanyaan media boleh menjadi berlebihan, dan alat ini membantu meningkatkan fleksibiliti tanpa menambah lebih banyak pertanyaan media.
Berikut adalah beberapa artikel yang saya cadangkan mengenai topik ini: Menjadi Ninja Grid CSS! dan lajur auto-resize dalam grid CSS: auto-fill
dengan auto-fit
.
Jika kes kedua terpakai, CSS Grid memberikan anda lebih banyak pilihan tetapan:
- Anda secara jelas boleh menentukan lebar lajur menggunakan unit pilihan anda (seperti PX atau %), menggunakan harta
grid-template-columns
. Di samping itu, hartagrid-template-rows
boleh digunakan untuk menentukan bilangan dan lebar baris jika terdapat bilangan baris tertentu. - Anda juga boleh menentukan lajur atau nombor baris tertentu sebagai nilai
grid-column
dangrid-row
(atau menggunakangrid-column-start
,grid-column-end
,grid-row-start
ataugrid-row-end
coistties).
Kami tidak pernah melibatkan penjajaran grid CSS lagi! Namun, kita boleh berbuat begitu tanpa membincangkan topik ini, yang menunjukkan betapa kuatnya grid CSS.
Atas ialah kandungan terperinci 4 sifat grid CSS (dan satu nilai) untuk kebanyakan keperluan susun atur anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

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

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

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Terdapat tiga cara untuk membuat pemutar pemuatan CSS: 1. Gunakan pemutar asas sempadan untuk mencapai animasi mudah melalui HTML dan CSS; 2. Gunakan pemutar tersuai pelbagai mata untuk mencapai kesan lompat melalui masa kelewatan yang berlainan; 3. Tambahkan pemutar dalam butang dan beralih kelas melalui JavaScript untuk memaparkan status pemuatan. Setiap pendekatan menekankan pentingnya butiran reka bentuk seperti warna, saiz, kebolehcapaian dan pengoptimuman prestasi untuk meningkatkan pengalaman pengguna.

Untuk menangani keserasian pelayar CSS dan isu awalan, anda perlu memahami perbezaan sokongan penyemak imbas dan menggunakan awalan vendor dengan munasabah. 1. Memahami masalah biasa seperti Flexbox dan sokongan grid, kedudukan: prestasi tidak sah, dan prestasi animasi adalah berbeza; 2. Periksa status sokongan ciri CANIUSE Ciri; 3. Gunakan dengan betul -webkit-, -moz-, -ms-, -o- dan awalan pengeluar lain; 4. Adalah disyorkan untuk menggunakan autoprefixer untuk menambah awalan secara automatik; 5. Pasang postcss dan konfigurasi penyemak imbas untuk menentukan penyemak imbas sasaran; 6. Secara automatik mengendalikan keserasian semasa pembinaan; 7. Ciri -ciri pengesanan moden boleh digunakan untuk projek lama; 8. Tidak perlu meneruskan konsistensi semua pelayar,

Themaindifferencesbetweendisplay: inline, block, andinline-blockinhtml/cssarelayoutbehavior, spaceusage, andstylingcontrol.1.inlineelementsflowwithtext, notstartonNewlines, abaikanwidth/height, andonyapplylylylylylinddding/

Menetapkan gaya pautan yang telah anda lawati dapat meningkatkan pengalaman pengguna, terutama di laman web yang berintensifkan kandungan untuk membantu pengguna menavigasi lebih baik. 1. Gunakan CSS: Kelas pseudo yang dilawati untuk menentukan gaya pautan yang dikunjungi, seperti perubahan warna; 2. Perhatikan bahawa penyemak imbas hanya membenarkan pengubahsuaian beberapa atribut disebabkan oleh sekatan privasi; 3. Pemilihan warna harus diselaraskan dengan gaya keseluruhan untuk mengelakkan ketangkasan; 4. Terminal mudah alih mungkin tidak memaparkan kesan ini, dan disyorkan untuk menggabungkannya dengan arahan visual lain seperti logo tambahan ikon.

Gunakan atribut clip-path CSS untuk menanam unsur-unsur ke dalam bentuk tersuai, seperti segitiga, takik bulat, poligon, dan lain-lain, tanpa bergantung pada gambar atau SVG. Kelebihannya termasuk: 1. Menyokong pelbagai bentuk asas seperti Circle, Ellipse, Polygon, dan lain -lain; 2. Pelarasan responsif dan boleh disesuaikan dengan terminal mudah alih; 3. Mudah untuk animasi, dan boleh digabungkan dengan hover atau javascript untuk mencapai kesan dinamik; 4. Ia tidak menjejaskan aliran susun atur, dan hanya tanaman kawasan paparan. Penggunaan umum adalah seperti laluan klip bulat: bulatan (50pxatcenter) dan triangle clip-path: polygon (50%0%, 100 0%, 0 0%). Notis

Untuk membuat imej responsif menggunakan CSS, ia boleh dicapai terutamanya melalui kaedah berikut: 1. Gunakan maksimum lebar: 100% dan ketinggian: auto untuk membolehkan imej menyesuaikan diri dengan lebar kontena sambil mengekalkan perkadaran; 2. Gunakan atribut SRCSET dan saiz HTML dengan bijak memuatkan sumber imej yang disesuaikan dengan skrin yang berbeza; 3. Gunakan objek-sesuai dan kedudukan objek untuk mengawal penanaman imej dan paparan fokus. Bersama -sama, kaedah ini memastikan bahawa imej dibentangkan dengan jelas dan indah pada peranti yang berbeza.

Penyemak imbas yang berbeza mempunyai perbezaan dalam parsing CSS, mengakibatkan kesan paparan yang tidak konsisten, terutamanya termasuk perbezaan gaya lalai, kaedah pengiraan model kotak, flexbox dan tahap sokongan susun atur grid, dan tingkah laku yang tidak konsisten bagi atribut CSS tertentu. 1. Pemprosesan gaya lalai tidak konsisten. Penyelesaiannya adalah menggunakan cssreset atau normalisasi.css untuk menyatukan gaya awal; 2. Kaedah pengiraan model kotak versi lama IE adalah berbeza. Adalah disyorkan untuk menggunakan kotak-kotak: kotak sempadan dengan cara yang bersatu; 3. Flexbox dan grid melakukan secara berbeza dalam kes kelebihan atau dalam versi lama. Lebih banyak ujian dan gunakan autoprefixer; 4. Beberapa tingkah laku atribut CSS tidak konsisten. CANIUSE mesti dirujuk dan diturunkan.

Pilihan unit CSS bergantung kepada keperluan reka bentuk dan keperluan responsif. 1.PX digunakan untuk saiz tetap, sesuai untuk kawalan yang tepat tetapi kekurangan keanjalan; 2.EM adalah unit relatif, yang mudah disebabkan oleh pengaruh unsur induk, sementara REM lebih stabil berdasarkan unsur akar dan sesuai untuk skala global; 3.VW/VH didasarkan pada saiz viewport, sesuai untuk reka bentuk yang responsif, tetapi perhatian harus dibayar kepada prestasi di bawah skrin yang melampau; 4. Apabila memilih, ia harus ditentukan berdasarkan sama ada pelarasan responsif, hubungan hierarki elemen dan ketergantungan viewport. Penggunaan yang munasabah boleh meningkatkan fleksibiliti dan penyelenggaraan susun atur.
