将<div>元素放在屏幕的地平线和垂直中心?

时间:2015-06-17 06:30:28

标签: html css position

这是我的代码:

&#13;
&#13;
div {
  position: absolute;
  top: 50%;
  left: 50%;
  text-align: center;
  margin: 0;
  padding: 0;
}
&#13;
<div>This sentence should be displayed in the center of the whole screen

</div>
&#13;
&#13;
&#13;

我尝试marginpadding使div成为整个屏幕的中心。 (在地平线和垂直方向)。但是,marginpadding都不能使元素居中。

然后我尝试left: 50%top:50%,它会更改元素的位置,但不会像预期的那样。 <div>的左边距位于left:50%,而我希望<div>的中心位于left:50% ..

有没有人有这方面的想法?

8 个答案:

答案 0 :(得分:3)

使用 - transform: translate

div {
    position: absolute;
    top: 50%;
    left: 50%;
    text-align: center;
    margin: 0;
    padding: 0;
    background: #ccc;
    -webkit-transform: translate(-50%,-50%);
    -ms-transform: translate(-50%,-50%);
        transform: translate(-50%,-50%);
}
<div>This sentence should be displayed in the center of the whole screen</div>

答案 1 :(得分:0)

div {
    position: absolute;
    top: 50%;
    left: 50%;
    text-align: center;
    margin: 0;
    padding: 0;
    transform: translate(-50%, -50%);
}

答案 2 :(得分:0)

请尝试以下操作: Demo

html, body {
    height: 100%;
}
body {
    display: table;
    margin: 0 auto;
}
div {
    height: 100%;
    display: table-cell;
    vertical-align: middle;
}

答案 3 :(得分:0)

试试这个fiddle

div {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  width: 200px;
  height: 50px;
}

答案 4 :(得分:0)

这应该对你有所帮助   您需要使用transform:translate css。

div {
        position: fixed;
        top: 50%;
        left: 50%;
        -webkit-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%);

    }

Fiddle here

答案 5 :(得分:0)

你走了。如果您不想使用翻译,请将位置保持为相对位置并将其文本对齐到中心位置。

div {
position: relative;
text-align:center;
}

这是fiddle

答案 6 :(得分:0)

试试这个:

 div {
      position: relative;
      text-align:center;
      top:50%;
    }

答案 7 :(得分:0)

简单而敏感的尝试这个

div {
  margin: auto;
  width:50%;
}

Working Fiddle Here