Css 我使用了特殊字符'#''_';和'\';IE浏览器兼容性。但是现在我的样式表因为使用IE hack而在W3c验证中失败了

Css 我使用了特殊字符'#''_';和'\';IE浏览器兼容性。但是现在我的样式表因为使用IE hack而在W3c验证中失败了,css,cross-browser,Css,Cross Browser,为了与IE浏览器兼容,我使用了特殊字符“\”、“\”。但是现在我的样式表因为使用IE hack而在W3c验证中失败了。是否仍然存在具有浏览器兼容性的无错误样式表 现在我无法删除这些IE黑客,因为我的HTML文件正在进行Java程序开发 我的黑客是这样的: /*对于IE8*/顶部:-15px /*对于IE7*/#top:-10px /*对于IE6*/_顶部:-1px 在条件语句中使用了特定的html页面 <!--[if IE ]> <link href="iecss.css"

为了与IE浏览器兼容,我使用了特殊字符“\”、“\”。但是现在我的样式表因为使用IE hack而在W3c验证中失败了。是否仍然存在具有浏览器兼容性的无错误样式表

现在我无法删除这些IE黑客,因为我的HTML文件正在进行Java程序开发

我的黑客是这样的:

/*对于IE8*/顶部:-15px

/*对于IE7*/#top:-10px


/*对于IE6*/_顶部:-1px

在条件语句中使用了特定的html页面

<!--[if IE ]>
  <link href="iecss.css" rel="stylesheet" type="text/css">
<![endif]-->

我想说的是,不要太担心验证

当试图找出什么东西坏了时,使用它是很有帮助的,但这不是任何网站的目标

为什么不使用条件注释,而不是css中的hack呢

<!--[if lt IE 8]>
  //styles here
<![endif]-->

您可以将单个样式放置在其中,也可以将其链接到样式表

不管怎样,只有不到8个人能看到


将您对IE的适应分为不同的样式表,并通过以下方式将其包括在内,例如,对于IE8样式表:

<!--[if IE 8]
<link rel='stylesheet' href='ie8.css' />
<![endif]-->

还有一个没有条件注释的解决方案,它允许您将所有CSS规则存储在一个文件中

* html selector { /* rules for IE6 */ }
*:first-child+html selector { /* rules for IE7 */ }
对于IE8,您不需要任何CSS攻击;这是一款支持CSS 2.1的浏览器。尽管如此,如果您确实需要一个,您可以尝试设置一个值而不进行任何修改,然后使用一些IE8无法识别的CSS3选择器重写它

selector { /* rules for IE8 */ }
html:root selector { /* rules for IE9, Firefox, Chrome, etc. */ }

是的,不要使用无效的CSS破解,它们非常脆弱

对于拾取IE的特定情况,条件注释更好。大多数解决方案都在CCs中添加了额外的样式表,但如果您不想这样做,可以使用CCs进行类切换:

<!--[if IE 6]> <body class="ie6"> <![endif]-->
<!--[if IE 7]> <body class="ie7"> <![endif]-->
<!--[if gte IE 8]><!--> <body> <!--<![endif]-->

(这是假设IE8是“正常”的,应该按照与其他浏览器相同的规则提供服务,因此“向下显示”CC允许其他人看到无类的

验证是否如此重要?是的。我想要有效的样式表。所以现在我需要为IE6、7和8创建3个新的样式表。如果三个IE版本中的调整不同:是。这是一个干净的方法。我认为这是针对first child=:first child+html选择器{/rules for IE7*/}@Omm不,黑客使用了IE7中的一个bug,所以
*:first child+html
匹配浏览器中的
元素,即使之前没有元素。但是如何添加
上面的代码片段只包含一个实体元素,但是当IE6、7和8以及其他浏览器解析时,它们会看到不同的实体元素。您可以用这一节或类似的内容替换简单的
打开标记,以检测您感兴趣的特定IE版本。
<!--[if IE 6]> <body class="ie6"> <![endif]-->
<!--[if IE 7]> <body class="ie7"> <![endif]-->
<!--[if gte IE 8]><!--> <body> <!--<![endif]-->
#something { top:-15px; }
body.ie7 #something { top:-10px; }
body.ie6 #something { top:-1px; }