【问题标题】:Wrong submenu positioning in ChromeChrome 中的子菜单定位错误
【发布时间】:2011-04-17 05:50:44
【问题描述】:

这就是我想要的(在 Firefox 和 IE 中有效)。箭头图像正确定位在菜单项的右侧:

但这就是它在 Chrome 中的样子:

<div id="main-nav">
    <ul class="tabbed">
        <li><a href="#">Link 1 (submenu)</a><span></span></li>                       
        <li><a href="#">Link 2</a></li>
        <li><a href="#">Link 3</a></li>
        <li><a href="#">Link 4</a></li>
        <li><a href="#">Link 5</a></li>
    </ul>
</div>
<div class="clearer">&nbsp;</div>    

<div id="sub-nav" style="display:none;">

    <ul class="tabbed">
        <li><a href="#">Sublink 1</a></li>
        <li><a href="#">Sublink 2</a></li>
        <li><a href="#">Sublink 3</a></li>
        <li><a href="#">Sublink 4 </a></li>
    </ul>

    <div class="clearer">&nbsp;</div>

</div>    

CSS

ul.tabbed li {
    list-style: none;
    margin-top: 0;
}

ul.tabbed {
    display: inline;
    margin: 0;
}

ul.tabbed li {
    float: left;
}

ul.tabbed li span { /*--Drop down trigger styles--*/
   width: 17px;
    height: 35px;
    float: right;
    background: url("button.gif") no-repeat;
}

ul.tabbed li span.subhover {
    background: url("button-hover.gif") no-repeat; 
    cursor: pointer;
} /*--Hover effect for trigger--*/

你可以看到demo here

我注意到在 Chrome 中添加一个空的 img 标签可以解决问题,但我认为这不是正确的解决方案。

<div id="main-nav">
<ul class="tabbed">
    <li><a href="#">Link 1 (submenu)</a><span></span> <img src="" /> </li> 

【问题讨论】:

    标签: jquery html css google-chrome drop-down-menu


    【解决方案1】:

    你可以试试这个:

    • &lt;span&gt;&lt;/span&gt; 移动到&lt;a&gt; 中。
    • ul.tabbed li span 中删除float
    • display:inline-block 添加到ul.tabbed li span 并将height 降低到27px。

    http://jsfiddle.net/ambiguous/ekZEw/

    您可能需要稍微修改 CSS 才能获得所需的精确视觉外观。

    我认为将跨度移动到您希望它附加到的元素(锚点)内会产生比其他任何东西更可靠的结果。

    【讨论】:

    • +1 表示有用的内容更改。我还会调整菜单的布局。
    【解决方案2】:

    我稍微调整了您的代码,它可以正常工作(在 Chrome 中):http://jsfiddle.net/u9NZn/3/

    以下是我所做的一些更改:

    ul.tabbed li span { /*--Drop down trigger styles--*/
        position: absolute;
        top: 0px;
        right: -1.5em;
        width: 17px;
        height: 35px;
        background: url("https://lh6.googleusercontent.com/_ds3R4wTBTl0/Tanu3Y5PHOI/AAAAAAAAAnU/STdJTpqNJHA/subnav_btn_top.gif") no-repeat;
    }
    
    ul.tabbed li {
        float: left;
        position: relative;
    }
    

    演示:http://fiddle.jshell.net/u9NZn/3/show/

    【讨论】:

    • 现在剩下要做的就是将该图像设置为精灵,这样当您将鼠标悬停在它上面时浏览器就不必下载它。
    • 好主意,但我没有这样做;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-02
    • 1970-01-01
    • 2013-10-26
    相关资源
    最近更新 更多