【问题标题】:how to center text in the middle of the page如何使文本在页面中间居中
【发布时间】:2015-02-27 05:25:18
【问题描述】:

想知道如何将旋转的文本固定在页面中心?
这是一个 jsfiddle,我希望我可以仅使用 CSS / html 来完成此操作。

非常感谢:)

HTML

<h1 class="main rotate">TEXT</h1>

CSS

h1 {
    text-transform: uppercase;
    white-space: nowrap;
    text-align: center;
    position: fixed;
    left: 50%;
    height: 100%;
    width: 100%;
}
.rotate {
    -webkit-transform-origin: 0 50%;
    -moz-transform-origin: 0 50%;
    -ms-transform-origin: 0 50%;
    -o-transform-origin: 0 50%;
    transform-origin: 0 50%;
    -webkit-transform: rotate(-90deg) translate(-50%, 50%);
    -moz-transform: rotate(-90deg) translate(-50%, 50%);
    -ms-transform: rotate(-90deg) translate(-50%, 50%);
    -o-transform: rotate(-90deg) translate(-50%, 50%);
    transform: rotate(-90deg) translate(-50%, 50%);
}

【问题讨论】:

  • 你的文字已经在中间了!
  • @ZeRuBuES -- 不完全是。它没有完全居中。

标签: html css image center


【解决方案1】:

有趣的练习,我的方法在这里:

h1 {
  margin: 0;
  -webkit-transform-origin: 50%;
  -moz-transform-origin: 50%;
  -ms-transform-origin: 50%;
  -o-transform-origin: 50%;
  transform-origin: 50%;
  -webkit-transform: translate(-50%, -50%) rotate(-90deg);
  -moz-transform: translate(-50%, -50%) rotate(-90deg);
  -ms-transform: translate(-50%, -50%) rotate(-90deg);
  -o-transform: translate(-50%, -50%) rotate(-90deg);
  transform: translate(-50%, -50%) rotate(-90deg);
  position: fixed;
  top: 50%;
  left: 50%;
}
.centeredbox{
  position: fixed;
  width: 10px;
  height: 10px;
  z-index: 15;
  top: 50%;
  left: 50%;
  margin: -5px 0 0 -5px;
  background: red;
}
<div class="centeredbox"></div>
<h1 class="main rotate">TEXT</h1>

【讨论】:

    【解决方案2】:

    下面的这段代码满足你的需要

    h1 {
        text-transform: uppercase;
        white-space: nowrap;
        text-align: center;
        height: 100%;
        width: 100%;
        opacity: 1;
        position:absolute;
        left:50%;
        top:50%;
        margin:-302px 0 0 -34px;
        -webkit-transition: opacity 300ms ease;
        -moz-transition: opacity 300ms ease;
        transition: opacity 300ms ease;
        -webkit-transform: translateZ(0);
        -moz-transform: translateZ(0);
        -ms-transform: translateZ(0);
        -o-transform: translateZ(0);
        transform: translateZ(0);
    }
    

    http://jsfiddle.net/uubzrew3/

    【讨论】:

      【解决方案3】:

      我的建议是使用 toprightbottomleft 技巧,并添加 1em heightline-height。像这样:

      h1 {
          ...
      
          /* new code */
          left:0;
          right:0;
          top:0;
          bottom:0;
          height: 1em;
          line-height: 1em;
          margin: auto;
      }
      
      .rotate {
          /* new code */
          -webkit-transform: rotate(-90deg);
          -moz-transform: rotate(-90deg);
          -ms-transform: rotate(-90deg);
          -o-transform: rotate(-90deg);
          transform: rotate(-90deg);
      }
      

      演示:http://jsfiddle.net/pqz0v71d/

      【讨论】:

        【解决方案4】:

        看起来您的文本没有居中,因为您使用的是h1 标签,大多数浏览器都有内置的样式。

        如果您将标签更改为div,文本将正确居中。 JSFiddler here.

        【讨论】:

        • 无论是 h1 还是 div,这真的不应该成为问题,因为我已经为它提供了覆盖默认 h1 样式的属性。不过,感谢您的建议。
        猜你喜欢
        • 2012-06-08
        • 2018-01-04
        • 2012-04-07
        • 2013-09-18
        • 2015-11-05
        • 1970-01-01
        • 2013-07-25
        • 2019-10-18
        • 1970-01-01
        相关资源
        最近更新 更多