- From: Niels Matthijs <niels.matthijs@internetarchitects.be>
- Date: Wed, 26 Jan 2011 09:30:33 +0100
- To: Anton Prowse <prowse@moonhenge.net>
- CC: www-style@w3.org
On 25/01/2011 7:08 PM, Anton Prowse wrote:
> The example on your blog:
>
> "when you're playing around with headings and the left and rights
> margins of the heading box keep changing every time you adapt the
> font-size of this heading"
>
> makes me question why you've got horizontal margins on your heading in
> the first place, or at least, why you're defining them in ems.
>
> Can you provide a use case, that is, not just an example of what
> happens but also an explanation of why, specifically, you don't want
> that to happen and why you want something else to happen instead.
>
> In particular, why would having those horizontal margins dependent on
> the font size of the containing block be useful?
>
> Cheers,
> Anton Prowse
> http://dev.moonhenge.net
Well, this is the use case I regularly run into. html first (not actual
code, just a little abstraction of what I commonly write):
[div class="whatever"]
[h1]my header[/h1]
[p]some paragraphs[/p]
[ul]...[/ul]
[div class="more"][<a href="#"]read more about whatever[/a][/div]
[/div]
for the css, I set my basic layout grid like this:
..whatever>* {margin:0.75em 1em;}
There you have your left and right em margins on the h1 heading. Now if
you start fiddling with the h1 font-size it will start jumping around,
which is not very cool, destroying the vertical grid I've just created.
What I usually do is add a [span] in each heading so I can change the
font-size on the span rather than the h1. Of course you can argue that I
could set my horizontal margins in px rather than ems, but I prefer a
fully proportional scale.
Note that the grid is dependent on the parent, not the element itself
(which should the case anyway, a component should never position itself
to its context, a context should decide how a nested element is
positioned. In this case, things would be much easier (and more logical)
when the em-unit for margins would be taken from the parent (.whatever)
Hope this clears things up a little :)
Greets,
Niels Matthijs
http://www.onderhond.com
Received on Wednesday, 26 January 2011 08:29:21 UTC