2012-01-01 33 views
7

I span veya div boş bir dize olur ya da sadece beyaz boşluklar içeren, bu bölümü, herhangi bir yüksekliğe sahip değildir ve bu span veya div, bundan başka, bir dizge içinde kapatılır table gibi bir şeye gömülmüş, bu hücrede yeterli yükseklik yok ve yanlış görünüyor. span veya div dizesinin en az dizenin diğer karakterleri olduğunda ne kadar yükseklikte olduğundan emin olabilirim? Bu, TeX'te \strut yapmak gibi bir şey. Ya dizeye bir şey ekleyebilirim veya css'yi ayarlayabilirim. minimum yükseklik

Aşağıdakileri, ilgili css sınıfına yerleştirmeyi denedim, ancak sorun, dize yüksekliğini elle ayarlamam gerektiğidir ("1em" olduğundan emin değilim. Muhtemelen değil). Bunu yapmanın doğru yolu nedir?

+2

"display: blok;" yükseklik değerlerini kabul etmek için. Varsayılan olarak satır içi görüntülenir. Ayrıca, bu özelliğin, min yüksekliği yüksekliğe etiketine atanması ve tüm satırın aynı yükseklikte olması için de tavsiye edilir. – wwwroth

cevap

17

Sizin span eleman onun yüksekliğini ayarlamak isterseniz bir blok elemanı haline gelmesi gerekmektedir. Böylece display: block veya display: inline-block stilini uygun şekilde ayarlayın.

span.item { 
    display: inline-block; 
} 

boş yayılma yüksekliğini ayarlamak için Ben en iyisi sadece   enjekte yerine min-yüksekliğini ayarlamak için buldum. ( UPDATE: @sawa başına değil, bir sigara kırılma boşluk karakteri kullanmak yerine, belki de daha uygun bir karakter, Unicode sıfır genişlik boşluğu karakteri, yani, \200b bir yer alacaktır.)

span.item:empty:before { 
    content: "\200b"; /* unicode zero width space character */ 
} 

Bu, yazı tipi boyutu ne olursa olsun çalışacak ve bitişik metinle hizalanmayan satır tabanındaki sorunlardan kaçınacaktır. "Huh" yazan çizgiye bak. Aşağıda:

how baseline fails

http://plnkr.co/edit/GGd7mz?p=preview

(benzer soruya bakın: https://stackoverflow.com/a/29354766/516910) bir SPAN varsa eklemek ihtiyacımız olacak,

+6

'" \ 00a0 "' (  ') yatay alanı kaplıyor. Bence "\ 200b" (​ ') daha iyi – sawa

+1

@sawa Agreed," "\ 200b" 'tamamen görünmezken metnin varlığını verir. –

+0

Sekizlik çıkış dizileri kullanımdan kaldırılmıştır. Bunun yerine '\ u200b' kullanın. –

3

Kodunuz doğru değil: CSS değerlerin etrafında ("") çevreleyen tırnak içine alınması gerekmez.

Ya kullanım:

min-height: 1em; /* I am not sure if one can use em with height properties */ 

Veya kullanım:

min-height: 12px; 
+0

Bu sadece yazım hatasıydı. Aslında, teklifler olmadan çalıştı ve 'em' kullanılabilir. Onu farklı emirlerle kontrol ettim ve işe yaradı. Sorun şu ki manuel olarak ayarlamam gerek. – sawa

+1

Tablo özelliği için min özelliğini ayarlayabilirsiniz. Aksi takdirde bunu elle yönetmek zorundasınız. Ayrıca, kendi başına bir şey yapmamak iyi bir davranış. Başka türlü garip sonuçlarınız olabilir :-) –

+0

Teşekkürler. Cevabınızın yorum kısmını kabul etmek istiyorum. – sawa