table-cell实现大小不固定元素的垂直居中

使用table-cell实现元素的垂直居中,即使内容长度变化也能保持效果。父元素需设定宽高、display: table,子元素设定display: table-cell和vertical-align: middle。

代码实例:

<!DOCTYPE html>
<html>
<head>
    <title>测试</title>
    <meta charset="utf-8">
    <style type="text/css">
        .container{
          display: table;
          width: 300px;
          height: 200px;
          background-color: #ddd;
        }
        .container .item{
          display: table-cell;
          vertical-align: middle;
          padding: 0 20px;
        }
    </style>
</head>
<body>
 <div class="container">
    <div class="item">无限长度的元素,此元素长度如果超过设定的width值,会自动换行</div>
 </div>
</body>
</html>

 
 
 

页面展示效果

当item内容很长时,会自动换行,但是在垂直方向上一直保持居中

这里写图片描述

当item内容不够长时,在水平方向上不能保证居中,但是,垂直是居中的:
这里写图片描述



注意几点:

父元素container:

  • 宽高要设定
  • display: table是必须设定的

自元素item:

  • 设定宽度是无效,内容足够长时在水平上他会撑满父容器宽度;内容不够长时,靠左排列;
  • 在设定display: table-cell的同时,一定需要设置:vertical-align:middle
  • 设置margin值也是无效的,只能设置padding值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值