欢迎您来到懒之才-站长的分享平台!   学会偷懒,并懒出境界是提高工作效率最有效的方法!
首页 > 经验分享 > Css&Div > CSS使未知高度DIV垂直居中

CSS使未知高度DIV垂直居中

2018-06-24 644 收藏 0 赞一个 0 真差劲 0 去评论

CSS垂直方向上的居中,尽管CSS有vertical-align属性,但是并不能有效解决未知高度的垂直居中问题,如果在一个DIV标签里有未定义高度的文字或图片,那就更不好弄了)。

在一些标准浏览器如Mozilla, Opera, Safari.,可将父级元素显示方式设定为TABLE(display: table;) ,内部子元素定为table-cell (display: table-cell),通过vertical-align特性使其垂直居中,但非标准浏览器是不支持的。

非标准浏览器只能在子元素里设距顶部50%,里面再套个元素距顶部-50% 来抵消。就像下面的代码,可解决使用vertical-align属性不能解决的垂直居中问题:

CSS代码部分:

body {padding: 0; margin: 0;} 
body,html{height: 100%;} 
#outer {height: 100%; overflow: hidden; position: relative;width: 100%; background:ivory;} 
#outer[id] {display: table; position: static;} 
#middle {position: absolute; top: 50%;} 
#middle[id] {display: table-cell; vertical-align: middle; position: static;} 
#inner {position: relative; top: -50%;width: 400px;margin: 0 auto;}
div.greenBorder {border: 1px solid green; background-color: ivory;}

DIV部分:

<div id="outer"> 
  <div id="middle"> 
      <div id="inner" class="greenBorder"> 
      </div> 
  </div> 
</div>

本方法兼容性也是很不错的,只不过有些麻烦,但各大浏览器的兼容性我们又没法控制,所以就凑合吧,总比没有解决办法要好得多。本文不涉及水平方向上的居中,水平方向上当然比较容易些,可以margin:auto试一下。

一、推荐使用迅雷或快车等多线程下载软件下载本站资源。

二、未登录会员无法下载,登录后可获得更多便利功能,若未注册,请先注册。

三、如果服务器暂不能下载请稍后重试!总是不能下载,请点我报错 ,谢谢合作!

四、本站大部分资源是网上搜集或私下交流学习之用,任何涉及商业盈利目的均不得使用,否则产生的一切后果将由您自己承担!本站将不对任何资源负法律责任.如果您发现本站有部分资源侵害了您的权益,请速与我们联系,我们将尽快处理.

五、如有其他问题,请加网站设计交流群(点击这里查看交流群 )进行交流。

六、如需转载本站资源,请注明转载来自并附带链接

七、本站部分资源为加密压缩文件,统一解压密码为:www.aizhanzhe.com

大家评论