Arka plan resmi css uzatmak?


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>

Bu benim CSS betiğim

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

background-imageTüm <td>hücrenin üzerine uzanmak istiyorum


Raster görüntülerin gerilmesinin kaliteyi düşürdüğüne dikkat edin.
wdm


@wdm: eğer bir svg ise kalite bozulması olmaz.
posit labs

Yanıtlar:


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;
}

Çalıştığı yerler:

  • Safari 3+
  • Chrome +
  • IE 9+
  • Opera 10+ (Opera 9.5, arka plan boyutunu destekledi ancak anahtar kelimeleri desteklemedi)
  • Firefox 3.6+ (Firefox 4, satıcı olmayan ön ekli sürümü destekler)

Ayrıca bunu bir IE çözümü için deneyebilirsiniz

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

Bu makaleye Chris Coyier tarafından verilen http://css-tricks.com/perfect-full-page-background-image/


Bu iyi çalışıyor ama sadece nasıl yapabilirim yüksekliği uzatmak istiyorum
Buffon

3
Kodunuzda -moz-background-size: 100% 100%;istediğim gibi çalıştığında çalıştığım için teşekkürler ... teşekkürler u
Buffon

1
Başka bir IE8 ve daha düşük çözüm: github.com/louisremi/background-size-polyfill
Irongaze.com

6
background-size: cover;`` arka plan boyutu:% 100% 100 '' olarak değiştirdikten sonra benim için çalıştı ;
ivan.mylyanyk

1
Sabit bir yüksekliğe (130 piksel) ve tam genişliğe ihtiyacım vardı. Bu işe yaradı: background: url("images/bg.jpg") no-repeat center 0 fixed;ve background-size: 100% 130px;(vb.). Yüksekliği ortalamak (yanıttaki gibi), yeterince kısa olsaydı arka planı gizlerdi.
sleeparrow

62

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

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

Yalnızca genişlik veya yüksekliği aşağıdakilerle belirleyebilirsiniz:

background-size: 100% 50%;

Bu, genişliğin% 100'ünü ve yüksekliğinin% 50'sini gerecek.


Tarayıcı desteği: http://caniuse.com/#feat=background-img-opts


1
Vay be, bu benim için mükemmel çalıştı - diğer cevapları ve bir dizi farklı tekniği denedim. Ama bu çok basitti ve anında çalıştı. Teşekkür ederim: D
DylanT 25

11

Arka plan resmini uzatamazsınız (CSS 3'e kadar).

Mutlak konumlandırma kullanmanız gerekir, böylece hücrenin içine bir görüntü etiketi koyabilir ve tüm hücreyi kapsayacak şekilde gerebilir, ardından içeriği görüntünün üstüne koyabilirsiniz.

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, doğru. Aynı zamanda sarmak için iyi bir fikirdir <img>, bir ile <div>sahip position: relative;ve maksimum genişlik / yükseklik. TD'nin kendisi varsa tüm tarayıcılarda göreceli olarak konumlandırılmamıştır.
madr

IE ile mücadele ediyordum, bunun için +1
arjuncc

9

Bence aradığın şey

.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;
}

tam da ihtiyacım olan şey bu!
Rachelle Uy

0

2019'da sorunsuz çalışıyor

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

-7

Bunu kod satırınıza yapıştırın:

<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.