资源管理器中html标记上的CSS类的条件注释

Ng'*_*esh 3 html css html5 internet-explorer css3

我是Web开发的初学者,我需要其他有经验的Web开发人员的帮助.对于与IE的兼容性问题,我遇到了Paul Irish的条件评论,但我对它非常环保.下面的代码在doctype html之后head标记中的位置是什么?

<!--[if lt IE 7]><html class="ie6"><![endif]-->
<!--[if IE 7]><html class="ie7"><![endif]-->
<!--[if IE 8]><html class="ie8"><![endif]-->
<!--[if IE 9]><html class="ie9"><![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--><html class=""><!--<[endif]-->
Run Code Online (Sandbox Code Playgroud)

那些类中的代码究竟应该是一个例子.

Car*_*ham 5

您发布的代码将仅在doctype声明下.

<!DOCTYPE html>
// THE CODE HERE
Run Code Online (Sandbox Code Playgroud)

给出了类名,以便CSS可以应用于某些版本的IE,因为并非所有的CSS都适用于每个版本的IE.

例如,您可以将元素设置为仅在IE8中具有固定高度

html.ie8 #someElement {
  height: 200px;
}
Run Code Online (Sandbox Code Playgroud)


SW4*_*SW4 5

注释块被设计进去的地方的html标签,所以之后doctype声明.

然而...

考虑到这一点 - 我倾向于敦促你不要针对IE,或者更糟糕的是,你的CSS中的IE的特定版本.

您应该始终努力创建一个与浏览器兼容的布局(HTML和样式),支持渐进增强优雅降级.我很欣赏这并不总是非常容易,但是在越来越复杂的网站中,它比尝试专门迎合不同浏览器的不同版本更好,而不是学习如何实现所有人支持的CSS /功能集.

从长远来看,特别是如果你正在学习 CSS-你将不可避免地遇到最初的挫折,但你会通过不使用条件评论来学到更多东西.

正如在这个答案的评论中所指出的那样,条件评论基本上接受你是或将会引入错误,并围绕它进行编码 - 重点是你永远不应该接受你首先引入错误但是代码是为了防止错误一切都在发生.您应该使用优雅降级的样式和属性在CSS中实现容错.