Kehendak soalan dan skop
Satu sistem reka bentuk mencampurkan teks Latin, aksara CJK, simbol matematik dan ikon SVG sebaris. Komponen yang sama muncul dalam konteks pemformatan sebaris, Flex dan Grid, manakala reka bentuk memerlukan garis dasar bacaan yang stabil merentas mod penulisan. Terangkan perkara yang dikawal oleh alignment-baseline, di mana vertical-align berhenti, cara anda menyediakan sandaran (fallback), dan cara anda mengujinya.
Soalan ini menguji penaakulan garis dasar dan konteks pemformatan, bukannya menghafal ofset piksel. CSS Inline Layout Level 3 mentakrifkan garis dasar alphabetic, ideographic, central, mathematical, middle, text-top dan text-bottom. Sifat ini terpakai pada kotak peringkat sebaris, item flex, item grid, sel jadual dan elemen kandungan teks SVG.
Perkara yang dinilai oleh penemu duga
Jawapan yang kukuh mengenal pasti konteks penjajaran sebelum memilih garis dasar. Ia menerangkan bahawa baseline menggunakan garis dasar dominan induk, manakala middle boleh menggunakan garis dasar central untuk teks menegak. Ia juga memisahkan antara memilih garis dasar dengan menganjak di sepanjangnya; anjakan tersebut adalah di bawah kawalan baseline-shift atau kawalan penjajaran yang lain.
Penemu duga mungkin bertanya sama ada sifat ini diwarisi, cara SVG memperoleh garis dasarnya, dan sama ada sesuatu animasi adalah berterusan. Respons yang hanya mencadangkan top, center atau margin negatif terlepas pandang metrik skrip, set garis dasar dan tingkah laku sandaran.
Soalan penjelasan
Apakah yang sedang dijajarkan?
Sahkan sama ada item tersebut ialah ikon sebaris, item flex, item grid, sel jadual atau elemen teks SVG. Setiap konteks menetapkan set garis dasar secara berbeza.
Skrip dan mod penulisan manakah yang penting?
Tanya sama ada teks Latin, CJK, Arab, fon matematik atau penulisan menegak diperlukan. Garis dasar semantik tidak sama dengan pusat geometri bagi setiap glif.
Apakah sasaran keserasian?
Sahkan pelayar sasaran, sama ada alias SVG dibenarkan, dan sama ada pelayar lama mesti mengekalkan saiz butang, gelang fokus dan kawasan klik (hit areas). Sandaran harus mengekalkan kebolehgunaan, bukan hanya piksel tangkapan skrin.
Kerangka jawapan 30 saat
"Mula-mula saya mengenal pasti konteks pemformatan, skrip dan mod penulisan. baseline mengikut garis dasar dominan induk; skrip bercampur mungkin mewajarkan ideographic, alphabetic atau mathematical, manakala middle dipilih hanya untuk semantik x-middle atau central. alignment-baseline memilih garis dasar; vertical-align, baseline-shift atau Box Alignment mengendalikan anjakan dan pengelompokan lain. Saya mengekalkan gaya asas yang boleh digunakan, menambah peningkatan di sebalik pemeriksaan keupayaan, dan menguji nilai CSSOM, pemuatan fon, SVG, Flex, Grid dan penulisan menegak dalam pelayar sebenar."
Panduan terperinci langkah demi langkah
Langkah satu: bina jadual keputusan garis dasar
Rekod skrip utama, konteks pemformatan dan hubungan yang dimaksudkan bagi setiap jenis kandungan. Label Latin biasanya bermula dengan baseline atau alphabetic; teks ideografik mungkin memerlukan ideographic; persamaan matematik mungkin memerlukan mathematical. Bagi ikon, sahkan kedudukan teks SVG dan sumber garis dasar kotak luar sebelum menukar nilai.
Langkah dua: asingkan tanggungjawab sifat
alignment-baseline memilih garis dasar kotak yang manakah mengambil bahagian dalam penjajaran. vertical-align ialah kawalan majmuk untuk konteks sebaris dan jadual. Penjajaran garis dasar Flex dan Grid menggunakan set garis dasar Box Alignment; vertical-align bukanlah suis pemusatan Flex sejagat.
Langkah tiga: jadikan niat boleh disemak
Kekalkan pilihan garis dasar dalam varian komponen dan bukannya menyembunyikan perbezaan skrip dalam nombor ajaib (magic numbers):
.label {
alignment-baseline: baseline;
}
.label--cjk {
alignment-baseline: ideographic;
}
.math-icon {
alignment-baseline: mathematical;
}Pengisytiharan ini menyatakan semantik; ia tidak menjamin bahawa tepi dakwat (ink edges) bertepatan untuk setiap fon. Jika anjakan kecil diperlukan, dokumentasikan sebabnya dan asingkannya daripada jenis garis dasar.
Langkah empat: kendalikan Flex, Grid dan SVG
Dalam Flex atau Grid, sahkan bahawa bekas meminta penjajaran garis dasar, kemudian periksa set garis dasar pertama atau terakhir. Blok sebaris berbilang baris juga boleh menggunakan baseline-source untuk mengutamakan yang pertama atau terakhir. Nilai garis dasar SVG dijajarkan dengan kedudukan teks semasa SVG, manakala kotak ikon HTML bergantung pada kandungan dan reka letak luarnya; ukur kedua-dua laluan secara berasingan.
Langkah lima: reka bentuk sandaran dan pemeriksaan keupayaan
Kekalkan gaya paparan, saiz dan fokus sedia ada untuk interaksi kritikal, kemudian tingkatkan pemilihan garis dasar dengan @supports atau pengisytiharan berskop sempit. Pelayar yang melangkau pengisytiharan yang tidak diketahui mesti tetap memaparkan teks yang boleh dibaca dan kawasan klik yang lengkap. Label ketersediaan Baseline 2026 bukanlah bukti bahawa setiap pelayar perusahaan atau enjin SVG terbenam adalah terkini.
Langkah enam: sahkan hasil yang dipaparkan
Sertakan campuran Latin dan CJK, fon matematik, ikon SVG, Flex, Grid, jadual, penulisan mendatar dan menegak, serta kedua-dua keadaan pemuatan fon. Periksa nilai terhitung dan sumber lata (cascade) dalam DevTools, kemudian gunakan tangkapan skrin atau ukuran piksel untuk memeriksa gelang fokus, ketinggian baris, limpahan (overflow) dan kawasan klik.
Contoh jawapan berkualiti tinggi
Saya akan mengumpul konteks pemformatan, skrip dan mod penulisan terlebih dahulu. alignment-baseline menentukan garis dasar yang disumbangkan oleh kotak; vertical-align, baseline-shift dan Box Alignment meliputi anjakan lain atau pengelompokan garis dasar. Label biasa bermula dengan baseline; kandungan CJK atau matematik menggunakan ideographic atau mathematical hanya apabila terdapat keperluan semantik yang sebenar. Teks SVG disahkan terhadap kedudukan teks semasanya dan bukannya menganggap ia berkongsi garis geometri kotak sebaris HTML.
Pelaksanaan mengekalkan gaya asas yang boleh digunakan dan menambah peningkatan melalui pemeriksaan keupayaan atau varian komponen. Pengesahan meliputi masa pemuatan fon, pengelompokan garis dasar Flex dan Grid, skrip bercampur, penulisan menegak, penghuraian sifat yang tidak diketahui, nilai CSSOM, fokus dan kawasan klik. Jika percanggahan berpunca daripada metrik fon, saya membetulkan kontrak fon atau line-height sebelum menambah ofset.
Kesilapan lazim
- Gejala → menggunakan
vertical-align: middleuntuk setiap ikon → Sebab ia gagal → sebaris, Flex dan Grid menggunakan model garis dasar yang berbeza → Penyelesaian → kenal pasti konteks, kemudian pilih garis dasar atau Box Alignment. - Gejala → menganggap
middlesebagai pusat geometri → Sebab ia gagal → ia merujuk kepada semantik garis dasar x-middle atau central → Penyelesaian → pilih berdasarkan skrip dan mod penulisan. - Gejala → hanya menguji huruf Latin → Sebab ia gagal → CJK, fon matematik dan penulisan menegak menggunakan metrik yang berbeza → Penyelesaian → gunakan matriks skrip bercampur.
- Gejala → mengalih keluar sandaran selepas melihat sokongan pelayar → Sebab ia gagal → pelayar perusahaan dan enjin SVG mungkin ketinggalan → Penyelesaian → kekalkan gaya asas yang boleh digunakan dan pemeriksaan keupayaan.
- Gejala → membetulkan dengan margin negatif → Sebab ia gagal → perubahan fon dan ketinggian baris menguatkan ofset → Penyelesaian → betulkan kontrak garis dasar dan kekalkan hanya anjakan minimum yang didokumenkan.
Soalan susulan dan respons yang mantap
Soalan susulan satu: Mengapa bukan align-items: center?
Pemusatan geometri kehilangan semantik garis dasar teks. Teks bercampur mungkin kelihatan berpusat semasa berada pada garis bacaan yang berbeza. Gunakan penjajaran tengah apabila sasaran reka bentuk ialah pusat kotak; gunakan penjajaran garis dasar apabila teks dan ikon mesti berkongsi satu garis.
Soalan susulan dua: Adakah alignment-baseline diwarisi?
Tidak. Setiap elemen mengambil bahagian dengan nilai terhitungnya sendiri, jadi varian komponen mesti menetapkan sifat pada item penjajaran sebenar dan bukannya bergantung pada leluhur (ancestor).
Soalan susulan tiga: Bolehkah text-top dan text-bottom SVG digunakan untuk HTML biasa?
Itu ialah alias SVG legasi. Reka bentuk HTML rentas konteks harus menggunakan nilai garis dasar standard dan menguji sandaran SVG serta HTML secara berasingan.
Soalan susulan empat: Bilakah fon harus ditukar dan bukannya CSS?
Jika nilai garis dasar yang sama menghasilkan perbezaan dakwat yang stabil merentas fon, berat atau peringkat pemuatan, masalahnya ialah kontrak metrik fon. Piawaikan fon dan ketinggian baris terlebih dahulu, kemudian nyatakan reka letak dalam CSS dan bukannya menyembunyikan aset yang tidak konsisten di sebalik ofset.