이를위한 CSS3 속성이 있습니다 background-size
( 호환성 검사 ). 하나의 길이 값을 설정할 수 있지만, 일반적으로 특별한 값으로 사용되는 contain
및 cover
. 특정한 경우에는 다음을 사용해야합니다 cover
.
body {
background-image: url(images/background.svg);
background-size: cover; /* <------ */
background-repeat: no-repeat;
background-position: center center; /* optional, center the image */
}
대한 Eggsplanation contain
및cover
나쁜 말장난은 미안하지만, Biswarup Ganguly의 오늘 의 그림 을 시연에 사용할 것입니다. 이것이 화면이고 회색 영역이 보이는 화면 외부에 있다고 가정 해 봅시다. 시연을 위해 16x9 비율을 가정하겠습니다.
위에서 언급 한 오늘의 그림을 배경으로 사용하고 싶습니다. 그러나 어떤 이유로 이미지를 4x3으로 자릅니다. 우리는 설정할 수 있습니다 background-size
몇 가지 고정 된 길이 속성을하지만, 우리는에 초점을 맞출 것이다 contain
및 cover
. 또한 너비 및 높이를 엉망으로하지 않았다고 가정합니다 body
.
contain
contain
너비와 높이가 모두 배경 위치 영역 안에 들어갈 수 있도록 이미지의 고유 종횡비 (있는 경우)를 가장 큰 크기로 유지합니다.
그러면 배경 이미지가 항상 배경 위치 영역에 완전히 포함되지만 background-color
이 경우 빈 공간이 채워질 수 있습니다 .
cover
cover
너비와 높이가 모두 배경 위치 영역을 완전히 덮을 수 있도록 이미지를 고유 한 종횡비 (있는 경우)를 가장 작은 크기로 유지합니다.
이것은 배경 이미지가 모든 것을 덮고 있는지 확인합니다. 표시되지 background-color
않지만 화면 비율에 따라 이미지의 대부분이 잘릴 수 있습니다.
실제 코드를 사용한 데모
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%; }
도움? 또한 기침 .