Re: [CSS21] Proposal to define "Block container element"

On 22/07/2012 10:43, Aharon (Vladimir) Lanin wrote:
>>>> On 07/14/2012 07:12 PM, Anton Prowse wrote:
>>>>>
>>>>> (1) The definition of "principal block-level box" is
>>>>> extended to "principal box" for a wider range of elements
>>>>> (inline block, inline table and table cell in addition to
>>>>> block-level elements).This
>>>>> has no effect on the rest of the spec, since the only cases
>>>>> where the principal box is referred to is in the context of
>>>>> block-level elements/boxes.
>>>>>
>>>>> (2) The term "block container element" is introduced to mean
>>>>> an element whose principal box is a block container box, ie a
>>>>> block, list-item, inline-block, table, inline-table or
>>>>> table-cell in CSS21.
>
> A couple of questions:
>
> - Is this discussion relevant to CSS 2.1 only? In other words, is a "block
> container" defined in CSS3 somewhere?

"Block container box" is currently defined in css3-box but that spec 
needs a fair bit of work to get it roadworthy.  The official definition 
is in CSS21 right now.  "Block container element" will also be defined 
in css3-box, but it would be very useful to have that term in CSS21 to 
help solve several of the issues on that spec that are filed for fixing 
in errata.

> - Would the proposed definition also apply to such things as <textarea>,
> elements with float, and elements with absolute position?

Right now, non-replaced floated boxes and abspos boxes are classified in 
CSS21 as being block container boxes.  Floats are defined to be 
block-level boxes, but IIRC CSS21 is a little vague about whether abspos 
boxes are block-level; the implication is that they are, because the 
computed value of 'display' is set to 'block', irrespective of the 
specified value.  Hence floats and abspos boxes are principal 
(block-level) boxes according to the current spec, and will continue to 
be under my proposed change.  Hence non-replaced floats and abspos 
elements will indeed be block container elements.

<textarea> is harder to speak for, since HTML form elements are magic 
and CSS doesn't entirely define their behaviour.  I think of form 
elements as being replaced elements.  Whether that's the case or not, 
<textarea> (along with <input>, <select> and <button>) are recommended 
in Appendix D to be inline-blocks.  This means that:
(1) the atomic box that these four elements (and indeed inline blocks in 
general) generate will be a "principal box" under my proposed change.
(2) the question of whether they will be block container elements 
depends on whether their principal box is a block container box.  If you 
believe, like I do, that they are replaced elements, then their 
principal box is /not/ a block container box.  If they are not replaced 
elements, then implementations each need to decide upon an answer.

Cheers,
Anton Prowse
http://dev.moonhenge.net

Received on Monday, 23 July 2012 09:42:25 UTC