推薦練習不是這樣做的。嘗試重新設計,使背景圖像不需要是固定的高度,文本不需要限制在三條線上。如果這是您的老闆/客戶強加給您的某種要求,那麼您需要與他們交談並解釋,這不是HTML/CSS中可以或不應該做的事情。
請記住,不僅每個瀏覽器中的字符寬度會有所不同,導致不同的包裝,但瀏覽器將在不同高度顯示文本行,因此它可能是您的元素可以不包含三行。
如果您沒有其他選擇,請考慮在固定尺寸元素上使用overflow: hidden
,但這很可能會導致切斷字母和/或單詞。
重新編輯點評:
我不認爲可用空間將瀏覽器之間的變動內容。如果您使用的是相對單位(em
,%
),那麼可能會有最大一個像素的舍入差異。但是,您使用的是像素,在所有當前瀏覽器中(在標準模式下)應該是相同的。
無論如何,我不是說你應該限制你想要顯示的文本的數量,只是給文本一些空間來「呼吸」,並不給元素一個固定的高度像素。相反:
- 設置一個
line-height
(例如1.25
)和min-height
三倍量(這裏3.75em
)。
- 使用您的最佳估計值將要放入其中的文本限制爲三行。
- 添加一些縮短文本的JavaScript,以防它發生三行以上的情況。
- 調整您的佈局(包括該元素的靈活背景),因此它可以在兩種不同的瀏覽器(並且更重要的是用戶的首選)字體大小和可以存活一個額外的文本行在很少的情況下,您錯誤地估計了文本的長度並且JavaScript不可用。
我已經看到在不同瀏覽器中字符的寬度不同。另外,即使使用相同的填充,邊距和寬度,div中的可用空間也會因瀏覽器而異。無論如何,我需要將背景設置爲固定高度,以免在背景上佔用太多空間。文字覆蓋在背景上,以提供更新等小型推文。所以,限制到3條線和一定高度是有原因的。 – Robertg 2011-03-28 15:43:36
@EDIT,似乎是很好的務實建議。檢查每個瀏覽器如何呈現文本是第一個選項。然後用Javascript和靈活的背景元素來回補。我只是想看看我是否錯過了可以輕鬆解決這個問題的東西。看起來像擁有固定數量的文本行和固定高度的背景圖像是一種常見要求。 – Robertg 2011-03-29 10:27:19