2011-12-19 128 views
8

我將如何設置文本的背景顏色不擴展爲其父級的寬度div?我用h1{background color:white;}並圍繞我想要的文字包裝h1,但白色背景只是延伸到文本之外。這幾乎就像你只是強調單詞。css背景顏色擴展到文字?

+0

爲什麼不改變文本的顏色,讓背景顏色:透明?我不確定你在這裏做什麼。 – 2011-12-19 22:13:56

+0

您是否嘗試在div上添加背景顏色而不是h1元素? – Rondel 2011-12-19 22:13:57

回答

15

h1是一個塊元素,所以它將使用所有可用的區域。所以改變這個元素內聯,只使用其寬度

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

http://jsfiddle.net/wxNQR/

+1

這解決了它。可悲的是我有5分鐘,直到我可以檢查這個... – Matt 2011-12-19 22:24:07

+1

可悲嗎? xD ...... – eveevans 2011-12-19 22:27:30

3

問題是,h1是塊級元素,默認情況下,塊級元素將展開以填充父元素的所有可用寬度。

解決這個最簡單的方法是float元素:

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

然後,您將需要的款式下段,使其不流動一輪的標題元素:

p { 
    clear: left; 
} 

如果您不習慣支持IE7及以下版本,則可以使用相鄰的兄弟選擇器來使此選項更加整潔,以便在h1元素之後直接使用p元素:

h1 + p { 
    clear: left; 
} 
+1

老實說,我發現花車是一個主要的PITA,並且不同意花車呈現_easiest_解決方案。爲什麼不把文字包裝在''中呢? – 2011-12-19 22:18:35

+0

@MДΓΓБДLL好吧,「最好的語義解決方案」。 IMO僅爲了造型而引入'span'是一團糟。 – lonesomeday 2011-12-19 22:19:32

+1

@MДΓΓБДLL因爲H1可能是使用的語義上正確的元素。國際海事組織顯示:內聯塊將是解決這個問題的最好方法 - 如果只有IE7支持它.. – ptriek 2011-12-19 22:19:37