[css3-exclusions] processing model

I'm reading http://dev.w3.org/csswg/css3-exclusions/ and trying to
understand the processing model that it implies (and the
implementation strategy that that processing model would imply), and
I'm having trouble understanding it.  (I think I may have understood
more in the past during a discussion of the spec, but I'm not able
to remember that by reading the spec.)

In particular, the specification appears to be proposing a model
where *any* element (normal flow or not) can create an exclusion
that applies to all content not in a lower exclusion (ranked by
'wrap-shape-order' with ties broken by DOM order).  (I think this is
a bad idea.)

However, in most positioning models (for example, the normal flow,
floats) the position of later content depends on the size of earlier
content, which in turn depends on how that content is wrapped.

Thus it seems that the spec can require an element A's text to wrap
around another element B whose position depends on the size (and
thus wrapping) of element A.  For example:
  <style>
  #b { margin-top: -5em; wrap-shape: circle(5em, 50%, 5em) }
  </style>
  <div id="a">text text ... </div>
  <div id="b"></div>

I don't see anything in the spec that explains how such situations
should be resolved.


(Another issue with such a general model relates to scrollable
elements:  the spec implies that text in a scrollable element must
be rewrapped as the element scrolls; we had this bug with floats
prior to CSS 2.1.  Other things that establish new block formatting
contexts may have similar issues.)

-David

-- 
𝄞   L. David Baron                         http://dbaron.org/   𝄂
𝄢   Mozilla Corporation               http://www.mozilla.com/   𝄂

Received on Saturday, 23 July 2011 23:04:51 UTC