CSS使元素居中的几种方式

1、使行内元素

水平居中

text-align : center

垂直居中

line-height : 容器的高度,如果有 n 行文本,则使用 height / n

2、块元素水平居中

margin : 0 auto; 注意它只对块元素有效,行内块虽有宽高,但也需要转为块元素才能生效

3、垂直居中

1、

vertical-align : middle; 需要注意的是,它只对于inline 和 inline-block 以及设置了table-cell (例如td)的元素。

2、

、父元素不设置高度,利用padding-top == padding-bottom

4、水平和垂直都居中 (即行内块元素水平垂直居中的方式)

  • 1、使用定位
  • 2、使用 display : table
  • 3、使用弹性布局: display : flex
  • 4、使用transform : translate() 和定位实现

1、使用定位实现水平垂直居中

html代码

<div class="outer">
    <div class="inner"></div>
</div>

CSS代码

.outer{
        width: 600px;
        height: 600px;
        background: #f00;
        margin: 0 auto;
        position: relative;
    }
    .inner{
        width: 200px;
        height: 200px;
        background: #00f;
        position: absolute;
        left: 50%;
        margin-top: -100px;    /*自身高度的一半*/
        margin-left: -100px;   /* 自身宽度的一半*/
        top: 50%;
    }

2、使用 display : table属性实现水平垂直居中

html代码

<div class="outer">
    <div class="inner">
    </div>
</div>

CSS代码

.outer{
    width: 600px;
    height: 600px;
    background: #f00;
    /*将父元素设置 display : table-cell; 并搭配 vertical-align:middle;*/
    display: table-cell;
    vertical-align: middle;
}
.inner{
    width: 200px;
    height: 200px;
    background: #00f;   
    margin: 0 auto;
}

3、使用弹性布局实现

html代码

<div class="outer">
    <div class="inner">
    </div>
</div>

CSS代码

.outer{
    width: 600px;
    height: 600px;
    background: #f00;
    display: flex;

    /*设置主轴方向(默认为水平)居中*/
    justify-content:center;

    /*设置交叉轴方向(与主轴垂直)居中*/
    align-items: center;
}
.inner{
    width: 200px;
    height: 200px;
    background: #00f;   
    
}

4、使用transform 变换和定位实现居中

html代码

<div class="outer">
    <div class="inner">
    </div>
</div>

CSS代码

.outer{
    width: 600px;
    height: 600px;
    background: #f00;
    position: relative;
}
.inner{
    width: 200px;
    height: 200px;
    background: #00f;   
    position: absolute;
    left: 50%;
    top:50%;

    /*这里需要注意的是,translate移动的是自身宽高的 百分比*/
    transform: translate(-50%,-50%);
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,687评论 1 92
  • 收听音频,戳链接,旧号itclan已暂停使用,欢迎关注微信itclanCoder公众号可收听更多音频 前言 关于网...
    itclanCoder阅读 12,533评论 3 30
  • 本文主要是起笔记的作用,内容来自慕课网. 认识CSS样式 CSS全称为“层叠样式表 (Cascading Styl...
    0o冻僵的企鹅o0阅读 7,508评论 0 30
  • 一 外部式css样式 (也可称为外联式)就是把css代码写一个单独的外部文件中,这个css样式文件以“.css...
    KunMitnic阅读 4,589评论 0 1
  • L市位于碧波江畔,每至春日,整座城市仿佛笼罩在微凉的水汽里,潮湿而清新。 在这个最普通不过的阴天,市警察局里...
    昏昏欲坠阅读 3,579评论 0 0