Saya telah membuat situs menggunakan kisi Zurb Foundation 3 . Setiap halaman memiliki besar h1
:
body {
font-size: 100%
}
/* Headers */
h1 {
font-size: 6.2em;
font-weight: 500;
}
<div class="row">
<div class="twelve columns text-center">
<h1> LARGE HEADER TAGLINE </h1>
</div>
<!-- End Tagline -->
</div>
<!-- End Row -->
Ketika saya mengubah ukuran browser ke ukuran ponsel, font yang besar tidak menyesuaikan dan menyebabkan browser menyertakan scroll horizontal untuk mengakomodasi teks yang besar.
Saya perhatikan bahwa pada halaman contoh Tipografi Zurb Foundation 3 , header beradaptasi dengan browser saat dikompresi dan diperluas.
Apakah saya melewatkan sesuatu yang sangat jelas? Bagaimana saya mencapai ini?
css
responsive-design
font-size
zurb-foundation
em
pengguna2213682
sumber
sumber
Jawaban:
Tidak
font-size
akan merespons seperti ini saat mengubah ukuran jendela browser. Sebagai gantinya mereka merespons pengaturan ukuran zoom / ketik browser, seperti jika Anda menekan Ctrldan +bersama - sama pada keyboard saat berada di browser.Kueri Media
Anda harus melihat menggunakan kueri media untuk mengurangi ukuran font pada interval tertentu di mana ia mulai merusak desain Anda dan membuat scrollbar.
Misalnya, coba tambahkan ini di dalam CSS Anda di bagian bawah, ubah lebar 320 piksel untuk tempat desain Anda mulai rusak:
Panjang persentase viewport
Anda juga dapat menggunakan panjang persentase viewport seperti
vw
,vh
,vmin
danvmax
. Dokumen W3C resmi untuk negara ini:Sekali lagi, dari dokumen W3C yang sama, masing-masing unit dapat didefinisikan sebagai berikut:
Dan mereka digunakan dengan cara yang persis sama dengan nilai CSS lainnya:
Kompatibilitasnya relatif bagus seperti yang bisa dilihat di sini . Namun, beberapa versi Internet Explorer dan Edge tidak mendukung vmax. Juga, iOS 6 dan 7 memiliki masalah dengan unit vh, yang diperbaiki di iOS 8.
sumber
font-size: 1.5vw;
?font-size: calc(12px + 1vw)
Anda dapat menggunakan nilai viewport alih-alih ems, pxs, atau pts:
Dari CSS-Trik: Tipografi Berukuran Viewport
sumber
Saya telah bermain-main dengan cara untuk mengatasi masalah ini, dan percaya saya telah menemukan solusi:
Jika Anda dapat menulis aplikasi Anda untuk Internet Explorer 9 (dan yang lebih baru) dan semua peramban modern lain yang mendukung CSS calc (), unit rem, dan unit vmin. Anda dapat menggunakan ini untuk mencapai teks yang skalabel tanpa kueri media:
Ini dia sedang beraksi: http://codepen.io/csuwldcat/pen/qOqVNO
sumber
Gunakan
media
specifier CSS (itulah yang mereka [zurb] gunakan) untuk gaya responsif:sumber
Jika Anda tidak keberatan menggunakan solusi jQuery, Anda dapat mencoba plugin TextFill
https://github.com/jquery-textfill/jquery-textfill
sumber
Ada beberapa cara untuk mencapai ini.
Gunakan kueri media , tetapi membutuhkan ukuran font untuk beberapa breakpoint:
Gunakan dimensi dalam % atau em . Ubah saja ukuran font dasar, dan semuanya akan berubah. Berbeda dengan yang sebelumnya, Anda bisa saja mengubah font tubuh dan tidak h1 setiap kali atau membiarkan ukuran font dasar menjadi default perangkat dan sisanya semua dalam
em
:Lihat kyleschaeffer.com / ....
CSS 3 mendukung dimensi baru yang relatif terhadap port tampilan. Tapi ini tidak berfungsi di Android:
3.2vmax = Lebih besar dari 3.2vw atau 3.2vh
Lihat Trik-CSS ... dan lihat juga Dapatkah Saya Menggunakan ...
sumber
Ada pendekatan lain untuk ukuran font responsif - menggunakan unit rem.
Kemudian di kueri media, Anda dapat menyesuaikan semua ukuran font dengan mengubah ukuran font dasar:
Untuk membuatnya bekerja di Internet Explorer 7 dan Internet Explorer 8 Anda harus menambahkan fallback dengan unit px:
Jika Anda mengembangkan dengan Less , Anda dapat membuat mixin yang akan menghitungnya untuk Anda.
Dukungan unit rem - http://caniuse.com/#feat=rem
sumber
Solusi "vw" memiliki masalah saat membuka layar yang sangat kecil. Anda dapat mengatur ukuran dasar dan naik dari sana dengan calc ():
sumber
font-size: calc(1.2rem + 1vw)
heading. Dengan begitu saya mendapat keuntungan menggunakan unit berbasis non-pixel (meskipun itu mungkin tidak berlaku di sini). Saya juga memiliki fallback di ems polos untuk browser yang lebih tua Akhirnya, karena itu menjadi sedikit kecil di ponsel, saya menggunakan permintaan media untuk itu. Itu mungkin terlalu rumit, tetapi tampaknya melakukan apa yang saya inginkan.Ini sebagian diimplementasikan dalam yayasan 5.
Dalam file _type.scss mereka memiliki dua set variabel header:
Untuk menengah ke atas, mereka menghasilkan ukuran berdasarkan set variabel pertama:
Dan untuk default-ie layar kecil, mereka menggunakan set variabel kedua untuk menghasilkan CSS:
Anda dapat menggunakan variabel-variabel ini dan menimpa di file SCss kustom Anda untuk mengatur ukuran font untuk ukuran layar masing-masing.
sumber
Ukuran font responsif juga dapat dilakukan dengan kode JavaScript ini disebut FlowType :
FlowType - Tipografi web responsif yang terbaik: ukuran font berdasarkan lebar elemen.
Atau kode JavaScript ini disebut FitText :
FitText - Membuat ukuran huruf fleksibel. Gunakan plugin ini pada desain responsif Anda untuk mengubah ukuran berdasarkan tajuk berita utama Anda.
sumber
Jika Anda menggunakan alat bangun kemudian coba Rucksack.
Jika tidak, Anda dapat menggunakan variabel CSS (properti khusus) untuk dengan mudah mengontrol ukuran font minimum dan maksimum seperti ( demo ):
sumber
Saya melihat artikel yang bagus dari CSS-Trik . Ini bekerja dengan baik:
Sebagai contoh:
Kita bisa menerapkan persamaan yang sama ke
line-height
properti untuk mengubahnya dengan browser juga.sumber
Saya baru saja datang dengan ide yang Anda hanya perlu menentukan ukuran font sekali per elemen, tetapi masih dipengaruhi oleh pertanyaan media.
Pertama, saya mengatur variabel "--text-scale-unit" ke "1vh" atau "1vw", tergantung pada viewport menggunakan kueri media.
Kemudian saya menggunakan variabel menggunakan calc () dan nomor multiplikator saya untuk ukuran font:
Dalam contoh saya, saya hanya menggunakan orientasi viewport, tetapi prinsipnya harus dimungkinkan dengan pertanyaan media.
sumber
vmin
danvmax
bukannya@media
bisnis ini ?"FitText" jQuery mungkin adalah solusi header responsif terbaik. Lihat di GitHub: https://github.com/davatron5000/FitText.js
sumber
Seperti banyak kerangka kerja, setelah Anda "pergi dari grid" dan menimpa CSS default kerangka kerja, hal-hal akan mulai rusak kiri dan kanan. Kerangka kerja pada dasarnya kaku. Jika Anda menggunakan gaya H1 default Zurb bersama dengan kelas kisi default mereka, maka halaman web akan ditampilkan dengan benar di ponsel (yaitu, responsif).
Namun, tampaknya Anda ingin judul 6.2em yang sangat besar, yang berarti teks harus menyusut agar muat di dalam layar ponsel dalam mode potret. Taruhan terbaik Anda adalah dengan menggunakan plugin jQuery teks responsif seperti FlowType dan FitText . Jika Anda menginginkan sesuatu yang ringan, maka Anda dapat memeriksa plugin jQuery Text Scalable saya:
http://thdoan.github.io/scalable-text/
Penggunaan sampel:
sumber
Dalam Sass asli yang sebenarnya (bukan scss) Anda dapat menggunakan mixin di bawah ini untuk secara otomatis mengatur paragraf dan semua judul '
font-size
.Saya suka karena jauh lebih ringkas. Dan lebih cepat mengetik. Selain itu, ia menyediakan fungsionalitas yang sama. Bagaimanapun, jika Anda masih ingin tetap menggunakan sintaks - scss baru, maka silakan ubah konten Sass saya menjadi scss di sini: [CONVERT SASS TO SCSS HERE]
Di bawah ini saya memberi Anda empat mixins Sass. Anda harus menyesuaikan pengaturannya dengan kebutuhan Anda.
Setelah Anda selesai bermain dengan pengaturan, lakukan panggilan pada satu mixin - yaitu: + config-and-run-font-generator () . Lihat kode di bawah dan komentar untuk informasi lebih lanjut.
Saya kira Anda dapat melakukannya secara otomatis untuk kueri media seperti yang dilakukan untuk tag tajuk, tetapi kita semua menggunakan kueri media yang berbeda, jadi itu tidak akan cocok untuk semua orang. Saya menggunakan pendekatan desain mobile-first, jadi ini yang akan saya lakukan. Jangan ragu untuk menyalin dan menggunakan kode ini.
COPY DAN PASTE MIXIN INI KE FILE ANDA:
KONFIGURASI SEMUA CAMPURAN DENGAN KEBUTUHAN ANDA - MAINKAN! :) DAN KEMUDIAN PANGGILANNYA DI ATAS KODE SASS AKTUAL ANDA DENGAN:
Ini akan menghasilkan output ini. Anda dapat menyesuaikan parameter untuk menghasilkan set hasil yang berbeda. Namun, karena kita semua menggunakan kueri media yang berbeda, beberapa mixin Anda harus mengedit secara manual (gaya dan media).
CSS GENERASI:
sumber
Saya menggunakan kelas-kelas CSS ini, dan mereka membuat teks saya cair pada ukuran layar apa pun:
sumber
sumber
Ada beberapa cara berikut untuk mencapai hal ini:
Unit-unit ini akan secara otomatis tergantung pada lebar dan tinggi layar.
sumber
Anda dapat membuat ukuran font responsif jika mendefinisikannya dalam vw (lebar viewport). Namun, tidak semua browser mendukungnya. Solusinya adalah menggunakan JavaScript untuk mengubah ukuran font dasar tergantung pada lebar browser dan mengatur semua ukuran font dalam%.
Berikut ini adalah artikel yang menjelaskan cara membuat fontsi responsif: http://wpsalt.com/responsive-font-size-in-wordpress-theme/
sumber
Saya telah menemukan solusi ini, dan ini bekerja sangat baik untuk saya:
sumber
Salah satu cara untuk menyelesaikan masalah teks agar terlihat bagus di desktop dan ponsel / tablet adalah dengan memperbaiki ukuran teks ke unit fisik seperti sentimeter fisik atau inci, yang tidak bergantung pada layar PPI (poin per inci).
Berdasarkan jawaban ini , di bawah ini adalah kode yang saya gunakan di akhir dokumen HTML untuk ukuran font responsif:
Dalam kode di atas item-item dari kelas yang berbeda ditetapkan ukuran font dalam satuan fisik, selama browser / OS dikonfigurasi dengan benar untuk PPI layarnya.
Font unit fisik selalu tidak terlalu besar dan tidak terlalu kecil, asalkan jarak ke layar biasa (jarak baca buku).
sumber
Ukuran teks dapat diatur dengan satu
vw
unit, yang berarti "lebar viewport". Dengan begitu ukuran teks akan mengikuti ukuran jendela browser:https://www.w3schools.com/howto/tryit.asp?filename=tryhow_css_responsive_text
Untuk proyek pribadi saya, saya menggunakan vw dan @meida. Ini bekerja dengan sempurna.
sumber
Gunakan persamaan ini:
Untuk apa pun yang lebih besar atau lebih kecil dari 1440 dan 768, Anda bisa memberikannya nilai statis, atau menerapkan pendekatan yang sama.
Kekurangan dengan solusi vw adalah bahwa Anda tidak dapat mengatur rasio skala, katakanlah 5vw pada resolusi layar 1440 mungkin berakhir menjadi ukuran font 60px, ukuran font ide Anda, tetapi ketika Anda mengecilkan lebar jendela ke 768, itu mungkin berakhir menjadi 12px, bukan minimal yang Anda inginkan.
Dengan pendekatan ini, Anda dapat mengatur batas atas dan batas bawah Anda, dan font akan mengatur skala di antaranya.
sumber
Kita bisa menggunakan calc () dari css
Rumus matematika adalah calc (minsize + (maxsize - minsize) * (100vm - minviewportwidth) / (maxwidthviewoport - minviewportwidth)))
Codepen
sumber
Saya khawatir tidak ada solusi mudah untuk mengubah ukuran font. Anda dapat mengubah ukuran font menggunakan kueri media, tetapi secara teknis ukurannya tidak akan lancar. Sebagai contoh, jika Anda menggunakan:
Anda
font-size
akan 3em untuk lebar 300 piksel dan 200 piksel. Tetapi Anda perlu lebih rendahfont-size
untuk lebar 200px untuk membuat responsif sempurna.Jadi, apa solusi sebenarnya? Hanya ada satu cara. Anda harus membuat gambar PNG (dengan latar belakang transparan) yang berisi teks Anda. Setelah itu Anda dapat dengan mudah membuat gambar Anda responsif (misalnya: lebar: 35%; tinggi: 28px). Dengan cara ini teks Anda akan sepenuhnya responsif dengan semua perangkat.
sumber
Setelah banyak kesimpulan saya berakhir dengan kombinasi ini:
sumber
coba ini
html { font-size: min(max(16px, 4vw), 22px); }
mendapatkannya dari https://css-tricks.com/simplified-fluid-typography/
sumber
Ini sesuatu yang bekerja untuk saya. Saya hanya mengujinya di iPhone.
Apakah Anda memiliki
h1
,,h2
ataup
tag, letakkan ini di sekitar teks Anda:Ini membuat teks 22pt di desktop dan masih dapat dibaca di iPhone.
sumber