CSS水平垂直居中常见方法总结(转)

行内元素:

父级元素是块级元素:父元素设置text-align:center

1.元素水平居中

margin: 0 auto;谁居中,谁设置

居中不好使的原因: 
1、元素没有设置宽度,没有宽度怎么居中嘛! 
2、设置了宽度依然不好使,你设置的是行内元素吧

实例1:

<div class="box">
    <div class="content">
        哇!居中了
    </div>
</div>

<style type="text/css">
.box {
    background-color: #FF8C00;
    width: 300px;
    height: 300px;
    margin: 0 auto;
}
.content {
    background-color: #F00;
    width: 100px;
    height: 100px;
    line-height: 100px;//文字在块内垂直居中
    text-align: center;//文字居中
    margin: 0 auto;
}
</style>

2.元素水平垂直居中

方案1:position 元素已知宽度 
父元素设置为:position: relative; 
子元素设置为:position: absolute; 
距上50%,据左50%,然后减去元素自身宽度的距离就可以实现 
示例 2:

<div class="box">
    <div class="content">
    </div>
</div>

.box {
    background-color: #FF8C00;
    width: 300px;
    height: 300px;
    position: relative;
}
.content {
    background-color: #F00;
    width: 100px;
    height: 100px;
    position: absolute;
    left: 50%;
    top: 50%;
    margin: -50px 0 0 -50px;
}

方案2:position transform 元素未知宽度 
如果元素未知宽度,只需将上面例子中的margin: -50px 0 0 -50px;替换为:transform: translate(-50%,-50%); 
效果如上! 
示例 3:

<div class="box">
    <div class="content">
    </div>
</div>

.box {
    background-color: #FF8C00;
    width: 300px;
    height: 300px;
    position: relative;
}
.content {
    background-color: #F00;
    width: 100px;
    height: 100px;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
}

方案3:flex布局 
示例 4:

<div class="box">
    <div class="content">
    </div>
</div>

.box {
    background-color: #FF8C00;
    width: 300px;
    height: 300px;
    display: flex;//flex布局
    justify-content: center;//使子项目水平居中
    align-items: center;//使子项目垂直居中
}
.content {
    background-color: #F00;
    width: 100px;
    height: 100px;
}

方案4:table-cell布局 
示例 5: 
因为table-cell相当与表格的td,td为行内元素,无法设置宽和高,所以嵌套一层,嵌套一层必须设置display: inline-block;td的背景覆盖了橘黄色,不推荐使用

<div class="box">
    <div class="content">
        <div class="inner">
        </div>
    </div>
</div>

.box {
    background-color: #FF8C00;//橘黄色
    width: 300px;
    height: 300px;
    display: table;
}
.content {
    background-color: #F00;//红色
    display: table-cell;
    vertical-align: middle;//使子元素垂直居中
    text-align: center;//使子元素水平居中
}
.inner {
    background-color: #000;//黑色
    display: inline-block;
    width: 20%;
    height: 20%;
}

转:https://blog.csdn.net/qq_27576607/article/details/78697812

https://www.jianshu.com/p/c78fa42e6e78

原文地址:https://www.cnblogs.com/ganiner/p/11518277.html

时间: 2024-12-26 18:24:14

CSS水平垂直居中常见方法总结(转)的相关文章

CSS水平垂直居中常见方法总结2

1.文本水平居中line-height,text-align:center(文字)元素水平居中 margin:0 auo 方案1:position 元素已知宽度 父元素设置为:position: relative; 子元素设置为:position: absolute; left: 50%;top: 50%;margin: -50px 0 0 -50px;距上50%,据左50%,减去元素自身宽度的距离 方案2:position transform 元素未知宽度 margin: -50px 0 0

介绍一种css水平垂直居中的方法(非常好用!)

这次介绍一下一个水平垂直居中的css方法,这个方法可以说是百试百灵,废话不多说,直接附上代码: html,body{ width:100%; height:100%; } 你需要居中的元素{ position: fixed;(absolute)      left:50%;      top:50%;      -webkit-transform: translate(-50%,-50%); } 他的父元素{ position: relative; width:100%; height:100%

水平垂直居中常见方式总结

水平垂直居中常见方式总结 html结构为: <div class="parent"> <div class="child"></div> </div> (1)父元素相对定位,子元素关键在于设置为绝对定位,margin:auto .parent{ width:400px; height:400px; background:#afa; position:relative; } .child{ position:absolu

聊聊css水平垂直居中那些事

1.水平居中实现方法 <div class="demo">     我是一个水平居中的div </div> /*方法1*/ .demo{width: 960px;margin: 0 auto;} /*方法2*/ .demo{width: 960px;height: 400px;background: #f00;position: relative;left: 50%;margin-left: -480px;} 2.水平垂直居中实现方法 <div class

CSS元素水平垂直居中的方法(附内联元素,块级元素的基本概念)

用CSS让元素居中显示并不是件很简单的事情.同样的CSS居中设置在不同浏览器中的表现也各有千秋.本文就介绍了在CSS中常见的几种让元素水平居中显示的方法. 1.使用自动外边距实现居中 CSS中首选的让元素水平居中的方法就是使用margin属性—将元素的margin-left和margin-right属性设置为auto即可.在实际使用中,我们可以为这些需要居中的元素创建一个起容器作用的div.需要特别注意的一点就是,必须为该容器指定宽度: 在大多数主流浏览器中,这种方法都非常有效,即使是Windo

常见的几种 CSS 水平垂直居中解决办法

用CSS实现元素的水平居中,比较简单,可以设置text-align center,或者设置 margin-left:auto; margin-right:auto 之类的即可. 主要麻烦的地方还是在垂直居中的处理上,所以接下来主要考虑垂直方向上的居中实现. 水平垂直居中主要包括三类:基本文本类,图像类,其他元素类 但,也是由一些方法可以实现的,下面就来谈谈了解到的10中方法. 方法一.使用 line-height 这种方式更多地用在 单行文字的情况,其中使用overflow:hidden的设置是

CSS水平垂直居中的几种方法

直接进入主题! 一.脱离文档流元素的居中 方法一:margin:auto法 CSS代码: div{ width: 400px; height: 400px; position: relative; border: 1px solid #465468; } img{ position: absolute; margin: auto; top: 0; left: 0; right: 0; bottom: 0; } HTML代码: <div> <img src="mm.jpg&quo

CSS水平垂直居中的几种方法2

直接进入主题! 一.脱离文档流元素的居中 方法一:margin:auto法 CSS代码: div{ width: 400px; height: 400px; position: relative; border: 1px solid #465468; } img{ position: absolute; margin: auto; top: 0; left: 0; right: 0; bottom: 0; } HTML代码: <div> <img src="mm.jpg&quo

CSS水平垂直居中方法总结

部分HTML代码如下: <div class="wrap block"> <div class="block-center">块儿居中</div> </div> <div class="wrap inline"> <span class="inline-center">内联居中</span> </div> 一.absolute 拔河