Wenn Sie können, verwenden Sie Hintergrundbilder und stellen Sie ein background-size: cover
. Dadurch wird der Hintergrund das gesamte Element abdecken.
CSS
div {
background-image: url(path/to/your/image.png);
background-repeat: no-repeat;
background-position: 50% 50%;
background-size: cover;
}
Wenn Sie keine Inline-Bilder mehr verwenden möchten, stehen Ihnen einige Optionen zur Verfügung. Erstens gibt es
Objektanpassung
Diese Eigenschaft wirkt sich auf Bilder, Videos und andere ähnliche Objekte aus background-size: cover
.
CSS
img {
object-fit: cover;
}
Leider ist die Browserunterstützung nicht so gut, da der IE bis Version 11 sie überhaupt nicht unterstützt. Die nächste Option verwendet jQuery
CSS + jQuery
HTML
<div>
<img src="image.png" class="cover-image">
</div>
CSS
div {
height: 8em;
width: 15em;
}
Benutzerdefiniertes jQuery-Plugin
(function ($) {
$.fn.coverImage = function(contain) {
this.each(function() {
var $this = $(this),
src = $this.get(0).src,
$wrapper = $this.parent();
if (contain) {
$wrapper.css({
'background': 'url(' + src + ') 50% 50%/contain no-repeat'
});
} else {
$wrapper.css({
'background': 'url(' + src + ') 50% 50%/cover no-repeat'
});
}
$this.remove();
});
return this;
};
})(jQuery);
Verwenden Sie das Plugin wie folgt
jQuery('.cover-image').coverImage();
Es wird ein Bild aufgenommen, als Hintergrundbild auf dem Wrapper-Element des Bildes festgelegt und das entfernt img
Tag aus dem Dokument. Zuletzt könnten Sie verwenden
Reines CSS
Sie können dies als Fallback verwenden. Das Bild wird vergrößert, um den Container abzudecken, aber nicht verkleinert.
CSS
div {
height: 8em;
width: 15em;
overflow: hidden;
}
div img {
min-height: 100%;
min-width: 100%;
width: auto;
height: auto;
max-width: none;
max-height: none;
display: block;
position: relative;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
Hoffe das könnte jemandem helfen, fröhliches Codieren!