“A change to overflow on replaced elements in CSS”:
From Chrome 108, the following replaced elements respect the overflow property:
img
,video
andcanvas
. In earlier versions of Chrome, this property was ignored on these elements.This means that an image which was earlier clipped to its content box can now draw outside those bounds if specified to do so in a style sheet.
So any image, video, and canvas elements that used to overflow by default might get clipped when Chrome 108 ships. The noted situations where this might affect your existing work:
- The
object-fit
property is used to scale the image and fill the box. If the aspect ratio does not match the box, the image will draw outside of the bounds. - The
border-radius
property makes a square image look like a circle, but becauseoverflow
is visble the clipping no longer occurs. - Setting
inherit: all
and causing all properties to inherit, includingoverflow
.
Worth reading the full article for code examples, but the solution for unwanted clipping is overriding the UA’s default overflow: clip
with overflow: visible
:
img {
overflow: visible;
}
“Prepare for viewport resize behavior changes coming to Chrome on Android”:
In November, with the release of Chrome 108, Chrome will make some changes to how the Layout Viewport behaves when the on-screen keyboard (OSK) gets shown. With this change, Chrome on Android will no longer resize the Layout Viewport, and instead resize only the Visual Viewport. This will bring Chrome on Android’s behavior up to par with that of Chrome on iOS and Safari on iOS.
This is a change related to the common headaches of working with viewport units and fixed positioning on mobile touch devices. We’ve covered (and tried solving) it over the years:
- “Some Things You Oughta Know When Working with Viewport Units” (Chris Coyier)
- “The trick to viewport units on mobile” (Louis Hoebregts)
- “The Large, Small, and Dynamic Viewports” (Chris Coyier)
- “CSS fix for 100vh in mobile WebKit” (Chris Coyier)
The change means that Chrome on Android will no longer resize the Layout Viewport when the on-screen keyboard is shown. So, the computed values of viewport units will no longer shrink when a device’s keyboard is displayed. Same goes for elements that are designed to take up the full viewport no longer shrinking to accomodate the keyboard. And no longer will a fixed-position element wind up who knows where when the keyboard pops up.
This brings more consistent cross-browser behavior that is on line with Chrome, Safari, and Edge on iOS and iPadOS. That’s great, even if the updated behavior is less than ideal because the keyboard UI can still cover and obscure elements that get in its way.
If you prefer elements to remain visible when that happens, it’s worth looking at a solution Chris shared a long while back that uses the prefixed webkit-fill-available
property:
body {
min-height: 100vh;
min-height: -webkit-fill-available;
}
html {
height: -webkit-fill-available;
}
That uses the available space in the viewport rather than what’s covered by the UI… but Chrome currently ignores the property, and I’d bet the nickel in my pocket that it is unlikely to start respecting it in the 108 release. That may be a moot point, though, as Chrome 108 also introduces support for small, large, and dynamic viewport units, which are already supported in Safari and Firefox.
This browser support data is from Caniuse, which has more detail. A number indicates that browser supports the feature at that version and up.
Desktop
Chrome | Firefox | IE | Edge | Safari |
---|---|---|---|---|
108 | 101 | No | 108 | 15.4 |
Mobile / Tablet
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
117 | 117 | 117 | 15.4 |
Very cool, thanks for sharing.
BTW, if you want to follow all browser updates as they drop, I have an automated Twitter account that lets you know what & when has dropped for major browsers – https://twitter.com/browserstandard
If the new “replaced content respects overflow thing” is going to change expected default behavior, why doesn’t chrome add the style that reverts to the old behavior (overflow: clip) to the user agent styles for img, video, etc?
I presume it’s because they don’t want to alter the “natural” properties of these elements.
Apparently default behavior is not changed but is overflow:clip in UA-Styles as you recommend. Linked article says:
“The default browser style sheet clips the overflow to the content box with the following rules:
img {
overflow: clip;
overflow-clip-margin: content-box;
}”
I verified this in Chrome-Beta.
Thanks for sharing!