纯CSS下拉菜单:我有基本的功能,但是我如何让第二级li项内联显示,而不是在彼此的顶部



我使用这个:http://jsfiddle.net/fJSVz/作为我的基本菜单,它非常适合底部固定菜单。也就是说,当您将鼠标悬停在菜单上时,我需要显示二级列表项,这些列表项将显示在上方、居中和内联(在一行上),而不是一对一地显示在另一行上。你知道我需要做些什么才能让它工作吗?我都快气疯了!

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Dropup Demo</title>

<style type='text/css'>
   #navigation {
            width: 980px;
            height: 38px;
            margin-top:100px;
        }
            #navigation li {
                float: left;
                position: relative;
                width:100px;
                border:1px solid red;
            } #navigation li:hover { background: silver; }
                #navigation li a {
                    text-transform: uppercase;
                    color: white;
                    padding: 13px 33px;
                    line-height: 38px;
                    font-size: 11px;

                }
                    #navigation li a:hover { text-decoration: none; }
                    #navigation li ul {
                        position: absolute;
                        display:none;
                        z-index: 1000;
                        min-width: 100%;
                        left:-1px;
                    }
                    #navigation li:hover ul {
                        bottom:20px;
                        display:block;
                        background:#eee;
                    }
                        #navigation li ul li {
                            background: none;
                            width: 100%;
                        }
                            #navigation li ul li:hover {
                                background: none;
                                background-color: #2a51b5;
                            }
                            #navigation li ul li a {
                                text-transform: uppercase;
                                color: white;
                                padding: 8px 10px;
                                line-height: 28px;
                            width: 100%;
                            }
</style>

</head>
<body>
<ul id="navigation">
<li>1</li>
<li>2
<ul>
<li>2.1</li>
<li>2.2</li>
<li>2.3</li>
</ul>
</li>
<li>3</li>
<li>4</li>

</ul>

                   #navigation li  ul {
                        /*position: absolute;*/
                        display:none;
                        z-index: 1000;
                        min-width: 100%;
                        left:-1px;
                    }

位置absolute是它把ul放在上面的原因。

这里是一个固定的http://jsfiddle.net/fJSVz/36/.

它不能内联,因为它的宽度=父元素的宽度,所以如果你想让它们内联,你需要给第二个元素的宽度大于父元素,然后它们的li可以在一行。

    #navigation ul li ul{
width:400%; /*  in this case it will be 4*100px */
}
   #navigation ul li ul li{
display:inline-block
}

下面是示例

当父元素为相对元素而子元素为绝对元素时,子元素的宽度不能大于父元素,需要手动增大。

最新更新