2011-08-19 51 views
1

您將如何應用CSS僅背景色,而僅將顏色應用於可見文本。通過CSS設置背景顏色僅用於帶文本的文本

我努力實現以下目標:

<div style="width:200px;background-color:white;"> 
<p style="background-color:red;color:black;">This text is longer than 200 pixel and therefore a line break will occur</p> 
</div> 

不幸的是,背景被應用於全與<p> - 標籤和換行符發生之前不與最後一個字符結束。在旁註中,我無法手動分解顯示的文本。

因此,如果輸出上面是這樣的:

----------this line is exactly 200px---------- 
This text is longer than 200 pixel and 
therefore a line break will occur 
---------------------------------------------- 

所以背景顏色應與「和」字結束第一行,並與字結束「出現」在第二行,離開<div>白色的背景。

我真的拉我的頭髮,並希望得到輸入,如果這甚至可能沒有手動設置換行符?我也會使用JavaScript解決方案,但只選擇一個CSS。

+0

如果您正在討論類似於本頁面中發現的黑色背景的白色文本:http://31.192.226.6/work/localmarket.com/,它使用兩個單獨的元素(標題和一段),每行一個。 – powerbuoy

+0

......這不是我打算做的。我正在尋找一種可能性,不必手動將效果內容分開以便按照我想要的方式進行觀看。 – uberconversion

回答

6

段落是塊元素 - 它們佔據其容器,而不是他們內容的寬度。

您需要使用<span>而不是<p>才能獲得理想的效果。

或者你也可以使<p>成爲內聯元素,但這可能會破壞頁面的其他方面。

p {display:inline} 
+0

ok,但通過使用display:inline屬性,背景效果與元素內最長的行一樣長。這意味着第一行的背景顏色和第二行一樣寬(這個長度更長)...... – uberconversion

+1

沒有按照您想要的方式手動標記部分內容和格式化文本,這是使用純CSS方法可以做的最好的。 –

+0

任何想法如何通過javascript標記行結束呢?必須有一個解決方案,因爲我已經看到了這在許多網站周圍,不能相信他們都手動做... ... – uberconversion

相關問題