看看下面的代碼,這是我有一個更大的問題的一個簡化版本:CSS - 使左+右邊界完全一樣的高度,文字
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
div {border-width:0px 5px; border-style:solid; border-color:black; width:400px; margin:0; padding:0; background:red;}
div:nth-child(2) {background:green;}
p {color:yellow; text-transform:uppercase; font-size:40px;margin:0;padding:0;}
</style>
</head>
<body>
<div><p>Hello World</p></div>
<div><p>Hello World</p></div>
</body>
</html>
應該創造一些東西像這樣:
客戶已經要求什麼是黑色的左邊框與黑色的右邊界是完全一樣的高度,黃色文本。也就是說,黑色條的高度不應包括黃色文本的頂部+底部與容器的頂部+底部之間的額外空間。
我能想到的一種方法是在包含div上設置固定高度,然後給div一個溢出:隱藏。接下來,我將在p標籤上使用負邊距頂部。
任何人都可以想出更好的方法嗎?我真的不喜歡我提到的方法,因爲我的客戶端是一個設計納粹,並期望在所有不同的操作系統,不同的瀏覽器和不同的屏幕分辨率下,像素都是像素完美的。根據我的經驗,如果我嘗試通過將像素值硬編碼到我的CSS中來定位元素,並且這些元素仍然需要相對於大小不同的元素(由於動態內容),它可以是夜晚的母馬。
我的擔憂是否值得?如果是這樣,是否有更好的方法使邊界與文本高度完全一樣?
嘿Tyriar,你可能已經注意到了,我不希望「字體允許一小部分空間在上面和下面「。那麼你是說我的兩個選擇是使用圖像還是採用我在問題中提到的方法?我認爲這兩者都是不可維護的做事方式。即使客戶要求它 – John 2013-03-24 14:20:49
也許一個不同的字體將精確繪製。我同意他們是不好的和不可修復的解決方案,但這就是字體的工作方式,因爲您可以看到我們的繪圖尺寸完全相同。 – 2013-03-24 20:49:57
我需要在某些文本前面繪製一個狀態欄,並且此解決方案完美運行。謝謝! – Bill 2013-11-15 18:37:34