W3docs

Свойство CSS text-transform

Свойство text-transform управляет регистром символов текста элемента. Изучите значения свойства и попробуйте примеры.

CSS-свойство text-transform управляет регистром текста элемента — оно позволяет принудительно переводить текст В ВЕРХНИЙ РЕГИСТР, в нижний регистр или Начинать Каждое Слово С Заглавной Буквы, не изменяя исходный HTML. Это исключительно визуальное изменение: исходный текст остаётся точно таким, каким вы его написали, поэтому программы чтения с экрана, копирование и отправка форм всё равно видят оригинальный регистр.

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

Зачем использовать text-transform вместо ручного ввода в нужном регистре?

Хранить информацию о регистре в CSS, а не в разметке — значит держать контент чистым и гибким:

  • Единый источник истины. Пишите заголовки и метки в обычном регистре предложения; CSS будет переводить их в верхний регистр только там, где этого требует дизайн. Изменить дизайн позже можно в одном месте.
  • Удобно для локализации. Переводчики редактируют читаемый текст, а не слова, написанные заглавными буквами.
  • Доступность и SEO. Поисковые системы и вспомогательные технологии читают реальный текст, а не стилизованные глифы. Визуальный перевод метки <button> в верхний регистр таким способом всё равно предоставляет доступное имя в нормальном регистре.

Правила смены регистра для конкретных языков

text-transform следует правилам смены регистра, принятым для языка содержимого (атрибут lang), а не простому ASCII-преобразованию. Несколько примечательных случаев:

  • Тюркские языки — турецкий (tr), азербайджанский (az), крымскотатарский (crh), татарский (tt) и башкирский (ba) имеют точечные и беточечные варианты i, образующие две пары регистров: i/İ и ı/I.
  • Немецкий (de) — ß превращается в SS в верхнем регистре.
  • Греческий (el) — при переводе целого слова в верхний регистр ударение над гласной опускается (ά → Α), за исключением разделительного эта (ή/Ή).

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

Внимание

Значения full-width и full-size-kana являются экспериментальными. full-width имеет частичную поддержку в WebKit, тогда как full-size-kana поддерживается очень ограниченно.

Начальное значениеnone
Применяется кВсем элементам. Также применяется к ::first-letter и ::first-line.
НаследуетсяДа.
АнимируемоНет.
ВерсияCSS1
DOM Syntaxobject.style.textTransform = "capitalize";

Синтаксис

text-transform: none | capitalize | uppercase | lowercase | full-width | full-size-kana | initial | inherit;

Значение "uppercase"

uppercase преобразует каждый символ в верхний регистр — чаще всего используется для заголовков, кнопок и меток. В примере ниже текст абзаца и <div> принудительно переводится в верхний регистр, тогда как HTML сохраняет обычный регистр:

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      p {
        text-transform: uppercase;
      }
    </style>
  </head>
  <body>
    <h2>Text-transform property example</h2>
    <p>This is some paragraph.</p>
    <div>
      Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.
    </div>
  </body>
</html>

Результат

CSS text-transform Property

Значения "capitalize" и "lowercase"

capitalize переводит в верхний регистр первую букву каждого слова, оставляя остальные буквы нетронутыми. Границей слова считается любой пробел, знак препинания или символ, поэтому кавычки и дефисы тоже начинают новые слова (например, mother-in-law становится Mother-In-Law). Два распространённых подводных камня:

  • Оно затрагивает только первую буквуiPhone остаётся IPhone, а не Iphone, потому что регистр остальных букв сохраняется.
  • Цифра не считается буквой, поэтому первая буква после числа не переводится в верхний регистр. 3rd остаётся 3rd, никогда не становясь 3Rd.

lowercase — противоположность uppercase: оно переводит все символы в нижний регистр. В примере ниже первый <div> использует capitalize, а второй — lowercase:

<!DOCTYPE html>
<html>
  <head>
    <style>
      .a {
        text-transform: capitalize
      }
      .b {
        text-transform: lowercase
      }
    </style>
  </head>
  <body>
    <h2>Text-transform property example</h2>
    <div class="a">"Text transform property"</div>
    <br />
    <div class="b">
      "THIS IS SOME PARAGRAPH FOR EXAMPLE".
    </div>
  </body>
</html>

Значение "none"

none — значение по умолчанию: текст отображается точно так, как написан, без каких-либо изменений регистра. Главным образом оно используется для отмены text-transform, который элемент иначе унаследовал бы, поскольку свойство наследуется по умолчанию.

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      h1 {
        color: red;
      }
      h2 {
        text-transform: none;
      }
    </style>
  </head>
  <body>
    <h1>Example with text-transform property</h1>
    <h2>
        Example of the text-transform property with the "none" value:
    </h2>
  </body>
</html>

Значение "initial"

initial сбрасывает свойство до его CSS-значения по умолчанию (none), независимо от любого унаследованного значения. Пример ниже сбрасывает text-transform для абзаца:

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      h1 {
        color: red;
      }
      p.text {
        text-transform: initial;
      }
    </style>
  </head>
  <body>
    <h1>Example with text-transform property</h1>
    <h2>text-transform: initial:</h2>
    <p class="text">
      Example of the text-transform property with the "initial" value:
    </p>
  </body>
</html>

Значения

ЗначениеОписаниеПопробуйте
noneНикаких изменений регистра. Это значение по умолчанию.Попробуйте »
capitalizeДелает первый символ каждого слова заглавным.Попробуйте »
uppercaseДелает все символы каждого слова заглавными.Попробуйте »
lowercaseДелает все символы каждого слова строчными.Попробуйте »
full-widthПомещает символы (идеограммы и латиницу) в квадрат, позволяя выравнивать их как в китайском или японском тексте.Попробуйте »
full-size-kanaПреобразует все малые символы Кана в полноразмерные, компенсируя проблемы читаемости при малых размерах шрифта, типичных для фуриганы.Попробуйте »
initialУстанавливает свойство в значение по умолчанию.Попробуйте »
inheritНаследует свойство от родительского элемента.

Связанные свойства

text-transform — одно из нескольких CSS-инструментов для управления внешним видом текста. Комбинируйте его со следующими связанными свойствами:

  • text-decoration — подчёркивание, надчёркивание или зачёркивание текста.
  • font-variant — отображение текста капителью (истинный типографский вариант, в отличие от визуального верхнего регистра).
  • letter-spacing и word-spacing — хорошо сочетаются с заголовками в верхнем регистре, которые часто лучше смотрятся с дополнительным трекингом.
  • text-align — управление горизонтальным выравниванием преобразованного текста.
  • ::first-letter и ::first-linetext-transform также применяется к этим псевдоэлементам, что полезно для создания эффектов буквицы.

Практика

Практика
Как сделать так, чтобы каждое слово в тексте начиналось с заглавной буквы?
Как сделать так, чтобы каждое слово в тексте начиналось с заглавной буквы?
Was this page helpful?