惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

MyScale Blog
MyScale Blog
Apple Machine Learning Research
Apple Machine Learning Research
H
Help Net Security
雷峰网
雷峰网
V
Visual Studio Blog
G
Google Developers Blog
Microsoft Azure Blog
Microsoft Azure Blog
Hugging Face - Blog
Hugging Face - Blog
爱范儿
爱范儿
IT之家
IT之家
Engineering at Meta
Engineering at Meta
Microsoft Security Blog
Microsoft Security Blog
aimingoo的专栏
aimingoo的专栏
大猫的无限游戏
大猫的无限游戏
M
MIT News - Artificial intelligence
月光博客
月光博客
A
About on SuperTechFans
B
Blog RSS Feed
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The GitHub Blog
The GitHub Blog
N
Netflix TechBlog - Medium
J
Java Code Geeks
云风的 BLOG
云风的 BLOG
Blog — PlanetScale
Blog — PlanetScale

博客园 - 海潮的博客

用DOS命令安装删除服务 - 海潮的博客 - 博客园 安装好PHP之后一般要找到php安装目录,修改php.ini中的时区设置 让Serv-u 9永远停留在30天试用的方法 请问SharePoint高手,怎样开发一个类似查阅项的字段类型?(无奈求助,请保留一两天) Static Ip on Windows PE 2 查看windows端口的使用 (抄录的) 不得不在这里求助了,NBear是不是没有TableAttribute属性了? vista 下安装了 vs2005及vs2005 sp1,但是还是出现“要运行 visual studio 2005 sp1,建议使用管理员权限” 解决ajax.net 1.0中文乱码问题! 一个上传大文件的部件叫做:SlickUpload-2.5.3 删除重复记录的办法 未知大小图片在已知容器中的垂直和水平居中问题 安装 Atlas 时遇到一个小问题 我儿子 如何在本机上开发支持二级域名的.NET系统 二级域名共享cookies Cookie 支持二级域名和FormsAuthentication 加强版 ASP.NET中实现二级或多级域名(修改UrlRewrite) 一个图片轮换效果的JS
CSS解决未知高度垂直居中的问题
海潮的博客 · 2006-09-20 · via 博客园 - 海潮的博客

原文标题:Vertical Centering in CSS

副标题:Yuhu's Definitive Solution with Unknown Height

翻译:forestgan

尽管有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通过。

2006-08-22 修改

上面的代码不支持IE7,还需要在最下面加二句:

*+html #outer[id]{position: relative;}
*+html #middle[id]{position: absolute; }