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?


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.


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


48

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

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


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.


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.


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.


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>

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.