Saya mengalami kesukaran untuk memahami isu penskalaan fon.
Saya kini mempunyai laman web dengan 100% teks badan font-size
. 100% tetapi apa? Ini nampaknya dikira pada 16 piksel.
Saya mendapat tanggapan bahawa 100% entah bagaimana merujuk kepada saiz tetingkap penyemak imbas, tetapi nampaknya tidak, kerana ia sentiasa 16 piksel tidak kira sama ada tetingkap itu diubah saiz kepada lebar mudah alih atau desktop skrin lebar penuh.
Bagaimana untuk membuat teks pada skala tapak web berbanding bekasnya? Saya cuba menggunakan em
tetapi itu juga tidak berskala.
Alasan saya ialah perkara seperti menu saya tersekat apabila anda mengubah saiznya, jadi saya perlu mengurangkan .menuItem
px
.menuItem
的 px
font-size
以及其他与容器宽度相关的元素。 (例如,在大桌面上的菜单中,22px
效果很好。向下移动到平板电脑宽度,16px
dan lain-lain dengan elemen berkaitan lebar kontena . (Sebagai contoh, dalam menu pada desktop yang besar, 22px
berfungsi dengan baik. Bergerak ke bawah kepada lebar tablet, 16px
adalah lebih sesuai.)
Saya tahu saya boleh menambah titik putus, tetapi saya benar-benar mahu teks berskala dengan baik seolah-olah saya mempunyai titik putus tambahan, jika tidak, saya akan mendapat ratusan titik putus untuk setiap 100 piksel saya mengawal lebar teks.
Soalan ini dijawab oleh Alex di 2507rkt3.
Hakikat bahawatidak bermakna
vw
不能在某种程度上用于确定该容器的大小。现在要看到任何变化,我们必须假设容器在某种程度上是尺寸灵活的。无论是通过直接百分比宽度
还是通过100%减去边距。如果容器总是设置为,比方说,200px 宽,那么这一点就变得“没有意义”——然后只需设置适合该宽度的font-size
. p>Contoh 1
Walau bagaimanapun, untuk bekas dengan lebar fleksibel, adalah penting untuk menyedari bahawa bekas itu masih mengubah saiz berdasarkan port pandang sedikit sebanyak. Oleh itu, tetapan perlu dilaraskan berdasarkan peratusan perbezaan saiz dari ruang pandang, yang bermaksud mengambil kira saiz pembalut induk.
yang kelihatan baik kepada anda. Seperti yang anda boleh lihat dalam ulasan di atas dalam kandungan CSS, anda boleh "memikirkan" keseluruhan saiz port pandangan secara matematik, tetapi anda tidak perlu melakukannya. Teks akan "bengkok" dengan bekas kerana bekas itu bengkok apabila port pandang diubah saiznya.vw
Lihat contoh ini: Katakan di sinidiv
ialah anak kepadabody
, iaitu50%
lebar100%
, dalam kes ini Pada asasnya ia adalah saiz viewport. Pada asasnya, anda ingin menyediakanBerikut adalah contoh dua bekas bersaiz berbeza
Contoh 2div
是body
的子级,它是100%
的50%
宽度,在这种基本情况下是视口大小。基本上,您想要设置一个对您来说看起来不错的vw
.Anda boleh membantu memastikan saiz port pandangan dengan memaksa pengiraan berdasarkan ini.
Pertimbangkan contoh ini : Dimensi masih berdasarkan port pandang, tetapi pada asasnya ditetapkan berdasarkan dimensi kontena itu sendiri.
Sekiranya saiz bekas berubah secara dinamik...
Jika saiz elemen kontena akhirnya mengubah peratusan hubungannya secara dinamik melalui titik putus @media atau JavaScript, maka apa pun "matlamat" asas, ia perlu dikira semula untuk mengekalkan "hubungan" yang sama digunakan untuk mengubah saiz teks
Ambil contoh #1 di atas. Jika lulus
"lebar" bekas adalah saiz yang sama apabila dikurangkan separuh daripada saiz viewport, tetapi kini mengurangkan pengiraan peratusannya sendiri disebabkan oleh perubahan.@media
或 JavaScript 将div
宽度切换为25%
宽度,则同时font-size
需要在媒体查询中或通过 JavaScript 进行调整,以适应新的计算结果5vw * .25 = 1.25
。这将使文本大小与原始50%
Gunakan CSS
calc()
函数 在使用中,动态调整会变得困难,因为该函数目前无法用于font-size
目的。因此,如果calc()
上的宽度发生变化,则无法进行纯 CSS 调整。当然,对边距宽度的微小调整可能不足以保证对font-size
untuk membuat sebarang perubahan, jadi ia mungkin tidak penting.Pertanyaan Bekas mungkin merupakan pilihan terbaik sekarang, bergantung pada kes penggunaan anda dan disokong oleh semua penyemak imbas utama. Sila semak tahap sokongan di sini: https://caniuse.com/mdn-css_properties_container
Kini mudah dikawal