Saya mencoba membuat font di div responsif terhadap jendela browser. Sejauh ini, ini telah bekerja dengan sempurna, tetapi div induk memiliki max-width
dari 525px
. Mengubah ukuran browser lebih lanjut tidak akan membuat font berhenti mengubah ukuran. Hal ini membuat saya bertanya-tanya apakah ada yang namanya min-font-size
atau max-font-size
, dan jika hal seperti itu tidak ada, apakah ada cara untuk mencapai sesuatu yang serupa.
Saya pikir menggunakan persentase di font-size
akan berhasil, tetapi sedikit teks tidak akan diskalakan sesuai dengan div induk. Inilah yang saya miliki:
CSS untuk div induk:
.textField{
background-color:rgba(88, 88, 88, 0.33);
width:40%;
height:450px;
min-width:200px;
max-width:525px;
z-index:2;
}
CSS untuk bagian teks yang dimaksud:
.subText{
position:relative;
top:-55px;
left:15px;
font-family:"news_gothic";
font-size:1.3vw;
font-size-adjust:auto;
width:90%;
color:white;
z-index:1;
}
Saya telah mencari cukup lama di internet, tetapi tidak berhasil.
Jawaban:
Tidak, tidak ada properti CSS untuk ukuran font minimum atau maksimum. Browser sering kali memiliki pengaturan untuk ukuran font minimum, tetapi itu di bawah kendali pengguna, bukan penulis.
Anda dapat menggunakan
@media
kueri untuk membuat beberapa pengaturan CSS tergantung pada hal-hal seperti layar atau lebar jendela. Dalam pengaturan seperti itu, Anda dapat misalnya mengatur ukuran font ke nilai kecil tertentu jika jendelanya sangat sempit.sumber
max-width:600px;
. Apakah saya benar atau tidak memahami dengan benar informasi di balik tautan?@media
mengacu pada jendela browser? Bagaimana cara mengetahui bahwa saya ingin ukuran font saya, katakanlah, 20px ketika div induk atau jendela browser berukuran tertentu, dalam px?@media (width:600px)
, itu akan menjalankan skrip di bawah ini@media
setelah lebar browser setara dengan 600px?Anda bisa melakukannya dengan menggunakan rumus dan menyertakan lebar viewport.
Ini menetapkan ukuran font minimum pada 7px dan memperkuatnya sebesar .5vw tergantung pada lebar viewport.
Semoga berhasil!
sumber
0
. Beberapa bersarangcalc
atau sesuatu?calc()
pernyataan itu diproses ketika LESS dikompilasi dan diselesaikan menjadipx
nilai yang sederhana . Mengubah ukuran tidak dihitung ulang. Ide atau pemikiran?Ini bekerja dengan baik dengan CSS.
Saya mengalami masalah yang sama dan memperbaikinya sebagai berikut.
Gunakan ukuran tetap "px" untuk ukuran maksimum dengan lebar tertentu ke atas. Kemudian untuk lebar lebih kecil yang berbeda, gunakan "vw" relatif sebagai persentase layar.
Hasil di bawah ini adalah menyesuaikan dirinya sendiri pada layar di bawah 960px tetapi mempertahankan ukuran tetap di atas. Sekadar pengingat, jangan lupa menambahkan di doc html di header:
Contoh di CSS:
Saya harap ini akan membantu!
sumber
Saya datang sedikit terlambat di sini, saya tidak mendapatkan banyak pujian untuk itu, saya hanya melakukan campuran jawaban di bawah ini karena saya dipaksa melakukannya untuk sebuah proyek.
Jadi untuk menjawab pertanyaan: Tidak ada yang namanya properti CSS ini . Saya tidak tahu mengapa, tapi saya pikir itu karena mereka takut disalahgunakan atas properti ini, tapi saya tidak menemukan kasus penggunaan yang bisa menjadi masalah serius.
Terserah, apa solusinya?
Dua alat akan memungkinkan kita untuk melakukan itu: Media query ans properti vw
1) Ada solusi "bodoh" yang terdiri dari membuat kueri media untuk setiap langkah yang kita lakukan di css, mengubah font dari jumlah tetap ke jumlah tetap lainnya. Ini berfungsi, tetapi sangat membosankan untuk dilakukan, dan Anda tidak memiliki aspek linier yang mulus.
2) Seperti yang dijelaskan AlmostPitt, ada solusi cemerlang untuk minimal:
Minimum di sini adalah 7px selain 0,5% dari lebar tampilan. Itu sudah sangat keren dan berfungsi di banyak kasus . Ini tidak memerlukan kueri media apa pun, Anda hanya perlu meluangkan waktu untuk menemukan parameter yang tepat.
Seperti yang Anda perhatikan, ini adalah fungsi linier, matematika dasar memberi tahu Anda bahwa dua titik sudah menemukan parameternya untuk Anda. Kemudian perbaiki ukuran font dalam px yang Anda inginkan untuk layar yang sangat besar dan untuk versi seluler, kemudian hitung jika Anda ingin melakukan metode ilmiah. Pikir, itu sama sekali tidak perlu dan Anda bisa pergi dengan mencoba.
3) Misalkan Anda memiliki klien yang sangat membosankan (seperti saya) yang benar-benar ingin judul menjadi satu baris dan tidak lebih. Jika Anda menggunakan solusi AlmostPitt, maka Anda dalam masalah karena font Anda akan terus bertambah, dan jika Anda memiliki container dengan lebar tetap (seperti bootstrap berhenti di 1140px atau sesuatu di jendela besar). Di sini saya menyarankan Anda untuk menggunakan juga kueri media. Bahkan Anda bisa menemukan jumlah maksimum ukuran px yang dapat Anda tangani dalam penampung Anda sebelum aspeknya menjadi tidak diinginkan (pxMax). Ini akan menjadi hasil maksimal Anda. Kemudian Anda hanya perlu menemukan lebar layar yang tepat yang harus Anda hentikan (wMax). (Saya membiarkan Anda membalik fungsi linier Anda sendiri).
Setelah itu baru lakukan
Maka itu linier sempurna dan ukuran font Anda berhenti berkembang! Perhatikan bahwa Anda tidak perlu meletakkan properti css sebelumnya (kalk ...) dalam kueri media di bawah wMax karena kueri media dianggap lebih penting dan itu akan menimpa properti sebelumnya.
Saya tidak berpikir itu berguna untuk membuat cuplikan untuk ini, karena Anda akan kesulitan untuk membuatnya ke seluruh layar dan itu bukan ilmu roket.
Semoga ini bisa membantu orang lain, dan jangan lupa berterima kasih kepada AlmostPitt atas solusinya.
sumber
max(*a*px,, *b*vw)
? Karena dalam kasus saya, saya tidak dapat mentolerir penjumlahan yang naif karena hasilnya terlalu besar, tetapi sepertinya Anda menyarankan agar saya dapat mengurangi a dan b dari jumlah yang naif - Saya mengalami masalah dalam menghitung matematika, dan saya membutuhkan solusi umum, bukan hanya kasus tertentu.Ini sebenarnya sedang diusulkan di CSS4
Draf kerja di W3C
Mengutip:
Ini sebenarnya akan berfungsi sebagai berikut:
Ini secara harfiah berarti, ukuran font akan menjadi 5% dari lebar viewport, tetapi tidak pernah lebih kecil dari 10 piksel, dan tidak pernah lebih besar dari 18 piksel.
Sayangnya, fitur ini belum diterapkan di mana pun, (bahkan di caniuse.com).
sumber
Rucksack brilian, tetapi Anda tidak perlu menggunakan alat seperti Gulp atau Grunt, dll.
Saya membuat demo menggunakan CSS Custom Properties (CSS Variables) untuk mengontrol ukuran font min dan max dengan mudah.
Seperti:
sumber
Saya mendapatkan hasil yang mulus dengan ini. Ini mengalir dengan lancar antara 3 rentang lebar, seperti fungsi pemenggalan kontinu.
sumber
Anda dapat menggunakan Sass untuk mengontrol ukuran font min dan max. Inilah solusi brilian dari Eduardo Boucas.
https://eduardoboucas.com/blog/2015/06/18/viewport-sized-typography-with-minimum-and-maximum-sizes.html
sumber
Harap diperhatikan bahwa menyetel ukuran font dengan px tidak disarankan karena masalah aksesibilitas :
"menentukan ukuran font dalam piksel tidak dapat diakses, karena pengguna tidak dapat mengubah ukuran font di beberapa browser. Misalnya, pengguna dengan penglihatan terbatas mungkin ingin menyetel ukuran font jauh lebih besar daripada ukuran yang dipilih oleh desainer web." (lihat https://developer.mozilla.org/en-US/docs/Web/CSS/font-size )
Pendekatan yang lebih mudah diakses adalah menyetel
font-size: 100%
html, yang menghormati setelan ukuran default pengguna , dan LALU menggunakan persentase atau unit relatif saat mengubah ukuran (em
ataurem
), misalnya dengan kueri @media.(lihat https://betterwebtype.com/articles/2019/06/16/5-keys-to-accessible-web-typography/ )
sumber
Ya, tampaknya ada beberapa batasan oleh beberapa browser di SVG. Developertool membatasinya menjadi 8000px; Bagan yang dibuat secara dinamis berikut gagal misalnya di Chrome.
Coba http://www.xn--dddelei-n2a.de/2018/test-von-svt/
sumber