Hierfür gibt es eine CSS3-Eigenschaft, nämlich background-size
( Kompatibilitätsprüfung ). Während man Längenwerte einstellen kann, wird es normalerweise mit den speziellen Werten contain
und verwendet cover
. In Ihrem speziellen Fall sollten Sie Folgendes verwenden cover
:
body {
background-image: url(images/background.svg);
background-size: cover; /* <------ */
background-repeat: no-repeat;
background-position: center center; /* optional, center the image */
}
Eiererklärung für contain
undcover
Entschuldigung für das schlechte Wortspiel, aber ich werde das Bild des Tages von Biswarup Ganguly zur Demonstration verwenden. Nehmen wir an, dies ist Ihr Bildschirm, und der graue Bereich befindet sich außerhalb Ihres sichtbaren Bildschirms. Zur Demonstration gehe ich von einem 16x9-Verhältnis aus.
Wir wollen das oben erwähnte Bild des Tages als Hintergrund verwenden. Aus irgendeinem Grund haben wir das Bild jedoch auf 4x3 zugeschnitten. Wir könnten die background-size
Eigenschaft auf eine feste Länge einstellen , aber wir werden uns auf contain
und konzentrieren cover
. Beachten Sie, dass ich auch davon ausgehe, dass wir die Breite und / oder Höhe von nicht entstellt haben body
.
contain
contain
Skalieren Sie das Bild unter Beibehaltung seines intrinsischen Seitenverhältnisses (falls vorhanden) auf die größte Größe, sodass sowohl seine Breite als auch seine Höhe in den Hintergrundpositionierungsbereich passen.
Dadurch wird sichergestellt, dass das Hintergrundbild immer vollständig im Hintergrundpositionierungsbereich enthalten ist. background-color
In diesem Fall kann jedoch ein leerer Bereich mit Ihrem Bild gefüllt sein :
cover
cover
Skalieren Sie das Bild unter Beibehaltung seines intrinsischen Seitenverhältnisses (falls vorhanden) auf die kleinste Größe, sodass sowohl seine Breite als auch seine Höhe den Hintergrundpositionierungsbereich vollständig abdecken können.
Dies stellt sicher, dass das Hintergrundbild alles abdeckt. Es wird kein background-color
Bild angezeigt. Abhängig vom Bildschirmverhältnis kann jedoch ein großer Teil Ihres Bildes abgeschnitten werden:
Demonstration mit aktuellem Code
div > div {
background-image: url(http://i.stack.imgur.com/r5CAq.jpg);
background-repeat: no-repeat;
background-position: center center;
background-color: #ccc;
border: 1px solid;
width: 20em;
height: 10em;
}
div.contain {
background-size: contain;
}
div.cover {
background-size: cover;
}
/********************************************
Additional styles for the explanation boxes
*********************************************/
div > div {
margin: 0 1ex 1ex 0;
float: left;
}
div + div {
clear: both;
border-top: 1px dashed silver;
padding-top:1ex;
}
div > div::after {
background-color: #000;
color: #fefefe;
margin: 1ex;
padding: 1ex;
opacity: 0.8;
display: block;
width: 10ex;
font-size: 0.7em;
content: attr(class);
}
<div>
<div class="contain"></div>
<p>Note the grey background. The image does not cover the whole region, but it's fully <em>contained</em>.
</p>
</div>
<div>
<div class="cover"></div>
<p>Note the ducks/geese at the bottom of the image. Most of the water is cut, as well as a part of the sky. You don't see the complete image anymore, but neither do you see any background color; the image <em>covers</em> all of the <code><div></code>.</p>
</div>
html, body { height: 100%; }
? Auch Husten .