垂直对齐中间问题

时间:2013-12-18 09:28:39

标签: html css

这里有一个像这样的父div

.div parent{
width:100%;
height:100%;
text-align:center;
}
.div child{
width:10%;
height:10%;
}

在响应式网络移动设备中,子div不垂直对齐中间如何对齐中间?请帮帮我..

感谢。

5 个答案:

答案 0 :(得分:2)

尝试添加:

.div parent{
vertical-align: middle;
width:100%;
height:100%;
text-align:center;
}

答案 1 :(得分:0)

您写的.div parent似乎是无效选择器,如果您尝试选择divparent,则应使用div.parent选择diplay:table-cell;同样适用于您的孩子div )。

试试这个;

.parent应用于vertical-align:middle div,以便它能够将其子项垂直对齐。

然后将div.parent{ width:100%; height:100%; text-align:center; display:table-cell; vertical-align:middle; } 应用于相同的内容以使子元素垂直居中

{{1}}

答案 2 :(得分:0)

FIDDLE

这是另一种选择,使用CSS表

HTML

<div class='table'>
    <div class='row'>
        <div class='cell'>
            <div>Child</div>
        </div>
    </div>
</div>

CSS

html, body {
    width:100%;
    height:100%;
    margin:0;
    padding:0;
}
.table {
    display:table;
    table-layout:fixed;
    width:100%;
    height:100%;
}
.row {
    display:table-row;
}
.cell {
    display:table-cell;
    border:1px solid grey;
    vertical-align:middle;
    text-align:center;
}
.cell div {
    background:red;
    display:inline-block;
    margin:0 auto;
}

答案 3 :(得分:0)

我知道这篇文章已经过时了,但这是Flex的另一种方法(也可在CodePen中使用 - http://codepen.io/KErez/pen/kXzYAj):

HTML:

<div class='a'>
  <div class='b'>
    Inner
  </div>
</div>

CSS(颜色仅用于清楚地显示框):

.a {
  display: flex;
  justify-content: space-around;
  align-items: center;
  color: #ffffff;
  background-color: #223344;
  width: 100%;
  height: 100%;
}

.b {
  display: flex;
  justify-content: space-around;
  align-items: center;
  width: 75px;
  height: 100px;
  background-color: #999999;
  color: #00ff00;
}

答案 4 :(得分:0)

我多次使用的非常简单的解决方案。

&#13;
&#13;
.a {
  width: 300px;
  height: 300px;
  background-color:#666;
}

.b {
  margin:auto;
  width: 75px;
  height: 100px;
  top: calc(50% - 50px);
  text-align:middle;
  position: relative;
  background-color:#111;
}
&#13;
<div class='a'>
  <div class='b'>
  </div>
</div>
&#13;
&#13;
&#13;