Many people have written about the potential for vertical text in CSS so I wanted to try it out for myself. By using the technique described below I was able to achieve this effect:
*Disclaimer: This doesn’t work in old Opera versions, but does work in Opera 10.5. This also works in IE6+, FF, and Webkit based browsers, so that is pretty encompassing.
Here is the basic markup:
<p>CSS Vertical Text</p>
I wanted to try to do my best to exclude IE browser checks and conditional checks. So this example handles all browsers mentioned previously with a single CSS block:
p.css-vertical-text {
color:#333;
border:0px solid red;
writing-mode:tb-rl;
-webkit-transform:rotate(90deg);
-moz-transform:rotate(90deg);
-o-transform: rotate(90deg);
white-space:nowrap;
display:block;
bottom:0;
width:20px;
height:20px;
font-family: ‘Trebuchet MS’, Helvetica, sans-serif;
font-size:24px;
font-weight:normal;
text-shadow: 0px 0px 1px #333;
}
Also, if I can stay away from IE filters I like too, but it’s worth mentioning that if you have an specific rotation, you have to use the IE filter:
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
Where 0, 1, 2, 3 correlate to 0, 90, 180, and 270 respectively.
So I tried to keep this one simple, but lining everything up in different browsers can be a pain because of the way each browser interprets the spacing.
Information for this post was pulled from the following places:
http://www.thecssninja.com/css/real-text-rotation-with-css
http://snook.ca/archives/html_and_css/css-text-rotation




Very nice. Thank you very much.
I just wanted to say THANK YOU for this! I have been looking for something like this for a very long time and other solutions I have found work but are very limited.
This worked like a charm the first time around and with a little playing around with the CSS I got it to do just exactly what I wanted.
Once again thank you very much.
My pleasure. Glad that you guys got something out of it!
I don’t believe this works in Firefox 3.0
Yes that’s true, FireFox 3.0, which makes up <1% of traffic this will not work on. Sometimes you just have to move forward though
Cheers mate!!! U rule!
-o-transform: rotate(90deg);
Works in Opera too
Excellent thanks Phillip I will add that to the code.
Updated the code to include Opera 10.5.
Cheers Scotty
THX mate, thats what i was looking for….
Dude, you are a hero.
very nice. Thanks.
I got Firefox 3.0.19 on Mac OS X 10.5.8 and it doenst work. My Safari can show the effect but Firefox cant.
Pascal, there were certain older versions of FireFox where this technique does not work, but I choose to look forward as those are very small traffic segments. Thanks for mentioning the specifics.
Is there some way to convince such vertical text to NOT be as wide as it is long? I’m trying to make table header cells have vertical text, and quite apart from the atrocious things it does to the borders, Firefox is totally ignoring any width settings.