中资源
中国设计秀设计资源站
Dreamweaver Flash Photoshop 其它周边 web标准 asp php .net CSS WAP网站攻略 专题
广州网站设计 维美网站建设 域名注册 虚拟主机 广州网站建设 广州网页设计 虚拟主机 域名注册 素材下载 广告服务 中国品牌形象设计 网站推广 家具中国
求创科技
中国设计秀
中国福网
金视觉
中国设计秀欢迎你
中国品牌形象设计网
中国设计秀
当前位置:网络学院首页 >> 设计教程 >> web标准 >> 网页设计中未知高度的非表格垂直对齐

网页设计中未知高度的非表格垂直对齐

来源:中国设计秀    作者:realazy    点击:204     加入收藏
中资源

非已知高度的垂直对齐的条件:

  • 表格单元格
  • 行内块(inline-block

第一个比较好理解,第二个很多人可能会忽略。比如,很多人在图片与文本混排的时候想让图片相对于文本垂直居中除了用IE的私有特性 valign="absmiddle"别无他法。记住,默认下图片就是属于inline-block,你只需简单的img {vertical-align:middle;}即可。

那么,我们进入主题。现在我们由于某些特殊需要两个并排的div想实现垂直居中。如前所述,div非表格,但是当代的浏览器中除了IE都支持display:table-cell。恰好,IE支持dispaly:inline-block,那么我们就用两种方式为当代浏览器实现非表格的垂直居中,殊途同归。

HTML如下:

<div id="div1">blah blah...看见我居中了吗?</div>
<div id="div2">
	<p>blah blah...</p>
	....
</div>

CSS如下:

#div1, #div2 {display:table-cell; *display: inline; zoom:1; vertical-align:middle;}

我们来重点分析CSS。如您所知,*property是一个只有IE(包括IE7)才能解析的hack. 那么为何是inline而不是inline-block呢?这跟IE的变态工作方式有关,具体不深究。在此你只需知道加上zoom:1后,就等价于inline-block。另外,如果是a, span等非block的元素,则按正常方式display:inline-block

OK, 既然是tip, 废话不宜多,自己看例子:http://realazy.org/lab/div-valign/.

Update:严格地说,IE确实不支持inline-block,这就是为什么直接赋予div会不生效的问题。准确地说,在IE中,为inline赋予inline-block会使IE触发hasLayout,从而获得部分inline-block的表现。请参考:http://cn.autos.yahoo.com/as2007/sub1/index.html .

0
顶一下
2008-04-25 00:04:00    出处:realazy.org
关于我们 | 联系我们 | 网站建设 | 广告服务 | 版权声明 | 免责声明 | 网站公告 | 友情链接 | 留言 | 旧版入口