前端--实现垂直居中的方法

1、针对行内、行内块元素

height: 198px;
line-height: 198px;
text-align: center;
复制代码

2、定位实现

这种方法比较简单,设置 position:absolue;或者position:fixed,详细如下:

margin负值法

/*position: absolute;*/
position: fixed;
top:50%;
left: 50%;
width: 120px;
height: 120px;
margin-left: -50px;
margin-top:-50px;
复制代码
  • 优点: 所有浏览器都支持
  • 缺点: 元素宽高固定,灵活性不好

3、定位实现,元素宽高不固定

margin:auto法

/*position: absolute;*/
position: fixed;
top:0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
复制代码
  • 优点: 元素宽高可以任意变化
  • 缺点: IE6,IE7不支持

4、 display: table-cell--未脱离文档流的

display: table-cell;
vertical-align: middle;
width: 900px;
height: 200px;
text-align: center;
/*float: left;*/
复制代码

注意:

  • 出现浮动就不能用display:table-cell
  • 只能实现行内、行内块元素居中,如果内部是块级元素的话,水平不能居中,这时在内部块级元素上设置margin:auto可以实现水平居中

缺点: IE7不支持 外层盒子高度确定table-cell,外层高度不确定外层再套一层设置display:table 如下:

.outer-table{
    display: table;
    width: 100%;
    height: 100%;
}
复制代码

5、 css3方法(IE9以下不支持*)

  • 第一种
display: -webkit-box;
-webkit-box-pack: center;
-webkit-box-align: center;
复制代码

flex布局

display: -webkit-flex;
display: flex;
-webkit-align-items: center;
align-items: center;
-webkit-justify-content: center;
justify-content: center;
复制代码
  • 第二种
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
复制代码

6、 使用dispaly:inline-block 和 vertical-align 还有伪类实现--推荐

注意: 只有inline-block,inline还有table的东西能用vertical-align这个属性

/*第9种---最好的--以参考线为基准*/
        /*使用dispaly:inline-block 和 vertical-align 还有伪类实现*/
        .div10{
            height: 500px;
            text-align: center;
            background-color: #f00;
        }
        .div10:before{
            content: '';
            display: inline-block;
            height: 100%;
            vertical-align: middle;
            background-color: #000;
        }
        .inner10{
            display: inline-block;
            width: 100px;
            vertical-align: middle;
            background-color: #0f0;
        }
html结构
<div class="div10">
    <div class="inner10">cwq</div>
</div>

复制代码
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值