Как получить символ табуляции?


124

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

Итак, мой вопрос: почему для вкладки нет символа Юникода, даже если я могу скопировать и вставить его?


8
Вот вам символ табуляции: «». Просто напишите мне, если вам нужны другие символы! У меня есть пробелы, тире и греческие буквы!
madhead

В Unix: Ctrl + Shift + U, а затем 9 для символа отступа.
neverMind9

StackOverflow изменяет текст комментария более серьезно, чем вопросы или ответы. "," и "" были вставлены символы табуляции, цитировались различными способами.
MarkHu

Ответы:


165

Конечно, есть сущность для вкладок:

	

(Вкладка представляет собой символ ASCII 9 или Unicode U + 0009.)

Однако, как и буквальные табуляции (те, которые вы вводите в текстовом редакторе), все символы табуляции обрабатываются синтаксическими анализаторами HTML как пробелы и сворачиваются в единое пространство, кроме тех, которые находятся внутри <pre>блока, где буквальные табуляции будут отображаться как 8 пробелов в моноширинный шрифт.


1
Это интересно, но если это символ Юникода, тогда HTML не должен его изменять (сворачивать), не так ли?
Эбби Грэбнер,

2
Unicode не имеет собственного символа табуляции; U + 0009 - это то же самое, что и символ табуляции при нажатии Tab. (Я думаю, вы можете спутать объекты HTML с набором символов Unicode.)
josh3736

9
в более общем случае вы можете использовать & # 9; в любом элементе со стилем CSS white-space: pre; как в jsfiddle.net/cancerbero_sgx/sp269/3
Cancebero

96

Пытаться &emsp;

согласно документам:

Символьные сущности &ensp;и &emsp;обозначают пробел en и em соответственно, где пробел en составляет половину размера точки, а пробел em равен размеру точки текущего шрифта. Для шрифтов с фиксированным шагом пользовательский агент может рассматривать en space как эквивалент A пробела, а em space как эквивалент двух пробелов.

Ссылка на документы: https://www.w3.org/MarkUp/html3/specialchars.html


48

положи это между <pre></pre> тегами, затем используйте эти символы&#9;

это не будет работать без <pre></pre>тегов


4
Хорошо, это здорово, я пытался использовать &#9;сам по себе, но не вышло. Спасибо за упоминание <pre>!
Abbey Graebner,

1
Отличное предложение. Почему именно так оно себя ведет?
pkanane

1
тег <pre> определяет предварительно отформатированный текст. Любое текстовое место внутри тега сохранит пробелы, разрывы строк, табуляцию и т. д. Обычно он отображается шрифтом фиксированной ширины, например Courier
Raymund

2
Вы можете использовать любой тег html с комбинацией white-space: pre-wrap;илиwhite-space: pre;
Петр Хуртак

16

Публикуем еще одну альтернативу, чтобы быть более полной. Когда я попробовал ответы на основе "pre", они также добавили дополнительные вертикальные разрывы строк.

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

"&nbsp;&nbsp;&nbsp;&nbsp;" 

Это не рекомендуется для многократного / широкого использования на странице. Подход с полями / заполнениями div выглядел бы намного чище.


5
Если вкладки используются в качестве инструмента для выравнивания текста по правому краю вкладок (где текст с нефиксированной шириной шрифта слева не равен), преобразование в символы nbsp не решит проблему.
Стив Мидгли

4

Я использую <span style="display: inline-block; width: 2ch;">&#9;</span>вкладку шириной в два символа.


Это не то же самое, что вкладки, это просто добавление пробелов, поэтому столбцов с этим нет.
Салями

1

Табуляция - это [HT], или символ номер 9 в библиотеке Unicode.


1

Как уже упоминалось, по соображениям эффективности последовательные пространства объединены в одно пространство, которое фактически отображает браузер. Помните, что означает ML в HTML. Это язык разметки, предназначенный для управления отображением текста ... а не пробелов: p

Тем не менее, вы можете притвориться, что браузер уважает вкладки, поскольку все, что делает TAB, - это добавление 4 пробелов, и это легко с помощью CSS. либо в строке, как ...

 <div style="padding-left:4.00em;">Indenented text </div>

Или как обычный класс в таблице стилей

.tabbed {padding-left:4.00em;}

Тогда HTML может выглядеть как

<p>regular paragraph regular paragraph regular paragraph</p>
<p class="tabbed">Indented text Indented text Indented text</p>
<p>regular paragraph regular paragraph regular paragraph</p>

1
Это не то, что делает вкладка. Табуляторы выстраивают содержимое: в одной строке может быть добавлено 3 пробела, а в другой - 4. По сути, он перемещает курсор на следующую позицию табуляции.
BrainSlugs83
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.