0

我有以下代码在 IE7 中显示某个 UL。然后,我如何为除 IE7 之外的所有浏览器应用其他 UL 样式?例如到 chrome、firefox 和 IE8 - IE10

<!--[if IE 7]>
        <ul class="toggle" style="margin-right:30px; list-style:none">
          @if (Model.CourseSections != null)
          {
            foreach (var sectionItem in Model.CourseSections)
            {                     
              <li>
                <h5 class="accordion-title">@sectionItem.Title<span class="accordion-icon"></span></h5>
                <div class="accordion-content">
                  <ul>
                    @foreach (var subSectionItem in sectionItem.SectionContents)
                    {
                      <li><a href="#" id="menuItem @subSectionItem.ContentID @sectionItem.CourseSectionID" onclick="SubItemMenu(id)">@subSectionItem.Content.Name</a></li> 
                    }
                  </ul>
                </div>
              </li>
            }
          }
        </ul>
        <![endif]-->

        <ul class="toggle" style="list-style:none">
          @if (Model.CourseSections != null)
          {
            foreach (var sectionItem in Model.CourseSections)
            {                     
              <li>
                <h5 class="accordion-title">@sectionItem.Title<span class="accordion-icon"></span></h5>
                <div class="accordion-content">
                  <ul>
                  @foreach (var subSectionItem in sectionItem.SectionContents)
                  {
                    <li><a href="#" id="menuItem @subSectionItem.ContentID @sectionItem.CourseSectionID" onclick="SubItemMenu(id)">@subSectionItem.Content.Name</a></li> 
                  }
                  </ul>
                </div>
              </li>
            }
          }
        </ul>
4

3 回答 3

3

您应该能够执行以下操作:

<!--[if IE 7]>
   You're using IE!
<![endif]-->
<!--[if !IE 7]>
   You're using something else!
<![endif]-->

可以在此处找到 IE 条件注释的文档: http ://reference.sitepoint.com/css/conditionalcomments

正如@spudley 在评论中所说,如果唯一的区别是styleul那么这对你来说不是最好的解决方案。

于 2013-10-30T16:57:33.940 回答
2

如果差异仅在于样式,您可以使用页面开头的条件注释在实际的 html 元素上设置一个类。(感谢保罗爱尔兰人

<!DOCTYPE html>
<!--[if lt IE 7]>      <html class="lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>         <html class="lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>         <html class="lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class=""> <!--<![endif]-->
<head>...

然后适当地修改样式表:

.toggle {list-style:none}
.lt-ie8 .toggle {margin-right:30px;}
于 2013-10-30T17:08:41.923 回答
1

不同浏览器的不同标记是可怕的。如果您需要条件样式,请使用这个技巧(而不是开头<html>):

<!--[if lt IE 7]>      <html class="lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>         <html class="lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>         <html class="lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->

并在你的风格中使用它:

something {
    // styling for all browsers
}

.lt-ie9 something { 
    // styling for IE8 and below
}

(HTML5Boilerplate 一直在使用类似的东西,但他们最近放弃了它。)

如果您真的需要浏览器条件标记(不仅仅是样式),这当然不会拯救您,但是我会说您的实际问题是“如何在不使用浏览器条件标记的情况下执行 X”

于 2013-10-30T17:06:30.023 回答