W3docs

Свойство CSS tab-size

Как использовать свойство CSS tab-size для задания ширины символа табуляции. Значения свойства и примеры применения.

Свойство CSS tab-size управляет шириной отображения символа табуляции (U+0009). По умолчанию браузер отрисовывает каждую табуляцию как 8 пробелов, что нередко оказывается слишком широким для листингов кода. tab-size позволяет задать эту ширину в единицах ширины пробела или в конкретной CSS-длине.

На этой странице описывается, что делает свойство, когда оно действительно вступает в силу, в чём разница между значениями <number> и <length>, поддержка браузерами и рабочий пример.

Когда tab-size имеет значение?

Табуляция влияет на видимый макет только тогда, когда окружающие пробельные символы сохраняются. В обычном HTML браузеры сворачивают табуляции, пробелы и переносы строк в один пробел, поэтому tab-size просто не на что влиять. Свойство становится значимым при сохранении пробельных символов, что происходит в двух распространённых случаях:

  • Внутри <pre> и <textarea>, которые по умолчанию сохраняют пробельные символы.
  • На любом элементе, где для white-space задано значение pre, pre-wrap или pre-line.

Именно поэтому tab-size — это то свойство, к которому стоит обращаться при отображении исходного кода, ASCII-таблиц или любого контента, где важно выравнивание колонок. Свойство является одним из свойств CSS3 и наследуется, поэтому его установка на контейнере применяется и к вложенному преформатированному тексту.

Информация

Отрицательные значения недопустимы, и объявление игнорируется. Значение должно быть неотрицательным <number> или неотрицательной <length>.

Начальное значение8
Применяется кВсем элементам, но действует только на блочные контейнеры и элементы с сохранёнными пробельными символами.
НаследуетсяДа.
АнимируетсяНет.
ВерсияCSS3
DOM-синтаксисobject.style.tabSize = "20";

Синтаксис

tab-size: <number> | <length> | initial | inherit;
  • <number> — количество ширин пробела, которое занимает табуляция (например, tab-size: 4). Это наиболее распространённая форма. Значение зависит от шрифта, поэтому табуляция остаётся пропорциональной при изменении размера шрифта.
  • <length> — явная ширина, например tab-size: 2em или tab-size: 20px. Удобно, когда нужна фиксированная, не зависящая от шрифта табуляция.

Символ табуляции не всегда добавляет ровно tab-size пробелов. Как настоящая позиция табуляции, он переносит текст к следующей позиции табуляции, поэтому размер отступа зависит от того, сколько символов уже стоит перед табуляцией в этой строке.

Пример свойства tab-size

Пример кода CSS tab-size

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      .tab1 {
        tab-size: 5;
      }
      .tab2 {
        tab-size: 20;
      }
    </style>
  </head>
  <body>
    <h2>Tab-size property example</h2>
    <pre class="tab1">
        Lorem	ipsum	is	a...  
    </pre>
    <pre class="tab2">
        Lorem	ipsum	is	a...
    </pre>
  </body>
</html>

Результат

Список значений CSS tab-size

В данном примере tab-size первого элемента равен 5, а второго — 20.

Использование значения длины

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

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      pre {
        tab-size: 2em;
      }
    </style>
  </head>
  <body>
    <pre>Name	Role
Ann	Designer
Bob	Developer</pre>
  </body>
</html>

Поскольку в каждой строке после имени используется одна табуляция, второй столбец выравнивается по одной и той же позиции 2em.

Поддержка браузерами

tab-size поддерживается всеми современными браузерами. Форма <number> имеет наибольшую поддержку; форма <length> поддерживается в актуальных версиях Chrome, Edge, Firefox и Safari. В старых браузерах могут потребоваться префиксы -moz-tab-size и -o-tab-size, однако для современных браузеров они уже не нужны.

Значения

ЗначениеОписаниеПопробуйте
numberЗадаёт количество пробельных символов в табуляции. Отрицательные значения недопустимы. Значение по умолчанию — 8.Попробуйте »
lengthЗадаёт ширину табуляции. Отрицательные значения недопустимы. Это значение широко поддерживается современными браузерами.
initialУстанавливает для свойства значение по умолчанию.
inheritНаследует значение свойства от родительского элемента.

Практика

Практика
Что делает свойство 'tab-size' в CSS?
Что делает свойство 'tab-size' в CSS?
Was this page helpful?