bolder» для шрифтов со множеством начертаний / Хабр

Если вы используете шрифт со множеством начертаний, то вам, вероятно, захочется, чтобы теги strong и b не увеличивали жирность шрифта до фиксированного значения font-weight:700, как это происходит по-умолчанию, а использовали промежуточные значения, рассчитанные исходя из жирности шрифта родительского элемента.
Ведь не очень красиво, когда в ультратонком шрифте появляются жирные кляксы тегов strong.


Возьмём для примера Open Sans.


Open Sans имеет пять начертаний: Light 300, Normal 400, Semi-Bold 600, Bold 700 и Extra-Bold 800.
Цифры соответствуют значению font-weight.

Пусть основной текст имеет начертание Light 300, заголовки и цитаты — Normal 400, а промо-блок — Semi-Bold 600:

body {
  font-family: 'Open Sans', sans-serif;
  font-weight: 300;
}
h2, h3, h4, h5, h5, h6,
blockquote {
  font-weight: 400;
}
.
promo { font-weight: 600; }

Тег strong может встечаться и в основном тексте, и в цитатах, и промо-блоке. Надо это учесть.

По-умолчанию:

strong, b {
	font-weight: bold; /* bold = 700 */
}

А нам хочется, чтобы у strong и b для основного текста было Normal 400, для цитат и заголовков — Bold 700, а для промо блока — Extra-Bold 800. Это сохранит контраст между жирным и нежирным текстом примерно равным во всех случаях.

Уверен, многие пробовали использовать strong {font-weight: bolder;}, но это не принесло ожидаемого результата — текст стал ещё жирнее, чем ожидалось.

А всё потому, что согласно спецификации, значение

bolder (lighter) увеличивает (уменьшает) унаследованное значение font-weight до следующего возможного для данного шрифта значения, согласно следующей таблице.

наследуемое значение bolder lighter
100 400 100
200 400 100
300 400 100
400 700 100
500 700 100
600 900 400
700 900 400
800 900 700
900 900 700

Но в браузерной CSS прописано strong, b {font-weight: bold;}, т. е. унаследуется значение «700», а потом оно ещё и увеличивается до «900». Поэтому кажется, что bolder работает неправильно.

Исправить это можно так:

/* сбрасываем стандартное «bold», 
шрифт становится таким же как его родительский элемент */
strong, b {
  font-weight: inherit; 
}
/* теперь bolder будет вычисляться исходя из веса шрифта родительского элемента */
strong, b {
  font-weight: bolder;
}

Именно так, как два отдельных правила. Первое обнуляет значение font-weight из браузерной таблицы стилей, второе задаёт жирность уже в относительных, а не абсолютных единицах.

Теперь нам не придётся заботиться о вложенности элементов — каскад всё сделает автоматически. Мы можем вкладывать теги strong друг в друга.


Вложенные теги «strong». Толщина шрифта определяется исходя из значения родительского элемента.
Демка

Ограничения

Используя относительные значения font-weight мы получаем только по три градации жирности шрифта для

bolder и lighter соответственно. Спецификация не гарантирует, что браузеры правильно сопоставят названия начертаний и числовые значения. Не гарантирует, что для шрифта найдётся более жирное или более тонкое начертание. У некоторых шрифтов всего два начертания, у некоторых может быть восемь.

Единственной гарантией при использовании bolder / lighter является то, что шрифт при значении «bolder» не будет тоньше, чем более легкие начертания этого шрифта, а при значении «lighter» будет не толще, чем более жирные начертания этого шрифта.

Чтобы более тонко настроить вес шрифта, надо использовать абсолютные значения.

Баги

Если у вас шрифт установлен в системе, но не подключен через @font-face, то Google Chrome определяет только Normal и Bold начертания шрифта. Чтобы локальный шрифт заработал, нужно дополнительно указать его font-family.

.fw300 {
  font-family: "Open Sans Light", "Open Sans";
  font-weight: 300;
}
. fw600 {
  font-family: "Open Sans SemiBold", "Open Sans";
  font-weight: 600;
}

css властивість font-weight

  • Головна
  • css
  • властивості
  • font-weight

Властивість font-weight встановлює товщину шрифта.

Вага шрифтів, доступних вам, залежить від сімейства шрифтів, який ви використовуєте. Деякі шрифти мають обличчя символів лише для нормальної (normal) та жирної (bold) товщини. Для таких шрифтів жирність 100-500 є normal, а 600-900 — bold.

Коли вказано значення, для якого не існує обличчя (спеціальних гліфів саме такою товщини) у шрифті, використовується найбільш подібні обличчя.

Якщо в якості значення вказано bolder або lighter, наступна таблиця показує, як визначається жирність тексту:

Значенняbolderlighter
100400100
200400100
300400100
400700100
500700100
600900400
700900400
800900700
900900700

Значення розміру шрифту інтерполюється за допомогою кроків у 100. Інтерполяція відбувається у реальному числовому просторі і перетворюється на ціле число, округлюючи до найближчого кратного значення 100.

Нотатка:

Не всі шрифти підтримують числові значення. Якщо шрифт не підтримує значення — браузер самостійно визначить найбільш близьке значення і відобразить з ним шрифт.

Запропонувати свою пораду чи нотатку

ПорадаНотатка

Синтакс

font-weight: normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900

Властивість font-weight може отримувати 15 значень:

initial

Встановлює властивість у значення без задання

inherit

Вказує на спадковість властивості від свого батьківського елемента.

100

Найбільш тонкий.

200

Супер тонкий текст.

300

Тонкий

400

Нормальний.

500

Середній.

600

Напівжирний.

700

Жирний.

800

Супер жирний.

900

Найбільш жирний.

normal

Нормальний шрифт. Значення без задання

bold

Жирні символи.

bolder

Символи товстіші за батьківські.

lighter

Символи тонкіші за батьківські.

Значення без задання:normal
Наслідує:Так
Анімується:Так
JavaScript синтаксис:object. style.fontWeight=»bold»

Переглядачі

  • Стаціонарні переглядачі
  • Мобільні переглядачі
Переглядач
font-weight

2.0

3.0

1.0

1.3

3.5

Переглядач
font-weight

1.0

1. 0

3.1

Приклади

  • Приклад 1
  • Приклад 2
  • Приклад 3

Значення у дії

Приклад використання

Різна товщина шрифту для трьох параграфів.

p.normal {


    font-weight: normal;


}





p.thick {


    font-weight: bold;


}





p.thicker {


    font-weight: 900;


}

Додаткові посилання

font

font-family

font-size

font-style

font-variant

font-stretch

font-size-adjust

font-face

font-feature-values

font-feature-settings

font-kerning

font-language-override

font-synthesis

font-variant-alternates

font-variant-caps

font-variant-east-asian

font-variant-ligatures

font-variant-numeric

font-variant-position

text-orientation

Подробное руководство по весу шрифта CSS

Свойство font-weight CSS помогает установить вес данного шрифта. Он определяет, насколько тонким или толстым шрифт будет отображаться в интерфейсе. Однако свойство CSS font-weight поддерживается либо весами, заданными браузером, либо доступными начертаниями шрифтов в семействе шрифтов.

Вы можете определить вес с помощью доступных ключевых слов или чисел, кратных 100, вплоть до 900. Толщина шрифта увеличивается пропорционально числу.

Синтаксис: font-weight: normal|bold|lighter|bolder|number|initial|inherit|unset;

В приведенном выше синтаксисе нормальные, полужирные, более светлые, полужирные, полужирные и число являются общими значениями свойств, тогда как начальные, наследовать и не заданные являются глобальными значениями.

Значения свойств

для веса шрифта в CSS

На основе этого синтаксиса значения свойства представляют:

  • Нормальный: Представляет стандартный вес шрифта. Числовой эквивалент обычного ключевого слова — 400.
  • Bold: это значение свойства помогает определить полужирный шрифт. Числовой эквивалент этого свойства — 700.
  • Lighter: значение этого свойства связано с весом шрифта родительского класса. Использование этого ключевого слова сделает толщину шрифта на один уровень светлее, чем шрифт в родительском классе.
  • Жирнее: Как и значение свойства «светлее», еще более жирный шрифт связан с размером шрифта родительского класса. Однако это ключевое слово увеличит вес шрифта на один уровень, а не сделает шрифт светлее.
  • Число: вместо того, чтобы записывать ключевое слово «число» в качестве значения свойства, вам нужно написать числа 100, 200, …, 900. Если вес для указанного числа недоступен для данного семейства шрифтов, применяется предпочтительный номер .

Глобальные значения толщины шрифта в CSS

Помимо стандартных значений свойств, веса шрифтов в CSS также принимают глобальные значения.

  • Исходное: Исходное ключевое слово сбросит толщину шрифта до значения по умолчанию.
  • Inherit: это глобальное значение сбросит толщину шрифта до значения, унаследованного от родительского класса элемента.
  • Unset: это сбросит значение обратно к весу шрифта, унаследованному от родительского класса, если он доступен. Если вес не унаследован от родительского класса, он сбрасывает его до исходного значения по умолчанию.

Общие относительные веса шрифта для более светлых и жирных значений

Использование более светлых или жирных ключевых слов приведет либо к увеличению, либо к уменьшению толщины в зависимости от веса шрифта, унаследованного от родительского класса. На приведенной ниже диаграмме показано, какой абсолютный вес будет выбран на основе унаследованного значения.

Унаследованное значение

Смелее

Зажигалка

100

400

100

200

400

100

300

400

100

400

700

100

500

700

100

600

900

400

700

900

400

800

900

700

900

900

700

Примечание. При переходе на относительный шрифт учитываются только четыре значения: 100, 400, 700 и 900, независимо от семейства шрифтов.

Сопоставление имени общего веса шрифта

Все числовые значения от 100 до 1000 соответствуют общепринятым названиям гирь, как указано в таблице ниже. Но использование имен, отличных от обычных и полужирных, в CSS не допускается.

Значение

Сопоставленное имя

100

Тонкий

200

Сверхлегкий

300

Легкий

400

Обычный

500

Средний

600

полужирный

700

Жирный

800

Очень жирный

900

Черный

950

Экстра черный

Теперь, когда мы знаем все возможные значения свойства font-weight в CSS, давайте используем их в примере.

Пример использования веса шрифта в CSS

В этом примере мы будем использовать все стандартные значения свойств.

  <заголовок>

    Центральный пример

  

  <тело>

    

Обычный шрифт

    

Жирный шрифт

    

Светлее шрифт

    

Более жирный шрифт

    

Вес 100

    

Вес 200

    

вес 300

    

вес 400

    

вес 500

    

вес 600

    

вес 700

    

вес 800

    

вес 900

  

Выход:

Браузеры, поддерживающие свойство CSS Font-Weight

Свойство CSS font-weight поддерживается следующими браузерами.

Имя браузера

Версия

Гугл Хром

2,0

Сафари

1,0

Мозилла Фаерфокс

1,0

Microsoft Edge

12,0

Опера

3,5

Продвигайтесь по карьерной лестнице в качестве разработчика стека MEAN с помощью программы Full Stack Web Developer — MEAN Stack Master’s Program. Зарегистрируйтесь сейчас!

Заключение

Несколько свойств CSS объединяются для оформления веб-страницы, например, веса шрифта (полужирный, очень жирный, светлый, очень светлый или цифры). Вы можете узнать об этих свойствах, обратившись к учебнику Simplilearn по CSS для начинающих или к учебнику по расширенному CSS. Эти учебные пособия охватывают основы CSS, которые окажутся ступенькой к тому, чтобы стать отличным разработчиком внешнего интерфейса.

CSS — это язык стилей, который помогает стилизовать веб-страницу, но сначала вам нужно создать страницу. Узнайте, как это сделать и как CSS сочетается с другими интерфейсными языками программирования, записавшись в нашу программу последипломного образования в Full Stack Web Development. Вы также можете пройти наш 90-дневный бесплатный курс Front-End Web Development. Эти курсы разработаны, чтобы помочь вам приобрести практические знания и практическую практику для глубокого понимания концепций, тем самым предоставив вам инструменты для обеспечения лучших возможностей трудоустройства.

Свойство CSS font-weight — разделы Scaler

Обзор

Свойство CSS font-weight определяет, насколько полужирным или светлым будет отображаться наш текст. Он устанавливает жирность нашего шрифта в зависимости от доступного семейства шрифтов и весов, определенных браузером. Мы можем захотеть выделить некоторые части текста в дизайне.

  • Используя CSS-свойство font-weight, мы можем сделать наш текст сильнее или светлее, чтобы подчеркнуть его значимость.
  • Это свойство принимает числовые значения от 1 до 1000 и значения ключевых слов, такие как обычный, жирный, светлый и жирный.
  • Более жирные и светлые ключевые слова представляют относительный вес.
  • Мы можем полагаться на запасные веса шрифта, когда требуемый вес шрифта недоступен.

Синтаксис

 
 вес шрифта: ключевое слово|число|глобальные значения;
 

Свойство CSS font-weight принимает числовые значения, ключевые слова и глобальные значения. По умолчанию свойство CSS font-weight имеет нормальное значение . Мы даже можем изменить толщину шрифта, чтобы он был жирнее, жирнее или светлее, или указать числовое значение, чтобы указать, насколько жирным или толстым он должен быть. Числовое значение находится в диапазоне от 1 до 1000 включительно. Он принимает глобальные значения, такие как inherit и initial.

Мы можем использовать различные значения для создания толщины шрифта, которая лучше всего подходит для отображения нашего текста, и мы рассмотрим их более подробно позже.

Давайте рассмотрим поддерживаемые значения веса шрифта.

Вес шрифта в CSS

Значение Описание Синтаксис
normal Это стандартный вес шрифта с числовым значением 5:9048;
жирный шрифт Указывает толщину полужирного шрифта с числовым значением 700. насыщенность шрифта: полужирный;
более светлый Уменьшает толщину шрифта по сравнению с родительским элементом. Он учитывает текущий вес шрифта семейства шрифтов. вес шрифта:светлее;
жирнее Увеличивает вес шрифта по сравнению с родительским элементом. вес шрифта: жирнее;
числовое значение Синтаксис CSS 4 поддерживает значение в диапазоне от 1 до 1000 включительно. Веса, которые выделены жирнее (или равны) меньшим значениям, представлены большими числами. вес шрифта:<число> ;
начальный Устанавливает толщину шрифта на значение по умолчанию. вес шрифта: начальный;
наследовать Он наследует свойство от своего родительского элемента. вес шрифта:наследовать;

Fallback Weights

Возможно, точные значения веса шрифта недоступны. Если указанный вес недоступен, запасной вес служит в качестве резервного.

Мы можем использовать следующие правила для определения фактического веса:

  1. Если указан целевой вес от 400 до 500 включительно:

    • Мы можем искать возможные веса шрифта между целевым значением и 500 в порядке возрастания.
    • Если совпадения нет, мы можем искать доступные веса ниже желаемого веса в порядке убывания.
    • В противном случае мы перейдем к весам больше 500 в порядке возрастания.
  2. Если указанный вес меньше 400:

    • Мы можем искать веса в порядке убывания меньше требуемого веса.
    • В противном случае мы можем искать веса выше цели в порядке возрастания.
  3. Если целевой вес больше 500:

    • Мы можем искать доступные веса выше целевого в порядке возрастания.
    • В противном случае ищите доступные веса ниже целевого в порядке убывания.

Значение относительных весов

Более светлые или жирные ключевые слова представляют относительные веса. Эти ключевые слова либо увеличивают, либо уменьшают жирность в зависимости от веса шрифта, унаследованного от родительского класса.

Мы учитываем только следующие четыре веса шрифта при вычислении относительного веса:

  • 100 — тонкий
  • 400 — обычный
  • 700 — полужирный
  • 900 — тяжелый

Мы не рассматриваем дополнительный вес, связанный с семейством шрифтов.

Дочерние элементы наследуют вычисленные веса шрифта.

Когда мы указываем толщину шрифта как жирнее или светлее, мы можем определить абсолютную толщину шрифта с помощью приведенной ниже таблицы.

4.
Inherited Value bolder lighter
100 400 100
200 400 100
300 400 100
400 700 100
500 700 100
600 400 400 400 400
0048
700 900 400
800 900 700
900 900 700

Common Weight Name Mapping

The keyword value normal corresponds to число 400, тогда как полужирный соответствует числу 700. Браузер будет имитировать полужирный или обычный шрифт, если эти значения не входят в семейство шрифтов.

Числовые значения от 100 до 900 соответствуют следующим общепринятым названиям гирь:

0044
Value Common Weight Name
100 Thin(Hairline)
200 Extra Light (Ultra Light)
300 Light
400 Нормальный (обычный)
500 Средняя
600 Semi Bold
800 Extra BOLD (Ultra Bold)
FAR (Heavy)
950 Extra Black (Ultra Black)
Extra Black (Ultra Black)
. один шрифт, который действует как . Он инкапсулирует все различные значения ширины, веса и другие атрибуты. Большинство шрифтов имеют определенный вес, который соответствует одному из чисел в сопоставлении имени общего веса. Но вариативные шрифты могут вмещать различные начертания с более или менее мелкой детализацией, предоставляя дизайнеру гораздо большую степень контроля над выбранным начертанием.

Например, шрифт Roboto-flex поддерживает широкий диапазон значений толщины шрифта от 1 до 1000.

Сравнение стандартных и числовых значений толщины шрифта

Существуют различные способы отображения толщины шрифта, помимо традиционного полужирного значения. Мы можем использовать числовые значения от 1 до 1000 включительно. Числовые значения позволяют нам более эффективно контролировать интенсивность смелости. Мы можем играть с различными значениями. По мере увеличения числа толщина шрифта увеличивается. Стандартные значения ключевых слов, обычные и полужирные, соответствуют 400 и 700 числовым значениям соответственно.

Давайте рассмотрим пример, чтобы понять вес шрифта:

Пример

Установка веса шрифта

Давайте воспользуемся шрифтом Open Sans, чтобы понять стандартные значения веса шрифта. HTML

 
 <ссылка
  href="//fonts.googleapis.com/css?family=Open+Sans:400,600,700,800,300"
  отн = "таблица стилей"
  тип = "текст/CSS"
/>

Меньший вес шрифта

Нормальный вес шрифта

Толщина полужирного шрифта

Более жирный шрифт

Шрифт: 100

Шрифт: 200

Шрифт: 300

Шрифт: 400

Шрифт: 500

Шрифт: 600

Шрифт: 700

Шрифт: 800

Шрифт: 900

CSS

 
 р{
  размер шрифта: 20 пикселей;
   семейство шрифтов: 'Open Sans';
}
.p1{
  вес шрифта: светлее;
}
.p2{
  вес шрифта: нормальный;
}
.p3{
  вес шрифта: полужирный;
}
.p4{
  вес шрифта:жирнее;
}
.p5{
  вес шрифта: 100;
}
.p6{
  вес шрифта: 200;
}
.p7{
  вес шрифта: 300;
}
. p8{
  вес шрифта: 400;
}
.p9{
  вес шрифта: 500;
}
.p10{
  вес шрифта: 600;
}
.p11{
  вес шрифта: 700;
}
.p12{
  вес шрифта: 800;
}
.p13{
  вес шрифта: 900;
}
 

Выход

Чтобы увидеть вывод в реальном времени, перейдите по следующей ссылке.

Вопросы доступности

Текст, установленный со значением веса шрифта 100 (тонкий/тонкий) или 200 (сверхлегкий), может быть труден для чтения людям с ограниченным зрением, особенно если шрифт имеет низкий коэффициент контрастности цвета. Когда вес шрифта уменьшается, а текст становится тоньше, мы начинаем терять детали шрифта. Весь текст должен иметь коэффициент контрастности не менее 4,5:1, за исключением крупномасштабного текста, который должен иметь коэффициент контрастности не менее 3:1.

Совместимость с браузерами

Следующие браузеры поддерживают CSS-свойство font-weight:

Browser Version
Google Chrome 2.
Автор записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *