Spec-Zone.ru › CSS

text-transform

Базовая строка Широко доступна

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

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

Попробовать

Свойство text-transform учитывает правила сопоставления регистров, характерные для определенных языков, такие как:

  • На тюркских языках, таких как турецкий (tr), азербайджанский (az), крымско-татарский (crh), волжско-татарский (tt), и башкирский (ba), существуют два типа i, с точкой и без точки, и две пары регистров: i/İ и ı/I.
  • В немецком языке (de), ß переходит в SS в верхнем регистре.
  • В голландском языке (nl), диграф ij преобразуется в IJ, даже при использовании text-transform: capitalize, которое переводит только первую букву слова в верхний регистр.
  • В греческом языке (el), гласные теряют ударение, когда всё слово находится в верхнем регистре (ά/Α), за исключением дизъюнктивной эты (ή/Ή). Также дифтонги с ударением на первой гласной теряют ударение и приобретают диэрезис на второй гласной (άι/ΑΪ).
  • В греческом языке (el), буква сигма в нижнем регистре имеет две формы: σ и ς. ς используется только в случае, если сигма завершает слово. При применении text-transform: lowercase к заглавной сигме (Σ) браузер должен выбрать правильную форму в нижнем регистре, исходя из контекста.
  • В ирландском языке (ga), некоторые префиксные буквы остаются в нижнем регистре при капитализации основной начальной буквы. Например, text-transform: uppercase преобразует ar aon tslí в AR AON tSLÍ, а не, как можно ожидать, AR AON TSLÍ (только Firefox). В некоторых случаях дефис также удаляется при переходе в верхний регистр: an t-uisce преобразуется в AN tUISCE (и дефис корректно вставляется text-transform: lowercase).

Язык определяется атрибутом lang HTML или атрибутом xml:lang XML.

Примечание: Поддержка языкоспецифических вариантов зависит от браузера, поэтому проверьте таблицу совместимости с браузерами.

Синтаксис

/* Keyword values */
text-transform: none;
text-transform: capitalize;
text-transform: uppercase;
text-transform: lowercase;
text-transform: full-width;
text-transform: full-size-kana;
text-transform: math-auto;

/* Global values */
text-transform: inherit;
text-transform: initial;
text-transform: revert;
text-transform: revert-layer;
text-transform: unset;
capitalize

Это ключевое слово, которое преобразует первую букву каждого слова в верхний регистр. Другие символы остаются неизменными (они сохраняют свой первоначальный регистр, как записано в тексте элемента). Буква определяется как символ, входящий в общие категории Unicode «Буква» или «Цифра»; поэтому знаки препинания или символы в начале слова игнорируются.

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

Примечание: Ключевое слово capitalize было недостаточно определено в CSS 1 и CSS 2.1. Это привело к различиям в браузерах в способе вычисления первой буквы (Firefox рассматривал - и _ как буквы, но другие браузеры не делали этого. И Webkit, и Gecko неправильно рассматривали символы, основанные на буквах, такие как ⓐ, как реальные буквы.) Точно определив правильное поведение, CSS Text Level 3 устранил эту проблему. Строка capitalize в таблице совместимости браузеров содержит версию, с которой разные движки начали поддерживать это теперь точно определенное поведение.

uppercase

Это ключевое слово, преобразующее все символы в верхний регистр.

lowercase

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

none

Это ключевое слово, которое предотвращает изменение регистра всех символов.

full-width

Это ключевое слово, которое форсирует вывод символа — главным образом иероглифов и латинских скриптов — в квадрат, что позволяет выравнивать их в обычных восточноазиатских скриптах (таких как китайский или японский).

full-size-kana

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

math-auto

Автоматически рендерит текст в математическом шрифте italic, когда это уместно. Преобразует латинские и греческие буквы, а также некоторые другие математические символы в математические символы italic, но только если это применяется к текстовому узлу, содержащему один символ. Например, «x» превратится в «𝑥» (U+1D465), но «exp» останется как «exp». В основном используется для указания поведения элементов <mi> в MathML. В целом следует использовать разметку MathML, которая автоматически применяет правильное форматирование.

Доступность

Большие блоки текста, установленные со значением text-transform uppercase, могут быть трудными для чтения людям с когнитивными проблемами, такими как дислексия.

  • MDN Понимание WCAG, объяснения к руководству 1.4
  • W3C Понимание WCAG 2.1

Формальное определение

Начальное значение none
Применимо к всем элементам. Также применяется к ::first-letter и ::first-line.
Наследуется да
Вычисленное значение как указано
Тип анимации дискретный

Формальный синтаксис

text-transform = 
none |
[ capitalize | uppercase | lowercase ] || full-width || full-size-kana |
math-auto

Примеры

Пример с использованием "none"

<p>
  Initial String
  <strong>Lorem ipsum dolor sit amet, consectetur adipisicing elit…</strong>
</p>
<p>
  text-transform: none
  <strong
    ><span
      >Lorem ipsum dolor sit amet, consectetur adipisicing elit…</span
    ></strong
  >
</p>
span {
  text-transform: none;
}
strong {
  float: right;
}

Это демонстрирует отсутствие преобразования текста.

Пример с использованием "capitalize" (общий случай)

<p>
  Initial String
  <strong>Lorem ipsum dolor sit amet, consectetur adipisicing elit…</strong>
</p>
<p>
  text-transform: capitalize
  <strong
    ><span
      >Lorem ipsum dolor sit amet, consectetur adipisicing elit…</span
    ></strong
  >
</p>
span {
  text-transform: capitalize;
}
strong {
  float: right;
}

Это демонстрирует капитализацию текста.

Пример с использованием "capitalize" (знаки препинания)

<p>
  Initial String
  <strong
    >(this) "is" [a] –short– -test- «for» *the* _css_ ¿capitalize?
    ?¡transform!</strong
  >
</p>
<p>
  text-transform: capitalize
  <strong
    ><span
      >(this) "is" [a] –short– -test- «for» *the* _css_ ¿capitalize?
      ?¡transform!</span
    ></strong
  >
</p>
span {
  text-transform: capitalize;
}
strong {
  float: right;
}

Это демонстрирует, как начальные знаки препинания слова игнорируются. Ключевое слово влияет на первую букву, то есть на первый символ Unicode, входящий в общие категории «Буква» или «Цифра».

END_OF_DOCUMENT_MARKER

Пример использования "capitalize" (Символы)

<p>
  Initial String
  <strong>ⓐⓑⓒ (ⓓⓔⓕ) —ⓖⓗⓘ— ⓙkl</strong>
</p>
<p>
  text-transform: capitalize
  <strong><span>ⓐⓑⓒ (ⓓⓔⓕ) —ⓖⓗⓘ— ⓙkl</span></strong>
</p>
span {
  text-transform: capitalize;
}
strong {
  float: right;
}

Это демонстрирует, как начальные символы игнорируются. Ключевое слово выбирает первую букву, то есть первую часть символа Юникода, относящуюся к общей категории Буква или Цифра.

Пример использования "capitalize" (Голландский диграф ij)

<p>
  Initial String
  <strong lang="nl">The Dutch word: "ijsland" starts with a digraph.</strong>
</p>
<p>
  text-transform: capitalize
  <strong
    ><span lang="nl"
      >The Dutch word: "ijsland" starts with a digraph.</span
    ></strong
  >
</p>
span {
  text-transform: capitalize;
}
strong {
  float: right;
}

Это демонстрирует, как голландский диграф ij должен обрабатываться как один символ.

Пример использования "uppercase" (общее)

<p>
  Initial String
  <strong>Lorem ipsum dolor sit amet, consectetur adipisicing elit…</strong>
</p>
<p>
  text-transform: uppercase
  <strong
    ><span
      >Lorem ipsum dolor sit amet, consectetur adipisicing elit…</span
    ></strong
  >
</p>
span {
  text-transform: uppercase;
}
strong {
  float: right;
}

Это демонстрирует преобразование текста в верхний регистр.

Пример использования "uppercase" (Греческие гласные)

<p>
  Initial String
  <strong>Θα πάμε στο "Θεϊκό φαΐ" ή στη "Νεράιδα"</strong>
</p>
<p>
  text-transform: uppercase
  <strong
    ><span lang="el">Θα πάμε στο "Θεϊκό φαΐ" ή στη "Νεράιδα"</span></strong
  >
</p>
span {
  text-transform: uppercase;
}
strong {
  float: right;
}

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

Пример использования "lowercase" (общее)

<p>
  Initial String
  <strong>Lorem ipsum dolor sit amet, consectetur adipisicing elit…</strong>
</p>
<p>
  text-transform: lowercase
  <strong
    ><span
      >Lorem ipsum dolor sit amet, consectetur adipisicing elit…</span
    ></strong
  >
</p>
span {
  text-transform: lowercase;
}
strong {
  float: right;
}

Это демонстрирует преобразование текста в нижний регистр.

Пример использования "lowercase" (Греческая Σ)

<p>
  Initial String
  <strong>Σ IS A greek LETTER that appears SEVERAL TIMES IN ΟΔΥΣΣΕΥΣ.</strong>
</p>
<p>
  text-transform: lowercase
  <strong
    ><span
      >Σ IS A greek LETTER that appears SEVERAL TIMES IN ΟΔΥΣΣΕΥΣ.</span
    ></strong
  >
</p>
span {
  text-transform: lowercase;
}
strong {
  float: right;
}

Это демонстрирует, как греческий символ сигма (Σ) преобразуется в обычную строчную сигму (σ) или конечную вариант (ς) в зависимости от контекста.

Пример использования "lowercase" (Литовский)

<p>
  Initial String
  <strong>Ĩ is a Lithuanian LETTER as is J́</strong>
</p>
<p>
  text-transform: lowercase
  <strong><span lang="lt">Ĩ is a Lithuanian LETTER as is J́</span></strong>
</p>
span {
  text-transform: lowercase;
}
strong {
  float: right;
}

Это демонстрирует, как литовские буквы Ĩ и J́ сохраняют свою точку при преобразовании в строчный регистр.

Пример использования "full-width" (общее)

<p>
  Initial String
  <strong
    >0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&()*+,-./:;<=>?@{|}~</strong
  >
</p>
<p>
  text-transform: full-width
  <strong
    ><span
      >0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&()*+,-./:;<=>?@{|}~</span
    ></strong
  >
</p>
span {
  text-transform: full-width;
}
strong {
  width: 100%;
  float: right;
}

Некоторые символы существуют в двух форматах: нормальной ширины и полной ширины с разными кодами Юникода. Версия полной ширины используется для их плавного смешивания с азиатскими иероглифами.

Пример использования "full-width" (Японская катакана с половинной шириной)

<p>
  Initial String
  <strong>ウェブプログラミングの勉強</strong>
</p>
<p>
  text-transform: full-width
  <strong><span>ウェブプログラミングの勉強</span></strong>
</p>
span {
  text-transform: full-width;
}
strong {
  width: 100%;
  float: right;
}

Японская катакана с половинной шириной использовалась для представления катаканы в 8-битных кодировках символов. В отличие от обычных (полноширинных) символов катаканы, буква с дакутеном (знак озвучивания) представлена двумя кодами Юникода, телом буквы и дакутеном. full-width объединяет их в один код при преобразовании этих символов в полноширинные.

Пример использования "full-size-kana"

<p>ァィゥェ ォヵㇰヶ ㇱㇲッㇳ ㇴㇵㇶㇷ ㇸㇹㇺャ ュョㇻㇼ ㇽㇾㇿヮ</p>
<p>ァィゥェ ォヵㇰヶ ㇱㇲッㇳ ㇴㇵㇶㇷ ㇸㇹㇺャ ュョㇻㇼ ㇽㇾㇿヮ</p>
p:nth-of-type(2) {
  text-transform: full-size-kana;
}

Пример использования "math-auto"

В этом примере мы используем чистый HTML-разметку для создания математической формулы:

<div>
  (<span class="math-id">sin</span>&#8198;<span class="math-id">x</span>)<sup
    >2</sup
  >
  + (<span class="math-id">cos</span>&#8198;<span class="math-id">x</span>)<sup
    >2</sup
  >
  = 1
</div>

Мы задаём каждому .math-id элементу text-transform: math-auto. Однако обратите внимание, как только символы x становятся курсивом, в то время как sin и cos остаются неизменными.

.math-id {
  text-transform: math-auto;
}

Однако рекомендуется использовать MathML для математических формул, так как он предоставляет более надёжный и доступный способ представления математического содержимого. Вот та же формула с использованием MathML:

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <semantics>
    <mrow>
      <mo stretchy="false">(</mo>
      <mo lspace="0em" rspace="0em">sin</mo>
      <mspace width="0.16666666666666666em"></mspace>
      <mi>x</mi>
      <msup>
        <mo stretchy="false">)</mo>
        <mn>2</mn>
      </msup>
      <mo>+</mo>
      <mo stretchy="false">(</mo>
      <mo lspace="0em" rspace="0em">cos</mo>
      <mspace width="0.16666666666666666em"></mspace>
      <mi>x</mi>
      <msup>
        <mo stretchy="false">)</mo>
        <mn>2</mn>
      </msup>
      <mo>=</mo>
      <mn>1</mn>
    </mrow>
    <annotation encoding="TeX">(\sin\,x)^2+(\cos\,x)^2=1</annotation>
  </semantics>
</math>

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

Спецификация
CSS Модуль текста уровня 4
# text-transform

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

Рабочий стол Мобильный
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari в IOS Samsung Internet WebView Android
text-transform
1Свойство text-transform не работает для псевдоэлементов ::first-line (и для синтаксиса с одним двоеточием). См. ошибку 40214861.
12 1
7Начиная с Opera 15, свойство text-transform не работает для псевдоэлементов ::first-line (и для синтаксиса с одним двоеточием). См. ошибку 40214861.
1Свойство text-transform не работает для псевдоэлементов ::first-line (а также для старого синтаксиса с одним двоеточием). См. ошибку 3409.
18Свойство text-transform не работает для псевдоэлементов ::first-line (и для синтаксиса с одним двоеточием). См. ошибку 40214861.
4 11
1Свойство text-transform не работает для псевдоэлементов ::first-line (а также для старого синтаксиса с одним двоеточием). См. ошибку 3409.
1.0Свойство text-transform не работает для псевдоэлементов ::first-line (и для синтаксиса с одним двоеточием). См. ошибку 40214861.
4.4Свойство text-transform не работает для псевдоэлементов ::first-line (и для синтаксиса с одним двоеточием). См. ошибку 40214861.
capitalize 1 12
1До Firefox 14 некоторые знаки препинания могли мешать правильному формированию заглавных букв. См. ошибку 731536.
7 1 18
4До Firefox 14 некоторые знаки препинания могли мешать правильному формированию заглавных букв. См. ошибку 731536.
11 1 1.0 4.4
dutch_ij_digraph Нет Нет 14 Нет Нет Нет 14 Нет Нет Нет Нет
full-size-kana Нет Нет 64 Нет 17 Нет 64 Нет 17 Нет Нет
full-width Нет Нет 19 Нет 17 Нет 19 Нет 17 Нет Нет
greek_accented_characters 34 79 15 21 Нет 34 15 21 Нет 2.0 4.4
uppercase_eszett 1 18 1 7 1 18 4 11 1 1.0 4.4

См. также

  • font-variant

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/text-transform

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API