Yang table-layout
mentakrifkan harta apa algoritma perisiannya patut gunakan untuk meletakkan baris jadual, sel-sel, dan lajur.
table ( table-layout: fixed; )
Seperti yang dijelaskan dalam spesifikasi CSS2.1, susun atur meja secara umum biasanya merupakan masalah selera dan akan berbeza bergantung pada pilihan reka bentuk. Namun, penyemak imbas akan secara automatik menerapkan batasan tertentu yang akan menentukan bagaimana jadual disusun. Ini berlaku apabila table-layout
harta itu ditetapkan ke auto
(lalai). Tetapi kekangan ini dapat diangkat ketika table-layout
ditetapkan fixed
.
Nilai
auto
: lalai. Algoritma automatik penyemak imbas digunakan untuk menentukan bagaimana susunan baris, sel, dan lajur jadual. Susun atur jadual yang dihasilkan umumnya bergantung pada kandungan jadual.fixed
: Dengan nilai ini, susun atur jadual mengabaikan kandungan dan sebaliknya menggunakan lebar meja, lebar lajur yang ditentukan, dan nilai jarak sempadan dan sel. Nilai lajur yang digunakan didasarkan pada lebar yang ditentukan pada lajur atau sel untuk baris pertama jadual.inherit
: menunjukkan bahawa nilai tersebut diwarisi daritable-layout
nilai induknya
Agar nilai fixed
mempunyai kesan, lebar meja harus ditetapkan ke sesuatu selain auto
(lalai untuk width
harta tanah). Dalam demo di bawah, semua lebar jadual ditetapkan ke 100%, yang menganggap kita mahu jadual mengisi bekas induknya secara mendatar.
Kaedah terbaik untuk melihat kesan algoritma susun atur jadual tetap adalah menggunakan demo.
Lihat Pen Demo untuk susun atur jadual CSS oleh Louis Lazaris (@impressivewebs) di CodePen.
Semasa pertama kali melihat demo di atas, anda akan melihat susun atur lajur jadual tidak seimbang dan janggal. Pada ketika itu, tabel menggunakan algoritma lalai penyemak imbas untuk menentukan cara meletakkan jadual, yang bermaksud kandungan akan menentukan tata letak. Demo ini membesar-besarkan fakta ini dengan memasukkan rentetan teks yang panjang di dalam satu sel jadual, sementara semua sel jadual yang lain hanya menggunakan dua perkataan. Seperti yang anda lihat, penyemak imbas memperluas lajur pertama untuk menampung kandungan yang lebih besar.
Sekiranya anda mengklik butang "Toggle table-layout: fixed", anda akan melihat seperti apa susun atur jadual ketika algoritma "tetap" digunakan. Apabila table-layout: fixed
diterapkan, konten tidak lagi menentukan tata letak, tetapi sebaliknya, penyemak imbas menggunakan lebar yang ditentukan dari baris pertama jadual untuk menentukan lebar lajur. Sekiranya tidak ada lebar pada baris pertama, lebar lajur dibahagikan sama rata di seluruh jadual, tanpa mengira kandungan di dalam sel.
Contoh lebih lanjut dapat membantu menjadikannya lebih jelas. Dalam demo berikut, jadual mempunyai elemen yang
elemen pertama mempunyai lebar
400px
. Perhatikan dalam kes ini, togol table-layout: fixed
tidak memberi kesan.
Lihat Pen Demo untuk susun atur jadual CSS oleh Louis Lazaris (@impressivewebs) di CodePen.
Ini berlaku kerana algoritma susun atur pada dasarnya mengatakan "buat lajur pertama seluas 400 piksel, dan sebarkan lajur selebihnya berdasarkan kandungannya". Oleh kerana tiga lajur lain mempunyai kandungan yang sama antara satu sama lain, tidak akan ada perubahan. Tetapi sekarang mari kita tambahkan beberapa kandungan teks tambahan ke salah satu lajur lain:
Lihat Pen Demo untuk susun atur jadual CSS dengan lebar kol dan kandungan berubah oleh Louis Lazaris (@impressivewebs) di CodePen.
Sekarang jika anda mengklik butang beralih, anda akan melihat lajur disesuaikan untuk menampung susun atur tetap, tanpa mengira kandungannya. Sekali lagi, perkara yang sama berlaku; lajur pertama ditetapkan pada 400px maka lajur selebihnya dibahagi sama rata. Tetapi kali ini, kerana salah satu lajur mempunyai kandungan tambahan, perbezaannya dapat dilihat.
Bagaimana algoritma susun atur tetap menentukan lebar lajur
Dua demo berikut harus membantu dalam memahami bahawa baris pertama jadual adalah yang membantu menentukan lebar lajur yang ditetapkan table-layout: fixed
.
Lihat Pen Demo untuk susun atur jadual CSS dengan sel di baris 1 diberi lebar yang ditentukan oleh Louis Lazaris (@impressivewebs) di CodePen.
Dalam demo di atas, sel pertama di baris pertama jadual mempunyai lebar 350 piksel. Toggling table-layout: fixed
menyesuaikan lajur lain, tetapi yang pertama tetap sama. Sekarang cuba demo berikut:
Lihat Pen Demo untuk susun atur jadual CSS dengan sel di baris 2 diberi lebar yang ditentukan oleh Louis Lazaris (@impressivewebs) di CodePen.
Dalam kes ini, ini adalah baris kedua yang mempunyai lebar yang melekat pada sel meja pertama. Sekarang apabila butang togol diklik, semua lebar lajur disesuaikan. Sekali lagi, ini kerana algoritma susun atur tetap menggunakan baris pertama untuk menentukan lebar lajur, dan hasil akhirnya adalah bahawa ia mengagihkan lebar secara sama rata.
Faedah algoritma susun atur tetap
Manfaat estetika penggunaan table-layout: fixed
harus jelas dari demonstrasi di atas. Tetapi faedah utama yang lain adalah prestasi. Spesifikasi merujuk kepada algoritma tetap sebagai algoritma "cepat", dan untuk alasan yang baik. Penyemak imbas tidak perlu menganalisis keseluruhan isi jadual sebelum menentukan ukuran lajur; ia hanya perlu menganalisis baris pertama. Jadi hasilnya adalah pemprosesan susun atur jadual yang lebih pantas.
Maklumat lanjut
- Memperbaiki Susun atur Jadual
- Memperbaiki susun atur jadual dalam spesifikasi CSS2.1
- The
table-layout
harta di CSS Jadual Modul Tahap 3
Sokongan Penyemak Imbas
Chrome | Safari | Firefox | Opera | IE | Android | iOS |
---|---|---|---|---|---|---|
1+ | 1+ | 1+ | 7+ | 5+ | 2.1+ | 3+ |