美文网首页
css实现垂直水平居中的方法

css实现垂直水平居中的方法

作者: Aleph_Zheng | 来源:发表于2017-07-30 20:38 被阅读72次

网上这种类型的文章数之不尽,作为个人学习的一个整理,仅供参考,欢迎斧正。
兼容性方面请参考http://caniuse.com/

方法一:table-cell实现垂直居中

缺点:margin无效(我给所有元素设置了margin:auto的)
优点:兼容IE8以上浏览器,动态设置居中,不需要知道宽高

//html
<div class="ct1 ct">
        <div class="box1 box"></div>
</div>
//css
.ct {
        width: 300px;
        height: 300px;
        border: 1px solid red;
        margin: 0 auto;
    }
 .box {
        width: 80px;
        height: 80px;
        background: lightblue;
    }
.ct1 {
        display: table-cell;
        vertical-align: middle;
        text-align: center;
    }
.box1 {
        display: inline-block;//为了使text-align生效
    }

效果:

image.png

方法二:父元素设置相对定位,子元素绝对定位。

缺点:
1、要么必须知道宽高,手动设置偏移量(margin量)。要么用css3的tranform(IE11以上,兼容性不好)
2、子元素高于父元素会超出父元素直接显示,不会出现滚动条
优点:
影响小,写法固定且简便

//html
 <div class="ct2 ct">
        <div class="box2 box"></div>
 </div>

//css
.ct {
    width: 300px;
    height: 300px;
    border: 1px solid red;
    margin: 0 auto;
}
.box {
    width: 80px;
    height: 80px;
    background: lightblue;
}
.ct2 {
     position: relative;
}

.box2 {
     position: absolute;
     left: 50%;
     top: 50%;
     transform: translate(-50%, -50%);
 }

效果:


image.png

方法三:display:flex

缺点:对IE兼容性不好,IE11才部分支持
优点:用起来又简单又方便,很爽啊有木有~~(ノ´▽`)ノ♪

//html
<div class="ct3 ct">
        <div class="box3 box"></div>
</div>

//css
.ct {
    width: 300px;
    height: 300px;
    border: 1px solid red;
    margin: 0 auto;
}
.box {
    width: 80px;
    height: 80px;
    background: lightblue;
}
.ct3{
    display: flex;
    align-items: center;
    justify-content: center;
 }
image.png

方法四:定位+偏移0+margin:auto

//html
    <div class="ct4 ct">
        <div class="box4 box"></div>
    </div>
//css
    .ct4{
        position: relative;
    }
    .box4{
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        right: 0;
        margin: auto;
    }
image.png

你问我最喜欢用哪个?不考虑兼容性的情况下当然是flexbox啊(◕ᴗ◕✿)

相关文章

  • CSS解决盒模型居中的问题

    CSS实现盒子模型水平居中、垂直居中、水平垂直居中的多种方法 CSS实现盒子模型水平居中的方法 全局样式 第一种:...

  • css实现水平垂直居中的方法总结

    css实现水平垂直居中的方法总结 实现水平垂直居中你有多少种方法?这是前端面试必考题啊!-=- 这段时间公司招前端...

  • CSS水平垂直居中总结

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

  • Flexbox实现元素的水平居中和垂直居中

    网上有N种方法实现元素的水平居中和垂直居中,如CSS制作水平垂直居中对齐,这些方法各有各的优缺点。在这里,我们使用...

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

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

  • css 实现水平居中的方法总结

    css 实现水平居中,垂直居中,水平垂直居中,是css 入门的必修课题,也是代码实践,笔试面试中经常遇到的场景。这...

  • 动态设置div css属性

    jQuery实现水平和垂直居中 jQuery实现水平和垂直居中的原理就是通过jQuery设置DIV的CSS,获取D...

  • margin负值应用实例

    1. 水平垂直居中 利用margin负值可以实现元素的水平垂直居中 html代码: CSS代码 实现效果 2. 列...

  • CSS - 垂直水平居中方法

    前言 总括:整理 css 垂直水平居中方法,区分内联元素与块级元素 CSS垂直居中和水平居中 用css让一个容器水...

  • 用CSS实现元素居中的N种方法

    网页布局中,元素水平居中比垂直居中简单不少,同时实现水平垂直居中也不难,难的是想出多种实现水平垂直居中的方法并从中...

网友评论

      本文标题:css实现垂直水平居中的方法

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