Bagaimana cara mendapatkan karakter tab?

123

Dalam HTML, tidak ada karakter untuk tab, tapi saya bingung mengapa saya bisa menyalin dan menempelkannya di sini:. (Anda tidak dapat melihat lebar penuhnya, tetapi jika Anda mengklik untuk mengedit pertanyaan saya, Anda akan melihat karakternya.) Jika saya dapat menyalin dan menempelkan karakter tab, harus ada persamaan unicode yang dapat dikodekan menjadi html . Saya tahu itu tidak ada, tapi ini adalah misteri yang tidak pernah bisa saya pahami.

Jadi pertanyaan saya adalah: mengapa tidak ada karakter unicode untuk tab meskipun saya dapat menyalin dan menempelkannya?

Abbey Graebner
sumber
7
Berikut adalah karakter tab untuk Anda: "". Kirimi saya SMS jika Anda membutuhkan karakter lain! Saya memiliki spasi, tanda hubung, dan huruf Yunani juga!
gila
Di Unix: Ctrl + Shift + U lalu 9 untuk karakter indentasi.
neverMind9
StackOverflow memungkinkan teks komentar lebih parah daripada pertanyaan atau jawaban. ``, '', Dan "" yang disisipkan karakter TAB, dikutip berbagai cara.
MarkHu

Jawaban:

165

Tentu ada entitas untuk tab:

	

(Tab tersebut adalah karakter ASCII 9, atau Unicode U + 0009.)

Namun, seperti tab literal (yang Anda ketikkan ke editor teks Anda), semua karakter tab diperlakukan sebagai spasi oleh parser HTML dan diciutkan menjadi satu spasi kecuali yang ada di dalam <pre>blok, di mana tab literal akan dirender sebagai 8 spasi dalam font monospace.

josh3736
sumber
1
Itu menarik, tetapi jika itu adalah karakter unicode, maka html seharusnya tidak mengubahnya (menciutkannya) sama sekali, bukan?
Biara Graebner
2
Unicode tidak memiliki karakter tab sendiri; U + 0009 sama dengan karakter tab yang Anda dapatkan dengan menekan Tab. (Saya pikir Anda mungkin membingungkan entitas HTML dengan kumpulan karakter Unicode.)
josh3736
9
secara lebih umum, Anda dapat menggunakan & # 9; dalam elemen apa pun dengan spasi putih gaya CSS: pre; seperti di jsfiddle.net/cancerbero_sgx/sp269/3
cancerbero
96

Mencoba &emsp;

sesuai dokumen:

Entitas karakter &ensp;dan &emsp;masing-masing menunjukkan spasi en dan spasi em, di mana spasi en adalah setengah dari ukuran titik dan spasi em sama dengan ukuran titik font saat ini. Untuk font pitch tetap, agen pengguna dapat memperlakukan spasi en sama dengan karakter spasi A, dan spasi em setara dengan dua karakter spasi.

Tautan Docs: https://www.w3.org/MarkUp/html3/specialchars.html

Abhishek Goel
sumber
48

letakkan di antara <pre></pre> tag lalu gunakan karakter ini&#9;

itu tidak akan bekerja tanpa <pre></pre>tag

Raymund
sumber
4
Oke, ini bagus, saya mencoba menggunakan &#9;sendiri, tetapi tidak berhasil. Terima kasih telah menyebutkan <pre>!
Abbey Graebner
1
Saran yang bagus. Mengapa tepatnya berperilaku seperti ini?
pkanane
1
tag <pre> mendefinisikan teks yang telah diformat sebelumnya. Tempat teks mana pun di dalam tag akan mempertahankan spasi, jeda baris, tab, dll. Biasanya akan ditampilkan dalam tipe font dengan lebar tetap seperti Courier
Raymund
2
Anda dapat menggunakan tag html apa saja dengan kombinasi white-space: pre-wrap;atauwhite-space: pre;
Petr Hurtak
16

Posting alternatif lain agar lebih lengkap. Ketika saya mencoba jawaban berbasis "pra", mereka menambahkan jeda baris vertikal ekstra juga.

Setiap tab dapat diubah ke urutan ruang non-breaking yang tidak memerlukan pembungkusan.

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

Ini tidak disarankan untuk penggunaan berulang / ekstensif dalam suatu halaman. Pendekatan margin / padding div akan tampak jauh lebih bersih.

crokusek.dll
sumber
5
Jika tab digunakan sebagai alat untuk menyelaraskan teks ke kanan tab (di mana teks font lebar tidak tetap di sebelah kiri tidak sama), mengonversi ke karakter nbsp tidak akan menyelesaikan masalah.
Steve Midgley
4

Saya gunakan <span style="display: inline-block; width: 2ch;">&#9;</span>untuk tab lebar dua karakter.

GrayFace
sumber
Ini tidak sama dengan tab, ini hanya menambahkan ruang putih jadi tidak ada kolom dengan ini.
Salami
1

Tab adalah [HT], atau karakter nomor 9, di perpustakaan unicode.

DanRedux
sumber
1

Seperti yang disebutkan, untuk alasan efisiensi, ruang berurutan digabungkan ke dalam satu ruang yang sebenarnya ditampilkan browser. Ingat apa kepanjangan dari ML dalam HTML. Ini adalah Bahasa Mark-up, dirancang untuk mengontrol bagaimana teks ditampilkan .. bukan spasi: p

Namun, Anda dapat menganggap browser menghormati tab karena semua yang dilakukan TAB adalah menambahkan 4 spasi, dan itu mudah dengan CSS. baik sejalan seperti ...

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

Atau sebagai kelas reguler dalam gaya lembar

.tabbed {padding-left:4.00em;}

Kemudian HTML akan terlihat seperti

<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
sumber
1
Bukan itu yang dilakukan tab. Tab berbaris konten, - pada satu baris mungkin menambahkan 3 spasi dan pada 4 lainnya. Secara konseptual, ini memindahkan kursor ke tab berhenti berikutnya.
BrainSlugs83