css – 为什么不能(具有绝对位置)在>(具有相对位置)的自动尺寸内?

前端之家收集整理的这篇文章主要介绍了css – 为什么不能(具有绝对位置)在>(具有相对位置)的自动尺寸内?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
编辑:请参阅下面我自己的答案(2016)

例如:

<ul>
    <li class="first"><a href="#" title="">Home</a></li>
    <li><a href="#" title="">Chi siamo</a>
       <ul><li><a href="#" title="">item1</a></li><li><a href="#" title="">item2</a></li></ul>
    </li>
    <li><a href="#" title="">Novità</a></li>
    <li><a href="#" title="">Promozioni</a></li>
</ul>

然后设计风格:

/* level 1 Main menu ----------------------------------------- */

#main-menu > ul{ list-style:none; }

#main-menu > ul > li{
    float:left;
    display:block;
    position:relative;
    margin-left:1em;
}

#main-menu > ul > li.first{
    margin-left:0;
}


/* sub Main menu ----------------------------------------- */

#main-menu > ul > li ul {
    position: absolute;
    z-index:1000;
    display:none;
    left:0;
    top:28px;
}

#main-menu > ul > li:hover ul {
    display:inline-block;
}

#main-menu > ul > li ul li{
    float:left;
    display:block;
    list-style:none;
}

好.所以,我有主菜单,显示水平.我还希望子菜单显示水平.但由于某种原因,ul框不会调整大小以达到总li标签宽度,因此它保持垂直.父亲ul不会遇到这个问题.
我可以通过简单地为孩子ul添加适当的宽度来使其工作,但这不是我想要使用的方式.

任何的想法?

解决方法

如果您使用绝对位置,则重要的是:将鼠标悬停两次;第一个在li上,触发显示:阻止,然后在触发器上显示的ul上.
然后保持定位和造型分开:我称之为a而不是li

看这里:
http://jsfiddle.net/HerrSerker/T8x2r/2/

#main-menu > ul > li > ul:hover,#main-menu > ul > li:hover > ul {
    display: block;
}

应该使用float:left也是
http://jsfiddle.net/T8x2r/3/

猜你在找的CSS相关文章