- From: Andrew Fedoniouk <news@terrainformatica.com>
- Date: Wed, 19 Feb 2014 18:18:18 -0800
- To: Daniel Holbert <dholbert@mozilla.com>
- Cc: "Tab Atkins Jr." <jackalmage@gmail.com>, Eric Eastwood <me@ericeastwood.com>, www-style list <www-style@w3.org>
On Wed, Feb 19, 2014 at 2:15 PM, Daniel Holbert <dholbert@mozilla.com> wrote: > On 02/19/2014 01:48 PM, Andrew Fedoniouk wrote: >>> On Tue, Feb 18, 2014 at 6:29 PM, Andrew Fedoniouk >>> <news@terrainformatica.com> wrote: >>>> According to this document http://www.w3.org/TR/CSS2/sample.html >>>> (non-normative I believe though) <button> and <input> are >>>> *inline-block* elements. And Eric was asking about purely display:inline >>>> elements that do not generate boxes by themselves. > [...] >> I see this: >> >> button, textarea, >> input, select { display: inline-block } >> >> in http://www.w3.org/TR/CSS21/sample.html > > So, let's set those elements' display values aside for the moment. > > Even if we specifically targeted "display:inline" (not inline-block) and > thereby avoided changing behavior for button/input, we'd still break > <img>, because it's definitely "display:inline" by default, at least in > Firefox/Gecko, Opera/Presto and Chrome/Blink. [the browsers/engines I > have available locally to test] <img> by its nature is inline-block element either. display:inline mandates two things: 1. requirement to its container - <img> shall be replaced inline with surrounding glyphs and other inlines; 2. element itself does not establish box, 'width' and 'height' are not applicable to it. Having img { display:inline; } defined by default breaks #2. In any case changing defaults of img to { display:inline-block; } must not break anything in standard conforming UA. > > (From briefly searching, I couldn't find any spec text saying that <img> > should be display:inline by default, but it seems that browsers have > converged on that behavior (probably long ago), and that's not likely to > change.) display:inline-block was introduced after display:inline was widely accepted. UAs didn't update their default style sheets to match the spec. For unknown reason. > > So the suggested change would still break any existing content that has > <img> as a flex item, even if it wouldn't break <input>/<button>/etc. > It will not if UAs will fix their default style sheets to img { display:inline-block; } >> When you apply flexbox on span's container that span gets >> treated as boxed element loosing its display:inline nature. >> >> Check this, >> [sample code omitted] >> two divs here should be rendered in the same way. >> That's what Eric was asking about I believe. > > Yes, Tab already recognized and responded to that; see his first reply > on this thread: > http://lists.w3.org/Archives/Public/www-style/2014Feb/0565.html > I understand. Yeah, flexbox already breaks basic 'width' and 'height' properties, and making it to ignore 'display' too will not change the picture drastically, sigh. -- Andrew Fedoniouk. http://terrainformatica.com
Received on Thursday, 20 February 2014 02:18:45 UTC