2

我想知道,在使用条件注释时,正确的方法是什么(注意结束 div 标签)

这样,两个条件 div 都有一个关闭 div

<!--[if IE]>
<div id="IEdiv">
<![endif]-->

<!--[if !IE]><!-->
<div id="AllOtherDiv">
<!--<![endif]-->

  <div>The Content</div>
</div>

或者

这样,每个条件 div 都有一个关闭 div,并重复相同的 html

<!--[if IE]>
<div id="IEdiv">
<div>The Content</div>
</div> 
<![endif]-->

<!--[if !IE]><!-->
<div id="AllOtherDiv">
<!--<![endif]-->
<div>The Content</div>        
</div>

注意:您可能想知道如果内部 HTML 相同,为什么我不只使用条件样式表,但我在条件 div 上使用内联样式(我必须)并且 IE 的内联样式不同(这是必要的,因为 IE 很烂所以对它的 css 支持不好......)

谢谢

4

2 回答 2

2

从技术上讲,这两者都没有对错,但是如果在浏览器之间重复内容,那么重复内容似乎是一种浪费。只需像在第一个示例中那样对开始标记进行条件化。HTML 注释旨在允许这种技术。

顺便说一句, HTML5 Boilerplate恰好使用<html>开始标记来执行此操作,除了类和稍微不同的条件注释,但只要您正确定位浏览器,您就可以使用任何您想要的属性:

<!--[if lt IE 7]> <html lang="en-us" class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>    <html lang="en-us" class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>    <html lang="en-us" class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html lang="en-us" class="no-js"> <!--<![endif]-->
于 2012-08-16T19:32:14.310 回答
1
<!--[if IE]>
<div id="IEdiv">
<![endif]-->

<!--[if !IE]><!-->
<div id="AllOtherDiv">
<!--<![endif]-->

  <div>The Content</div>
</div>

是正确的方法,因为您在许多网站上都看到了这一点:

<!--[if IE9]>
<html class="ie9">
<![endif]-->

<!--[if IE8]>
<html class="ie8">
<![endif]-->

<!--[if lte IE7]>
<html class="ie7">
<![endif]-->

<!--[if !IE]><!-->
<html>
<!--<![endif]-->

content....

</html>
于 2012-08-16T19:34:05.810 回答