CSS tab-size — ширина табуляції в pre і textarea


автор: Svitlana

Загальний опис

автор: NagarD

Нотатка

Оскільки специфікація цієї технології ще не стабілізувалася, перевірте таблицю сумісності з браузерами.

Також зауважте, що синтаксис і поведінка цієї технології можуть змінюватися в майбутніх версіях браузерів, через можливу зміну специфікації.

автор: Svitlana

Синтаксис

tab-size: number|length|initial|inherit;

Властивість tab-size може отримувати 4 значень:

number

Визначає ширину табуляції в пробілах. Без задання 8. Тобто, якщо Ви вкажете в якості значення число 0, то слова які були розділені символом табуляції, зіллються в єдине.

автор: Svitlana

length

Визначає довжину відступу. На даний момент це значення не підтимується жодним із браузерів.

автор: Svitlana

initial

Встановлює властивість у значення без задання

автор: Svitlana

inherit

Вказує на спадковість властивості від свого батьківського елемента

автор: Svitlana

Значення без задання: 8
Наслідує: Так
Анімується: Ні
JavaScript синтаксис: object.style.tabSize="16"

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
21 91 7 15 79
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 25 91 7

Приклади

+ запропонувати свій приклад у пісочниці

Обидва рядки починаються з одного символу табуляції; tab-size каже, скільком пробілам він дорівнює — 4 чи 16.

HTML

<pre class="t4">	tab-size: 4</pre>
<pre class="t16">	tab-size: 16</pre>

CSS

pre {
    border-left: 3px solid #0172ad;
}

.t4  { tab-size: 4; }
.t16 { tab-size: 16; }
автор: Svitlana

Динамічний приклад впливу значення на елементи

HTML

<p>Встав адресу зображення:</p>

<input type="text" placeholder="url" id="field"></input>

<ul id="block">
  <li>Це елемент один</li>
  <li>Це елемент два</li>
  <li>Це елемент три</li>
</ul>

CSS

body {
	padding: 36px;
  text-align: center;
  line-height: 1.45;
  font-size: 20px;
  font-family: sans-serif;
}

#field {
  padding: 8px;
  font-size: 20px;
}

#block {
  text-align: left;
}

JS

var block = document.getElementById('block');

document.getElementById('field').onchange = function () {
  block.style.listStyleImage = 'url("' + this.value + '")';
};
//# sourceURL=pen.js
автор: Svitlana

Простий приклад використання

HTML

<pre>
Normal
	tab
		size
</pre>

<pre class="small-tab">
Small
	tab
		size
</pre>

CSS

pre{
  font-size: 18px;
  border: 2px solid blue;
  padding: 20px;
  width: 50%;
}
.small-tab {
  background: yellow;
  -moz-tab-size: 2;
  tab-size: 2;
}
автор: Svitlana

Той самий текст із табуляціями за чотирьох різних значень tab-size, плюс дві перевірки: у звичайному блоці з white-space: normal табуляція просто склеюється з пробілами, а в полі textarea властивість працює. Рядки навмисно мають різну довжину перед табуляцією — видно, що це позначки табулятора, а не відступ.

HTML

<p class="cap">tab-size: 8 (типове) — X стає на 8-му, 16-му, 24-му знаку:</p>
<pre class="t8">	X
ab	X
abcdefg	X
abcdefgh	X
abcdefghijklmnop	X</pre>

<p class="cap">tab-size: 4 — той самий текст, крок удвічі коротший:</p>
<pre class="t4">	X
ab	X
abcdefg	X
abcdefgh	X
abcdefghijklmnop	X</pre>

<p class="cap">tab-size: 20px — крок задано довжиною, а не знаками:</p>
<pre class="tpx">	X
ab	X
abcdefg	X</pre>

<p class="cap">tab-size: 0 — табуляція не займає місця:</p>
<pre class="t0">	X
ab	X</pre>

<p class="cap">Звичайний блок (white-space: normal) — властивість не діє:</p>
<div class="plain">	X — табуляція склеїлася з пробілами</div>

<p class="cap">У полі форми tab-size працює:</p>
<textarea rows="3" cols="30">	X
ab	X</textarea>

CSS

.cap {
    margin: 16px 0 4px;
    font: 600 .9em/1.4 system-ui, sans-serif;
    color: #5a6472;
}

pre,
.plain,
textarea {
    margin: 0;
    padding: 6px 8px;
    background: #eef1f5;
    border-left: 4px solid #2f6fd0;
    font: 14px/1.45 ui-monospace, monospace;
}

.t8 {
    tab-size: 8;
}

.t4 {
    tab-size: 4;
}

.tpx {
    tab-size: 20px;
}

.t0 {
    tab-size: 0;
}

.plain {
    white-space: normal;
    tab-size: 4;
}

textarea {
    tab-size: 4;
    border: 1px solid #b9c6d8;
    border-left: 4px solid #2f6fd0;
}
автор: NagarD

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле веде сходинками (розділ → тип → сторінка), а хибний ключ підкреслить хвилею.
[[!sandbox/S0oh1hBm]] Живий приклад окремим рядком — саме вікно результату. Той самий ключ зі знаком !: наберіть [[! і дійдіть сходинками до потрібної сторінки, список покаже її приклади.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Правка
Зворотний зв'язок
Вхід