Ada properti CSS3 untuk ini, yaitu background-size
( pemeriksaan kompatibilitas ). Meskipun seseorang dapat menetapkan nilai panjang, biasanya digunakan dengan nilai khusus contain
dan cover
. Dalam kasus spesifik Anda, Anda harus menggunakan cover
:
body {
background-image: url(images/background.svg);
background-size: cover; /* <------ */
background-repeat: no-repeat;
background-position: center center; /* optional, center the image */
}
Eggsplanation untuk contain
dancover
Maaf untuk permainan kata yang buruk, tapi saya akan menggunakan gambar hari ini oleh Biswarup Ganguly untuk demonstrasi. Katakanlah bahwa ini adalah layar Anda, dan area abu-abu berada di luar layar Anda yang terlihat. Untuk demonstrasi, saya akan mengasumsikan rasio 16x9.
Kami ingin menggunakan gambar hari itu sebagai latar belakang. Namun, kami memangkas gambar menjadi 4x3 karena beberapa alasan. Kami dapat mengatur background-size
properti ke beberapa panjang tetap, tetapi kami akan fokus pada contain
dan cover
. Perhatikan bahwa saya juga berasumsi bahwa kami tidak memotong lebar dan / atau tinggi body
.
contain
contain
Skala gambar, sambil mempertahankan rasio aspek intrinsiknya (jika ada), ke ukuran terbesar sehingga lebar dan tingginya dapat masuk ke dalam area penentuan posisi latar belakang.
Ini memastikan bahwa gambar latar belakang selalu benar-benar terkandung dalam area penentuan posisi latar belakang, namun, mungkin ada beberapa ruang kosong yang diisi dengan Anda background-color
dalam hal ini:
cover
cover
Skala gambar, sambil mempertahankan rasio aspek intrinsiknya (jika ada), dengan ukuran terkecil sehingga lebar dan tingginya dapat sepenuhnya menutupi area penentuan posisi latar belakang.
Ini memastikan bahwa gambar latar belakang menutupi segalanya. Tidak akan terlihat background-color
, namun tergantung pada rasio layar sebagian besar gambar Anda dapat terpotong:
Demonstrasi dengan kode aktual
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%; }
membantu? Juga batuk .