我想将单个文本单词旋转90度,支持跨浏览器(>= IE6, >= Firefox 2,任何版本的Chrome, Safari或Opera)。如何做到这一点呢?
当前回答
CSS Writing Modes模块引入了垂直文本的正交流。
只需将write -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 { display: block; position: absolute; right: -5px; top: 15px; -webkit-transform: rotate(-90deg); -moz-transform: rotate(-90deg); } </style> <!--[if IE]> <style> .Rotate-90 { filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); right:-15px; top:5px; } </style> <![endif]-->
更新这个答案与最近的信息(从CSS技巧)。感谢Matt和Douglas指出了过滤器实现。
.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+),但我不确定如何使用它。Opera还没有转换功能。
.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... */
}
如果CSS写作模式:sideway -lr是你喜欢的,而你恰巧遇到了基于chromium/chrome的浏览器。你可以试试
{
writing-mode: vertical-rl;
transform: rotate(180deg);
}
所以现在所有的浏览器都支持它。
参考:https://bugs.chromium.org/p/chromium/issues/detail?id=680331 c4
我正在使用以下代码在页面中写入垂直文本。 Firefox 3.5+, webkit, opera 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);
}
我的解决方案,将工作在Chrome, Firefox, 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*/
}
推荐文章
- 为什么我的CSS3媒体查询不能在移动设备上工作?
- 下一个元素的CSS选择器语法是什么?
- 是否有'box-shadow-color'属性?
- 在jQuery中的CSS类更改上触发事件
- 我如何用CSS跨浏览器绘制垂直文本?
- 如何获得box-shadow在左侧和右侧
- 相对定位一个元素,而不占用文档流中的空间
- 如何在jQuery检索复选框值
- 禁用身体滚动
- 如何在删除前显示确认消息?
- 使用jQuery动画addClass/removeClass
- 在一个CSS宽度的小数点后的位置是尊重?
- 检测输入是否有文本在它使用CSS -在一个页面上,我正在访问和不控制?
- 我怎么能选择一个特定的类的最后一个元素,而不是父里面的最后一个孩子?
- @media screen和(max-width: 1024px)在CSS中是什么意思?