最近发现 火狐浏览器 对CSS代码 解释有问题!高手们进来看看哈!
先解释下哈:CSS中position属性规定元素的定位类型。值relative:生成相对定位的元素,相对于其正常位置进行定位。因此,"left:20"...
先解释下哈:CSS 中position 属性规定元素的定位类型。值relative: 生成相对定位的元素,相对于其正常位置进行定位。因此,"left:20" 会向元素的 LEFT 位置添加 20 像素。 我实际建立这样一个网页:<HTML><style type="text/css">#Layer13 { position:relative; left:200px;}</style> <BODY> <div id="Layer13"> <table width="360" height="20" border="0" cellpadding="0" cellspacing="0" align="center"> <tr> <td width="90" align="center"><a href="">物流中心</a></td> <td width="90" align="center"><a href="">物流中心</a></td> <td width="90" align="center"><a href="">物流中心</a></td> <td width="90" align="center"><a href="">物流中心</a></td> </tr> </table> </div> </BODY></HTML> CSS定义了position:relative; left:200px;两项值根据这些属性的定义 表的正常位置是居中 left定义了其向右移动200像素。该代码在普通IE浏览器及遨游等浏览器中显示正常,表右移了200像素,但在火狐浏览器中出现了左右滚动条。实际是 表右移了200像素基础上 又以整个页面为单位 右部多出了200像素的空白区。我是做网页发现的,改来改去无果,最终把这些代码单独提出来探讨下哈。考虑是火狐浏览器本身的问题。哪位高手明白的给小弟解释下子!谢谢!
展开
4个回答
展开全部
这其实不算是火狐的问题,火狐和IE属于不同内核的浏览器,对CSS的解析有差异不足为奇,但不能说有差异就一定是火狐有问题,IE则永远正确。事实上,在你说的这个问题上,我认为火狐的解析比IE更规范,因为DIV在未明确指定其width的情况下,其宽度默认是100%的(你给Layer13加个边框就清楚了),所以在设置其Left:200px时,相当于DIV整体右移了200像素,这样DIV的右边200像素肯定就“凸出”到屏幕外面去了,火狐忠实地反映了这种情况(所以出现了横向滚动条),而IE则自作聪明地把DIV右边200像素削掉了。当然,哪种处理方式才合理是见仁见智的,我倾向于支持火狐。要避免这种兼容问题,就要尽可能避免使用百分比作为CSS的长度单位,而应该指定一个绝对数值。像你的代码,只要给Layer13明确指定宽度值(比如width:800px),在IE和火狐就都没问题了。
展开全部
火狐比IE更遵守w3c规范,但IE市场份额大,火狐用的人很少,我现在都不管火狐。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
FF(火狐)没有解释错误。这样解释才是对的。是IE(你应该是在IE6看的吧)兼容了这个错误,在IE7及IE8都会入FF那样解释。这段在火狐、IE7、IE8下应该给这个div的父容器(现在是BODY)加一个剪切超出范围的样式。body
{overflow:
hidden;
}
{overflow:
hidden;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询