Posted by:
努力记

努力记,通过记录,计划,让自己的努力可以触碰彩虹!

4,901

垂直水平局中(兼容IE及Firefox)

  • 2013-04-20
  • 暂无评论

在FF下实现垂直局中可以根据CCS2中的效果实现

在需要垂直局中的上级标签中添加display:table;

在效果标签中添加vertical-align:middle;

就可以基本实现垂直局中了

IE中不支持display:table;等把块元素转换为表格的CSS样式,就需用用到IE中的BUG来实现这个功能

在网上我找到了几种方法,其中只有一种是可以在和FF同样的HTML代码格式下,进行HACK来实现垂直局中效果,也是最方便的一种

在需要垂直局中的上级标签中添加height,width,font-size

通过网上的说法和本人自己的测试,font-size是height的0.87倍,这个值也就是上下1px左右的偏差,需要对应具体环境进行修改,在IE6与IE7中大概是因为计算方法不同的缘故,也有一定的偏差,也需要编写者自行进行调试

在效果标签中添加vertical-align:middle;

根据2者的结合hack写法就是

div{display:table !important;*height:xpx;*width:ypx;*font-size:x*0.87px;}
img{vertical-align:middle;}

以上就是垂直局中了,IE有明显的局限,不能自动高度,操作起来也颇为复杂

自定义宽高的写法:需要添加一层元素来满足css要求

原先:<div><img /></img></div>

现在:<div><span><img /></span></div>

div{display:table;table-layout:fixed;/*IE8下对max-widht有BUG,该属性可以修复*/*display:inline;*position:relative;width:xpx;height:xpx;float:left;}/*必须要浮动,主要是IE7*/
span{display:table-cell;*position:absolute;*top:50%;*left:50%;vertical-align:middle;text-align:center;}
img{*position:relative;*top:-50%;*left:-50%;vertical-align:middle;}

水平局中2者也有差异,首先是小标签元素如<img>,2者都可以通过上级标签的text-align:center;来进行水平局中

但涉及到块元素的水平局中2者就有区别了

首先是IE6:通过对text-align:center;的继承,可以直接实现效果

FF等:需要通过margin:0 auto;的设置来实现

2者都需要定义块级宽度,2者结合的写法就是

根据2者的结合hack写法就是

div1{text-align:center;}
div2{margin:0 auto;width:xpx;}



back up ↑

无觅相关文章插件,快速提升流量