This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 16445 - (editorial) Ch 4. Flexbox Items
Summary: (editorial) Ch 4. Flexbox Items
Status: RESOLVED FIXED
Alias: None
Product: CSS
Classification: Unclassified
Component: Flexbox (show other bugs)
Version: unspecified
Hardware: PC All
: P2 normal
Target Milestone: ---
Assignee: Tab Atkins Jr.
QA Contact: public-css-bugzilla
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-03-20 10:40 UTC by Kang-Hao (Kenny) Lu
Modified: 2012-04-17 17:21 UTC (History)
2 users (show)

See Also:


Attachments

Description Kang-Hao (Kenny) Lu 2012-03-20 10:40:03 UTC
Section: http://dev.w3.org/csswg/css3-flexbox/#flex-items

  # Flexbox layout algorithm operates on flexbox items, which are boxes that
  # satisfy at least one of the following criteria:

I can't think of boxes that can simultaneously satisfy two criteria. Can we remove "at least" here? It might be confusing even if it is mathematically sound.

  #    <!-- flexbox item: block-level replaced element -->
  #    <iframe id="item7"> 

<iframe> is by default 'display: inline'.

  #    <!-- flexbox item: inline-level replaced element -->
  #    <img id="item7" style="display:inline">

I don't think 'style="display:inline"' is necessary here. It's not clear to me if that declaration would actually make things clearer or confuse people...

  #    <!-- flexbox item: inline-level replaced element -->
  #    <button id="item8">button</button>

I know <button> is atomic, although whether it is a replaced element seems quite debatable...
Comment 1 Kang-Hao (Kenny) Lu 2012-03-20 11:11:11 UTC
  # For example, a lone ‘table-cell’ box is fixed up by generating ‘table’,
  # ‘table-row-group’, and ‘table-row’ boxes around it.

CSS 2.1 currently doesn't generate 'table-row-group' (because it is not detectable maybe?).
Comment 2 Kang-Hao (Kenny) Lu 2012-03-20 11:49:08 UTC
  #  <!-- not a flexbox item, because it's out-of-flow -->
  #  <div id="not-an-item1.5" style="position: absolute;">block</div>
  #    
  #  <!-- flexbox item: block-level child -->
  #  <div id="item2" style="display:table">table</div>

Given that the placeholder for the absolutely positioned element generates an anonymous flexbox item, the next number should be item3, I think.

  #  <!-- flexbox item: anonymous block around inline content -->
  #  anonymous item 4

It's not clear to me if you really want to classify an anonymous flexbox item as an anonymous block, given that you didn't say so in

  # 3. Contiguous run of non-replaced inline children, wrapped into an anonymous
  # box

and given that an atomic inline-level flexbox item is not a block. (That is, the annonymous flexblox item could be an anonymous inline-block too (at least conceptually since it doesn't matter).)
Comment 3 Tab Atkins Jr. 2012-03-20 18:41:17 UTC
Fixed all your issues.  I fixed the last by specifying "block box" - boxes need to have their type specified, even if it's undetectable currently.