Como obter um caractere de tabulação?

123

Em HTML, não há caracteres para uma guia, mas estou confuso sobre o motivo de copiar e colar uma aqui:. (Você não pode ver toda a largura, mas se clicar para editar minha pergunta, verá o caractere.) Se eu puder copiar e colar um caractere de tabulação, deve haver um equivalente unicode que possa ser codificado em html . Sei que não existe, mas esse é um mistério que nunca fui capaz de entender.

Então, minha pergunta é: por que não há um caractere unicode para uma guia, mesmo que eu possa copiá-lo e colá-lo?

Abbey Graebner
fonte
6
Aqui está um caractere de tabulação para você: "". Apenas envie-me um texto se precisar de outros personagens! Eu tenho espaços, traços e letras gregas também!
madhead
No Unix: Ctrl + Shift + U e 9 para o caractere de recuo.
NeverMind9 /
Os munges do StackOverflow comentam o texto com mais gravidade do que perguntas ou respostas. ``, '' e "" foram colados caracteres TAB, citados de várias maneiras.
MarkHu

Respostas:

165

Claro que há uma entidade para guias:

	

(A guia é caractere ASCII 9 ou Unicode U + 0009.)

No entanto, assim como as guias literais (aquelas que você digita no seu editor de texto), todos os caracteres da guia são tratados como espaço em branco pelos analisadores HTML e recolhidos em um único espaço, exceto aqueles dentro de um <pre>bloco, onde as guias literais serão renderizadas como 8 espaços em um fonte monoespaçada.

josh3736
fonte
1
Isso é interessante, mas se é um caractere unicode, o html não deve alterá-lo (recolhê-lo), deve?
Abbey Graebner
2
Unicode não possui seu próprio caractere de tabulação; U + 0009 é igual ao caractere de tabulação que você obtém pressionando Tab. (Eu acho que você pode ser confuso entidades HTML com o conjunto de caracteres Unicode.)
josh3736
8
mais geralmente você pode usar o & # 9; em qualquer elemento com espaço em branco no estilo CSS: pre; Como em jsfiddle.net/cancerbero_sgx/sp269/3
cancerbero 06/12/2013
96

Experimentar &emsp;

conforme os documentos:

As entidades de caractere &ensp;e &emsp;denotam um espaço en e um espaço em respectivamente, onde um espaço en é metade do tamanho do ponto e um espaço em é igual ao tamanho do ponto da fonte atual. Para fontes de tom fixo, o agente do usuário pode tratar o espaço en como equivalente a um caractere de espaço A e o espaço em como equivalente a dois caracteres de espaço.

Link do Documentos: https://www.w3.org/MarkUp/html3/specialchars.html

Abhishek Goel
fonte
48

coloque-o entre as <pre></pre>tags e use esses caracteres&#9;

não funcionaria sem as <pre></pre>tags

Raymund
fonte
4
Ok, isso é ótimo, eu estava tentando usar &#9;sozinho, mas não funcionou. Obrigado por mencionar <pre>!
Abbey Graebner 31 /
1
Excelente sugestão. Por que exatamente se comporta assim?
pkanane 4/08/15
1
os <pre> Define tag pré-formatadas de texto em qualquer lugar do texto dentro da tag irá preservar espaços, quebras de linha guia etc. Ele geralmente será exibido em uma largura tipo de letra fixo como Courier
Raymund
2
Você pode usar qualquer tag HTML com combinação de white-space: pre-wrap;ouwhite-space: pre;
Petr Hurtak
16

Postando outra alternativa para ser mais completo. Quando tentei as respostas baseadas em "pré", elas adicionaram quebras de linha verticais extras também.

Cada guia pode ser convertida em uma sequência de espaços sem quebra que não exige quebra automática.

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

Isso não é recomendado para uso repetido / extensivo em uma página. Uma abordagem de margem div / preenchimento pareceria muito mais limpa.

crokusek
fonte
5
Se as guias estiverem sendo usadas como uma ferramenta para alinhar o texto à direita das guias (onde o texto da fonte de largura não fixa à esquerda não é igual), a conversão para caracteres nbsp não resolverá o problema.
precisa
4

Eu uso <span style="display: inline-block; width: 2ch;">&#9;</span>para uma guia com dois caracteres.

GrayFace
fonte
Isso não é o mesmo que guias, é apenas adicionar espaço em branco para que não haja colunas com isso.
28518 Salami
1

A guia é [HT], ou número de caractere 9, na biblioteca unicode.

DanRedux
fonte
1

Como mencionado, por motivos de eficiência, os espaços sequenciais são consolidados em um espaço que o navegador realmente exibe. Lembre-se do que o ML em HTML representa. É uma linguagem de marcação, projetada para controlar como o texto é exibido. Não em branco: p

Ainda assim, você pode fingir que o navegador respeita as guias, já que tudo que o TAB faz é precedido de 4 espaços, e isso é fácil com o CSS. ou na fila como ...

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

Ou como uma classe regular em uma folha de estilos

.tabbed {padding-left:4.00em;}

Então o HTML pode parecer

<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>
Duane Lortie
fonte
1
Não é isso que uma guia faz. As guias alinham o conteúdo, - em uma linha pode adicionar 3 espaços e em outra 4. Conceitualmente, move o cursor para a próxima parada de tabulação.
precisa saber é o seguinte