Re: [CSS21] Issue 232: meaning of "in-flow" (was Re: Issue 236 - does 'text-decoration' propagate into tables?

On 03/08/2011 08:03 AM, Bert Bos wrote:
> On Mar 4, 2011, at 15:55, Peter Moulder wrote:
>
>> On Fri, Mar 04, 2011 at 09:30:16AM -0800, L. David Baron wrote:
>>> On Friday 2011-03-04 09:36 +0100, Anton Prowse wrote:
>>>> On 04/03/2011 04:15, fantasai wrote:
>>>>> On 10/19/2010 05:56 PM, L. David Baron wrote:
>>>>>> ...
>>>>>> As far as I can tell, CSS 2.1 never defines the term "in-flow".
>>>>>>
>>>>>> If "in-flow" is intended to refer to the definition of "normal
>>>>>> flow", then tables are not in-flow.
>>>>
>>>> How so?  The table wrapper box is either block-level or
>>>> inline-level, right?  Moreover, so are the table box and table
>>>> caption box.  So text-decoration should be propagated into captions.
>>>
>>> Sorry, I should have said "then the contents of tables are not
>>> in-flow relative to the parent of the table".  But otherwise the
>>> point stands, as you note below.
>>
>> Just a point of clarification: Anton above interprets table captions to
>> be part of the normal flow.  "Contents of tables" is ambiguous whether it
>> includes or excludes table captions, though personally I tend to read
>> that term as including table captions, which would differ from Anton's
>> interpretation of whether captions are in the normal flow.
>>
>> I'm just making sure there's agreement on this point (though it's
>> only relevant to the extent that "in the (same) normal flow (as X)"
>> is a relevant concept in the spec; see further down).
>>
>>
>> Something else that may be relevant to the meaning of "in-flow relative
>> to X" is that the table wrapper box establishes a block formatting
>> context (§17.4 para 3).  I don't see that the phrase "in the same
>> normal flow of X" is defined in the current text, so a reader might
>> wonder whether something not in the same block formatting context as X
>> is in the same flow as X or not.
>>
>> I'm not saying that this is a desirable interpretation; I'm just saying
>> that when we do provide a definition of "in-flow relative to X" (and
>> any other phrases involving normal flow), then we should make it clear
>> as to whether or not it includes things that are in different block
>> formatting contexts.
>>
>>> Well, "Hence" under the assumption of "in-flow" meaning "in the
>>> normal flow".
>>
>> I believe David is questioning whether "in-flow" in fact ought to mean
>> "in the normal flow" as distinct from, say, "not floated or absolutely
>> positioned".
>>
>> I believe we do want a term meaning "an element or box that is not
>> floated or absolutely positioned [though may be (or generate a box that
>> is, in the case of an element) inside another box that is floated or
>> absolutely positioned]", and we may well end up using the phrase
>> "in-flow" for this.  Whereas some text does want a term that can be
>> used for descendants, a term (phrase) that includes a "relative to X"
>> qualifier, and that excludes boxes that are in a (different) float or
>> abspos box than X (i.e. that have a float or abspos box between them
>> and X in the ancestry chain).
>>
>> It's less common to want a term that excludes table-cell descendants
>> (I can't offhand think of a place that wants such a term), which is I
>> believe what David is alluding to in the above explicit qualification.
>>
>> pjrm.
>
> Here is a proposed definition of in-flow and out-of-flow. Add in 9.3, after the list:
>
>      An element or :before/:after pseudo element is called _out_of_flow_
>      if it is floated, absolutely positioned, or is the root element.
>
>      An element or :before/:after pseudo-element is called _in-flow_ (or:
>      _in the normal flow_) if it is not out-of-flow.
>
>      The _flow_ (a.k.a. _normal flow_) of an element A is the set consisting
>      of A, all in-flow elements whose nearest out-of-flow ancestor is A, and
>      the in-flow :before/:after pseudo-elements, if any, of all elements in
>      the set.
>
> NB. This says that internal table element are in-flow, because I didn't
> find an occurrence where it mattered. I hope I didn't miss any.

Two comments:
   - I'm not sure we want to define "in the normal flow" as equivalent to
     "in-flow". It might make sense to have "in-flow" have the definition
     above and "in the normal flow" to have the definition dbaron suggests
     for "in-flow" -- especially since this definition seems to be implied
     by the definition of "normal flow" in 9.3

     # Normal flow. In CSS 2.1, normal flow includes block formatting of
     # block-level boxes, inline formatting of inline-level boxes, relative
     # positioning of block-level and inline-level boxes, and formatting of
     # run-in boxes.

   - You should leave out :before/:after in these definitions, since we are
     already defining them to behave the same as normal elements in both
     chapter 12 and chapter 5, and rely on this equivalency throughout most
     of the spec.

~fantasai

Received on Wednesday, 9 March 2011 06:51:28 UTC