[css] div를 채우기 위해 배경 이미지를 늘리는 방법

배경 이미지를 다른 div로 설정하고 싶지만 내 문제는 다음과 같습니다.

  1. 이미지의 크기는 고정 (60px)입니다.
  2. 다양한 div 크기

div의 전체 배경을 채우기 위해 배경 이미지를 늘리려면 어떻게해야합니까?

#div2{
  background-image:url(http://s7.static.hootsuite.com/3-0-48/images/themes/classic/streams/message-gradient.png);
  height:180px;
  width:200px;
  border: 1px solid red;
}

여기에서 코드를 확인하세요.



답변

더하다

background-size:100% 100%;

배경 이미지 아래의 CSS에.

정확한 치수를 지정할 수도 있습니다. 예 :

background-size: 30px 40px;

여기 : JSFiddle


답변

당신이 사용할 수있는:

background-size: cover;

또는 다음과 함께 큰 배경 이미지를 사용하십시오.

background: url('../images/teaser.jpg') no-repeat center #eee;


답변

최신 CSS3 (미래 권장 및 아마도 최상의 솔루션)

.selector{
   background-size: cover;
   /* stretches background WITHOUT deformation so it would fill the background space,
      it may crop the image if the image's dimensions are in different ratio,
      than the element dimensions. */
}

맥스. 자르기 또는 변형없이 늘이기 ( 배경을 채울 수 없음) : background-size: contain;

절대 늘이기 (변형을 일으킬 수 있지만 자르기 없음) : background-size: 100% 100%;

“오래된”CSS “항상 작동하는”방식

(상대 위치) 부모 의 첫 번째 자식으로 이미지를 절대 위치 지정 하고 부모 크기로 늘립니다.

HTML

<div class="selector">
   <img src="path.extension" alt="alt text">
   <!-- some other content -->
</div>

CSS3와 동일 background-size: cover;:

이를 동적으로 달성하려면 컨테이너 대안 (아래 참조) 의 반대 를 사용해야 하며 잘린 이미지를 중앙에 배치해야하는 경우 동적으로 수행하려면 JavaScript가 필요합니다 (예 : jQuery 사용).

$('.selector img').each(function(){
   $(this).css({
      "left": "50%",
      "margin-left": "-"+( $(this).width()/2 )+"px",
      "top": "50%",
      "margin-top": "-"+( $(this).height()/2 )+"px"
   });
});

실제 예 :

예제와 같은 CSS 자르기

CSS3와 동일 background-size: contain;:

이것은 약간 까다로울 수 있습니다. 부모가 오버플로되는 배경의 크기는 CSS를 100 %로 설정하고 다른 하나는 자동으로 설정합니다.
실제 예 :
CSS를 이미지로 배경 스트레칭

.selector img{
   position: absolute; top:0; left: 0;
   width: 100%;
   height: auto;
   /* -- OR -- */
   /* width: auto;
      height: 100%; */
}

CSS3와 동일 background-size: 100% 100%;:

.selector img{
   position: absolute; top:0; left: 0;
   width: 100%;
   height: 100%;
}

추신 : “이전”방식으로 완전히 동적으로 커버 / 컨테 이닝을 수행하려면 (오버플로 / 비율에 대해 신경 쓸 필요가 없습니다) 자바 스크립트를 사용하여 비율을 감지하고 설명 된대로 크기를 설정해야합니다. ..


답변

이를 위해 CSS3 background-size속성을 사용할 수 있습니다 . 다음과 같이 작성하십시오.

#div2{
    background-image:url(http://s7.static.hootsuite.com/3-0-48/images/themes/classic/streams/message-gradient.png);
    -moz-background-size:100% 100%;
    -webkit-background-size:100% 100%;
    background-size:100% 100%;
    height:180px;
    width:200px;
    border: 1px solid red;
}

이것을 확인하십시오 : http://jsfiddle.net/qdzaw/1/


답변

다음을 추가 할 수 있습니다.

#div2{
    background-image:url(http://s7.static.hootsuite.com/3-0-48/images/themes/classic/streams/message-gradient.png);
    background-size: 100% 100%;
    height:180px;
    width:200px;
    border: 1px solid red;
}

여기에서 더 많은 것을 읽을 수 있습니다 : css3 background-size


답변

body{
  margin:0;
  background:url('image.png') no-repeat 50% 50% fixed;
  background-size: cover;
}


답변

속성 css를 사용하여 :

background-size: cover;