Posted 2 months ago. Visible to the public.

CSS: How to force background images to scale to the container, ignoring aspect ratio

You can scale background images in CSS to the container size using background-size ( Demo Archive ).

Commonly, we use contain or cover because we want to preserve the image's aspect ratio.
If you do not want to do that, simply provide scaling values for X and Y:

background-size: 100% 100%

(a simple 100% would mean 100% auto and respect the image's aspect ratio)

SVGs with a viewBox will force their aspect ratio

The above may not work for you when using SVG images. In that case, you must remove the viewBox attribute from your SVG.

There is no way to do that in CSS, you must edit the file manually (SVGs are just XML) or use some kind of pre-processing.

You could probably also hack together a solution in JavaScript which downloads the background image file, rewrites the XML string and generates a data: URI. I have not tried that, as it was not relevant for me (and there might be several edge cases).

Growing Rails Applications in Practice
Check out our new e-book:
Learn to structure large Ruby on Rails codebases with the tools you already know and love.

Owner of this card:

Arne Hartherz
Last edit:
about 1 month ago
by Henning Koch
About this deck:
We are makandra and do test-driven, agile Ruby on Rails software development.
License for source code
Posted by Arne Hartherz to makandra dev
This website uses short-lived cookies to improve usability.
Accept or learn more