Panduan kepada CSS Grid Layout Fr Unit
The Modul Layout Grid CSS telah dihantar dengan a unit CSS baru dipanggil fr
unit. Sebagai mudah kerana boleh, fr
adalah singkatan perkataan “pecahan”. Unit baru membolehkannya dengan cepat memotong grid ke dalam lajur atau baris yang proporsional. Akibatnya, penciptaan gred penuh responsif dan fleksibel menjadi hampir angin.
Oleh kerana unit pecahan diperkenalkan bersama dengan modul Grid Layout, anda boleh menggunakannya dalam mana-mana pelayar yang menyokong grid CSS. Sekiranya anda juga ingin menyokong penyemak imbas yang lebih lama, ini hebat Grid grid polyfill yang membolehkan anda menggunakan bukan sahaja fr
unit tetapi ciri grid lain juga.
Penggunaan asas
Pertama, mari kita lihat a grid asas yang menggunakan unit pecahan. Susun atur di bawah membahagikan ruang ke tiga lajur lebar sama dan dua baris ketinggian yang sama.
HTML miliknya dibuat enam divs ditandakan dengan .kotak
kelas, di dalam a .pembalut
div.
1.2.3.4.5.6.
Untuk menggunakan modul Grid Layout, anda perlu menambah paparan: grid;
Hartanah CSS untuk pembalut. The grid-template-columns
harta benda menggunakan fr
unit sebagai nilai; yang nisbah tiga lajur ialah 1: 1: 1.
Untuk baris grid (grid-template-baris
harta), saya tidak menggunakannya fr
unit, kerana ia hanya masuk akal jika pembungkus itu mempunyai ketinggian tetap. Jika tidak, ia boleh menghasilkan hasil yang pelik pada sesetengah peranti, walau bagaimanapun, itu fr
unit tidak mengekalkan nisbah (dan ini sangat besar).
The grid-jurang
harta menambah grid 10px di antara kotak. Jika anda tidak mahu apa-apa jurang hanya mengeluarkan harta ini.
.pembungkus paparan: grid; grid-template-columns: 1fr 1fr 1fr; grid-template-row: 200px 200px; grid-jurang: 10px; .box color: white; teks-align: center; saiz fon: 30px; padding: 25px;
Perhatikan CSS di atas tidak mengandungi beberapa gaya asas seperti warna latar belakang. Awak boleh cari kod penuh dalam demo pada akhir artikel.
Naik nisbah
Sudah tentu, anda bukan sahaja boleh menggunakan 1: 1: 1 tetapi apa nisbah yang anda mahu. Di bawah, saya gunakan Pecahan 1: 2: 1 yang juga membahagikan ruang ke tiga lajur tetapi lajur tengah akan menjadi dua kali lebih luas sebagai dua yang lain.
Saya juga meningkatkan nilai grid-jurang
supaya anda dapat melihat bagaimana ia mengubah susun atur. Pada asasnya, penyemak imbas memotong jurang grid dari lebar paparan (dalam contoh ini, jurang grid menambah sehingga 80px), dan irisan selebihnya mengikut pecahan yang diberikan.
.pembungkus paparan: grid; grid-template-columns: 1fr 2fr 1fr; grid-template-row: 200px 200px; grid-jurang: 40px;
Gabung fr
dengan unit CSS lain
Awak boleh Gabung yang fr
unit dengan mana-mana unit CSS lain juga. Sebagai contoh, dalam contoh di bawah, saya menggunakan 60% 1fr 2fr
nisbah untuk grid saya.
Jadi, bagaimanakah kerja ini? The pelayar menyerahkan 60% lebar paparan ke ruang pertama. Kemudian, ia membahagikan seluruh ruang ke dalam pecahan 1: 2.
Perkara yang sama juga boleh ditulis sebagai 60% 13.33333% 26.66667%
. Tapi terus terang, mengapa sesiapa mahu menggunakan format itu? Kelebihan unit pecahan yang besar ialah ia meningkatkan kebolehbacaan kod. Tambahan pula, ia benar-benar tepat, kerana format peratusan masih menambah hanya 99.9999%.
.pembungkus paparan: grid; grid-template-columns: 60% 1fr 2fr; grid-template-row: 200px 200px; grid-jurang: 10px;
Selain peratusan, anda juga boleh menggunakan unit CSS lain bersama-sama dengan unit fraksinya, misalnya pt
, px
, em
, dan rem
.
Tambah ruang kosong dengan fr
Bagaimana jika anda tidak mahu reka bentuk anda menjadi berantakan dan tambah beberapa ruang kosong ke grid anda? Unit pecahan juga mempunyai penyelesaian mudah untuk itu.
Seperti yang dapat anda lihat, grid ini mempunyai ruang kosong sementara ia masih mengekalkan kesemua enam kotak itu. Untuk susun atur ini, kita perlu memotong ruang ke empat tiang bukannya tiga. Oleh itu, kami menggunakan 1fr 1fr 1fr 1fr
nilai untuk grid-template-columns
harta.
Kami menambah lajur kosong di dalamnya grid-template-areas
harta, menggunakan nota dot. Pada dasarnya, harta ini membolehkan anda rujukan kawasan grid. Dan, anda boleh menamakan kawasan grid dengan grid-area
harta yang perlu anda gunakan secara berasingan untuk setiap kawasan.
.pembungkus paparan: grid; grid-template-columns: 1fr 1fr 1fr 1fr; grid-template-row: 200px 200px; grid-jurang: 10px; grid-template-areas: "box-1 box-2 box-3" "box-4 box-5 box-6"; .box-1 grid-area: box-1; .box-2 grid-area: box-2; .box-3 grid-area: box-3; .box-4 grid-area: box-4; .box-5 grid-area: box-5; .box-6 grid-area: box-6;
Kawasan ruang kosong tidak perlu membentuk lajur, mereka boleh di mana sahaja dalam grid.
The ulang ()
fungsi
Anda juga boleh menggunakan fr
unit bersama dengan ulang ()
fungsi Untuk sintaks lebih mudah. , ini tidak perlu jika anda hanya mempunyai grid yang mudah tetapi boleh berguna jika anda mahu melaksanakan susun atur rumit, contohnya a grid bersarang.
.pembungkus paparan: grid; grid-template-columns: repeat (3, 1fr); / * grid-template-columns: 1fr 1fr 1fr; * / grid-template-row: 200px; grid-jurang: 10px;
The ulang (3, 1fr)
sintaks menghasilkan susun atur yang sama sebagai 1fr 1fr 1fr
. Susun atur di bawah adalah sama dengan contoh pertama.
Jika awak menambah pengganda di dalam ulang ()
fungsi anda akan mempunyai lebih banyak lajur. Contohnya, ulang (6, 1fr)
keputusan dalam enam lajur yang sama. Dalam kes ini, semua kotak kami akan berada di baris yang sama, yang bermaksud cukup untuk menggunakan hanya satu nilai (200px) untuk grid-template-baris
harta.
.pembungkus paparan: grid; grid-template-columns: repeat (6, 1fr); grid-template-row: 200px; grid-jurang: 10px;
Anda boleh gunakan ulang ()
lebih dari sekali. Sebagai contoh, contoh berikut menghasilkan dalam grid di mana tiga lajur terakhir adalah dua kali lebih luas sebagai tiga yang pertama.
.pembungkus paparan: grid; grid-template-column: repeat (3, 1fr) repeat (3, 2fr); grid-template-row: 200px; grid-jurang: 10px;
Anda juga boleh Gabung ulang ()
dengan unit CSS lain. Sebagai contoh, anda boleh menggunakannya 200px repeat (4, 1fr) 200px
sebagai kod yang sah.
Sekiranya anda tertarik dengan cara membuat susun atur yang kompleks dengan modul CSS Grid, yang ulang ()
fungsi dan fr
unit Andrew Andrew mempunyai postingan blog yang menarik mengenai bagaimana anda boleh melakukannya.
Demo untuk bereksperimen
Akhirnya, inilah demo yang saya janjikan. Ia menggunakan kod yang sama sebagai contoh pertama dalam artikel ini. Fork itu, dan lihat apa yang boleh anda capai dengan fr
unit.