在不确定自身高度的情况下,用 CSS 实现元素垂直居中的3种方法

作者:Jaskey Lam
链接:https://www.zhihu.com/question/20543196/answer/57757836

1.不知道自己高度和父容器高度的情况下, 利用绝对定位只需要以下三行:

  1. parentElement{

  2. position:relative;

  3. }

  4.  
  5. childElement{

  6. position: absolute;

  7. top: 50%;

  8. transform: translateY(-50%);

  9.  
  10. }

 

2.若父容器下只有一个元素,且父元素设置了高度,则只需要使用相对定位即可

 
  1. parentElement{

  2. height:xxx;

  3. }

  4.  
  5. .childElement {

  6. position: relative;

  7. top: 50%;

  8. transform: translateY(-50%);

  9. }

 

demo: Edit fiddle - JSFiddle

 

Flex 布局:

不考虑兼容老式浏览器的话,用Flex布局简单直观一劳永逸:

 
  1. parentElement{

  2. display:flex;/*Flex布局*/

  3. display: -webkit-flex; /* Safari */

  4. align-items:center;/*指定垂直居中*/

  5. }


demo: http://codepen.io/anon/pen/PZKZqe

 

 

 

作者:李天昭
链接:https://www.zhihu.com/question/20543196/answer/15432218
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

1. 表格居中
 

HTML:
<div id="box"><div id="content"></div></div>
CSS:
#box { display: table; height: 400px; background: #c00; }
#content { color: #fff; text-align: center; display: table-cell; vertical-align: middle; }


兼容性:http://caniuse.com/#search=table,除了IE6/7都支持


2. inline-block
 

HTML:
<div id="box">
<div id="content">我是内容<br />我也是内容</div>
<div id="actor">我是演员</div>
</div>
CSS:
#box { height: 400px; background: #c00;}
#content, #actor { display: inline-block; vertical-align: middle;}
#content { font-size: 12px; color: #fff;}
#actor {height: 400px; font-size: 0;}

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值