CSS垂直文本需要很大的空间

时间:2014-10-25 16:20:35

标签: html css vertical-text

我正在使用CSS创建垂直文本。问题是,我希望文本旁边的前一个div,之间或之后没有空格。我该如何解决这个问题?

<div id="wrapper">
  <div class="pull-left">
      here is some stuff
  </div>
  <div class="pull-left verticalText changeCursor">I'm vertical</div>
</div>

CSS(从Bootstrap向左拉):

.changeCursor
{
    cursor: pointer;
}

.verticalText
{
    height: 100%;
    -moz-transform: rotate(90deg);
    -webkit-transform: rotate(90deg);  /* f&uuml;r Safari und Co */
    -o-transform:rotate(90deg); /* Opera */
    -ms-transform:rotate(90deg); /* MS IE 9 */
    transform: rotate(90deg);
}

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

问题在于,<div>默认情况下会尽可能宽。此外,进行转换时,默认情况下,原点位于元素的中间位置。

如果你制作display: inline-block并添加

transform-origin: 0 0;

.vertical-text规则,然后文本到达第一个的右边,但它与它重叠。要修复 ,您可以使用translate()

#wrapper > div { display: inline-block; }

.verticalText
{
    transform-origin: 0 0;
    -moz-transform: rotate(90deg) translate(0, -100%);
    -webkit-transform: rotate(90deg) translate(0, -100%);  /* f&uuml;r Safari und Co */
    -o-transform: rotate(90deg) translate(0, -100%); /* Opera */
    -ms-transform: rotate(90deg) translate(0, -100%); /* MS IE 9 */
    transform: rotate(90deg) translate(0, -100%);
}

Here is a CodePen.