2012-02-07 39 views
20

İstenildiği gibi çalışmasını sağlayamıyorum. Sadece ile bunu yapmak mümkün mü Benim sayfa yüklendiğinde içeriği temel yüksekliğini değiştirir ve bir kaydırma gerektiriyorsa, svg germe olmak görünmüyor ...SVG'yi arka plan resmi olarak kullanma

html { 
 
    height: 100%; 
 
    background-image: url(http://www.horizonchampion.eu/themes/projectbase/images/bg.svg); 
 
    background-size: 100% 100%; 
 
    -o-background-size: 100% 100%; 
 
    -webkit-background-size: 100% 100%; 
 
    background-size: cover; 
 
}
<svg width="1024" height="800" xmlns="http://www.w3.org/2000/svg"> 
 
     <defs> 
 
      <radialGradient fy="0.04688" fx="0.48047" r="1.11837" cy="0.04688" cx="0.48047" id="svg_2"> 
 
       <stop stop-color="#ffffff" offset="0"/> 
 
       <stop stop-opacity="0" stop-color="#eaeaea" offset="1"/> 
 
      </radialGradient> 
 
      <radialGradient fy="0.04688" fx="0.48047" r="1.71429" cy="0.04688" cx="0.48047" id="svg_5"> 
 
       <stop stop-color="#ffffff" offset="0"/> 
 
       <stop stop-opacity="0" stop-color="#eaeaea" offset="1"/> 
 
      </radialGradient> 
 
     </defs> 
 
     <g display="inline"> 
 
      <title>Layer 1</title> 
 
      <rect fill="#eaeaea" stroke-width="0" x="0" y="0" width="1024" height="800" id="svg_1"/> 
 
     </g> 
 
     <g> 
 
       <title>Layer 2</title> 
 
       <rect id="svg_3" height="282" width="527" y="1" x="1" stroke-width="0" fill="url(#svg_2)"/> 
 
       <rect id="svg_4" height="698" width="1021.99999" y="1" x="1" stroke-width="0" fill="url(#svg_5)"/> 
 
     </g> 
 
    </svg>

CSS3? Bir JS kütüphanesi yüklemek veya aramak zorunda kalmak istemiyorum ... Herhangi bir fikir? Teşekkürler!

cevap

1

senin body

body { 
    height: 100%; 
    background-image: url(../img/bg.svg); 
    background-size:100% 100%; 
    -o-background-size: 100% 100%; 
    -webkit-background-size: 100% 100%; 
    background-size:cover; 
} 
+0

Bazı gerçek garip davranışlar yok Ayrıca html var {yükseklik:% 100} –

+0

svg belirtilen 800px yükseklik ulaşıldıktan sonra yinelenen tutar. Yüksekliğini ve genişliğini svg% 100'de yapmaya çalıştım, bu sadece daha da kötüleştirdi. –

+0

Tekrarlandığından emin misin? Alttan gelen arka plan rengiyle bir rekt var. – Duopixel

22

Sen svg kök elemana width ve height özelliklerini kaldırmayı deneyebilirsiniz yerine preserveAspectRatio="none" viewBox="0 0 1024 800" ekleyerek üzerine yerleştirmeyi deneyin. En azından, svg'nin CSS stilleri tarafından tanımlanan tüm bölgeyi dolduracağını düşündüğünüz varsayılarak, Opera'da bir fark yaratır.

+0

Bu benim için hile nedir – Octopus

0

svg etiketinize sabit genişlik ve yükseklik ayarladınız. Bu muhtemelen senin sorununun köküdür. Bunları kaldırmaya çalışmayın ve bunun yerine CSS'yi kullanarak genişlik ve yüksekliği (gerekirse) ayarlayın.