美文网首页
垂直居中

垂直居中

作者: VirtualX | 来源:发表于2017-02-16 16:57 被阅读0次

垂直居中是我们在使用css做页面时常见的需求,以下列举几种垂直居中的实现方法:

1. 使用父元素内边距设置实现居中

对如下代码中的父元素设置上下相等的padding值,则元素就可以在父元素内部实现垂直居中:

<body>
  <div class="container">
    <p>这是内容</p>
    <p>这是内容</p>
    <p>这是内容</p>
  </div>
</body>
.container {
  background: #ccc;
  padding: 40px 0;
}

点此查看示例效果

2. 通过绝对定位实现居中

当有弹窗提示类似的场景时,希望元素在页面居中的位置,此时弹出窗口元素的宽高都是固定已知的,此时使用绝对定位对元素居中:

<body>
  <div class="container">
    <header>header</header>
    <div class="content">content</div>
  </div>
</body>
.container {
  width: 200px;
  height: 150px;
  border:1px solid black;
  position: absolute;
  left: 50%;
  top: 50%;
  margin-left: -100px;
  margin-top: -75px;
}

.container header {
  background: black;
  color: white;
}

点此查看示例效果

如果窗口宽高不是已知的,而是会随着内容发生变化,那么只需将原有代码中的margin-left和margin-top属性替换为CSS3中的transform属性即可:

.container {
  width: 200px;
  height: 150px;
  border:1px solid black;
  position: absolute;
  left: 50%;
  top: 50%;
  /* margin-left: -100px;
  margin-top: -75px; */
  transform: translate(-50%,-50%);
}

点此查看示例效果

3. 使用vertical-align实现居中

在父元素中放置一个高度为100%的空元素,并对其以及需要居中的元素设置vertical-align: middle,就可以实现在父元素中垂直居中了:

<body>
  <div class="box">
    ![](https://img.haomeiwen.com/i4351267/7895df17861a4075.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
  </div>
</body>
.box {
  width: 300px;
  height: 200px;
  border: 1px solid black;
  text-align: center;
}

.box:before {
  content: '';
  display: inline-block;
  height: 100%;
  vertical-align: middle;
}

.box img {
  width:200px;
  vertical-align: middle;
}

点此查看示例效果
这种居中方式存在一些问题,例如父元素中不能有其他的非居中元素,而且只对行内元素和表格有效。

4. 使用table-cell实现居中

这种实现方式是将父元素设置为table-cell,再对其设置vertical-align: middle的对其方式,实现子元素垂直居中:

<body>
  <div class="box">
    ![](https://img.haomeiwen.com/i4351267/7895df17861a4075.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
  </div>
</body>
.box {
  width: 300px;
  height: 200px;
  border: 1px solid black;
  display: table-cell;
  text-align: center;
  vertical-align: middle;
}

点此查看示例效果
这种实现方式改变了父元素的display属性,也就改变了它的默认表现方式,可能会带来副作用。

相关文章

  • CSS居中布局方案

    水平居中 垂直居中 水平垂直居中

  • 元素居中的方式

    1 水平居中 2 垂直居中 3 水平垂直居中

  • 常用的居中方法

    本文将介绍的居中方法有 ,水平居中,垂直居中和水平垂直居中。 一水平居中 二水平垂直居中

  • 居中布局

    水平居中 垂直居中 垂直水平居中 已知元素的宽高的居中布局 定位居中布局 盒模型居中布局 图片的垂直水平居中(利用...

  • CSS水平垂直居中总结

    CSS水平居中、垂直居中、水平垂直居中方法总结 文字的水平居中: 单行文字的垂直居中: 让有宽度的div水平居中:...

  • 垂直居中

    文字的垂直居中 元素的垂直居中

  • CSS图片居中(水平居中和垂直居中)

    css图片水平居中 css图片垂直居中 css图片水平垂直居中

  • 居中对齐

    行内元素居中[#hang]垂直居中[#hc]水平居中[#hs] 块级元素居中[#kuai]垂直居中[#kc]水平居...

  • CSS居中大全(带截图)

    文字水平居中 图片水平垂直居中 图片与文字水平垂直居中 代码同上 DIV相对于页面垂直居中并且响应式 视口绝对垂直...

  • css 居中

    居中有水平居中和垂直居中。 水平居中+垂直居中 flex法 position法 就是计算呗~ 参考 CSS各种居中...

网友评论

      本文标题:垂直居中

      本文链接:https://www.haomeiwen.com/subject/ljhhwttx.html