Description
See https://bugs.chromium.org/p/chromium/issues/detail?id=421909#c19
As part of the the photo page redesign on unsplash.com, we want to constrain images by viewport height. We also want to use img srcset and sizes to deliver responsive images.
In our sizes attribute, it's possible to define the width of the image when constrained by viewport height using media queries—for example,
sizes="(min-aspect-ratio: 1/2) 80vh"
. However, if we want to add vertical padding around the image, there appears to be no way to exclude that padding from the calculated aspect ratio.If calculations in media queries were possible, we could achieve this using
(min-width: calc(100vh - var(--vertical-padding)))
. For the time being we are having to rely on JavaScript to perform these calculations, with necessary fallbacks.Here is a full example of the image behaviour we are trying to achieve: http://jsbin.com/melewe/edit?html,css,js,output
This pattern we're pursuing seems to be increasingly common, so it would be great if we could make this easier for authors.
calc()
in MQ would be nice, but better still is probably to allow specifying the image heights directly (in srcset
and sizes
). We excluded this use case originally to reduce complexity, but since this appears to be a recurring issue for web developers, it seems worthwhile to address.
Earlier issue for this: ResponsiveImagesCG/picture-element#86