- From: fantasai via GitHub <sysbot+gh@w3.org>
- Date: Mon, 19 Dec 2016 22:22:30 +0000
- To: public-css-archive@w3.org
Ok, so Tab and I discussed this today and came up with the following
conclusions.
Things to consider:
1. Authors expect images to maintain their aspect ratio by default.
2. The effective “intrinsic size” of an image in a given dimension,
from an author's point of view, is affected by any sizing constraints
placed on it in the other axis. Nowhere in CSS is the original size of
the image, independent of those constraints, the output of any
automatic sizing algorithm.
3. `align-self` and `justify-self` are defined to be alignment
properties, not sizing properties.
4. In any case, `align-self` and `justify-self` should *always* be
able to perform their duty of assigning extra space in order to align
the item within its container.
Reasoning:
1. The previously-agreed solution of having `normal` do a
stretch-while-preserving-aspect-ratio behavior violates classification
#3 and requirement #4. (It introduces a different, non-trivial sizing
behavior, and prevents the author from controlling the alignment in
the axis that has leftover space.)
2. In order to avoid these violations, `normal` must behave either
exactly as `stretch` or exactly as `start`/`end`/`center` and not
introduce a third sizing behavior. (It can however switch between the
two based on some consideration.)
Proposal:
`normal` behaves as `stretch` for things without an aspect ratio,
and as `start` for things with an aspect ratio.
* This keeps the behavior straightforward to reason about, and
maintains the aspect ratio as expected.
* By default images will take their intrinsic size, which is their
standard behavior in CSS. This can be further controlled with the
sizing properties (width/height and their min/max counterparts) and
`object-fit` as usual.
* The common responsive-design pattern of giving a large image
`max-width: 100%; max-height: 100%` will work as desired here - aspect
ratio is maintained, and it doesn't overflow the grid area.
* The resulting grid item can be aligned with the alignment
properties as expected.
Related improvements that need to be made:
1. Fix <https://github.com/w3c/csswg-drafts/issues/794> to defer
min-content/max-content sizing rules to match CSS2.1 results (as
intended).
2. Finish CSS Sizing 3 so that all of its values can be safely
shipped.
3. If possible, add a `size` shorthand to `width`/`height` to make
it easier to specify various useful sizing behaviors such as
`max-size: fill`, which would grant the desired sizing behavior
expressed by Mats in this thread. (This is equivalent to the
`max-width: 100%; max-height: 100%` paradigm, except it also works
when margins/border/padding are specified.)
<https://github.com/w3c/csswg-drafts/issues/820>
--
GitHub Notification of comment by fantasai
Please view or discuss this issue at
https://github.com/w3c/csswg-drafts/issues/523#issuecomment-268095890
using your GitHub account
Received on Monday, 19 December 2016 22:22:40 UTC