2012-12-27 12 views
50

का उपयोग कर मैं एक एसवीजी rect तत्व पर एक ढाल लागू करने की कोशिश कर रहा हूं।सीवीजी ग्रेडियेंट सीएसएस

वर्तमान में, मैं fill विशेषता का उपयोग कर रहा हूं। मेरी सीएसएस फ़ाइल में:

rect { 
    cursor: pointer; 
    shape-rendering: crispEdges; 
    fill: #a71a2e; 
} 

और rect तत्व सही भरण रंग जब ब्राउज़र में देखा है।

हालांकि, मैं जानना चाहता हूं कि क्या मैं इस तत्व के लिए रैखिक ढाल लागू कर सकता हूं?

उत्तर

55

बस सीएसएस में उपयोग करें जो आप fill विशेषता में उपयोग करेंगे। बेशक, यह आवश्यक है कि आपने अपने एसवीजी में कहीं रैखिक ढाल को परिभाषित किया हो।

rect { 
 
    cursor: pointer; 
 
    shape-rendering: crispEdges; 
 
    fill: url(#MyGradient); 
 
}
<svg width="100" height="50" version="1.1" xmlns="http://www.w3.org/2000/svg"> 
 
     <style type="text/css"> 
 
     rect{fill:url(#MyGradient)} 
 
     </style> 
 
     <defs> 
 
     <linearGradient id="MyGradient"> 
 
      <stop offset="5%" stop-color="#F60" /> 
 
      <stop offset="95%" stop-color="#FF6" /> 
 
     </linearGradient> 
 
     </defs> 
 
     
 
     <rect width="100" height="50"/> 
 
    </svg>

+1

तो मैं एक में है कि ढाल बनाया

यहां एक संपूर्ण उदाहरण है अलग फ़ाइल, और इस तरह 'भरें' का उपयोग किया: 'भरें: url (../ js/gradient.svg # MyGradient);'। क्या यह सही तरीका है? –

+0

@ ऋषिकेश चौधरी: हाँ, यह सही है, लेकिन क्रोम और मुझे लगता है कि सफारी भी अन्य फाइलों के संदर्भ तत्वों का समर्थन नहीं करता है। IE9 के बारे में निश्चित नहीं है (अभी परीक्षण नहीं कर सकता, बस इसे आज़माएं)। –

+1

यह फ़ायरफ़ॉक्स में काम करेगा, लेकिन मेरी निराशा के लिए, यह वेबकिट (सफारी/क्रोम) में काम नहीं करता है। क्या मजाक है! भविष्य के लिए यहां है ... –

-6

यहाँ एक लक्ष्य तत्व पर एक linearGradient सेट करने का तरीका है:

$output = '<style type="text/css"> 
    path{fill:url(\''.$_SERVER['REQUEST_URI'].'#MyGradient\')} 
</style> 
<defs> 
    <linearGradient id="MyGradient"> 
     <stop offset="0%" stop-color="#e4e4e3" ></stop> 
     <stop offset="80%" stop-color="#fff" ></stop> 
    </linearGradient> 
</defs>'; 
संबंधित मुद्दे