【问题标题】:Float navigation broken in IE6IE6中的浮动导航损坏
【发布时间】:2011-09-17 16:24:34
【问题描述】:

我网站的导航可以在除 IE6 之外的其他浏览器上正确呈现。

问题

而不是以这种方式显示列表:主页 |关于 |服务,每个都出现在一个新的行上,例如:

Home
About
Services
Community Pages

<li> 中的<a> 标签填满了页面的整个宽度。

我没有给<li> 一个固定的宽度,因为:导航项的长度不同,并且想要占用相对于它们的长度的空间。

我的 HTML

<div id="nav">
    <ul>
        <li class="top1space2"><a href="index.php" title="Go To Our Home Page" class="top1space3">Home</a></li>
        <li class="top1space2"><a href="#" title="More Jobs on Ngcareers">More Jobs</a>
            <ul>
            <?php $count=count($c_id);for ($i=0;$i<$count;$i++){ ?>
            <li><b><a href="category/<?php echo $c_slug[$i];?>" >&raquo; <?php echo $c_name[$i];?></a></b></li>
            <?php } ?>
            <li class="clearfloat">&nbsp;</li>
            </ul>
        </li>
        <li class="top1space2"><a href="graduatejobs.php">Graduate Jobs</a></li>
        <li class="top1space2"><a href="vacancy.php">Post A Job</a></li>
        <li class="top1space2"><a href="month.php" >Jobs This Month</a></li>
        <li class="top1space2"><a href="jobalert.php" >GSM Job Alert</a></li>
        <li class="top1space2"><a href="employers.php" >Employers</a></li>
        <li class="top1space2"><a href="submitcv.php"> Submit CV</a></li>
        <li class="top1space2"><a href="subscribe.php" >Subscribe</a></li>
        <li class="top1space2"><a href="advertise.php">Advertise</a></li>
        <li class="top1space2"><a href="/about/contact-us">Contact</a></li>
      </ul>
</div>

我的 CSS:

#nav ul {
    padding: 0px;
    width: 1020px;
    margin-top: 0px;
    margin-right: auto;
    margin-bottom: 0px;
    margin-left: auto;
    list-style-type: none;
    font-family: Verdana, Geneva, sans-serif;
    font-size: 12px;
    height: 32px;
}
#nav ul li {
    float: left;
    display: block;
}
.top1space2 {
    background-color: #086DA1;
    background-image: url(../pics/slice1.jpg);
    background-repeat: repeat-x;
    display: block;
    height: 36px;
}
.top1space3 {
    color: #000;
    font-weight: bold;
    background-color: #F93;
    background-image: url(../pics/slice2.jpg);
    background-repeat: repeat-x;
}
#top1space3 {
    color: #FFF;
    font-weight: bold;
    background-color: #111;
    background-image: url(../pics/btnbg.jpg);
    background-repeat: repeat-x;
}
#nav ul .top1space2 a {
    color: #FFC;
    text-decoration: none;
    font-weight: bold;
    font-size: 12px;
    display: block;
    height: 36px;
    line-height: 36px;
    text-align: center;
    padding-right: 10px;
    padding-left: 10px;
    border-right-width: 1px;
    border-right-style: solid;
    border-right-color: #9CF;
}
#nav ul .top1space2 a:hover {
    color: #000;
    text-decoration: none;
    cursor: pointer;
    background-color: #F93;
    background-image: url(../pics/slice2.jpg);
    background-repeat: repeat-x;
}
#nav ul .top1space2:hover {
    cursor: pointer;
}

请问如何在 IE6 中解决这个问题,而不给元素一个固定的宽度?

【问题讨论】:

  • 试着把显示:挡住 li。这应该可以解决这个问题并创造更多。 ie6开发的乐趣!编辑:也把它从你的顶级太空舱里拿出来。没有宽度的显示块是隐式宽度:100%
  • 我很高兴我不必再使用 IE6。这种事情曾经让我发疯。
  • 这里是最新的浏览器市场份额统计数据。 IE6有10%?真的吗?我们在 6 年前停止支持 IE。请尝试做同样的事情。这只能让人们继续使用这个已有 10 年历史的浏览器。 :) arstechnica.com/web/news/2011/04/…

标签: html css internet-explorer internet-explorer-6


【解决方案1】:

绝对是一个 IE 错误。 IE6(我相信还有 IE7)将带有 width:auto 的浮动元素渲染为 width:100%

您可以在 IE6/7 中使用此规则来修复布局。

#nav ul li {
    float: left;
    display: block;
    width:0;
    white-space:nowrap;
}

或者使用 conditional comment 仅适用于 IE6/7,或者更简单地使用 IE6/7 不理解的选择器覆盖 width:auto,例如:

#nav ul li {
    float: left;
    display: block;
    width:0;
    white-space:nowrap;
}
#nav ul > li {
    width:auto;
}

【讨论】:

    【解决方案2】:

    使您的 li 元素内联(从任何元素中删除所有浮点数)并从链接中删除 display: 块。我创建了一个 jsfiddle 来展示它是如何工作的。要记住的一件事:通过删除所有浮动并仅内联显示所有内容,您将在列表中的链接元素之间获得间隙。有一种方法可以摆脱这个(我在 jsfiddle 中展示),但它需要从 li 元素之间删除任何空格,包括换行符。这会让你的标记有点混乱,但我想这取决于你对它的关心程度与你对继续支持 IE6 的关心程度。

    http://jsfiddle.net/WEmv9/4/

    我还清理了很多 css 声明 - 那里有很多重复的规则和不必要的标记 - 显然这是你的选择,但它使应用的样式更清晰,更容易理解。

    edit 更新了 jsfiddle 以使“主页”链接的颜色正确

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-16
      • 2023-03-09
      • 2013-10-31
      • 2015-04-05
      相关资源
      最近更新 更多