Я создал сайт, используя сетку Zurb Foundation 3 . Каждая страница имеет большое 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 -->
Когда я изменяю размер браузера до размера мобильного устройства, крупный шрифт не корректируется и заставляет браузер включать горизонтальную прокрутку для размещения большого текста.
Я заметил, что на странице примера типографии Zurb Foundation 3 заголовки адаптируются к браузеру по мере его сжатия и расширения.
Я что-то упускаю действительно очевидное? Как мне этого добиться?
css
responsive-design
font-size
zurb-foundation
em
user2213682
источник
источник
Ответы:
Не
font-size
будет реагировать так при изменении размера окна браузера. Вместо этого они реагируют на настройки масштабирования / размера шрифта браузера, например, если вы нажмете Ctrlи +вместе на клавиатуре в браузере.Медиа-запросы
Вы должны будете рассмотреть использование медиа-запросов, чтобы уменьшить размер шрифта через определенные промежутки времени, когда он начинает ломать ваш дизайн и создавать полосы прокрутки.
Например, попробуйте добавить это в свой CSS внизу, изменив ширину 320 пикселей, где бы ваш дизайн не ломался:
Длина просмотра в процентах
Вы можете также использовать окно просмотра процентных длины , такие как
vw
,vh
,vmin
иvmax
. Официальный документ W3C для этого гласит:Опять же, из того же документа W3C каждая отдельная единица может быть определена, как показано ниже:
И они используются точно так же, как и любое другое значение CSS:
Совместимость относительно хорошая, как можно увидеть здесь . Однако некоторые версии Internet Explorer и Edge не поддерживают vmax. Кроме того, у iOS 6 и 7 есть проблема с модулем vh, которая была исправлена в iOS 8.
источник
font-size: 1.5vw;
?font-size: calc(12px + 1vw)
Вы можете использовать значение области просмотра вместо ems, pxs или pts:
Из CSS-хитрости: типоразмер видового экрана
источник
Я обдумывал способы преодоления этой проблемы и считаю, что нашел решение:
Если вы можете написать свое приложение для Internet Explorer 9 (и более поздних версий) и всех других современных браузеров, которые поддерживают CSS calc (), rem и vmin. Вы можете использовать это для достижения масштабируемого текста без медиазапросов:
Вот оно в действии: http://codepen.io/csuwldcat/pen/qOqVNO
источник
Используйте
media
спецификаторы CSS (это то, что они [zurb] используют) для адаптивного стиля:источник
Если вы не против использовать решение jQuery, вы можете попробовать плагин TextFill
https://github.com/jquery-textfill/jquery-textfill
источник
Есть несколько способов добиться этого.
Используйте медиа-запрос , но он требует размеров шрифта для нескольких точек останова:
Используйте размеры в % или em . Просто измените базовый размер шрифта, и все изменится. В отличие от предыдущего, вы можете просто менять основной шрифт, а не h1 каждый раз, или позволить базовому размеру шрифта быть по умолчанию для устройства, а все остальное
em
:Смотрите kyleschaeffer.com / ....
CSS 3 поддерживает новые измерения, относящиеся к порту просмотра. Но это не работает на Android:
3.2vmax = больше 3.2vw или 3.2vh
Смотрите CSS-хитрости ..., а также посмотрите, можно ли использовать ...
источник
Есть другой подход к адаптивным размерам шрифтов - использование блоков rem.
Далее в медиа-запросах вы можете настроить все размеры шрифтов, изменив базовый размер шрифта:
Чтобы это работало в Internet Explorer 7 и Internet Explorer 8, вам нужно добавить запасной вариант с px-единицами:
Если вы разрабатываете с Less , вы можете создать миксин, который будет делать математику для вас.
Поддержка подразделений Rem - http://caniuse.com/#feat=rem
источник
Решение "vw" имеет проблему при переходе на очень маленькие экраны. Вы можете установить базовый размер и подняться оттуда с помощью calc ():
источник
font-size: calc(1.2rem + 1vw)
для заголовка. Таким образом, у меня было преимущество использования непиксельного модуля (хотя это может быть неприменимо здесь). У меня также был запасной вариант в простых ems для старых браузеров. Наконец, так как это стало немного мало для мобильных устройств, я использовал медиа-запрос для них. Это может быть слишком сложно, но, кажется, делать то, что я хотел.Это частично реализовано в фундаменте 5.
В файле _type.scss у них есть два набора переменных заголовка:
Для среднего уровня они генерируют размеры на основе первого набора переменных:
А для стандартных экранов, то есть для небольших экранов, они используют второй набор переменных для генерации CSS:
Вы можете использовать эти переменные и переопределить в своем собственном файле scss, чтобы установить размеры шрифта для соответствующих размеров экрана.
источник
Адаптивный размер шрифта также можно сделать с помощью этого кода JavaScript, который называется FlowType :
FlowType - Отзывчивая веб-типография во всей красе: размер шрифта зависит от ширины элемента.
Или этот код JavaScript называется FitText :
FitText - делает размеры шрифта гибкими. Используйте этот плагин для адаптивного дизайна для изменения размера заголовков на основе соотношения.
источник
Если вы используете инструмент для сборки, попробуйте Rucksack.
В противном случае вы можете использовать CSS-переменные (пользовательские свойства) для простого управления минимальным и максимальным размерами шрифта, например так ( демо ):
источник
Я видел отличную статью от CSS-Tricks . Работает просто отлично:
Например:
Мы можем применить то же уравнение к
line-height
свойству, чтобы изменить его и в браузере.источник
Я только что выдвинул идею, что вам нужно определить размер шрифта только один раз для каждого элемента, но это все еще зависит от медиа-запросов.
Во-первых, я установил переменную «--text-scale-unit» в «1vh» или «1vw», в зависимости от области просмотра с использованием медиа-запросов.
Затем я использую переменную используя calc () и мой номер мультипликатора для размера шрифта:
В моем примере я использовал только ориентацию области просмотра, но принцип должен быть возможен с любыми медиа-запросами.
источник
vmin
иvmax
вместо этого@media
бизнес?«FitText» в jQuery, вероятно, является лучшим решением для адаптивных заголовков. Проверьте это на GitHub: https://github.com/davatron5000/FitText.js
источник
Как и во многих фреймворках, как только вы «выйдете из сетки» и переопределите CSS по умолчанию для фреймворка, все начнет ломаться влево и вправо. Каркасы по своей природе жесткие. Если вы будете использовать стиль H1 по умолчанию в Zurb вместе с их классами сетки по умолчанию, то веб-страница должна отображаться на мобильном телефоне должным образом (то есть реагировать).
Тем не менее, кажется, что вы хотите очень большие заголовки 6.2em, что означает, что текст должен будет сжиматься, чтобы поместиться внутри мобильного дисплея в портретном режиме. Лучше всего использовать адаптивный текстовый плагин jQuery, такой как FlowType и FitText . Если вы хотите что-то более легкое, то вы можете проверить мой плагин Scalable Text jQuery:
http://thdoan.github.io/scalable-text/
Пример использования:
источник
В реальном оригинальном Sass (не scss) вы можете использовать следующие миксины, чтобы автоматически устанавливать абзацы и все заголовки
font-size
.Мне нравится это, потому что это намного более компактно. И быстрее набрать. Помимо этого, он обеспечивает ту же функциональность. В любом случае, если вы все еще хотите придерживаться нового синтаксиса - scss, тогда смело конвертируйте мой контент Sass в scss здесь: [CONVERT SASS TO SCSS HERE]
Ниже я даю вам четыре миксина Sass. Вам придется настроить их параметры в соответствии с вашими потребностями.
После того, как вы закончите играть с настройками, просто сделайте вызов на один миксин - это: + config-and-run-font-generator () . Смотрите код ниже и комментарии для получения дополнительной информации.
Я думаю, вы могли бы сделать это автоматически для медиа-запроса, как это делается для тегов заголовка, но мы все используем разные медиа-запросы, поэтому он не подходит для всех. Я использую мобильную конструкцию, поэтому я так и поступлю. Не стесняйтесь копировать и использовать этот код.
Скопируйте и вставьте эти смеси в ваш файл:
НАСТРОЙТЕ ВСЕ МИКСИНЫ ДЛЯ ВАШИХ ПОТРЕБНОСТЕЙ - ИГРАЙТЕ С НИМ! :) И ТОГДА ПОЗВОНИТЕ ЭТО В ТОПЕ ВАШЕГО АКТУАЛЬНОГО SASS КОДА С:
Это будет генерировать этот вывод. Вы можете настроить параметры для генерации различных наборов результатов. Однако, поскольку мы все используем разные медиа-запросы, некоторые миксины вам придется редактировать вручную (стиль и медиа).
Сгенерированный CSS:
источник
Я использую эти классы CSS, и они делают мой текст плавным при любом размере экрана:
источник
источник
Есть следующие способы, которыми вы можете достичь этого:
Эти единицы будут автоматически изменять размер в зависимости от ширины и высоты экрана.
источник
Вы можете сделать размер шрифта отзывчивым, если определите его в vw (ширина области просмотра). Однако не все браузеры поддерживают это. Решением является использование JavaScript для изменения базового размера шрифта в зависимости от ширины браузера и установки всех размеров шрифта в%.
Вот статья, описывающая, как сделать адаптивные размеры шрифтов: http://wpsalt.com/responsive-font-size-in-wordpress-theme/
источник
Я нашел это решение, и оно работает очень хорошо для меня:
источник
Один из способов решения проблемы с тем, чтобы текст выглядел хорошо как на настольном компьютере, так и на мобильном устройстве / планшете, заключается в фиксировании размера текста в физических единицах, таких как физические сантиметры или дюймы, которые не зависят от PPI экрана (точек на дюйм).
На основе этого ответа ниже приведен код, который я использую в конце HTML-документа для адаптивного размера шрифта:
В приведенном выше коде элементам другого класса назначаются размеры шрифта в физических единицах, если браузер / операционная система правильно настроена для PPI своего экрана.
Шрифт в физических единицах всегда не слишком большой и не слишком маленький, при условии, что расстояние до экрана обычное (расстояние чтения книги).
источник
Размер текста можно задать с помощью
vw
единицы измерения, что означает «ширина области просмотра». Таким образом, размер текста будет соответствовать размеру окна браузера:https://www.w3schools.com/howto/tryit.asp?filename=tryhow_css_responsive_text
Для моего личного проекта я использовал vw и @meida. Работает отлично.
источник
Используйте это уравнение:
Для чего-либо большего или меньшего, чем 1440 и 768, вы можете либо присвоить ему статическое значение, либо применить тот же подход.
Недостаток решения vw заключается в том, что вы не можете установить масштабное соотношение, скажем, 5vw при разрешении экрана 1440 может в конечном итоге иметь размер шрифта 60 пикселей, ваш размер шрифта, но при уменьшении ширины окна до 768 он может закончиться будучи 12px, а не минимальный вы хотите.
При таком подходе вы можете установить верхнюю и нижнюю границу, а шрифт будет масштабироваться между ними.
источник
Мы можем использовать calc () из CSS
Математическая формула является calc (minsize + (maxsize - minsize) * (100vm - minviewportwidth) / (maxwidthviewoport - minviewportwidth)))
Codepen
источник
Боюсь, что не существует простого решения в отношении изменения размера шрифта. Вы можете изменить размер шрифта с помощью медиа-запроса, но технически он не будет плавно изменяться. Например, если вы используете:
ваш
font-size
будет 3em для 300 пикселей и 200 пикселей шириной. Но вам нужно меньшеfont-size
на ширину 200 пикселей, чтобы сделать идеально отзывчивым.Итак, каково реальное решение? Есть только один способ. Вы должны создать изображение PNG (с прозрачным фоном), содержащее ваш текст. После этого вы можете легко сделать ваше изображение отзывчивым (например: ширина: 35%; высота: 28 пикселей). Таким образом, ваш текст будет полностью реагировать на все устройства.
источник
После многих выводов я получил такую комбинацию:
источник
попробуй это
html { font-size: min(max(16px, 4vw), 22px); }
получил его с https://css-tricks.com/simplified-fluid-typography/
источник
Вот то, что сработало для меня. Я только проверял это на iPhone.
Если у вас есть
h1
,h2
илиp
теги, поместите это в текст:Это отображает текст на 22pt на рабочем столе, и это все еще доступно для чтения на iPhone.
источник