开发者社区> 老先生二号> 正文

CSS解决未知高度垂直居中

简介:
+关注继续查看
尽管有 CSS 的 vertical-align 特性,但是并不能有效解决未知高度的垂直居中问题(在一个 DIV 标签里有未知高度的文本或图片的情况下)。
      标准浏览器如 Mozilla, Opera, Safari 等.,可将父级元素显示方式设定为 TABLE(display: table;) ,内部子元素定为 table-cell (display: table-cell),通过 vertical-align 特性使其垂直居中,但非标准浏览器是不支持的。
      非标准浏览器只能在子元素里设距顶部 50% ,里面再套个元素距顶部 -50% 来抵消。
      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%; } /* for explorer only*/ 
          #middle[id] { display: table-cell; vertical-align: middle; position: static; } 
          #inner { position: relative; top: -50%; width: 400px; margin: 0 auto; } /* for explorer only */ 
          div.greenBorder { border: 1px solid green; background-color: ivory; }
      xhtml部分:
          <div id="outer">
          <div id="middle">
             <div id="inner" class="greenBorder"></div>
           </div>
           </div>
      以上 CSS 代码的优点是没有 hacks,采用了 IE 不支持的 CSS2 选择器 #value[id] 。
      CSS2选择器 #value[id] 相当于选择器 #value ,但是 Internet Explorer 不支持这种类型的选择器。同样地 .value[class] ,相当于 .value ,这些只有标准浏览器能读懂。
      测试:Firefox1.5、Opera9.0、IE6.0、IE5.0通过。
分类: css

本文转自快乐就好博客园博客,原文链接:http://www.cnblogs.com/happyday56/archive/2009/02/06/1385474.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
CSS的垂直居中和水平居中总结
CSS的垂直居中和水平居中总结
35 0
CSS水平居中+垂直居中+水平/垂直居中的方法总结
CSS水平居中+垂直居中+水平/垂直居中的方法总结
76 0
CSS:一行上不同大小的文字上下垂直居中对齐
CSS:一行上不同大小的文字上下垂直居中对齐
121 0
不走寻常路,CSS垂直居中的另类实现
众所周知,“css如何实现元素垂直居中?”已经是一个老生常谈的问题了,这个问题目前已经有了许多解决方案,这些方案也都有各自适用的场景以及优缺点
41 0
css 垂直居中方法汇总
css 垂直居中方法汇总
56 0
必须知道的css水平、垂直居中
  在网页制作中,有很多种水平、垂直居中方法,本文就归纳如下几种:   水平居中   1. 不建议用了。   2. text-align:center 在父容器里水平居中 inline 文字,或 inline 元素   3.margin:0 auto;   4.用 position 加 translate translate(-50%,-50%) 比较奇特,百分比计算不是以父元素为基准,而是以自己为基准。
59 0
CSS水平和垂直居中技巧大梳理
水平居中   行内元素的水平居中 text-align:center(在父元素中设置) 只对内联元素或行内块元素有效 需要放置于父元素中   块级元素的水平居中 margin: 0 auto; 只对块级元素有效 auto指的是自适应宽度。
6366 0
css点滴1—八种方式实现元素垂直居中
这里介绍实现元素垂直居中的方式,文章是参考了《css制作水平垂直居中对齐》这一篇文章。 1.行高和高度实现 这种方式实现单行垂直居中是很简单的,但是要保证元素内容是单行的,并且其高度是不变的,只要将“line-height”和“height”设置成一样的就可以了。
1203 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
零基础CSS入门教程
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载