Пишу, по большей части, про историю, свою жизнь и немного про программирование.

Размер табуляции в CSS

В CSS3 есть хорошее свойство tab-size, оно контролирует размер, в пробелах, отображаемой табуляции. Оно пока в стадии черновика; например, неизвестно будет ли введена новая единица измерения (скажем «sp») и можно ли будет указать размер в процентах, пикселях и т. п.

Тем временем, свойство уже реализовано в некоторых браузерах, с собственным префиксом. Свойство первым поддержала «Опера» (с версии 10.60, именно от этой компании и было выдвинуто предложение добавить это свойство в CSS3), затем оно было реализовано в четвёртой версии FireFox. Остальные браузеры пока не подтянулись.

Вот как выглядит CSS-код:

body {
    -o-tab-size: 4; /* размер табуляции — 4 (для Оперы 10.60+) */
    -moz-tab-size: 4; /* размер табуляции — 4 (для FireFox 4+) */
    -webkit-tab-size: 4; /* для будущих версий Safari и Chrome */
     tab-size: 4; /* размер табуляции — 4, на будущее */
}

Значение по-умолчанию для этого свойства — 8 (пробелов), так же можно указать специальное значение «inherit», в этом случае значение будет унаследовано от родительского элемента.

Добавлено позднее: для WebKit уже есть патч для поддержки свойства «-webkit-tab-size».

16 комментариев
Роман Янковский (roman.yankovsky.me) 2011

Странно, что такой очевидной казалось бы вещи, нет в CSS с самого начала.

Евгений Степанищев (bolknote.ru) 2011

Комментарий для roman.yankovsky.me:

+1

Артур 2011

А зачем это свойство вообще нужно? Есть хоть какой-никакой пример? Может, конечно, сгодиться в тегах «pre», но, пффф…

Евгений Степанищев (bolknote.ru) 2011

Комментарий для Артур:

Мне, вот, нужно. Чтобы листинги программ компактнее смотрелись.

boltai-shaltai 2011

Фе, код с табуляцией?!

Есть ли другие примеры, где может пригодится это свойство?
Табуляция вообще выглядит жутким атавизмом. Странно, что модная спецификация поддерживает её жизнь. Чудеса.

Евгений Степанищев (bolknote.ru) 2011

Комментарий для boltai-shaltai:

Фе, код с табуляцией?!

Да, код с табуляцией.

Есть ли другие примеры, где может пригодится это свойство?

Не знаю. То, что для меня ценно, я уже написал. Возможно есть что-то ещё, но мне это не интересно.

Табуляция вообще выглядит жутким атавизмом.

Почему это?

boltai-shaltai 2011

Ну на тему табуляция vs. пробелы аргументы давно озвучены, чего их повторять.
Мне казалось, что все здравомыслящие люди используют пробелы. Совсем все, без исключений. Слишком всё однозначно.

Корпоративные стайлгайды всяких авторитетных контор тоже почти хором говорят о пробелах. Я тему сильно не изучал, конечно, но предпочтений табуляции не встречал никогда. И те яндексовые гайды, что мне попадались, тоже предписывали пробелы.

Атавизм — тоже понятно откуда. Моноширинность, матричные принтеры, листинги и т. п. Никакой разметки, никаких трутайпов, никаких em-ов. Единственным (!) способом форматирования на всех вообще девайсах были отступы.

Артур 2011

Комментарий для boltai-shaltai:

А можно какую-нить емкую ссылочку на статейку «пробелы vs. табы». Ну, так, чтобы прочитать и проникнуться, а не желтушную статейку с субъективным мнением.
А сам лично пользую табы — это же удобнее и быстрее, чем 4 пробела фигачить. Да и размеры табов всегда ставят на 4 пробела, не встречал еще 3 или 2, ыыы.

maxim-zotov 2011

Комментарий для Артур:

Да и размеры табов всегда ставят на 4 пробела, не встречал еще 3 или 2, ыыы.

Для юниксовых утилит (редакторы, вьюверы) обычно по умолчанию 8.

boltai-shaltai 2011

Комментарий для Артур:

пробелы vs. табы

нееет уж, увольте, в вашем случае налицо моторная привычка и предубеждённость. Вы ЛЮБОЕ высказывание на эту тему обзовёте «желтой статейкой» ;))
Сами вбивайте в яндекс «пробелы vs. табы» и обрящете дофига мнений.

Они все справедливы. Но при коллективной работе вся эта справедливость и демократия идут лесом.
А кустарь-одиночка может фигачить как угодно, лишь бы ему было хорошо.

Евгений Степанищев (bolknote.ru) 2011

Комментарий для boltai-shaltai:

кустарь-одиночка может фигачить как угодно

Так же как не кустарь, но одиночка.

boltai-shaltai 2011

Комментарий для Евгения Степанищева:

Так же как не кустарь, но одиночка.

я и не знал, что кустарь — это ремесленник, который фигачит именно _на дому_. Теперь знаю — спасибо за камент (и яндекс-словарям тоже спасибо).

Иван 2011

Товарищи, а разве свойство text-indent: 20px; уже не катит?

xema 2011

Вообще, всегда считал идиотизмом ставить пробелы вместо табуляции (это моё мнение), поясню: табуляция, это один единственный символ, позволяющий отодвинуть текст на определённый отступ, допустим у вас абзац с выравниванием по ширине и от количества символов пробелов в начале, красная строка (если кто ещё использует :)), будет растянута в соответствии с растяжением пробелов по первой строке, в то время как с табуляцией таких проблем не возникнет.

Евгений Степанищев (bolknote.ru) 2011

Комментарий для xema:

Я в курсе холивара «табы версус пробелы», мне в нём участвовать не хочется.

taboman 2012

Для чего так рьяно отстаивать «эти ваши пробелы»? У вас батхерт что ли? Пользуйтесь ими на здоровье. Четырьмя байтами больше, четырьмя меньше, кому что... Меня лично табы в один байт больше устраивают.