Come ottenere un carattere di tabulazione?


123

In HTML, non ci sono caratteri per una scheda, ma sono confuso sul motivo per cui posso copiarne e incollarne uno qui:. (Non puoi vederne l'intera larghezza, ma se fai clic per modificare la mia domanda, vedrai il carattere.) Se posso copiare e incollare un carattere di tabulazione, dovrebbe esserci un equivalente Unicode che può essere codificato in html . So che non esiste, ma questo è un mistero che non sono mai riuscito a cogliere.

Quindi la mia domanda è: perché non c'è un carattere Unicode per una scheda anche se posso copiarlo e incollarlo?


7
Ecco un carattere di tabulazione per te: "". Scrivimi un messaggio se hai bisogno di altri personaggi! Ho anche spazi, trattini e lettere greche!
madhead

Su Unix: Ctrl + Maiusc + U e poi 9 per il carattere di rientro.
neverMind9

StackOverflow trasforma il testo del commento in modo più severo rispetto alle domande o alle risposte. "," e "" erano caratteri di tabulazione incollati, citati in vari modi.
MarkHu

Risposte:


165

Sicuramente c'è un'entità per le schede:

	

(La scheda è il carattere ASCII 9 o Unicode U + 0009.)

Tuttavia, proprio come le tabulazioni letterali (quelle che digiti nell'editor di testo), tutti i caratteri di tabulazione sono trattati come spazi bianchi dai parser HTML e compressi in un unico spazio tranne quelli all'interno di un <pre>blocco, dove le tabulazioni letterali saranno rappresentate come 8 spazi in un carattere monospazio.


1
Questo è interessante, ma se è un carattere Unicode, allora html non dovrebbe cambiarlo (comprimerlo) affatto, vero?
Abbey Graebner

2
Unicode non ha un proprio carattere di tabulazione; U + 0009 è lo stesso del carattere di tabulazione che ottieni premendo Tab. (Penso che potresti confondere le entità HTML con il set di caratteri Unicode.)
josh3736

9
più in generale puoi usare & # 9; in qualsiasi elemento con spazi bianchi in stile CSS: pre; come in jsfiddle.net/cancerbero_sgx/sp269/3
cancerbero

96

Provare &emsp;

secondo i documenti:

Le entità carattere &ensp;e &emsp;denotano rispettivamente uno spazio en e uno spazio em, dove uno spazio è la metà della dimensione in punti e uno spazio em è uguale alla dimensione in punti del carattere corrente. Per i caratteri a passo fisso, il programma utente può trattare lo spazio en come equivalente a uno spazio A, e lo spazio em come equivalente a due caratteri spazio.

Link ai documenti: https://www.w3.org/MarkUp/html3/specialchars.html


48

mettilo tra i <pre></pre>tag quindi usa questi caratteri&#9;

non funzionerebbe senza i <pre></pre>tag


4
Ok, è fantastico, stavo cercando di usarlo &#9;da solo, ma non ha funzionato. Grazie per averlo menzionato <pre>!
Abbey Graebner

1
Ottimo suggerimento. Perché esattamente si comporta così?
pkanane

1
il tag <pre> definisce il testo preformattato qualsiasi posizione di testo all'interno del tag conserverà spazi, interruzioni di riga, tabulazioni ecc. Di solito verrà visualizzato con un tipo di carattere a larghezza fissa come Courier
Raymund

2
Puoi utilizzare qualsiasi tag html con una combinazione di white-space: pre-wrap;owhite-space: pre;
Petr Hurtak

16

Inserendo un'altra alternativa per essere più completi. Quando ho provato le risposte "pre" basate, hanno aggiunto anche interruzioni di riga verticali extra.

Ogni scheda può essere convertita in una sequenza di spazi unificatori che non richiedono alcun avvolgimento.

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

Questo non è consigliato per un uso ripetuto / esteso all'interno di una pagina. Un approccio div margin / padding sembrerebbe molto più pulito.


5
Se le tabulazioni vengono utilizzate come strumento per allineare il testo a destra delle tabulazioni (dove il testo del carattere di larghezza non fissa a sinistra non è uguale), la conversione in caratteri nbsp non risolverà il problema.
Steve Midgley

4

Uso <span style="display: inline-block; width: 2ch;">&#9;</span>per una scheda larga due caratteri.


Questo non è lo stesso delle schede, aggiunge solo spazio bianco, quindi non ci sono colonne con questo.
Salame

1

La scheda è [HT], o il carattere numero 9, nella libreria Unicode.


1

Come accennato, per motivi di efficienza gli spazi sequenziali vengono consolidati in uno spazio effettivamente visualizzato dal browser. Ricorda cosa rappresenta il ML in HTML. È un linguaggio di markup, progettato per controllare come viene visualizzato il testo .. non gli spazi bianchi: p

Tuttavia, puoi fingere che il browser rispetti le schede poiché tutto ciò che fa il TAB è anteporre 4 spazi, e questo è facile con CSS. o in linea come ...

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

O come una normale classe in un foglio di stile

.tabbed {padding-left:4.00em;}

Quindi l'HTML potrebbe apparire come

<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
Non è quello che fa una scheda. Le schede allineano il contenuto, - su una riga potrebbe aggiungere 3 spazi e su un'altra 4. Concettualmente, sposta il cursore alla tabulazione successiva.
BrainSlugs83
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.