css @font-face 不會在所有瀏覽器中垂直對齊文本 (css @font-face doesn't align text vertically across all browsers)


問題描述

css @font‑face 不會在所有瀏覽器中垂直對齊文本 (css @font‑face doesn't align text vertically across all browsers)

I must have went through every page of google but haven't found the solution yet. I have a custom font that I'm using through css font‑face. The font adds extra padding on the bottom depending on the browser and OS that I am using. The picture below shows an example with mac being on the left and windows on the right. It looks correct on the right (in windows) and i want it to be the same on mac.

@font‑face
{
  font‑family: universLight;
  src: url('http://www.viggi.com/fonts/UniversLTStd‑Light.otf');
  font‑weight: normal;
  font‑style: normal;
}
#button{
    font‑family: universLight;
    border: 1px solid black;
    background: #ccc;
}

The code is located at http://jsfiddle.net/ZDh5h/

Here is what I already know won't work from my research.

  • line‑height adds padding to the top and bottom so the extra padding on the bottom remains.
  • using different extensions such as .otf or .ttf also doesn't work. Just produces the same results 
  • changing the font‑size also doesn't really do anything

I use this font a lot through out the site and don't really want to add different CSS sheets for mac vs windows. If anyone knows anyway to fix this without having javascript add extra padding I will be very grateful. 

Thank you.


參考解法

方法 1:

See http://www.w3.org/TR/CSS2/visudet.html#propdef‑line‑height

normal

Tells user agents to set the used value to a "reasonable" value based on the font of the element. The value has the same meaning as . We recommend a used value for 'normal' between 1.0 to 1.2. The computed value is 'normal'.

I think the behaviour you observe comes from different "reasonable" values across browser as normal is the default line‑height value.

So specify your value (say line‑height: 1.5em;) to get rid of the differences.

(by AvovkMatTheCat)

參考文件

  1. css @font‑face doesn't align text vertically across all browsers (CC BY‑SA 3.0/4.0)

#padding #css #cross-platform #font-face #vertical-alignment






相關問題

'android:paddingRight' 與 'android:drawableRight' 一起使用 (’android:paddingRight’ working with ‘android:drawableRight’)

雙行導航欄 - 是什麼原因造成的? (double row navigation bar- what's causing it?)

在 Twitter 引導程序中為行添加背景顏色和填充 (Adding background color and padding to row in Twitter bootstrap)

如何控制 addView 到佈局 (How to control addView to a layout)

Ці можа выкарыстанне працэнтаў для вышыні запаўнення/поля/межы быць лепшым, чым em? (Can using percentages for height of padding/margin/border be better than em?)

填充對絕對定位的下拉菜單有意想不到的影響 (Padding has unexpected effect on drop down menu with absolute postioning)

內部 div 相對於包裝器具有不需要的空間 (Inner div has unwanted space in relation to wrapper)

css @font-face 不會在所有瀏覽器中垂直對齊文本 (css @font-face doesn't align text vertically across all browsers)

填充佔用了額外空間,我希望我的 div 像引導 div 一樣 (padding is taking up extraspaces,i want my div's to act like bootstrap div's)

Android -- 使用帶有自定義背景的 ListView 時如何刪除那一點額外的填充? (Android -- How to remove that little extra padding when using a ListView with custom background?)

使用顯示時沒有底部填充:網格和滾動 (No bottom padding when using display: grid and scroll)

TCL 中的零填充 (zero padding in TCL)







留言討論