2011-12-19 11 views
8

nasıl kendi üst div genişliğine genişletmek etmeyen bir metnin arka plan rengini ayarlamak ki? Ben h1{background color:white;} kullanılan ve istediğim metnin etrafında h1 sarılmış, ancak beyaz arka plan sadece metnin ötesine uzanır. Neredeyse kelimeleri vurgulamak gibi.css arka plan rengi metinlere kadar uzuyor mu?

+0

neden Arka planının rengini metnin rengini değiştirmek ve yapamaz: şeffaf? Burada yapmaya çalıştığın tam olarak emin değilim. –

+0

Arka plan rengini, h1 öğesi yerine div'a eklemeyi denediniz mi? – Rondel

cevap

15

h1 bir blok öğesidir, bu nedenle, kullanılabilir tüm alanı kullanacaktır. Yalnızca kullanmak için çok genişliği, satır içi bu öğeyi değiştirmek

h1 { 
    display: inline; 
    background-color: white; 
} 

http://jsfiddle.net/wxNQR/

+1

Bu çözüldü. Ne yazık ki bunu kontrol edene kadar 5 dakikam var ... – Matt

+1

Ne yazık ki? xD ...... – eveevans

3

sorun h1 blok düzeyinde elementtir ve varsayılan olarak blok seviyesi elemanları ana elemanın mevcut tüm genişliğini doldurmak için genişletmek olacaktır.

h1 { 
    background-color: white; 
    float: left; 
} 

o başlık elemanı yuvarlak akış kalmaması Daha sonra, aşağıdaki paragrafı stil gerekir:

bu çözmek için en kolay yolu float için unsurdur

p { 
    clear: left; 
} 

rahat aşağıda IE7 ve destekleyici değil, doğrudan h1 elemanları sonra sadece p elemanları böylece tarz olacaktır, böylece bu seçim daha derli toplu yapmak bitişik kardeş seçicisi kullanabilirsiniz:

h1 + p { 
    clear: left; 
} 
+1

Açıkçası, yüzer büyük bir PİDE olmaya bulmak ve yüzer _easiest_ çözüm sunmak olduğunu katılmıyorum. Neden sadece metni "" ile sarmıyoruz? –

+0

@ MДΓΓБДLL Tamam, "en güzel semantik çözüm". Sadece bir "span" 'u tanıtmak, stil yaratmak uğruna, IMO. – lonesomeday

+1

MДΓΓБДLL @ H1 anlam doğru eleman kullanmak olabilir, çünkü. IMO ekran: inline-blok bunu çözmek için en güzel yol olurdu - sadece IE7 tarafından destekleniyorsa .. – ptriek