Управление пространством вкладок в <pre>с помощью CSS? - PullRequest
3 голосов
/ 23 октября 2009

Можно ли указать, сколько пикселей и т. Д. Пространство табуляции занимает в <pre> с использованием CSS?

например, скажем, у меня есть фрагмент кода, который появляется в <pre> на веб-странице:

function Image()
{
    this.Write = function()
    {
        document.write(this.ToString());
        return this;
    };
    ...
}
Image.prototype = new Properties();
...

можно ли указать другой объем отступа табуляции с помощью CSS?

Если нет, есть ли обходные пути?

Ответы [ 2 ]

4 голосов
/ 23 октября 2009

Из CSS 2.1, § 16.6.1 Модель обработки «белого пространства» :

Все вкладки (U + 0009) отображаются в виде горизонтального сдвига, который выравнивает начальный край следующего глифа с помощью следующей остановки табуляции. Остановка табуляции происходит в точках, кратных 8-кратной ширине пробела (U + 0020), отображаемого в шрифте блока от начального края содержимого блока.

CSS3 Текст говорит в основном то же самое.

Из HTML 4.01 § 9.3.4 Предварительно отформатированный текст: элемент PRE

Горизонтальный символ табуляции (десятичный 9 в [ISO10646] и [ISO88591]) обычно интерпретируется визуальными агентами пользователя как наименьшее ненулевое количество пробелов, необходимое для выравнивания символов вверх по стопам табуляции, каждое из 8 символов. Настоятельно не рекомендуется использовать горизонтальные вкладки в предварительно отформатированном тексте, поскольку при редактировании обычной практикой является установка расстояния между вкладками в другие значения, что приводит к смещению документов.

Если вас интересуют ведущие вкладки, заменить их пробелами просто.

/* repeat implemented using Russian Peasant multiplication */
String.prototype.repeat = function (n) {
    if (n<1) return '';
    var accum = '', c=this;
    for (; n; n >>=1) {
        if (1&n) accum += c;
        c += c;
    }
    return accum;
}
String.prototype.untabify = function(tabWidth) {
    tabWidth = tabWidth || 4;
    return this.replace(/^\t+/gm, function(tabs) { return ' '.repeat(tabWidth * tabs.length)} );
}
3 голосов
/ 11 ноября 2012

Хотя приведенное выше обсуждение предоставляет некоторые исторические сведения, времена изменились, и здесь можно найти более актуальную информацию и возможные решения: Указание ширины табуляции?

attn admin: возможный дубликат уточненного вопроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...