Spec-Zone.ru › CSS

режим-записи

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

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с марта 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
Применяется к всем элементам, кроме групп строк таблицы, групп столбцов таблицы, строк таблицы и столбцов таблицы
Наследуется да
Вычисленное значение как указано
Тип анимации Не анимируемо

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

writing-mode = 
horizontal-tb |
vertical-rl |
vertical-lr |
sideways-rl |
sideways-lr

Примеры

Использование нескольких режимов записи

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

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.4
16.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.4
16.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.

См. также

  • Атрибут SVG writing-mode
  • direction
  • unicode-bidi
  • text-orientation
  • text-combine-upright
  • Логические свойства CSS
  • Стиль вертикального текста (китайский, японский, корейский и монгольский) на W3.org (2022)
  • Модуль CSS writing modes
  • Создание вертикальных элементов управления форм

© 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

Spec-Zone.ru

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