CSS styling
The usual ways of styling an <img> element are supported, e.g. width:,
border:, padding:, etc. However the following CSS properties have now
limitations.
object-*:, transform*: and clip-path: properties
In order to zoom in on a specific region of the image, the web component will
set the following CSS properties via the <img style=" HTML attribute:
object-fit:object-position:transform-origin:transform:clip-path:
This will probably override any CSS styling you have set for these properties.
You can disable this behavior by setting the <img data-disabled="all" /> HTML
attribute. The element will then behave like a standard <img> element. See the
attribute reference for more details.
border: and padding: properties
As long as the web component is not zoomed in on a specific region, but instead
has decided that slightly middle-cropping the image is the best option, borders
and padding will be displayed as usual. However, once the web component zooms in
on a specific region, it temporarily overrides them via
<img style="border: none; padding: 0" /> for two reasons:
- It zooms in by applying a CSS
transform: scale(...); clip-path: ...;, thus borders and padding would get pushed and clipped away anyway. - Keeping borders and padding would make mathematical calculations for the zooming algorithm unnecessarily complicated.
If possible, consider wrapping the web component in a <div> element and
applying borders and padding to that instead.
When using the <img data-debug-draw-regions="on" /> HTML attribute,
the web component will always disable borders and padding. See the
attribute reference for more details.
contain: and overflow: properties on the parent element
Zooming in on a region by using CSS transform: scale(...); clip-path: ...;
would normally cause an overflow and thus unwanted scrollbars. To prevent this,
the web component sets CSS contain: paint; on its parent element.
On older browsers and depending on the data-disabled= and
data-css-contain-fallback= HTML attributes it may set overflow: hidden; on
its parent element instead. See CSS containment,
browser support and
attribute reference for more details.