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, могут быть трудными для чтения людям с когнитивными проблемами, такими как дислексия.
Формальное определение
| Начальное значение | none |
|---|---|
| Применимо к | всем элементам. Также применяется к ::first-letter и ::first-line. |
| Наследуется | да |
| Вычисленное значение | как указано |
| Тип анимации | дискретный |
Формальный синтаксис
Примеры
Пример с использованием "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, входящий в общие категории «Буква» или «Цифра».
Пример использования "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> <span class="math-id">x</span>)<sup
>2</sup
>
+ (<span class="math-id">cos</span> <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 |
См. также
© 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