Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Finding/setting css line-height defaults

One strange thing I've noticed when trying to normalize my css across browsers is that default line-height properties for h-elements and other major tag types are different across browsers like Chrome and Firefox, and yet are not set at the user-agent level:

  • http://codesearch.google.com/codesearch#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/css/html.css
  • http://mxr.mozilla.org/mozilla-central/source/layout/style/html.css

Moreover, popular normalizers like normalize.css don't take care of that either.

So my question is two parts:

  1. If line-heights aren't set at the user agent level, where are the default values coming from?
  2. I'd rather not normalize line-heights myself, but if I have to, where is a good example of some defaults?
like image 529
Yarin Avatar asked Oct 21 '11 12:10

Yarin


People also ask

What is the default CSS line-height?

Desktop browsers (including Firefox) use a default value of roughly 1.2 , depending on the element's font-family . The used value is this unitless <number> multiplied by the element's own font size.

How is CSS line-height calculated?

It takes the font-size value and multiplies it by 1.2 . Let's calculate the height of one line with the following example. We just have to do the following calculation: 16 * 1.5 = 24px. So we now know that our text will have a minimum height of 24px.

What is the default line-height in most of the browser?

The default line height in most browsers is about 110% to 120%. This is a paragraph with a smaller line-height. This is a paragraph with a smaller line-height. This is a paragraph with a bigger line-height.


1 Answers

I agree that "things aren't meant to be exactly the same" is somewhat of a cop-out, especially as even IE comes on board with pretty good standards adoption.

Relative (120%, 1, 1em) line-height values are based on the computed font-size, Normal is supposed to be based on font size but it can and does vary from browser to browser, as you can see by opening up this example in FF and Chrome: http://jsfiddle.net/mahalie/BSMZe/6/

I generally look to HTML5 Boilerplate for queues on best practices since it is so popular (and therefore well vetted / under a lot of scrutiny. They use:

body { margin: 0; font-size: 13px; line-height: 1.231; }

And their discussion of it is quite interesting although no perspective is the clear winner: https://github.com/h5bp/html5-boilerplate/issues/724

like image 136
mahalie Avatar answered Sep 28 '22 02:09

mahalie