मैं क्रॉस-ब्राउज़र (> = IE6,> = फ़ायरफ़ॉक्स 2, क्रोम, सफारी या ओपेरा के किसी भी संस्करण) के साथ पाठ के एक शब्द को 90 डिग्री तक घुमाना चाहता हूं। यह कैसे किया जा सकता है?
मैं क्रॉस-ब्राउज़र (> = IE6,> = फ़ायरफ़ॉक्स 2, क्रोम, सफारी या ओपेरा के किसी भी संस्करण) के साथ पाठ के एक शब्द को 90 डिग्री तक घुमाना चाहता हूं। यह कैसे किया जा सकता है?
जवाबों:
हाल ही की जानकारी ( CSS ट्रिक्स से ) के साथ इस उत्तर को अपडेट करें । फिल्टर कार्यान्वयन को इंगित करने के लिए कुदोस टू मैट और डगलस।
.rotate {
-webkit-transform: rotate(-90deg);
-moz-transform: rotate(-90deg);
-ms-transform: rotate(-90deg);
-o-transform: rotate(-90deg);
transform: rotate(-90deg);
/* also accepts left, right, top, bottom coordinates; not required, but a good idea for styling */
-webkit-transform-origin: 50% 50%;
-moz-transform-origin: 50% 50%;
-ms-transform-origin: 50% 50%;
-o-transform-origin: 50% 50%;
transform-origin: 50% 50%;
/* Should be unset in IE9+ I think. */
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
}
पुराना उत्तर:
FF 3.5 या Safari / Webkit 3.1 के लिए, देखें: -moz-transform (और -webkit-transform)। IE में एक मैट्रिक्स फ़िल्टर (v5.5 +) है, लेकिन मैं निश्चित नहीं हूं कि इसका उपयोग कैसे किया जाए। ओपेरा में अभी तक कोई परिवर्तन क्षमता नहीं है।
.rot-neg-90 {
/* rotate -90 deg, not sure if a negative number is supported so I used 270 */
-moz-transform: rotate(270deg);
-moz-transform-origin: 50% 50%;
-webkit-transform: rotate(270deg);
-webkit-transform-origin: 50% 50%;
/* IE support too convoluted for the time I've got on my hands... */
}
मैं एक पृष्ठ में ऊर्ध्वाधर पाठ लिखने के लिए निम्नलिखित कोड का उपयोग कर रहा हूं। फ़ायरफ़ॉक्स 3.5+, वेबकिट, ओपेरा 10.5+ और IE
.rot-neg-90 {
-moz-transform:rotate(-270deg);
-moz-transform-origin: bottom left;
-webkit-transform: rotate(-270deg);
-webkit-transform-origin: bottom left;
-o-transform: rotate(-270deg);
-o-transform-origin: bottom left;
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
}
एक अन्य समाधान एक एसवीजी टेक्स्ट नोड का उपयोग करना है जो अधिकांश ब्राउज़रों द्वारा समर्थित है ।
<svg width="50" height="300">
<text x="28" y="150" transform="rotate(-90, 28, 150)" style="text-anchor:middle; font-size:14px">This text is vertical</text>
</svg>
डेमो: https://jsfiddle.net/bkymb5kr/
एसवीजी पाठ पर अधिक: http://tutorials.jenkov.com/svg/text-element.html
सीएसएस लेखन मोड मॉड्यूल खड़ी पाठ के साथ ओर्थोगोनल प्रवाह परिचय देता है।
बस writing-mode
वांछित मूल्य के साथ संपत्ति का उपयोग करें ।
span { margin: 20px; }
#vertical-lr { writing-mode: vertical-lr; }
#vertical-rl { writing-mode: vertical-rl; }
#sideways-lr { writing-mode: sideways-lr; }
#sideways-rl { writing-mode: sideways-rl; }
<span id="vertical-lr">
↑ (1) vertical-lr 至<br />
↑ (2) vertical-lr 至<br />
↑ (3) vertical-lr 至
</span>
<span id="vertical-rl">
↓ (1) vertical-rl 至<br />
↓ (2) vertical-rl 至<br />
↓ (3) vertical-rl 至
</span>
<span id="sideways-lr">
↓ (1) sideways-lr 至<br />
↓ (2) sideways-lr 至<br />
↓ (3) sideways-lr 至
</span>
<span id="sideways-rl">
↓ (1) sideways-rl 至<br />
↓ (2) sideways-rl 至<br />
↓ (3) sideways-rl 至
</span>
मैंने इसे http://snook.ca/archives/html_and_css/css-text-rotation से अनुकूलित किया :
<Style> .Rotate -90 { प्रदर्शन क्षेत्र; स्थिति: निरपेक्ष; सही: -5 पीएक्स; शीर्ष: 15 पीएक्स; -webkit- परिवर्तन: रोटेट (-90deg); -मोज़-ट्रांसफ़ॉर्म: रोटेट (-90deg); } </ Style> <! - [अगर IE]> <Style> .रोट -90 फ़िल्टर: progid: DXImageTransform.Microsoft.BasicImage (रोटेशन = 3); सही: -15px; शीर्ष: 5px; } </ Style> <[Endif] ->
मेरे पास इसे शुद्ध CSS में करने की कोशिश करने में समस्या है - फ़ॉन्ट के आधार पर यह थोड़ा उबड़ खाबड़ लग सकता है। एक विकल्प के रूप में आप इसे करने के लिए SVG / VML का उपयोग कर सकते हैं। ऐसे पुस्तकालय हैं जो इसे राफेल और एक्सटीजेएस जैसे आसानी से पार करने में मदद करते हैं । ExtJS4 में कोड इस तरह दिखता है:
var drawComp = Ext.create('Ext.draw.Component', {
renderTo: Ext.getBody(), //or whatever..
height: 100, width: 100 //ditto..
});
var text = Ext.create('Ext.draw.Component', {
type: "text",
text: "The text to draw",
rotate: {
x: 0, y: 0, degrees: 270
},
x: -50, y: 10 //or whatever to fit (you could calculate these)..
});
text.show(true);
यह IE6 + और सभी आधुनिक ब्राउज़रों में काम करेगा, हालांकि, दुर्भाग्य से मुझे लगता है कि आपको कम से कम FF3.0 की आवश्यकता है।
यदि आप बूटस्ट्रैप 3 का उपयोग करते हैं, तो आप इसका एक मिश्रण का उपयोग कर सकते हैं:
.rotate(degrees);
उदाहरण:
.rotate(-90deg);
मेरा समाधान जो क्रोम, फ़ायरफ़ॉक्स, IE9, IE10 पर काम करेगा (अपनी आवश्यकता के अनुसार डिग्री बदलें):
.rotate-text {
-webkit-transform: rotate(270deg);
-moz-transform: rotate(270deg);
-ms-transform: rotate(270deg);
-o-transform: rotate(270deg);
transform: rotate(270deg);
filter: none; /*Mandatory for IE9 to show the vertical text correctly*/
}
यदि सीएसएस लेखन-मोड : sideways-lr
आप जो पसंद करते हैं, और आप क्रोमियम / क्रोम आधारित ब्राउज़र में चलाते हैं। आप कोशिश कर सकते हैं
{
writing-mode: vertical-rl;
transform: rotate(180deg);
}
इसलिए सभी आधुनिक ब्राउज़र अब इसका समर्थन करते हैं।
संदर्भ: https://bugs.chromium.org/p/chromium/issues/detail?id=680332##4