배경 이미지 CSS를 늘리시겠습니까?


176
<td class="style1" align='center' height='35'>
  <div style='overflow: hidden; width: 230px;'>
    <a class='link' herf='' onclick='topic(<?=$key;?>)'>
      <span id='name<?=$key;?>'><?=$name;?></span>
    </a>
  </div>
</td>

이것은 내 CSS 스크립트입니다

.style1 {
  background-image: url('http://localhost/msite/images/12.PNG');
  background-repeat: no-repeat;
  background-position: left center;
}

세포 background-image전체 를 스트레칭하고 싶습니다<td>


래스터 이미지를 늘리면 품질이 저하됩니다.
wdm


@wdm : svg 인 경우 품질 저하가 발생하지 않습니다.
posit labs

답변:


297
.style1 {
  background: url(images/bg.jpg) no-repeat center center fixed;
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-size: cover;
}

다음에서 작동합니다.

  • 사파리 3+
  • Chrome Whatever +
  • IE 9 이상
  • Opera 10+ (Opera 9.5는 배경 크기는 지원하지만 키워드는 지원하지 않음)
  • Firefox 3.6 이상 (Firefox 4는 비 공급 업체 접두사 버전을 지원합니다)

또한 당신은 IE 솔루션을 위해 이것을 시도 할 수 있습니다

filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='.myBackground.jpg', sizingMethod='scale');
-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='myBackground.jpg', sizingMethod='scale')";
zoom: 1;

Chris Coyier http://css-tricks.com/perfect-full-page-background-image/ 의이 기사에 대한 크레딧


이 잘 작동하지만 어떻게 내가 할 수있는 높이 만 스트레칭하고 싶습니다
부폰

3
감사합니다. 코드에서 원하는대로 변경 -moz-background-size: 100% 100%;하면 작동합니다 ... thank u
Buffon

1
또 다른 IE8과 낮은 솔루션 : github.com/louisremi/background-size-polyfill
Irongaze.com

6
변경 후 나를 위해 일한 background-size: cover;`100 % 100 %`배경 - 크기
ivan.mylyanyk

1
고정 높이 (130px)와 전체 너비가 필요했습니다. :이 일을 background: url("images/bg.jpg") no-repeat center 0 fixed;하고 background-size: 100% 130px;(등). 답변의 경우와 같이 높이를 가운데에 맞추면 배경이 충분히 짧으면 배경이 숨겨집니다.
sleeparrow

62

CSS3 : http://webdesign.about.com/od/styleproperties/p/blspbgsize.htm

.style1 {
  ...
  background-size: 100%;
}

다음을 사용하여 너비 또는 높이 만 지정할 수 있습니다.

background-size: 100% 50%;

너비 100 %, 높이 50 %로 늘어납니다.


브라우저 지원 : http://caniuse.com/#feat=background-img-opts


1
와우, 그것은 나를 위해 완벽하게 작동했습니다-나는 다른 답변과 일련의 다른 기술을 시도했습니다. 그러나 이것은 매우 간단하고 즉시 작동했습니다. 감사합니다 : D
DylanT 25

11

CSS 3까지는 배경 이미지를 늘릴 수 없습니다.

셀 안에 이미지 태그를 넣고 전체 셀을 덮도록 이미지 태그를 늘린 다음 내용을 이미지 위에 놓을 수 있도록 절대 위치를 사용해야합니다.

table {
  width: 230px;
}

.style1 {
  text-align: center;
  height: 35px;
}

.bg {
  position: relative;
  width: 100%;
  height: 100%;
}

.bg img {
  display: block;
  width: 100%;
  height: 100%;
}

.bg .linkcontainer {
  position: absolute;
  left: 0;
  top: 0;
  overflow: hidden;
  width: 100%;
}
<table cellpadding="0" cellspacing="0" border="10">
  <tr>
    <td class="style1">
      <div class="bg">
        <img src="http://placekitten.com/20/20" alt="" />
        <div class="linkcontainer">
          <a class="link" href="#">
            <span>Answer</span>
          </a>
        </div>
      </div>
    </td>
  </tr>
</table>


1
+1, 맞습니다. 또한 너비와 높이를 최대 <img><div>갖는 것이 좋습니다 position: relative;. TD 자체는 모든 브라우저에 상대 위치가있는 것은 아닙니다.
madr

IE, +1로 어려움을 겪고있었습니다.
arjuncc

9

나는 당신이 찾고있는 것이

.style1 {
  background: url('http://localhost/msite/images/12.PNG');
  background-repeat: no-repeat;
  background-position: center;
  -webkit-background-size: contain;
  -moz-background-size: contain;
  -o-background-size: contain;
  background-size: contain;
}

이것이 바로 내가 필요한 것입니다!
Rachelle Uy

0

2019에서 완벽하게 작동합니다.

.marketing-panel  {
    background-image: url("../images/background.jpg");
    background-repeat: no-repeat;
    background-size: auto;
    background-position: center;
}

-7

이것을 코드 줄에 붙여 넣으십시오.

<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.