2012-02-05 28 views
1

最近我遇到了HTML5 Boilerplate并喜欢它!但是有一部分我不明白。HTML5 Boilerplate <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]--> 

Paul Irish表示,我们可以使用它来代替条件样式表和CSS黑客。有没有人有这方面的经验,就像我阅读他的博客一样,我仍然无法理解它。

现在我正在使用CSS3媒体查询,但它不在IE中工作,我只是一个幸运的和CSS3-mediaqueries.js文件(或类似的东西)和respond.js文件只是不不为我工作。所以我决定有条件的评论或特定的样式表适合我,但我记得这个设置,但真的不知道如何使用它。

任何帮助非常感谢!

回答

1

这些就是所谓的条件注释。它们不是任何标准的一部分。

IE是一件有趣的事情 - 它实际上解析了什么应该是非活动数据的文本!但它应该工作。

您使用这种方式很简单:如果您使用的是IE < 7,那么您将blah元素设置为.ie6 blah。一个更具体的例子:比方说,你希望你的超链接在用户使用IE8时是红色的,否则是绿色的。下面是一些CSS:

a { 
    color: green; 
} 

.ie8 a { 
    color: red; 
} 

由于“a这是具有ie8类元素的后代”更具体的比“任何a”,后者适用于在IE8中的链接会变成红色。此逻辑仅适用于IE8,因为这是IE8的条件注释被解释为HTML的一部分(而不是注释掉)的唯一情况。

唯一可能会造成混乱其他的一点是,最后一行,在那里你有一个-->注释块:这意味着浏览器完全不顾条件注释仍然会看到在过去的块中的HTML(沿IE> 9和非IE-but-still-interpreting-conditional-comments浏览器)。

+0

这是一个很好的方式来风格的IE浏览器,而不是我的媒体查询?因为它是现在,如果你在任何IE版本(当然除了IE 9)去我的网站,你会看到移动版本的样式。不知道为什么。你可以帮我解决这个问题,如果我给你的链接指向我的网站,那么你可以看看它可能在做什么?这是我第一次为手机和平板电脑用户使用HTML 5和风格,所以这是一个很大的混乱。 – kia4567 2012-02-05 04:35:38

+0

@AmberGoodwin这是一种很好的IE风格。我不太了解IE特有的行为(我总是为W3C标准编写代码),告诉你为什么你的网站表现不好,除了建议你把文档中的第一件事情放在<!DOCTYPE html>之外。抱歉。 – Borealid 2012-02-05 04:39:35

+0

那好吧。我很欣赏答案。我会全速前进。谢谢! – kia4567 2012-02-05 04:49:56