css 为什么这样写? margin-right: 6px; _margin-right:3px
5个回答
展开全部
这样是为了做浏览器的兼容。
浏览器不同(甚至同一个浏览器的不同版本都有区别),对css的支持是不一样的。
比如IE与firefox,同一个css属性会有不同的表现,这时就需要写兼容性代码,以保障这些浏览器在浏览时看到的是同样的效果。
而你的问题中所提到的“margin-right: 6px; _margin-right:3px”,正如那位网友“玉胡蝶碟”所提到的,是为了兼容IE6浏览器。因为只有IE6浏览器能识别以下划线开头的css属性。而别的浏览顺不识别就会自动忽略掉。
所以当用ie7或firefox、chrome等浏览器打开这个网页时,会采用“margin-right: 6px;”,而当你用IE6来打开这个网页时,首先会读取到“margin-right: 6px;”,紧接着会发现有一个“_margin-right:3px”,这时IE6就会以“_margin-right:3px”为准来渲染这个网页给你看。
浏览器不同(甚至同一个浏览器的不同版本都有区别),对css的支持是不一样的。
比如IE与firefox,同一个css属性会有不同的表现,这时就需要写兼容性代码,以保障这些浏览器在浏览时看到的是同样的效果。
而你的问题中所提到的“margin-right: 6px; _margin-right:3px”,正如那位网友“玉胡蝶碟”所提到的,是为了兼容IE6浏览器。因为只有IE6浏览器能识别以下划线开头的css属性。而别的浏览顺不识别就会自动忽略掉。
所以当用ie7或firefox、chrome等浏览器打开这个网页时,会采用“margin-right: 6px;”,而当你用IE6来打开这个网页时,首先会读取到“margin-right: 6px;”,紧接着会发现有一个“_margin-right:3px”,这时IE6就会以“_margin-right:3px”为准来渲染这个网页给你看。
追问
为什么让 IE6显示3px 其他显示6px 那边距不同呀
追答
“为什么让 IE6显示3px 其他显示6px”,这个要视具体代码情况来具体分析。
但是,就这一行代码本身而言,其原因是:因为IE6对CSS的支持与其他的浏览器有差异。
在IE6下用margin-right: 6px可能导致页面撑开,容器错位等,那么就必须用这样的css hack(也即现在用的这个_margin-right: 3px)代码,来保证在IE6下容器也不错位。
举个例子:
一个页面有3个容器,均设置成float:left。
这时,在IE7、firefox、chrome下,用margin-right: 6px,显示正常。
但是在IE6下,右边距(margin-right即是右边距)设置成6px时,第3个容器就因为浏览器的渲染差异而造成宽度不足,从而被挤到下面一行了(也就是出现容器错位的情况了)。这时候,就要减少右边距,从而保障在IE6下这3个容器也正常显示在同一行里,这时用_margin-right:3px,可能就刚好实现要求。
2013-09-24
展开全部
不同浏览器的标签默认不同的,所以在遇到不一致的情况下就需要单独设置。
这就是我们所说的兼容性问题。
_margin-right:3px 前面加了_代表ie6右边距只要3px就好了。如果还是6px页面就不对了。
建议多看看浏览器兼容性这方面的知识
这就是我们所说的兼容性问题。
_margin-right:3px 前面加了_代表ie6右边距只要3px就好了。如果还是6px页面就不对了。
建议多看看浏览器兼容性这方面的知识
追问
为什么让 IE6显示3px 其他显示6px 那边距不同呀
追答
IE6边距会增加显示!
如果只单独margin-right:6px;
当ie6打开页面时,右边距可能其实已经显示12px;这时你的页面就不好看了,不对齐了,这时你发现其他浏览器都是好的,只有ie6才这样,所以就只需要写一个只有ie6识别的就好了。 _margin-right:3px。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我们都是用浏览器上网,不同的人用不同的浏览器,同一个浏览器有不同的版本。
假设有100个人上网,其中60个人用IE,40个人用其他的浏览器Chrome 、firefox等等,
假如60个用IE浏览器的人中,有20个用IE6,2个人用IE5,1个人用IE4,那么为了使得正在用IE6及以下版本的23个人上网的时候能够看到右边距效果(3px),则在CSS中加入
_margin-right:3px; 这行属性和值。如果没有这行,用IE6及以下版本的IE(IE1,IE2,IE3,IE4,IE5)的人,都不能在浏览器中看到右边距宽3px这个效果。
假设有100个人上网,其中60个人用IE,40个人用其他的浏览器Chrome 、firefox等等,
假如60个用IE浏览器的人中,有20个用IE6,2个人用IE5,1个人用IE4,那么为了使得正在用IE6及以下版本的23个人上网的时候能够看到右边距效果(3px),则在CSS中加入
_margin-right:3px; 这行属性和值。如果没有这行,用IE6及以下版本的IE(IE1,IE2,IE3,IE4,IE5)的人,都不能在浏览器中看到右边距宽3px这个效果。
追问
为什么让 IE6显示3px 其他显示6px 那边距不同呀
追答
给你举例那个人写错代码了。
用IE6以下都是些老人了,这么写更加符合老人的品味。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这是一个解决IE6双倍边距的bug的一种方法,因为在IE6下的margin值会出现2倍值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
IE 6 及以下的版本可以识别带有下划线前缀的属性,而其它浏览器会忽略它。因此,一个属性前面加上下划线或者连字符,就成为了IE6及以下版本浏览器的专有属性。
#elem {
width: [W3C Model Width];
_width: [BorderBox Model];
}
追问
为什么让 IE6显示3px 其他显示6px 那边距不同呀
追答
ie有一个3px兼容性问题,你的完整HTML CSS代码呢?看看是不是这个问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询