Saat menyetel ukuran font di CSS, haruskah saya menggunakan nilai persen ( %
) atau em
? Bisakah Anda menjelaskan keuntungannya?
Saat menyetel ukuran font di CSS, haruskah saya menggunakan nilai persen ( %
) atau em
? Bisakah Anda menjelaskan keuntungannya?
Jawaban:
Ada artikel yang sangat bagus tentang tipografi web di A List Apart .
Kesimpulan mereka:
Mengubah ukuran teks dan tinggi baris dalam ems, dengan persentase yang ditentukan di badan (dan peringatan opsional untuk Safari 2), terbukti memberikan teks yang akurat dan dapat diubah ukurannya di semua browser yang umum digunakan saat ini. Ini adalah teknik yang dapat Anda masukkan ke dalam tas perlengkapan Anda dan digunakan sebagai praktik terbaik untuk mengukur teks dalam CSS yang memuaskan baik desainer maupun pembaca.
line-heights
lebih baik ditulis tanpa unit sama sekali. Hal ini diizinkan oleh spesifikasi, dan sepenuhnya menghindari kebiasaan browser yang benar-benar menjengkelkan dalam hal em
ketinggian baris berbasis
1
. Misalnya iPhone 4 memiliki lebar layar fisik 640px, tetapi muncul sebagai 320 piksel "CSS" (DPR = 2). Jadi situs web tidak tampak lebih kecil!
Dari http://archivist.incutio.com/viewlist/css-discuss/1408
%: Beberapa browser tidak menangani persen untuk ukuran font tetapi menafsirkan 150% sebagai 150px. (Beberapa versi NN4, misalnya.) IE juga memiliki masalah dengan persen pada elemen bersarang. Tampaknya IE menggunakan persen relatif terhadap viewport alih-alih relatif terhadap elemen induk. Namun masalah lain (meskipun benar menurut spesifikasi W3C), di Moz / Ns6, Anda tidak dapat menggunakan persen relatif terhadap elemen tanpa tinggi / lebar yang ditentukan.
em: Kadang-kadang browser menggunakan ukuran referensi yang salah, tetapi dari unit relatif itu yang paling sedikit bermasalah. Anda mungkin menemukannya kadang-kadang ditafsirkan sebagai px.
pt: Sangat berbeda antar resolusi, dan sebaiknya tidak digunakan untuk tampilan. Ini cukup aman untuk penggunaan cetak.
px: Satu-satunya unit absolut yang dapat diandalkan di layar. Ini mungkin salah diartikan dalam cetakan, karena satu titik biasanya terdiri dari beberapa piksel, dan dengan demikian semuanya menjadi sangat kecil.
Keduanya menyesuaikan ukuran font sesuai dengan aslinya. 1.5em sama dengan 150%. Satu-satunya keuntungan tampaknya adalah keterbacaan, pilih mana yang paling Anda sukai.
Perbedaan nyata terlihat jelas saat Anda menggunakannya bukan untuk ukuran font. Menyetel padding
dari 1em
tidak sama dengan 100%
. em
selalu relatif terhadap ukuran font. Tapi %
mungkin relatif terhadap ukuran font, lebar, tinggi dan mungkin beberapa hal lain yang tidak saya ketahui.
Mengingat bahwa (hampir?) Semua browser sekarang mengubah ukuran halaman secara keseluruhan, bukan hanya teks, masalah sebelumnya dengan px
vs. %
vs. em
dalam hal mengubah ukuran font yang dapat diakses agak diperdebatkan.
Jadi, jawabannya mungkin tidak masalah. Gunakan apa pun yang cocok untuk Anda.
%
bagus karena memungkinkan pengubahan ukuran relatif.
px
itu bagus karena cukup mudah untuk mengelola ekspektasi saat menggunakannya.
em
dapat berguna bila juga digunakan untuk elemen tata letak karena dapat memungkinkan ukuran proporsional yang terkait dengan ukuran teks.
em
, misalnya. Selain itu, saya pikir jawaban tentang SO harus diupayakan agar tidak lekang oleh waktu - lagipula ini adalah basis pengetahuan. Wikipedia pemrograman :) Karena Wikipedia diperbarui untuk mencerminkan fakta, begitu juga jawaban SO, menurut pendapat saya.
Mengenai perbedaan antara unit css %
dan em
.
Sejauh yang saya mengerti (setidaknya secara teoritis / konseptual, tapi mungkin tidak seberapa dua unit ini mungkin dilaksanakan dalam browser) dua unit ini setara, yaitu jika Anda kalikan Anda em
nilai dengan 100
dan kemudian menggantinya em
dengan %
yang seharusnya hal yang sama?
Jika sebenarnya ada perbedaan nyata antara em dan%, dapatkah seseorang menjelaskannya (atau memberikan tautan ke penjelasan)?
(Saya ingin menambahkan komentar saya ini di tempatnya, yaitu menjorok tepat di bawah jawaban oleh "Liam, answered Sep 25 '08 at 11:21"
karena saya juga ingin tahu mengapa jawabannya diturunkan suara, tetapi saya tidak tahu bagaimana meletakkan komentar saya di sana dan oleh karena itu harus menulis balasan "utas global" ini)
Seperti yang disebutkan Galwegian, px adalah yang paling andal untuk tipografi web, karena semua hal lain yang Anda lakukan di halaman tersebut sebagian besar ditata dengan mengacu pada monitor komputer. Masalah dengan ukuran absolut adalah bahwa beberapa browser (IE) tidak akan menskalakan elemen nilai piksel pada halaman web, jadi ketika Anda mencoba memperbesar / memperkecil, semuanya menyesuaikan kecuali untuk elemen tersebut.
Saya tidak tahu apakah IE8 menangani ini dengan benar, tetapi semua vendor browser lain menangani piksel dengan baik dan masih merupakan kasus minoritas di mana pengguna perlu memperbesar / memperkecil teks (kotak teks ini pada SO mungkin menjadi pengecualian). Jika Anda ingin benar-benar kotor, Anda selalu dapat menambahkan fungsi javascript untuk memperbesar ukuran teks dan menawarkan tombol "kecil" / "lebih besar" kepada pengguna.
Perpustakaan Antarmuka Pengguna Yahoo ( http://developer.yahoo.com/yui/ ) memiliki sekumpulan kelas dasar css yang digunakan untuk "mengatur ulang" pengaturan khusus browser sehingga dasar untuk menampilkan situs sama untuk semua (didukung) browser.
Dengan YUI, seseorang seharusnya menggunakan persentase.