Работа с текстом в CSS

🗓️ Обновлено: 02.05.2023

💬Комментариев: 0

👁️Просмотров: 361

Каждый, кто сталкивается с CSS, должен понимать, как работают теги и свойства для работы с текстом. На первый взгляд кажется, что это очень просто, но стоит углубиться в вопросы font-weight, и у новичков может возникнуть особенно много вопросов. Рассмотрим детальнее форматирование текста css, и на что нужно обратить внимание.

Основные свойства CSS

CSS  – незаменимый инструмент для оформления страниц, написанных на HTML. Он позволяет разграничить содержание веб-страницы от элементов ее оформления. В каскадных таблицах стилей достаточно много свойств, но действительно значимых не так уж и много. Их всех объединяет простой синтаксис в виде показателей *свойство: значение”, которые располагаются внутри фигурных скобок нужного селектора. Вот примеры основных свойств, которые используются каждый день для работы с текстом CSS:

  1. font-size. Используется для изменения размера шрифта.
    Высота букв может задаваться константами, пунктами, пикселями, процентами и другими соотношениями.
  2. color. Определяет цвет текста. Его можно установить, написав после двоеточия зарезервированное или шестнадцатеричное название цвета, RGB значение.
  3. background-color. Заливает нужный участок текста цветом, словно он выделен маркером. Варианты значений для background-color аналогичны со свойством color.
  4. font-style. Этим свойство задается стиль шрифта в зависимости от выбранного значения, который может принимать значение обычного, курсивного или наклонного (и отличающегося от курсивного) написания.
  5. font-weight. С этим свойством можно не волноваться, как изменить жирность шрифта в CSS. Значение можно задать двумя способами. Первый – буквенное, чаще всего используется обычное (нормал) и полужирное (болд). Второй способ – числовой, 100-900, чем цифра выше, тем более жирное начертание.
  6. font-family. Определяет список шрифтов, которые будут использоваться при стилизации текста. Могут использоваться как названия шрифтов, так и названия групп шрифтов.

Довольно часто стили текста CSS называют тегами, используя привычное название из HTML. Хоть это по сути разные термины с отличным друг от друга синтаксисом, но для простоты понимания на это зачастую не обращают внимания. 

CSS – теги для текста

Для форматирования текста существует много различных тегов CSS. Расстояние между буквами определяется свойством letter-spacing. Значение можно задавать в пикселях, дюймах, пунктах и других вариантах. Допускается даже отрицательное значение, но предварительно нужно убедиться, что текст получается читабельным.

Также полезным будет text-align. Этот тег выравнивает текст в зависимости от указанного значения:

  • left;
  • center;
  • right;
  • justify.

Последний отвечает за выравнивание по ширине строки. При этом тег line-height нужен для того, чтобы задать высоту нашей строчки, а padding и margin – для формирования отступов вокруг элемента.

Хотите знать больше про CSS? Как работать с каскадными таблицами, чтобы у веб-сайтов и приложений получался удобный и красивый дизайн? На эти и другие вопросы вы сможете получить ответы в Компьютерной школе Hillel.

По материалам: https://itwiki.dev/ru

1.4. Работа с текстом

Грамотно отформатированный текст дает понять поисковым системам, какие слова несут важную смысловую нагрузку, по каким из них предпочтительно ранжировать веб-страницу в поисковой выдаче.
Напомним, что вся текстовая информация, отображаемая на сайте, размещается внутри элемента <body>.

Заголовки

Заголовки являются важными элементами веб-страницы, они упорядочивают текст, формируя его визуальную структуру. Элементы <h2>…<h6> должны использоваться только для выделения заголовков нового раздела или подраздела.

При использовании заголовков необходимо учитывать их иерархию, т.е. за <h2> должен следовать <h3> и т.д. Также не рекомендуется вкладывать в заголовки другие элементы.

Элемент <h2>
Заголовок самого верхнего уровня, на странице рекомендуется использовать только один раз, по возможности частично дублируя заглавие страницы. Элемент <h2> должен быть уникальным для каждой страницы сайта.
Рекомендуется прописывать в начале статьи, используя ключевое слово в тексте заголовка.

Элемент <h3>
Представляет подзаголовки элемента <h2>.

Элемент <h4>
Показывает подзаголовки элемента <h3>.

Элементы <h5>, <h5>, <h6>
Обозначают подзаголовки четвёртого, пятого и шестого уровня.

<h2>Заголовок 1-го уровня</h2>
<h3>Заголовок 2-го уровня</h3>
<h4>Заголовок 3-го уровня</h4>
<h5>Заголовок 4-го уровня</h5>
<h5>Заголовок 5-го уровня</h5>
<h6>Заголовок 6-го уровня</h6>

Абзацы, средства переноса текста

Элемент <p>
Разбивает текст на отдельные абзацы, отделяя друг от друга пустой строкой. Браузер автоматически добавляет верхнее и нижнее внешнее поле margin, равное 1em, при этом поля соседних абзацев «схлопываются».

Элемент <br>
Переносит текст на следующую строку, создавая разрыв строки.

Элемент <hr>
Используется для разделения контента на веб-странице. Отображается в виде горизонтальной линии.

<p>Земля <br> становится тяжелее день ото дня <br> из-за падающей на нее космической пыли.</p>
<p>Венера - единственная планета, вращающаяся по часовой стрелке.</p>
<hr>
<p>Юпитер больше, чем все остальные планеты вместе взятые.</p>

Элементы для форматирования текста

Несемантическая разметка
Это любые видимые нам изменения текста. Практически всем таким тегам по умолчанию в браузерах заданы стили. Так что напрямую за визуальное форматирование отвечает CSS.

Элемент <b>…</b>
Делает текст жирным.

Его можно использовать в любом месте для визуального выделения текста. Никакой смысловой нагрузки этот тег не несёт.

P.s. Сейчас считается, что использование <b> избыточно и для визуального выделения нужно использовать CSS, а для важных участков <strong>.

Элемент <i>…</i>
Предназначен для визуального выделения текста курсивом и не несёт смысловой нагрузки.

Элемент <u>…</u>
Подчёркивает текст.
Случаев использования u не так много. Чаще всего его используют для выделения слов с орфографическими ошибками и для подчёркивания имён собственных в китайском языке.

Элемент <s>…</s>
Перечеркнутый текст.
Используется для содержимого, которое уже не является точным или актуальным. Элемент <s> не должен применяться для удалённого текста, для этой цели есть элемент <del>.

Элемент <mark>…</mark>
Применяется для выделения фрагментов текста в справочных целях, окрашивая блок символов желтым цветом.

<p>Вот так можно вывести текст с <b>полужирным</b> начертанием шрифта.</p>
<p>Вот так можно отобразить текст <i>курсивом</i>.</p>
<p>Вот так можно отобразить <u>подчеркнутый</u> текст.</p>
<p>Вот так можно <s>перечеркнуть</s> текст.</p>
<p>Вот так можно <mark>выделить</mark> текст.</p>
Несемантическая разметка
Подстрочные и надстрочные элементы

Элемент <sub>…</sub>
Используется для создания нижних индексов. Сдвигает текст ниже уровня строки, уменьшая его размер.

Элемент <sup>…</sup>
Используется для создания степеней. Сдвигает текст выше уровня строки, уменьшая его размер.

<p>Сейчас мы изучим формулу E=mc<sup>2</sup>.</p>
<p>В 2019 году концентрация CO<sub>2</sub> в атмосферном воздухе выросла на 2 ppm. </p>
Семантическая разметка
В языке HTML существует ряд текстовых элементов, не вносящих изменения в структуру веб-страницы, но добавляющих дополнительную информацию. Эти теги принято называть семантической (то есть смысловой) разметкой.
Это форматирование на уровне смысла и содержания. Оно нужно браузерам, вспомогательным и голосовым технологиям. Это особенно важно для программ чтения с экранов — скринридеров.

Элемент <strong>…</strong>
Также делает текст жирным и логически выделяет важный участок текста.
Этот тег несёт смысловую нагрузку и размечает именно важную часть. Его не следует применять на всех участках подряд.

Элемент <em>…</em>
Отображает шрифт курсивом, придавая тексту значимость.
Внешне отображение тега не отличается от тега <i>, но при этом элемент <em> используется только тогда, когда есть смысловая необходимость выделить текст.

Элемент <small>…</small>
Уменьшает размер шрифта на единицу по отношению к обычному тексту.

Элемент <ins>…</ins>
Выделяет текст в новой версии документа, подчёркивая его.
Для элемента доступны атрибуты cite и datetime.

Элемент <del>…</del>
Перечёркивает текст. Используется для выделения текста, удаленного из документа.
Для элемента доступны атрибуты cite и datetime.

<p>Игрушка содержит большое количество мелких деталей и <strong>не предназначена для детей младше пяти лет</strong>.</p>

<p>Я <em>думаю</em>, Анна была первой.</p>
<p>Я думаю, <em>Анна</em> была первой.</p>

Элементы для оформления цитат, аббревиатур и определений

Цитаты
Элемент <q>
Используется для выделения коротких цитат. Браузерами заключается в кавычки.

Элемент <blockquote>
Используется для длинных цитат, занимающих целый абзац.

Элемент <cite>
Применяется для выделения цитат, названий произведений, сносок на другие документы.

Элемент <bdo>
Используется для изменения текущего направления текста

<p>Станислав Лец утверждал: <q>Чаще всего выход там, где был 
    вход</q>.</p>

<hr>

<p>Возможно, Ленин использовал фразу А. П. Чехова из произведения 
  «Моя жизнь (рассказ провинциала)» гл. VI, первая публикация которого 
  была в приложении к «Ниве» в 1896 г.</p>
  <blockquote>
   Учиться нам нужно, учиться и учиться, а с глубокими
   общественными течениями погодим: мы ещё не доросли 
   до них и, по совести, ничего в них не понимаем.
  </blockquote>

<hr>

<p>Игра <cite>Diablo</cite> уносит нас в мир тёмного фэнтези 
  и основана на <cite>GURPS</cite> — универсальной системе ролевых игр,
  разработанной компанией Steve Jackson Games в 1986 году. </p>

<hr>

<p><bdo>А роза упала на лапу Азора</bdo></p>
Аббревиатуры и определения
Элемент <abbr>
Применяется для форматирования аббревиатур.
Браузером обычно подчеркивается пунктирной линией. Расшифровка сокращения осуществляется с помощью атрибута title, она появляется при наведении курсора мыши на текст.

Элемент <dfn>
Позволяет выделить текст как определение.
Несмотря на наличие данного элемента, рекомендуется выделять текст силами CSS.

Элементы для ввода «компьютерного» текста

Элемент <code>…</code>
Служит для выделения фрагментов программного кода. Отображает текст моноширинным шрифтом.

Элемент <kbd>…</kbd>
Отмечает фрагмент как вводимый пользователем с клавиатуры. Отображает текст моноширинным шрифтом.

Элемент <samp>. ..</samp>
Применяется для выделения результата, полученного в ходе выполнения программы. Отображает текст моноширинным шрифтом.

Элемент <var>…</var>
Выделяет имена переменных, отображая текст курсивом.

Элемент <pre>…</pre>
Позволяет вывести текст на экран, сохранив изначальное форматирование. Пробелы и переносы строк при этом не удаляются.

Элемент span

Тег <span>(от англ. span — интервал) — это контейнер для текста.

Span используют, если нужно выделить другим цветом отдельные слова, словосочетания и предложения, изменить размер шрифта, добавить другой фон, обвести рамкой участок текста.
Со span можно использовать атрибуты, title=»» и lang=»»

Это не семантический тег и влияет только на внешний вид элементов, если ему заданы стили. Для скринридеров и поисковых роботов он не имеет значения, но есть одно исключение.
Это исключение — трюк с атрибутом lang=»». Если в тексте есть иностранные слова, то можно оборачивать их в span с указанием другого языка. Тогда скринридер прочтёт их с правильным произношением.

Пример, внутри абзаца <p> можно изменить цвет и размер первого слова, если его выделить с помощью элемента <span> и задать для него желаемый стиль.

<!DOCTYPE HTML>
<html>
 <head>
  <meta charset="utf-8">
  <title>SPAN</title>
  <style>
    span { 
     color: red; /* Красный цвет символов */ 
    }
  </style> 
 </head>
 <body>
  <p>Разумные люди приспосабливаются к окружающему миру. 
  Неразумные люди приспосабливают мир к себе. Вот почему прогресс определяется 
  действиями неразумных людей.</p> 
  <p>Автор: <span>Бернард Шоу</span></p>
 </body>
</html>

Списки

Списки — один из способов представления контента на странице. С их помощью легко группировать небольшие связанные фрагменты.

Для их создания в HTML используется несколько тегов, вложенных друг в друга:

  • <ul> или <ol> для определения типа списка
  • <li> для создания пункта списка
Общая схема разметки выглядит следующим образом:

<тип_списка>
  <пункт_списка>Текст</пункт_списка>
</тип_списка>
Маркированный список
Для создания маркированного списка используется тег <ul>.

Маркированные списки используются, когда информация не требует определённой последовательности.
Например, список продуктов. Не так важно, что будет куплено первым: молоко или хлеб, важно — купить все продукты.

<ul>
  <li>Молоко</li>
  <li>Хлеб</li>
  <li>Вода</li>
</ul>
Нумерованный список
Для группировки последовательной информации используются нумерованные списки, важной особенностью которых является наличие порядкового номера элемента.

Такие списки удобны, если обозначается последовательность действий, которые нужно совершить.
Нумерованный список создаётся с помощью тега <ol>, внутри которого также лежат элементы в тегах <li>.

Например, список дел на день:

<ol>
  <li>Купить еды</li>
  <li>Сходить в Цифру</li>
  <li>Приготовить ужин</li>
</ol>
Вложенные списки
Составляя список дел может возникнуть необходимость разбить пункты на несколько дополнительных подпунктов. Например, в списке дел пункт «Сходить в магазин» может содержать в себе список покупок.

Для создания такой структуры используются вложенные списки.
Это позволяет вкладывать в качестве элемента список не просто текст, а новый список, создавая сложную структуру:

<ul>
  <li>Сходить в магазин
    <ul>
      <li>Купить молоко</li>
      <li>Купить хлеб</li>
    </ul>
  </li>
  <li>Прийти на занятия в Цифру</li>
</ul>
Вложенный список является частью пункта списка и находится внутри тега <li>.
Такая вложенность позволяет сохранить семантику и указать, что вложенный список относится именно к пункту «Сходить в магазин», а не к какому-либо ещё.

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

Картинки

Картинки конечно же не относятся к тексту, но для лучшего восприятия текста на странице о них расскажем.
Они помогают ориентироваться в тексте, разбивать его на составные части, а также создают настроение у читателя.

Картинки на странице не существуют сами по себе. Предварительно они должны быть загружены в директорию на сервере или на специальный хостинг картинок.
Для вставки картинки на страницу используется непарный тег <img>, у которого два обязательных атрибута: src и alt.

Атрибут src
В атрибуте src указывается путь к изображению. Это тоже ссылка, как и в теге <a>, только теперь не происходит перенаправление пользователя, а браузер загружает изображение по этому пути, если оно существует. Путь к картинке может быть как относительный, так и абсолютный.

<img src="/images.png">
Атрибут alt
Что делать, если картинка в данный момент недоступна? В этом случае браузеры показывают маленькую картинку, обозначающую, что изображение недоступно.

Но как пользователь поймёт, что здесь было? Может изображение критически важное для статьи, и без него теряется смысл написанного? Можно посоветовать пользователю зайти попозже, когда изображение будет доступно, а можно описать ему, что было изображено.

Для этого используется атрибут alt, значением которого является текст. Он будет показан при невозможности загрузить изображение.

<img src="https://cdn.pixabay.com/photo/2018/03/23/02/06/cute-3252459_960_720.jp" alt="Тут котик">

Размеры изображения
Важной составляющей при работе с изображениями являются его размеры. При скачивании картинки со стороннего ресурса и её вставки на страницу, часто возникает ситуация, что изображение очень большое, и его нужно уменьшить.
Для этого существуют атрибуты width и height, которые позволяют установить ширину и высоту для картинки.

<img src="https://cdn.pixabay.com/photo/2018/03/23/02/06/cute-3252459_960_720.jpg" alt="Тут котик">
Картинка будет отображена в размере 240×360 пикселей.

Важно помнить, что использование атрибутов width и height не меняет физический размер картинки — она будет весить столько же, изменится только визуальный размер. Для оптимизации страницы подбирайте картинки нужного размера или уменьшайте их с помощью графического редактора, либо специальных сервисов. Сейчас многие пользуются мобильными телефонами и мобильным интернетом, поэтому вес страницы имеет важное значение.

Практика

1. Воссоздай код
Воссоздайте код представленной ниже html-страницы. Используйте теги <p>, <dfn>, <em>, <strong>, <br>.

Подсказка: Для того, чтобы верно отобразились символы «<» и «>», используйте таблицу мнемоник символов — https://unicode-table.com/ru/html-entities/

В нашей задаче это &lt; — «<» и &gt; — «>». Пишется &lt;ul&gt;

2. Красим текст
Сделайте страницу по примеру ниже. Стили подключите отдельным файлом.
Для выделения используйте несемантические теги для выделения текста жирным и курсивным.
Паттерн возьмите с сайта http://css.yoksel.ru/css-patterns/ всему файлу.

В CSS-файле заголовкам задайте:

  • цвет #200772
  • выравнивание по центру
Абзацам:

  • Выравнивание по ширине, т.е. одновременное выравнивание по левому и правому краям (подсказка: свойства выравнивания)
  • Отступ первой строки (красная строка) на 40px
  • шрифт Sans-Serif
  • Размер текста 18px
Жирному начертанию:

  • цвет #9F3ED5
Курсивному начертанию:

  • цвет #4671D5
Когда закончите попробуйте изменить размер окна браузера и посмотреть что будет.

Текст для вставки:

Что такое CMS

CMS — «система управления контентом» (движок) – написанная PHP-программистами основа для сайта, с помощью которой вы сможете управлять сайтом (добавлять контент, менять пункты меню и т.п.) не зная HTML и CSS.

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

Какие бывают cms

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

Примеры cms

Примеры популярных CMS: Joomla, WordPress (для блогов), PhpBB (для форумов).

CMS-ки бывают платные и бесплатные.

3. Немного списков
Сделайте страницу по примеру ниже. Стили подключите отдельным файлом.

В CSS-файле заголовкам задайте:

  • цвет #D8DAD3
  • выравнивание по левому краю
  • шрифт Sans-Serif
  • цвет фона #697537
К телу документа:

  • шрифт Sans-Serif
  • Размер текста 18px
  • цвет фона #D8DAD1
Текст для вставки:

Опоссум
Содержание:
1. Описание

  • Внешний вид и особенности
  • Где обитает
  • Чем питается
  • Характер и образ жизни
2.Популяция и статус вида

Описание
Семейство «опоссумовые» входит в класс сумчатых млекопитающих, обитающих в основном на просторах американского континента.
Считается, что опоссумы представляют древнейших обитателей нашей Планеты, которые сохранились в первозданном виде еще с мелового периода.
По крайней мере, так считают специалисты.

Итак, в природной среде обитает:
Опоссум обыкновенный
Опоссум виргинский
Водяной опоссум
Мышиный опоссум
Опоссум серый голохвостый
Опоссум патагонский

Интересный момент!
Некоторые виды предпочитают селиться рядом с человеческим жильем, хотя в основном опоссумы предпочитают не встречаться с человеком.

Предыдущее занятие | Следующее занятие

текстовая ориентация | CSS-трюки — CSS-трюки

DigitalOcean предоставляет облачные продукты для каждого этапа вашего путешествия. Начните с бесплатного кредита в размере 200 долларов США!

Свойство text-orientation в CSS выравнивает текст по строке при работе с вертикальным режимом письма . По сути, он поворачивает либо строку на 90° по часовой стрелке, чтобы помочь контролировать отображение вертикальных языков — так же, как text-combine-upright поворачивает группы символов в строке текста в вертикальном сценарии, но для полных строк текста.

 .элемент {
  ориентация текста: смешанная;
  режим письма: вертикальный-rl;
} 

Для обработки двунаправленного текста — например, блока, который содержит текст как слева направо, так и справа налево — проверьте свойство unicode-bidi . Он сочетается со свойством direction , чтобы переопределить то, как браузер решает отображать текст.

Синтаксис

 ориентация текста: смешанная | вертикальный | сбоку 
  • Исходный: смешанный
  • Применяется к: всем элементам, кроме групп строк таблицы, строк, групп столбцов и столбцов
  • Унаследовано: да
  • Проценты: н/д
  • Вычисленное значение: заданное значение
  • Тип анимации: не анимация

Значения

 /* Значения ключевых слов */
ориентация текста: смешанная; /* по умолчанию */
ориентация текста: вертикальная;
ориентация текста: сбоку;
ориентация текста: сбоку-справа;
/* Глобальные значения */
ориентация текста: наследовать;
ориентация текста: начальная; /* смешанный */
ориентация текста: не задана; 
  • смешанный : Значение по умолчанию. Символы горизонтального письма поворачиваются на 90° по часовой стрелке. Символы в вертикальном сценарии отображаются в их естественной вертикальной ориентации.
  • вертикально : Символы горизонтального шрифта устанавливаются в их естественное горизонтальное вертикальное положение, включая некоторые глифы. Таким образом, если режим вертикального письма может повернуть строку текста так, что символы будут расположены боком, это значение повернет сами символы 90° к их естественному положению. Обратите внимание, что это значение заставляет свойство direction использовать значение ltr , что означает, что все символы обрабатываются так, как будто они находятся в режиме письма слева направо.
  • сбоку : Весь текст в режиме вертикального письма отображается сбоку, как если бы он был в горизонтальной раскладке, но вся строка повернута на 90° по часовой стрелке.
  • sideways-right : Некоторые браузеры считают это значение псевдонимом для сбоку Значение сохранено для обратной совместимости.

use-glyph-orientation было удалено как значение ключевого слова в декабре 2015 года. Оно использовалось в элементах SVG для определения свойств SVG glyph-orientation-vertical и glyph-orientation-horizontal , которые теперь устарели. glyph-orientation-vertical теперь является псевдонимом для text-orientation .

Поддержка браузера

Рабочий стол
Chrome Firefox IE Edge Safari
48 41 79 10.1*

Мобильный телефон/планшет
Android Chrome 9 0109 Android Firefox Android iOS Safari
114 115 114 10,0-10,2

Спецификация

  • Режимы написания CSS Уровень 3 (черновик редактора)

Дополнительная информация

  • Почему вертикальная ориентация текста является кошмаром для кроссбраузерной совместимости? от Nikhil — подробное объяснение текстовой ориентации и режима письма .
  • Простое создание бокового текста с помощью CSS-свойства «writing-mode» Ади Пурдилы — исследуйте различные подходы в дополнение к использованию text-orientation .
  • 2 способа создания вертикального текста в CSS от W.S. Toh — более прямое сравнение между подходами, использующими режим письма и текстовую ориентацию .
  • Вращение текста от Криса Койера — подход к вертикальному тексту с использованием преобразования вместо режима письма или ориентации текста .

CSS text-wrap: balance — Chrome Developers

Chrome Canary включает новую функцию — text-wrap: balance из CSS Text Level 4. Чтобы проверить это, включите chrome://flags/#enable-experimental-web-platform-features, а затем взгляните на примеры в этом посте, чтобы узнать, как эта строка CSS может значительно улучшить ваши текстовые макеты.

Попробуйте демо

Без text-wrap: balance ; у дизайнеров, редакторов контента и издателей есть несколько инструментов для изменения баланса строк. Лучшие доступные варианты — использовать или ­ , чтобы помочь направить текстовые макеты к более разумным решениям о том, где разбивать строки и слова.

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

Попробуйте демо
 .unbalanced { 
max-inline-size: 50ch;
}

С text-wrap: balance из CSS Text 4 вы можете запросить у браузера наилучшее сбалансированное решение переноса строк для текста. Браузер действительно знает все факторы, такие как размер шрифта, язык и выделенная область. Результаты сбалансированного переноса текста в браузере сегодня выглядят следующим образом в Chrome Canary с включенными функциями chrome://flags/#enable-experimental-web-platform-features:

Попробуйте демо
 . balanced { 
max-inline-size: 50ch;
text-wrap: баланс;
}

Полезно видеть их рядом, без наложения отладочной информации.

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

# Нахождение баланса

Заголовки — это первое, что видят читатели; они должны быть визуально привлекательными и легко читаемыми. Это привлекает внимание пользователей и дает ощущение качества и уверенности. Хорошая типографика придает уверенности читателям, побуждая их продолжать чтение.

Традиционно эта задача выполнялась вручную или оптически, поскольку дизайнер, уравновешивающий текст, хочет порадовать глаз, а не математику. Эту тему часто называют метрической и оптической юстировкой. Для крупных изданий, таких как New York Times, балансировка заголовков является очень важной деталью взаимодействия с пользователем.

Попробуйте демонстрацию

Сбалансированный текст основной статьи не является обычным явлением, поскольку он не должен выделяться или привлекать внимание читателя.

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

Однако в Интернете возможности управления ограничены, поскольку размеры и цвета документа меняются в зависимости от пользователей. text-wrap: balance привносит искусство балансировки текста в Интернет автоматизированным способом, основываясь на работе и традициях дизайнеров полиграфической отрасли.

# Балансировка заголовков

Это будет и должно быть основным вариантом использования text-wrap: balance . Нарисуйте глаз размером и сделайте его симметричным и разборчивым для глаза. Установите для всех заголовков сбалансированный перенос текста с помощью следующего CSS:

 h2,h3,h4,h5,h5,h6 { 
text-wrap: balance;
}

Простое применение этого стиля может не дать ожидаемых результатов, так как текст должен переноситься и, следовательно, где-то применяется максимальная длина строки. В примерах в этом посте вы увидите max-inline-size , этот стиль похож на max-width , но может быть установлен один раз для любого языка.

# Ограничения

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

Попробуйте демо-версию

# Вопросы производительности

Не рекомендуется применять балансировку обтекания текстом ко всему дизайну. Это пустой запрос из-за ограничения в четыре строки, который может повлиять на скорость рендеринга страницы.

Не

 * { 
text-wrap: balance;
}

СЧИТАТЬ ВМЕСТО

 h2, h3, h4, h5, h5, h6, цитата { 
text-wrap: balance;
}

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

# Взаимодействия со свойством

white-space

Балансирующий текст конкурирует со свойством white-space , потому что одно запрашивает отсутствие переноса, а другой запрашивает сбалансированный перенос. Преодолейте это, отключив свойство пробела, после чего снова можно будет применить сбалансированный перенос.

 .balanced { 
пробел: не установлен;
text-wrap: баланс;
}

# Балансировка не изменит встроенный размер элемента

У некоторых решений JavaScript для сбалансированного переноса текста есть преимущество, поскольку они изменяют0005 max-width самого содержащего элемента. Это имеет дополнительный бонус в виде «упаковки в термоусадочную пленку» для сбалансированного блока. text-wrap: balance не имеет такого эффекта и может быть замечено в этом примере:

Видите, как ширина, показанная из DevTools, имеет кучу дополнительного пробела в конце? Это потому, что это только стиль упаковки, а не стиль изменения размера.