मैं व्यूबॉक्स गुणों के साथ इनलाइन एसवीजी बनाने की कोशिश कर रहा हूं, लेकिन कोई स्पष्ट चौड़ाई या ऊंचाई विशेषताओं नहीं है। मैं सीएसएस का उपयोग कर एसवीजी की चौड़ाई 100% पर सेट कर रहा हूं। इसे एसवीजी स्केल को अपने रैपिंग कंटेनर में रखना चाहिए, जो व्यूबॉक्स द्वारा स्थापित पहलू अनुपात को बनाए रखता है। क्रोम और फ़ायरफ़ॉक्स में, यह पूरी तरह से काम करता है!एसवीजी व्यूबॉक्स और चौड़ाई IE के साथ सही ढंग से स्केलिंग नहीं कर रहा है
यहाँ मैं किस बारे में बात कर रहा हूँ का एक न्यूनतम codepen उदाहरण है: http://codepen.io/pcorey/pen/amkGl
HTML:
<div>
<svg viewBox="0 0 100 10">
<text x="1" y="9">hello</text>
</svg>
</div>
सीएसएस:
div {
width: 400px;
}
svg {
width: 100%;
max-height: 100%;
outline: 1px solid tomato;
}
text {
font-size: 10px;
}
viewBox 100x10 है। बाहरी div 400px चौड़ाई निर्धारित करने के लिए सेट है। इसका मतलब है कि एसवीजी की ऊंचाई 40px (और क्रोम/फ़ायरफ़ॉक्स में है) होना चाहिए। लेकिन, आईई 11 में, चौड़ाई हमेशा 150 पीएक्स होती है (भले ही div की चौड़ाई 1500px से अधिक हो ...)
क्या आईई में इसे ठीक करने का कोई अच्छा तरीका है? आईई अज्ञात ऊंचाई को सही तरीके से क्यों नहीं संभाल सकता है? मैं "intrinsic aspect ratio" चाल का उपयोग कर सकता हूं, लेकिन यह बहुत बदसूरत है, एक और डीओएम तत्व की आवश्यकता है, और यह आवश्यक है कि जब भी रैपर आकार बदलता है तो मैं पैडिंग-टॉप को दोबारा बदलता हूं।
कारण है कि मैं ऐसा करना चाहते हैं के बारे में अधिक जानकारी के लिए, मैं इसके बारे में त्वरित ब्लॉग पोस्ट ने लिखा है: http://1pxsolidtomato.com/2014/10/08/quest-for-scalable-svg-text/
मदद के लिए धन्यवाद!
अनुभाग देखें * एसवीजी
आह, हाँ, काम करेगा। मैंने ऐसा करने की कोशिश की, लेकिन मैं एक पिक्सेल पैडिंग की गणना कर रहा था। यदि मैं प्रतिशत का उपयोग करता हूं तो यह पूरी तरह से काम करता है। धन्यवाद! – pcorey