- From: Simon Fraser <smfr@me.com>
- Date: Wed, 26 Jan 2011 19:59:38 -0800
- To: "Tab Atkins Jr." <jackalmage@gmail.com>
- Cc: "L. David Baron" <dbaron@dbaron.org>, Leif Arne Storset <lstorset@opera.com>, www-style@w3.org, Philip Jägenstedt <philipj@opera.com>, "Simon Pieters (zcorpan)" <simonp@opera.com>
On Jan 26, 2011, at 5:15 PM, Tab Atkins Jr. wrote: > On Wed, Jan 26, 2011 at 4:50 PM, L. David Baron <dbaron@dbaron.org> wrote: >> On Wednesday 2011-01-26 11:50 +0100, Leif Arne Storset wrote: >>> I was asked recently whether and why 'object-fit: none' was removed >>> from the spec. Digging in the archives, it seems the proposal to >>> keep/revive it was forgotten amid other issues. So this is a request >>> to re-introduce 'none' as a value for 'object-fit'. The definition >>> would be "Render the content at its intrinsic dimensions, >>> overflowing if necessary." >>> >>> The use case is easy centering or positioning images without scaling >>> them. Centering images vertically in a box can be a PITA today, >>> especially if you don't know the dimensions. With image-fit:none, it >>> is super-easy. Have a look at the attached demo (only supported in >>> Opera 11, AFAIK). >>> >>> (To avoid any confusion: There were objections to our proposal of >>> another value, 'object-fit: auto', because the proposal was that >>> behavior depend on content type. These issues do not affect the >>> current proposal of 'object-fit: none', since no content-type >>> negotation takes place for 'object-fit: none'.) >> >> I think this is a bad idea. (I think the 'object-fit: scale-down' >> proposal later in the thread, however, is fine.) >> >> >> The main things I don't like about it derive from the fact that it >> causes replaced elements to overflow. I now see that >> object-fit:cover also does this, though I don't remember it doing >> that the last time I read the proposal. I'd really like to avoid >> getting into a situation where overflow applies to replaced >> elements; I'd prefer that they just never overflow their content >> box. >> >> (It's also quite inconsistent with what we ended up doing >> about the interaction of border-radius and replaced elements, since >> the border-radius is supposed to clip replaced elements. What >> happens with img { object-fit: cover; border-radius: 10px } ?) >> >> I think making it easy to overflow is generally a bad thing: layout >> systems should make it easy for authors to do what they want in ways >> that don't accidentally cause horrible layouts in a slightly >> different situation (e.g., slightly different viewport size, font >> size, etc.). Having an object-fitting mode that overflows by >> default fails this test (whereas 'scale-down' passes it). This is >> why I'd prefer that replaced elements not overflow their content >> box. > > So, you support removing 'cover' and 'none' entirely? 'cover' is > indeed designed to overflow *by default*. > > Another option is to simply disallow the overflow effect at all - that > is, *always* hide overflow on replaced elements, and ignore the > 'overflow' property. That would solve your concern while still > allowing whatever use-cases 'cover' allows. (I'm not sure why 'cover' > is useful, personally.) I agree with David; the content of replaced elements should never overflow their box, nor should the UA ever show scrollbars because of object-fit. I still think 'cover' is useful, and that it's fine to always treat overflow as hidden. Simon
Received on Thursday, 27 January 2011 04:00:40 UTC