режим-записи
Линия основания Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с марта 2017 года.
Свойство writing-mode CSS задаёт, выстраиваются ли строки текста горизонтально или вертикально, а также направление, в котором блоки продвигаются. При установке для всего документа, оно должно быть задано для корневого элемента (html элемент для HTML-документов).
Попробуйте
Это свойство определяет направление потока блоков, которое является направлением, в котором укладываются контейнеры блочного уровня, и направление, в котором содержимое на уровне строки течёт внутри контейнера блока. Таким образом, оно также определяет порядок содержимого блочного уровня.
Синтаксис
/* Keyword values */ writing-mode: horizontal-tb; writing-mode: vertical-rl; writing-mode: vertical-lr; /* Global values */ writing-mode: inherit; writing-mode: initial; writing-mode: revert; writing-mode: revert-layer; writing-mode: unset;
Свойство writing-mode задаётся одним из перечисленных ниже значений. Направление потока в горизонтальных скриптах также зависит от направленности этого скрипта, либо слева направо (ltr, как в английском и большинстве других языков), либо справа налево (rtl, как в иврите или арабском).
Значения
horizontal-tb-
Для
ltrскриптов содержимое течёт горизонтально слева направо. Дляrtlскриптов содержимое течёт горизонтально справа налево. Следующая горизонтальная строка размещается ниже предыдущей. vertical-rl-
Для
ltrскриптов содержимое течёт вертикально сверху вниз, а следующая вертикальная строка размещается слева от предыдущей. Дляrtlскриптов содержимое течёт вертикально снизу вверх, а следующая вертикальная строка размещается справа от предыдущей. vertical-lr-
Для
ltrскриптов содержимое течёт вертикально сверху вниз, а следующая вертикальная строка размещается справа от предыдущей. Дляrtlскриптов содержимое течёт вертикально снизу вверх, а следующая вертикальная строка размещается слева от предыдущей. sideways-rl-
Для
ltrскриптов содержимое течёт вертикально сверху вниз. Дляrtlскриптов содержимое течёт вертикально снизу вверх. Все глифы, даже те, что в вертикальных скриптах, устанавливаются боком вправо. sideways-lr-
Для
ltrскриптов содержимое течёт вертикально снизу вверх. Дляrtlскриптов содержимое течёт вертикально сверху вниз. Все глифы, даже те, что в вертикальных скриптах, устанавливаются боком влево. lr-
Устарело, за исключением документов SVG1. Для CSS используйте
horizontal-tbвместо. lr-tb-
Устарело, за исключением документов SVG1. Для CSS используйте
horizontal-tbвместо. rl-
Устарело, за исключением документов SVG1. Для CSS используйте
horizontal-tbвместо. tb-
Устарело, за исключением документов SVG1. Для CSS используйте
vertical-lrвместо. tb-lr-
Устарело, за исключением документов SVG1. Для CSS используйте
vertical-lrвместо. tb-rl-
Устарело, за исключением документов SVG1. Для CSS используйте
vertical-rlвместо.
Формальное определение
| Начальное значение | horizontal-tb |
|---|---|
| Применяется к | всем элементам, кроме групп строк таблицы, групп столбцов таблицы, строк таблицы и столбцов таблицы |
| Наследуется | да |
| Вычисленное значение | как указано |
| Тип анимации | Не анимируемо |
Формальный синтаксис
Примеры
Использование нескольких режимов записи
Этот пример демонстрирует все режимы записи, показывая каждый из них с текстом на различных языках.
HTML
HTML представляет собой <table> с каждым режимом записи в строке со столбцом, показывающим текст на различных скриптах, использующих этот режим записи.
<table>
<caption>
Using multiple writing modes
</caption>
<tr>
<th>Value</th>
<th>Vertical script</th>
<th>Horizontal (LTR) script</th>
<th>Horizontal (RTL) script</th>
<th>Mixed script</th>
</tr>
<tr class="text1">
<th>horizontal-tb</th>
<td>我家没有电脑。</td>
<td>Example text</td>
<td>מלל ארוך לדוגמא</td>
<td>1994年に至っては</td>
</tr>
<tr class="text2">
<th>vertical-lr</th>
<td>我家没有电脑。</td>
<td>Example text</td>
<td>מלל ארוך לדוגמא</td>
<td>1994年に至っては</td>
</tr>
<tr class="text3">
<th>vertical-rl</th>
<td>我家没有电脑。</td>
<td>Example text</td>
<td>מלל ארוך לדוגמא</td>
<td>1994年に至っては</td>
</tr>
<tr class="experimental text4">
<th>sideways-lr</th>
<td>我家没有电脑。</td>
<td>Example text</td>
<td>מלל ארוך לדוגמא</td>
<td>1994年に至っては</td>
</tr>
<tr class="experimental text5">
<th>sideways-rl</th>
<td>我家没有电脑。</td>
<td>Example text</td>
<td>מלל ארוך לדוגמא</td>
<td>1994年に至っては</td>
</tr>
</table>
<p class="notice">
Your browser does not support the <code>sideways-lr</code> or
<code>sideways-rl</code> values.
</p>
CSS
CSS, который настраивает направленность содержимого, выглядит следующим образом:
.text1 td {
writing-mode: horizontal-tb;
}
.text2 td {
writing-mode: vertical-lr;
}
.text3 td {
writing-mode: vertical-rl;
}
.text4 td {
writing-mode: sideways-lr;
}
.text5 td {
writing-mode: sideways-rl;
}
Результат
Использование writing-mode с преобразованиями
Если ваш браузер не поддерживает sideways-lr, обходной путь заключается в использовании transform для достижения аналогичного эффекта в зависимости от направления скрипта. Эффект vertical-rl такой же, как и у sideways-lr, поэтому для скриптов слева направо преобразование не требуется. В некоторых случаях вращение текста на 180 градусов достаточно для достижения эффекта sideways-lr, но глифы шрифта могут быть не спроектированы для вращения, поэтому это может привести к неожиданному позиционированию или отрисовке.
HTML
<table>
<caption>
Using writing-mode with transforms
</caption>
<thead>
<tr>
<th>Vertical LR</th>
<th>Vertical LR with transform</th>
<th>Sideways LR</th>
<th>Only rotate</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<span class="vertical-lr">我家没有电脑。</span>
<span class="vertical-lr">Example text</span>
</td>
<td>
<span class="vertical-lr rotated">我家没有电脑。</span>
<span class="vertical-lr rotated">Example text</span>
</td>
<td>
<span class="sideways-lr">我家没有电脑。</span>
<span class="sideways-lr">Example text</span>
</td>
<td>
<span class="only-rotate">我家没有电脑。</span>
<span class="only-rotate">Example text</span>
</td>
</tr>
</tbody>
</table>
CSS
.vertical-lr {
writing-mode: vertical-lr;
}
.rotated {
transform: rotate(180deg);
}
.sideways-lr {
writing-mode: sideways-lr;
}
.only-rotate {
inline-size: fit-content;
transform: rotate(-90deg);
}
Результат
Спецификации
| Спецификация |
|---|
| CSS Режимы записи Уровень 4 # block-flow |
Совместимость браузеров
| Рабочий стол | Мобильный | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
writing-mode |
488 | 1212 | 41Firefox 42 добавил поддержку двунаправленных и RTL-скриптов в вертикальных режимах. |
3515 | 10.15.1 | 4818 | 41Firefox 42 добавил поддержку двунаправленных и RTL-скриптов в вертикальных режимах. |
3514 | 10.35 | 5.01.0 | 483 |
horizontal-tb |
48 | 12 | 43 | 35 | 9 | 48 | 43 | 35 | 9 | 5.0 | 48 |
lr |
48 | 12 | 43 | 35 | 10.1 | 48 | 43 | 35 | 10.3 | 5.0 | 48 |
lr-tb |
48 | 12 | 43 | 35 | 10.1 | 48 | 43 | 35 | 10.3 | 5.0 | 48 |
rl |
48 | 12 | 43 | 35 | 10.1 | 48 | 43 | 35 | 10.3 | 5.0 | 48 |
vertical_oriented_form_controls |
124Поддерживается для элементов select, button, textarea, текстового ввода, ползунка диапазона, счётчика и прогресс-бара.121Поддерживается для элементов select, button, textarea и текстового ввода.119Поддерживается только для элементов select и button. |
124Поддерживается для элементов select, button, textarea, текстового ввода, ползунка диапазона, счётчика и прогресс-бара.121Поддерживается для элементов select, button, textarea и текстового ввода.119Поддерживается только для элементов select и button. |
120 |
110Поддерживается для элементов select, button, textarea, текстового ввода, ползунка диапазона, счётчика и прогресс-бара.107Поддерживается для элементов select, button, textarea и текстового ввода.105Поддерживается только для элементов select и button. |
17.416.5Поддержка только ползунков диапазона, текстового ввода и текстовых областей. |
124Поддерживается для элементов select, button, textarea, текстового ввода, ползунка диапазона, счётчика и прогресс-бара.121Поддерживается для элементов select, button, textarea и текстового ввода.119Поддерживается только для элементов select и button. |
120 |
82Поддерживается для элементов select, button, textarea, текстового ввода, ползунка диапазона, счётчика и прогресс-бара.81Поддерживается для элементов select, button, textarea и текстового ввода.79Поддерживается только для элементов select и button. |
17.416.5Поддержка только ползунков диапазона, текстового ввода и текстовых областей. |
27.0Поддерживается для элементов select, button, textarea, текстового ввода, ползунка диапазона, счётчика и прогресс-бара.25.0Поддерживается для элементов select, button, textarea и текстового ввода.25.0Поддерживается только для элементов select и button. |
124Поддерживается для элементов select, button, textarea, текстового ввода, ползунка диапазона, счётчика и прогресс-бара.121Поддерживается для элементов select, button, textarea и текстового ввода.119Поддерживается только для элементов select и button. |
См. также
© 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/writing-mode