Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why is my font-face adding space at the baseline?

Tags:

css

font-face

My font is doing something weird. There seems to be space being added below the font (Not the margin) that is pushing it up above the line-height. If I adjust the height it seems to be anchored to the bottom of the line height so instead of increasing the space below it actually pushes the top of the font above the line height. Is there any way, save adding margin or padding to the top, to make sure it's anchoring to the top of the line-height or middle?

enter image description here

CSS:

@font-face {font-family: 'AvenirLTStd-Book';src: url('/us/_media/font/2CA9EF_0_0.eot');src: url('/us/_media/font/2CA9EF_0_0.eot?#iefix') format('embedded-opentype'),url('/us/_media/font/2CA9EF_0_0.woff2') format('woff2'),url('/us/_media/font/2CA9EF_0_0.woff') format('woff'),url('/us/_media/font/2CA9EF_0_0.ttf') format('truetype');}
@font-face {font-family: 'AvenirLTStd-Black';src: url('/us/_media/font/2CA9EF_1_0.eot');src: url('/us/_media/font/2CA9EF_1_0.eot?#iefix') format('embedded-opentype'),url('/us/_media/font/2CA9EF_1_0.woff2') format('woff2'),url('/us/_media/font/2CA9EF_1_0.woff') format('woff'),url('/us/_media/font/2CA9EF_1_0.ttf') format('truetype');}

h1,h2,h3,h4,h5,h6 {
    font-family:'AvenirLTStd-Black', Arial, sans-serif;
    margin-top: 0;
    font-weight: normal;
    line-height: 1em;
    color: inherit;
    text-rendering: optimizelegibility;
    -webkit-font-smoothing: antialiased;
    letter-spacing:1px;
}
like image 677
Andrew Richardson Avatar asked Dec 11 '14 20:12

Andrew Richardson


People also ask

How do you fix Fout?

The best way to deal with FOUT is to make the transition between the fallback font and web font smooth. To achieve that we need to: Choose a suitable fallback system font that matches the asynchronously loaded font as closely as possible. Adjust the font styles ( font-size , line-height , letter-spacing , etc.)

How do you remove text margins in CSS?

Adjusting the Margin Size of an HTML Element With CSS You can remove this margin by setting the top and left margin to zero. Like the padding and border, the sizes of specific sides of the margin can be set using margin-left , margin-right , margin-top , and margin-bottom .

What is format in font face?

The @font-face CSS at-rule specifies a custom font with which to display text; the font can be loaded from either a remote server or a locally-installed font on the user's own computer.

How font face works?

The @font-face rule allows custom fonts to be loaded on a webpage. Once added to a stylesheet, the rule instructs the browser to download the font from where it is hosted, then display it as specified in the CSS.


2 Answers

I was on this for a while now and since I have no Myfonts.com account and the font is free font generated by FontsQuirrel or downloaded from GF I had to experiment. In PS my font looks correct by comparison,

Montserrat vs Open Sans

enter image description here

But webfont is completely off.

enter image description here

I was than forced to test several font editing software. First I tested FontForge and could simply not figure out the proper metrics, than i got trial FontCreator that has this great feature that auto calculates the metrics which when entered in FontForge fix the issue.

enter image description here

But paying $79.00 min to just fix this and never use the software again did not seem feasible and I also did not want to go back and forth between the two to get the metrics. I continued to play with FontForge and finally found the solution. You must reset all values to 0 in Element -> Font Info -> OS/2 -> Metrics and than uncheck the "Is Offset"

Instead another image here is short video that shows how to fix this

http://take.ms/rJpqh

Note that for some fonts it is better to uncheck the Really use Typo metrics which helped in my case.

like image 167
Benn Avatar answered Sep 18 '22 08:09

Benn


I know this is old, but I thought I'd leave a comment for others Googling this issue.

It looks like you are using Avenir from MyFonts.com, which allows you to 'tweak' your webfont package.

I had the same issue as above, changing the Line Height Adjustments to use Bounding Box (Match the bounding box of the glyphs, line gap will always be 0) fixed the issue

I used the settings in the screenshot below: [link to screenshot is down]

The idea is to increase line-height to decrease the space at the baseline, i.e.:

h1  {
    font-size: 2rem;
    line-height: 3rem;
}
like image 25
Paul Welsh Avatar answered Sep 18 '22 08:09

Paul Welsh