- From: Anton Prowse <prowse@moonhenge.net>
- Date: Sun, 23 Nov 2008 12:53:38 +0100
- To: "www-style@w3.org" <www-style@w3.org>
From CSS21:
Clearance is introduced as spacing above the margin-top of an element.
[...] Computing the clearance of an element on which 'clear' is set is
done by first determining the hypothetical position of the element's top
border edge within its parent block. This position is determined after
the top margin of the element has been collapsed with previous adjacent
margins (including the top margin of the parent block). If this
hypothetical position of the element's top border edge is not past the
relevant floats, then its clearance must be set to the greater of:
1. The amount necessary to place the border edge of the block even
with the bottom outer edge of the lowest float that is to be cleared.
2. [...]
Firstly, it is not clear from a naive reading of expression (1) above
that the amount described can be a negative quantity (and hence that
clearance itself can be negative); only when the assumption is made (as
affirmed in [1]) that the presence of non-zero clearance on an element
prohibits margin-collapsing of that element's margin top with all
non-descendant elements does the spec make sense to me. If this is the
correct reading, could this assumption not be made clearer?
Secondly, whilst the presence of negative clearing results in a
rendering in which the margin-top of the clear appears to disappear[1],
the implication in the spec is that it doesn't really disappear but that
instead there is "negative spacing" above the margin top. To me the
result seems rather like "position: relative; top:
<negative-clearance>". Yet take for example [2]; if the margin-top of
50px is "still there", why doesn't it overlay the first div, thus
covering the hyperlink and making it unclickable?
Thirdly, I understand from [1] that clearance was originally implemented
as a change in margin-top. Superficially this seems intuitive, so
there must be some tricky edge-cases which expose problems with this
implementation. Would somebody be able to summarize these for me or
point me to a description?
Cheers,
Anton
[1] http://dbaron.org/log/2007-03#e20070329a
[2]
http://dev.moonhenge.net/css21/spec/clearance/test-cases/negative-clearance.html
Received on Sunday, 23 November 2008 11:54:24 UTC