CSS 垂直居中布局

下面都是我在网上借鉴的方法,亲测可用。

<div class="fStyle">  //父元素
  <div class="cStyle"></div> //子元素
</div>

第一种: 定位
规则如下:
1、父元素为除了static以外的定位方式;
2、子元素为绝对定位,top、bottom、left和right 均设置为0,margin设置为
auto。
代码如下:

.fStyle {
    position: relative;
    width: 100px;
    height: 100px;
    border: 1px solid red;
}
.cStyle {
    position: absolute;
    width: 50px;
    height: 50px;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin:auto;
    border: 1px solid green;
}

第二种: flex布局
规则如下:align-items实现垂直居中,justify-content实现水平居中。
代码如下:

.fStyle {
    width: 100px;
    height: 100px;
    border: 1px solid red;
    display: flex;
    align-items: center;
    justify-content: center;
}
.cStyle {
    width: 50px;
    height: 50px;
    border: 1px solid green;
}

第三种: table-cell布局
规则如下:
1、父布局使用vertical-align: middle实现垂直居中,
2、子布局使用margin: 0 auto实现水平居中。
代码如下:

.fStyle{
    width: 100px;
    height: 100px;
    border: 1px solid red;
    display: table-cell;
    vertical-align: middle;
}
.cStyle{
    width: 50px;
    height: 50px;
    border: 1px solid green;
    margin: 0 auto;
}

第四种: translate+relative定位
规则如下:
1、子组件采用relative 定位;
2、top和left偏移各为50%;
3、translate(-50%,-50%) 偏移自身的宽和高的-50%。
代码如下:

.fStyle {
    width: 100px;
    height: 100px;
    border: 1px solid red;
}
.cStyle {
    width: 50px;
    height: 50px;
    border: 1px solid green;
    position: relative;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,790评论 1 92
  • 1. 前言 前端圈有个“梗”:在面试时,问个css的position属性能刷掉一半人,其中不乏工作四五年的同学。在...
    YjWorld阅读 4,527评论 5 15
  • 收听音频,戳链接,旧号itclan已暂停使用,欢迎关注微信itclanCoder公众号可收听更多音频 前言 关于网...
    itclanCoder阅读 8,204评论 3 30
  • 1.绝对定位居中技术 我们一直用margin:auto实现水平居中,而一直认为margin:auto不能实现垂直居...
    DecadeHeart阅读 1,620评论 0 3
  • 一、进程的基本概念 1.1 多道程序设计 基本思想是允许多个程序同时进入内存并运行,提高CPU的利用率,其目的是为...
    yjaal阅读 1,290评论 4 8