IE7百分比计算bug

今天使用百分比写一个导航的demo,在IE7中检测时候最后一个导航掉下来,跟前边的不在一行,而在别的浏览器中都显示正常,包括非IE7的其它IE更高或者更低的版本。还以为是IE7的百分比解释有什么bug呢,但是在“查看元素”中调试的时候,无意发现,有时候不会掉下来,而有时候又掉下来,就这样在宽度的加加减减的时候,对齐不对齐现象也是时有时无的发生。

#nav{width:80%;height:60px;margin:60px auto;color:#fff;}
#nav li{list-style-type:none;float:left;width:10%;height:60px;background:#000;text-align:center;font:bold 1.6em/60px "微软雅黑";cursor:pointer;}

在老师的帮助下,先将父元素的width:80%;更改为一个固定值800px;然后增加或者减少#nav的width的大小,下表示width的不同取值,各个导航元素(li)在各个浏览器中宽度和显示的变化:

  

width chrome下li宽度 是否对齐 firefox或者非IE7的IE浏览器 是否对齐 IE7下li的宽度 是否对齐
801px 80; 80; 80; 80; 80; 81; 80; 80; 80; 80; 80; 80; 80; 80; 80; 80; 80; 80; 80; 80;
80; 80; 80; 80; 80; 80; 80; 80; 80; 80; 
802px 80; 80; 81; 80; 80; 80; 80; 81; 80; 80; 同上 同上
803px 80; 81; 80; 80; 80; 81; 80; 80; 81; 80; 同上 同上
804px 80; 81; 80; 81; 80; 80; 81; 80; 81; 80; 同上 是   同上
805px 81; 80; 81; 80; 81; 80; 81; 80; 81; 80;
81; 81; 81; 81; 81; 81; 81; 81; 81; 81; 

81; 81; 81; 81; 81; 81; 81; 81; 81; 81; 
806px 81; 80; 81; 80; 81; 81; 80; 81; 80; 81; 同上 同上
807px 81; 80; 81; 81; 80; 81; 81; 81; 80; 81; 同上 同上
808px 81; 81; 80; 81; 81; 81; 81; 80; 81; 81; 同上 同上
809px 81; 81; 81; 81; 80; 81; 81; 81; 81; 81; 同上 同上
810px 81; 81; 81; 81; 81; 81; 81; 81; 81; 81; 同上 同上

当继续增加的时候就是81跟82之间的变换了。从上边的数据变化中我们可以看到chrome(最新版本版本 37.0.2062.120)是将多出来的分摊到部分元素上显示,但是其他的浏览器都是四舍五入,看到这里,你会迷惑,按理说chrome以外的浏览器在805px(含)以后都应该掉下来才对,但是只有IE7是按照我们的逻辑显示的。是的,这里边的确有猫腻。这是因为"firefox或者非IE7的IE浏览器"在显示的时候都有“妥协”,所以实际显示跟chrome一样,但是具体的导航元素(li)的宽度确实四舍五入后的结果。
原因找到了,但是还要解决IE7的bug,我使用的方法是:对最后一个元素添加一个class=“IE7”然后在样式中写入:.IE7{+width:9.71%;}这个宽度结果是在IE7的“查看元素”中调试出来的结果,具体应用还要看具体情境。

如果大家有更好的方法,还望大家赐教……

时间: 2024-09-30 19:43:38

IE7百分比计算bug的相关文章

ie6,ie7,ie8 css bug兼容解决记录

ie6,ie7,ie8 css bug兼容解决记录 转载自:ie6,ie7,ie8 css bug兼容解决记录 - 前端开发 断断续续的在开发过程中收集了好多的bug以及其解决的办法,都在这个文章里面记录下来了!希望以后解决类似问题的时候能够快速解决 ,也希望大家能在留言里面跟进自己发现的ie6 7 8bug和解决办法! 1:li边距“无故”增加 任何事情都是有原因的,li边距也不例外. 先描述一下具体状况:有些时候li边距会突然增 加很多,值也不固定(只在IE6/IE7有这种现象),让人摸不着

SPARK大数据计算BUG处理:

大数据计算BUG处理: 程序修改前资源情况: Driver : 1台 Worker : 2台 程序提交申请内存资源 : 1G内存 内存分配情况 : 1. 20%用于程序运行 2. 20%用于Shuffle 3. 60%用于RDD缓存 单条TweetBean大小 : 3k 1. 内存溢出 原因:因为程序会把所有的TweetBean查询出来并且合并(union),该操作在内存中进行.则某个campaign数据量较大时,如500W数据,则500W*10k=50G,超出内存限制. 解决方法: 先按数据量

报告一个IE很奇葩的滚动条问题——百分比计算宽度为浮点数时的滚动条显示异常

起因: 做项目的时候做了一个表格内容超过DIV容器自动横向滚动处理.别的浏览器都正常:但是在IE下面明明表格table和容器DIV宽度一致但是却出现了滚动条.如图 然后本人做实验找了半天原因终于是找到了,是IE浏览器使用百分比计算宽度值不是整数值引起的. 实例1:使用百分比计算结果是整数的情况下显示正常. <!DOCTYPE html> <html> <head> <meta charset='utf-8'> <title>IE8奇葩滚动条问题实

PC 拖动 以百分比计算

<!doctype html> <html> <head> <meta charset='utf-8' /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta name="viewport" content="width=device-width,initial-scale

IE6,IE7,IE8 css bug搜集及浏览器兼容性问题解决方法汇总

http://www.jb51.net/css/85640.html 断断续续的在开发过程中收集了好多的bug以及其解决的办法,都在这个文章里面记录下来了!希望以后解决类似问题的时候能够快速解决,也希望大家能在留言里面跟进自己发现的ie6 7 8bug和解决办法! 1:li边距“无故”增加  任何事情都是有原因的,li边距也不例外.  先描述一下具体状况:有些时候li边距会突然增 加很多,值也不固定(只在IE6/IE7有这种现象),让人摸不着头脑,仔细“研究”发现是由于其低级元素ul的paddi

【转】 IE6 IE7 IE8 css bug兼容性解决方法总结归纳

1:li边距“无故”增加 任何事情都是有原因的,li边距也不例外. 先描述一下具体状况:有些时候li边距会突然增 加很多,值也不固定(只在IE6/IE7有这种现象),让人摸不着头脑,仔细“研究”发现是由于其低级元素ul的padding引 起,padding的上下值对li有影响,左右无影 响.所以只好笨手笨脚地把padding去掉,换成margin.这是能解决问题,但往往不是我们想要的结果,或许 还会引起其他不必要的怪现象. 现在终于发现解决这个问题的方法,其实很简单,既然是有ul引 起的,就设置

ie6,ie7,ie8 css bug汇总以及兼容解决方法

1:li边距“无故”增加 任何事情都是有原因的,li边距也不例外. 先描述一下具体状况:有些时候li边距会突然增 加很多,值也不固定(只在IE6/IE7有这种现象),让人摸不着头脑,仔细“研究”发现是由于其低级元素ul的padding引 起,padding的上下值对li有影响,左右无影 响.所以只好笨手笨脚地把padding去掉,换成margin.这是能解决问题,但往往不是我们想要的结果,或许 还会引起其他不必要的怪现象. 解决这个问题的方法,其实很简单,既然是有ul引 起的,就设置ul的显示形

ie6,ie7,ie8 css bug兼容解决方法

IE浏览器以不支持大量的css 属性出名,同时也因其支持的css属性中存在大量bug. 这里收集了好多的bug以及其解决的办法,都在这个文章里面记录下来了!希望以后解决类似问题的时候能够快速解决,也希望大家能在留言里面跟进自己发现的ie6 7 8bug和解决办法! 普通IE css bug bug名称 影响版本 描述 Image Label Focus Bug IE8,IE7,IE6 <img>元素在<label>元素之内,单击时,焦点不会转移到相应的表单控件 按钮Margin-A

bug记录:IE8,包含块min-height/height共存时的高度计算bug

问题的条件有: A元素是B元素的包含块. A元素设置overflow:hidden;,并同时设置了height和min-height,同时height计算值 < min-height 原生IE8浏览器,或者IE9浏览器的IE8兼容性模式(以下统称为IE8) 期待结果: 若B元素为absolute定位元素,A元素为relative定位元素,则B元素的包含块高度为A元素的padding-edge高度 若A.B元素均为常规流定位元素,则B元素的包含块高度为A元素的content-box高度 若A元素同