Sekme karakteri nasıl elde edilir?


124

HTML'de bir sekme için karakter yoktur, ancak buraya neden kopyalayıp yapıştırabileceğim konusunda kafam karıştı:. (Tam genişliğini göremezsiniz, ancak sorumu düzenlemek için tıklarsanız, karakteri göreceksiniz.) Bir sekme karakterini kopyalayıp yapıştırabilirsem, html'ye kodlanabilen bir unicode eşdeğeri olmalıdır. . Var olmadığını biliyorum, ama bu asla anlayamadığım bir gizem.

Öyleyse sorum şu: kopyalayıp yapıştırabilsem bile bir sekme için neden bir unicode karakteri yok?


8
İşte sizin için bir sekme karakteri: "". Başka karakterlere ihtiyacın olursa bana mesaj at! Boşluklarım, çizgiler ve Yunan harfleri de var!
madhead

Unix'te: Ctrl + Shift + U ve ardından girinti karakteri için 9.
neverMind9

StackOverflow, yorum metnini sorulardan veya yanıtlardan daha ciddi şekilde kullanır. `` '' Ve "" edildi yapıştırılan TAB karakterler, alıntılanan çeşitli yollar.
MarkHu

Yanıtlar:


165

Sekmeler için bir varlık olduğundan emin olun:

	

(Sekme, ASCII karakter 9 veya Unicode U + 0009'dur.)

Bununla birlikte, değişmez sekmeler (metin düzenleyicinize yazdıklarınız) gibi, tüm sekme karakterleri HTML ayrıştırıcıları tarafından beyaz boşluk olarak kabul edilir ve bir <pre>blok içindekiler dışında tek bir alana daraltılır , burada değişmez sekmeler bir içinde 8 boşluk olarak tek aralıklı yazı tipi.


1
Bu ilginç, ama eğer bu bir unicode karakter ise, o zaman html onu değiştirmemeli (daraltmamalı), değil mi?
Abbey Graebner

2
Unicode'un kendi sekme karakteri yoktur; U + 0009, tuşuna basarak elde ettiğiniz sekme karakteriyle aynıdır Tab. (HTML varlıklarını Unicode karakter kümesiyle karıştırabileceğinizi düşünüyorum.)
josh3736

9
daha genel olarak & # 9; CSS stili beyaz boşluklu herhangi bir öğede: pre; gibi jsfiddle.net/cancerbero_sgx/sp269/3
cancerbero

96

Deneyin &emsp;

belgelere göre:

Karakter varlıkları &ensp;ve &emsp;sırasıyla bir en boşluğunu ve bir em boşluğunu belirtir; burada bir en boşluğu, nokta boyutunun yarısıdır ve bir em boşluğu, geçerli fontun punto boyutuna eşittir. Sabit aralıklı yazı tipleri için, kullanıcı aracısı en boşluğunu A boşluk karakterine eşdeğer ve em boşluğunu iki boşluk karakterine eşdeğer olarak değerlendirebilir.

Dokümanlar bağlantısı: https://www.w3.org/MarkUp/html3/specialchars.html


48

<pre></pre>etiketlerin arasına koyun ve sonra bu karakterleri kullanın&#9;

<pre></pre>etiketler olmadan çalışmaz


4
Tamam, bu harika, &#9;kendi kendine kullanmaya çalışıyordum ama işe yaramadı. Bahsettiğiniz için teşekkürler <pre>!
Abbey Graebner

1
Mükemmel öneri. Neden tam olarak böyle davranıyor?
pkanane

1
etiketinin içine metni herhangi bir metin yer önceden biçimlendirilmiş <pre> etiketi tanımlar boşluk, satır sonları, genellikle Courier gibi sabit genişlikli yazı tipinde görüntülenir sekme vb koruyacak
Raymund

2
Sen kombinasyonu ile herhangi bir html etiketi kullanabilirsiniz white-space: pre-wrap;veyawhite-space: pre;
Petr Hurtak

16

Daha eksiksiz olmak için başka bir alternatif göndermek. "Ön" tabanlı cevapları denediğimde, fazladan dikey satır sonları da eklediler.

Her sekme, kaydırmayı gerektirmeyen bölünmeyen boşluklara dönüştürülebilir.

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

Bu, bir sayfada tekrarlanan / yoğun kullanım için önerilmez. Bir div marjı / doldurma yaklaşımı çok daha temiz görünür.


5
Sekmeler, metni sekmelerin sağına hizalamak için bir araç olarak kullanılıyorsa (soldaki sabit olmayan yazı tipi metninin eşit olmadığı yerlerde), nbsp karakterlerine dönüştürmek sorunu çözmez.
Steve Midgley

4

Kullandığım <span style="display: inline-block; width: 2ch;">&#9;</span>bir iki karakter genişliğinde sekme için.


Bu sekmelerle aynı değil, sadece beyaz boşluk ekliyor, bu yüzden bununla sütun yok.
Salami

1

Sekme, unicode kitaplığında [HT] veya karakter numarası 9'dur.


1

Belirtildiği gibi, verimlilik nedenleriyle, sıralı alanlar tarayıcının gerçekte görüntülediği tek bir alanda konsolide edilir. HTML'deki ML'nin ne anlama geldiğini hatırlayın. Metnin nasıl görüntülendiğini kontrol etmek için tasarlanmış bir Biçimlendirme Dilidir .. boşluk değil: p

Yine de, tüm TAB'nin yaptığı 4 boşluğun başına geçtiği için tarayıcının sekmelere saygı duyduğunu varsayabilirsiniz ve bu CSS ile kolaydır. ya da ...

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

Veya bir stil sayfasında normal bir sınıf olarak

.tabbed {padding-left:4.00em;}

Sonra HTML şöyle görünebilir:

<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
Bir sekmenin yaptığı bu değildir. Sekmeler içeriği sıralar - bir satırda 3 boşluk ekleyebilir ve diğerinde 4. Kavramsal olarak, imleci bir sonraki sekme durağına taşır.
BrainSlugs83
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.