
自作的网页在IE6里能正常显示,到了火狐里就显示错位是怎么回事 5
3个回答
展开全部
第一步、利用工具检查
很多时候,看到网页出现错位,显然就是CSS+DIV网页布局出现了问题;在寻找解决方案之前,一般都用firebug或者浏览器自带的一些相关功能来审查元素,找到出现错位的位置,查看CSS+DIV网页代码。
第二步、分析原因
利用第一步检查的一些情况进行进一步分析,从而找到出现错位的原因。总体来说,一般有内在原因和外在原因两种情况:
原因一:浏览器和CSS+DIV网页代码兼容性导致网页出现错位
原因二:放置网站广告位的JS广告本身的问题
第三步、解决问题
(1)针对第一种原因,由于不同浏览器对CSS的解释不统一,造成不同浏览器下页面错位的现象十分常见。我们可以利用CSS HACK 来改写CSS代码:
改写前:xxx. yyy:{width:290px;} (当设为IE7和Firefox下显示正常的290px时,IE6下会错位,改为280px,则IE6下正常,IE7和Firefox下显示不完美)
改写后:xxx. yyy{width:290px;* width:290px;_ width:280px;}(Firefox不认识*和_,而IE都认识*,IE7不支持_,IE6支持_)
顺序千万不要乱,因为当出现重复定义时,浏览器默认按最后一下渲染,所以一定要先正常,再*,最后_。这样Firefox读取时只看到了正常的定义,而IE都能看到第二个*的定义,于是忽略第一个正常的定义,而IE中因为IE7不再支持_,所以按照第一个带*号的执行,IE6支持_,所以认为带*后的也是重复定义,予以忽略,执行最后一个定义。
(2)如果是第二种原因,因为很多的广告联盟都不允许修改广告的尺寸,因此虽然知道是JS广告本身尺寸的原因,这时就只能修改广告位的尺寸。
很多时候,看到网页出现错位,显然就是CSS+DIV网页布局出现了问题;在寻找解决方案之前,一般都用firebug或者浏览器自带的一些相关功能来审查元素,找到出现错位的位置,查看CSS+DIV网页代码。
第二步、分析原因
利用第一步检查的一些情况进行进一步分析,从而找到出现错位的原因。总体来说,一般有内在原因和外在原因两种情况:
原因一:浏览器和CSS+DIV网页代码兼容性导致网页出现错位
原因二:放置网站广告位的JS广告本身的问题
第三步、解决问题
(1)针对第一种原因,由于不同浏览器对CSS的解释不统一,造成不同浏览器下页面错位的现象十分常见。我们可以利用CSS HACK 来改写CSS代码:
改写前:xxx. yyy:{width:290px;} (当设为IE7和Firefox下显示正常的290px时,IE6下会错位,改为280px,则IE6下正常,IE7和Firefox下显示不完美)
改写后:xxx. yyy{width:290px;* width:290px;_ width:280px;}(Firefox不认识*和_,而IE都认识*,IE7不支持_,IE6支持_)
顺序千万不要乱,因为当出现重复定义时,浏览器默认按最后一下渲染,所以一定要先正常,再*,最后_。这样Firefox读取时只看到了正常的定义,而IE都能看到第二个*的定义,于是忽略第一个正常的定义,而IE中因为IE7不再支持_,所以按照第一个带*号的执行,IE6支持_,所以认为带*后的也是重复定义,予以忽略,执行最后一个定义。
(2)如果是第二种原因,因为很多的广告联盟都不允许修改广告的尺寸,因此虽然知道是JS广告本身尺寸的原因,这时就只能修改广告位的尺寸。
展开全部
由于不同的浏览器对CSS的支持及解析结果不一样,还由于CSS中的优先级的关系。我们就可以根据这个来针对不同的浏览器来写不同的CSS。
比如 IE6能识别下划线"_"和星号" * ",IE7能识别星号" * ",当不能识别下划线"_",而firefox两个都不能认识。等等
书写顺序,一般是将识别能力强的浏览器的CSS写在后面。下面如何写里面说得更详细些。
如何写CSS Hack
比如要分辨IE6和firefox两种浏览器,可以这样写:
<style>
div{
background:green; /* for firefox */
*background:red; /* for IE6 */
}
</style>
我在IE6中看到是红色的,在firefox中看到是绿色的。
解释一下:
上面的css在firefox中,它是认识不了后面的那个带星号的东东是什么的,于是将它过滤掉,不予理睬,解析得到的结果是:div{background:green},于是理所当然这个div的背景是绿色的。
在IE6中呢,它两个background都能识别出来,它解析得到的结果是:div{background:green;background:red;},于是根据优先级别,处在后面的red的优先级高,于是当然这个div的背景颜色就是红色的了。
这样一般都可以解决浏览器不兼容的问题,希望对你有帮助。
比如 IE6能识别下划线"_"和星号" * ",IE7能识别星号" * ",当不能识别下划线"_",而firefox两个都不能认识。等等
书写顺序,一般是将识别能力强的浏览器的CSS写在后面。下面如何写里面说得更详细些。
如何写CSS Hack
比如要分辨IE6和firefox两种浏览器,可以这样写:
<style>
div{
background:green; /* for firefox */
*background:red; /* for IE6 */
}
</style>
我在IE6中看到是红色的,在firefox中看到是绿色的。
解释一下:
上面的css在firefox中,它是认识不了后面的那个带星号的东东是什么的,于是将它过滤掉,不予理睬,解析得到的结果是:div{background:green},于是理所当然这个div的背景是绿色的。
在IE6中呢,它两个background都能识别出来,它解析得到的结果是:div{background:green;background:red;},于是根据优先级别,处在后面的red的优先级高,于是当然这个div的背景颜色就是红色的了。
这样一般都可以解决浏览器不兼容的问题,希望对你有帮助。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
浏览器兼容问题,相当普遍,火狐浏览器用的是非IE内核
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询