2010-09-22 11 views
6

के साथ सीएसएस स्प्राइट्स मैंने अपनी पूरी साइट (+ -30 छवियों) के लिए स्प्राइट शीट को क्रेट करने का निर्णय लिया है, इसलिए मैं 1 छवि लोड कर सकता हूं और केवल संदर्भ स्थिति, जो छवि लोड समय और सर्वर कॉल को कम कर देता है।डायनामिक साइजिंग

मेरा प्रश्न: क्या स्प्राइट शीट में एक छवि का संदर्भ देना संभव है और फिर उस छवि का आकार अपने मूल कंटेनर का 100% है?

तो उदाहरण के लिए:

#SomeDiv 
{ 
    background: url("/Content/Images/SpriteSheet.png") -125px 0 no-repeat; 
    width:100px; 
} 

मेरी div की चौड़ाई 100px है, लेकिन स्प्राइट मैं संदर्भ लेना चाहते हैं (उदाहरण के लिए) 20px है - मैं 100px करने के लिए विकसित करने के लिए निकाली गई स्प्राइट कैसे streth कर सकते हैं?

सम्मान, बायरन कोब।

+1

आप नहीं कर सकते, जब तक कि आप उस के लिए 'पृष्ठभूमि size', लेकिन ब्राउज़र समर्थन का उपयोग पल –

+1

यकीन है कि के लिए एक CSS3 बात है कि में बहुत गरीब है, लेकिन छवि वैसे भी भयानक लग would't? जब तक यह एक ठोस रंग नहीं है .. – Kyle

उत्तर

10

ठीक है, अगर आप वास्तव में एक उत्तर चाहते हैं, तो, क्यों नहीं। देखें: http://jsfiddle.net/3dsgn/3/

असल में हम यहां CSS3 के साथ काम कर रहे हैं, इसलिए IE समर्थन (9 को छोड़कर) मौजूद नहीं है। आपको फ़ायरफ़ॉक्स 3.6 और उसके बाद के संस्करण के लिए -moz- एक्सटेंशन के साथ संस्करण का भी उपयोग करना होगा। तकनीक स्वयं कुछ परेशानी भी है। आपको वास्तव में संख्याओं को स्वयं जाना और गणना करना है - स्वाभाविक रूप से प्रतिशत काम नहीं करेंगे।

#sprite-large { 

    /* All of these numbers are 2x their normal, 
     though tweaked slightly so that they will look okay */ 
    width: 36px; 
    height: 36px; 
    background: url('url/to/your/image.png') -38px -112px; 

    -moz-background-size: 448px 368px; 
    background-size: 448px 368px; 
} 
+0

और यदि आप कंपास बढ़ाते हैं ... यह संकलन पर स्वचालित होगा :) –

+0

ग्रेट वर्क। धन्यवाद, मुझे वास्तव में इसकी आवश्यकता थी और मैं इसे अपने आप से समझने में सक्षम नहीं था। मैं बस यह भी जोड़ने की सिफारिश करना चाहूंगा: '-webkit-background-size: 448px 368px;', क्योंकि मैं देखता हूं कि छवि प्रतिपादन उन वेब ब्राउज़र के साथ सबसे अच्छा है जो वेबकिट –

+1

@ सैंटज़ का समर्थन करते हैं, मुझे नहीं लगता कि यह आवश्यक होगा, चूंकि क्रोम और सफारी दोनों संस्करण 3.0 के बाद से अपरिवर्तित संपत्ति के लिए समर्थन करते हैं। अपरिवर्तित संस्करण समान है और सभी –

संबंधित मुद्दे