CSS:如何将纵向旋转的文本右对齐

10

我似乎无法将垂直旋转的 div 对齐到页面的右侧:http://jsfiddle.net/F23W2/2/

HTML:

<div class="vertical">Vertical Text</div>

CSS:

.vertical {
    position: relative;
    background-color: #DDDDDD;
    padding: 10px;
    border-radius: 5px 5px 0 0;
    float: right;
    -moz-transform: rotate(270deg);  /* FF3.5+ */
    -o-transform: rotate(270deg);  /* Opera 10.5 */
    -webkit-transform: rotate(-90deg);  /* Saf3.1+, Chrome */
} 
  • 页面右侧边框和 div 之间存在不必要的空白。
  • 旋转的 div 的顶部部分被裁剪。

虽然我可以使用负边距解决问题,但我想知道是否存在更简洁的解决方案。

1个回答

29

通过 transform-origin: 100% 100%; 更改旋转变换的原点。

body {
  padding: 0;
  margin: 0;
}

.vertical {
  position: relative;
  background-color: #DDDDDD;
  padding: 10px;
  border-radius: 5px 5px 0 0;
  float: right;
  -moz-transform: rotate(270deg);
  /* FF3.5+ */
  -o-transform: rotate(270deg);
  /* Opera 10.5 */
  -webkit-transform: rotate(-90deg);
  /* Saf3.1+, Chrome */
  -moz-transform-origin: 100% 100%;
  -o-transform-origin: 100% 100%;
  -webkit-transform-origin: 100% 100%;
}
<div class="vertical">Vertical Text</div>

新的 Fiddle


1
@ClintPachl 这是一种方法:http://jsfiddle.net/4078ggjg/。我确定有一种更“简洁”的方法,但我没有花时间来简化旋转,平移和缩放。 - BigMacAttack
1
这是一些严肃的CSS技巧@BigMacAttack!感谢您指引我正确的方向。使用您提供的内容,我想出了一种更简洁的方法,可以在Win(甚至IE11),OSX,iOS和BSD上跨浏览器(FF,Chrome,Safari)运行:https://jsfiddle.net/yrfm5uec/1/ - Clint Pachl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接