我在Safari和Chrome中遇到以下問題。字體大小和行高設置,但更改字體仍然會使元素的高度發生變化
body {
font-size: 15px;
line-height: 1.2;
}
body, .same-font {
font-family: Helvetica, sans-serif;
}
code {
font-family: Courier New, sans-serif;
}
<ul>
<li>Without any code - 18px height.</li>
<li>With <code>code</code> - 20px height.</li>
<li>With <code class="same-font">code.same-font</code> - 18px height.</li>
</ul>
運行上面代碼段和所述檢查器。您可以注意到,code
元素沒有任何修改其font-size
或line-height
的東西,除了它繼承的body
。
雖然它並不堅持繼承,因爲其包含的li
的高度爲20px,不像其他人那樣......我不確定該高度是從哪裏來的,因爲code
元素本身的高度的17px(這也是來歷不明)。
將正常/正文應用於code
元素(如第三個列表項)時,它會像正常一樣回到18px。對我而言,這意味着它不是用戶代理對影響高度的code
元素施加的任何其他屬性 - 僅限於font-family
。
編輯:作爲參考,StackOverflow的樣式中的某些東西可以防止此行爲。下面的列表項都具有相同的高度:
- 一個
two
- 三
編輯2:顯然不是。如果你改變自己的等寬字體爲Courier New,然後選擇相同問題會持續存在。
如何防止這種尺寸變化?即使該行中的字體不斷更改,您如何指定將使用的行高?
一個示例用例是一個垂直節奏的設計 - 每行的高度和元素使用的總高度應該是18px的倍數(即,如果使用該網格大小) - 一條20px行將拋出節奏。
不同的字體有不同的**默認**'line-height'給他們,你不能爲此做任何事情。你不能使所有'line-height'都等於' –
所以這些字體只是忽略了它們的一些樣式?我們應該如何知道哪些字體遵守或忽略這些樣式?多麼奇怪......編輯:他們不完全忽略它們 - 如果我將它設置爲30px的「行高」,那就行了。如果我將它設置爲10px,那麼它將是18px ...發生了什麼? –
當你將樣式應用於他們時,他們會遵循,他們不會忽視這一點。 –