水平居中和垂直居中

#水平居中

1.1.已知宽度块元素宽度 :

.child {
    width: 1000px;
    margin: 0 auto;
}

1.2.文本内容居中:

.parent {
    text-align: center;
}

1.3.通过表格:

.child {
    display: table;
    margin: 0 auto;
}

1.4.已知宽度,通过设置position:absolute,margin-left为宽度的负一半

.parent {
    position: relative;
}
.child {
    position: absolute;
    left: 50%;
    width: 150px;
    margin-left: -75px;
}

1.5.未知宽度,通过设置position:absolute

.parent {
    position: relative;
}
.child {
    position: absolute;
    left: 50%;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
}

1.6.使用flex布局实现(兼容性不好,感觉有点变成浮动的效果,不在文档流)

第一种:

.parent {
    display: flex;
    justify-content: center;
}

第二种:

.parent {
    display: flex;
}
.child {
    margin: 0 auto;
}

#垂直居中

2.1.文本垂直居中

.child {
    height: 20px;
    line-height: 20px
}

2.2.vertial-align:middle;

第一种方法:

.parent {
    display: table-cell;
    vertical-align: middle;
    height: 20px;
} 

第二种方法:

.parent {
    display: inline-block;
    vertical-align: middle;
    line-height: 20px;
}

2.3.未知高度,设置position:absolute

.parent {
    position: relative;
}
.child {
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
}

2.4.已知高度,设置position:absolute,margin-top为高度的负一半

.parent {
    position: relative;
}
.child {
    position: absolute;
    top: 50%;
    height: 150px;
    margin-top: -75px;
}

2.5.使用flex布局实现

.parent {
    display: flex;
    align-items: center;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,687评论 1 92
  • 网上有N种方法实现元素的水平居中和垂直居中,如CSS制作水平垂直居中对齐,这些方法各有各的优缺点。在这里,我们使用...
    一只好奇的茂阅读 12,844评论 0 22
  • html页面结构如下,仅讨论块状元素的居中问题,div的父元素为body,改成其他元素同理 DIV仅水平居中 让...
    gofanelena阅读 2,905评论 0 1
  • 本文列举了水平和垂直居中的方法,分别在已知宽高和未知宽高的情况。 从以下方法不难看出,要制造居中,大体分为位移...
    smartlala阅读 2,750评论 0 0
  • 收听音频,戳链接,旧号itclan已暂停使用,欢迎关注微信itclanCoder公众号可收听更多音频 前言 关于网...
    itclanCoder阅读 12,533评论 3 30