Bunun için bir CSS3 özelliği vardır background-size
( uyumluluk kontrolü ). Bir uzunluk değerleri ayarlamak mümkün olmakla birlikte, genellikle özel değerlerle kullanılır contain
ve cover
. Özel durumunuzda şunları kullanmalısınız cover
:
body {
background-image: url(images/background.svg);
background-size: cover; /* <------ */
background-repeat: no-repeat;
background-position: center center; /* optional, center the image */
}
İçin Eggsplanation contain
vecover
Kötü cinayet için özür dilerim, ama gösteri için Biswarup Ganguly tarafından günün resmini kullanacağım . Bunun sizin ekranınız olduğunu ve gri alanın görünür ekranınızın dışında olduğunu varsayalım. Gösteri için 16x9 oranını alacağım.
Günün yukarıda belirtilen resmini arka plan olarak kullanmak istiyoruz. Ancak, herhangi bir nedenle görüntüyü 4x3'e kırptık. background-size
Mülkü sabit bir uzunluğa ayarlayabiliriz , ancak contain
ve üzerine odaklanacağız cover
. Ayrıca genişliğini ve / veya yüksekliğini değiştirmediğimizi varsayalım body
.
contain
contain
İçsel en boy oranını (varsa) korurken görüntüyü, hem genişliği hem de yüksekliği arka plan konumlandırma alanına sığabilecek şekilde en büyük boyuta ölçeklendirin.
Bu, arka plan görüntüsünün her zaman arka plan konumlandırma alanında tamamen yer almasını sağlar, ancak background-color
bu durumda boş alanınız olabilir :
cover
cover
İçsel en boy oranını (varsa) korurken görüntüyü, hem genişliği hem de yüksekliği arka plan konumlandırma alanını tamamen kaplayacak şekilde en küçük boyuta ölçeklendirin.
Bu, arka plan görüntüsünün her şeyi kapsadığından emin olur. Görünür olmayacak background-color
, ancak ekranın oranına bağlı olarak görüntünüzün büyük bir kısmı kesilebilir:
Gerçek kod ile gösteri
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%; }
olur mu? Ayrıca, öksürük .