2

次のコードを含む css3 メニューを取得しました。

HTML:

<div id="navi">
    <ul>
        <li><a href="#">First</a></li>
        <li class="active"><a href="#">Second</a>
            <ul class="child">
                <li><a href="#">First child</a></li>
            </ul>
        </li>
        <li><a href="#">Third</a></li>
    </ul>
</div>

CSS:

#navi {
    height: auto;
    width: auto;
}
#navi ul {
    margin: 0px;
    padding: 0px;
    list-style-type: none;
}
#navi ul li {
    float: left;
    position: relative;
}
#navi ul li a {
    line-height: 30px;
    text-decoration: none;
    text-align: center;
    display: block;
    width: 100px;
    height: 30px;
    border: thin solid #999;
    color: #FFF;
    background-color: #0CF;
    -webkit-transition: all 1s;
    -moz-transition: all 1s;
    -ms-transition: all 1s;
    -o-transition: all 1s;
    transition: all 1s;
}
#navi ul li a:hover {
    background-color: #0C3;
}
#navi ul li ul {
    position: absolute;
    -webkit-transition: height 1s linear 0s;
    -moz-transition: height 1s linear 0s;
    -ms-transition: height 1s linear 0s;
    -o-transition: height 1s linear 0s;
    transition: height 1s linear 0s;
    height: 0px;
    overflow:hidden;
}
#navi ul li:hover ul {
    height: 100px;
    -webkit-transition: height 1s linear 0s;
    -moz-transition: height 1s linear 0s;
    -ms-transition: height 1s linear 0s;
    -o-transition: height 1s linear 0s;
    transition: height 1s linear 0s;
}

フィドルHere

今、メニューが水平ではないことを望みます。垂直にする必要があります。削除しようとしましfloat:left;たが、サブメニューが表示されません。サブメニューは、下にあるすべてのメニュー項目を押す必要があります。助言がありますか?素晴らしいことだ。

4

3 に答える 3

2
<!DOCTYPE html>
<html>
<head>
<style> 
#navi {
    height: auto;
    width: auto;
}
#navi ul {
    margin: 0px;
    padding: 0px;
    list-style-type: none;
}
#navi ul li {

}

#navi ul li a {
    line-height: 30px;
    text-decoration: none;
    text-align: center;
    display: block;
    width: 100px;
    height: 30px;
    border: thin solid #999;
    color: #FFF;
    background-color: #0CF;
    -webkit-transition: all 1s;
    -moz-transition: all 1s;
    -ms-transition: all 1s;
    -o-transition: all 1s;
    transition: all 1s;
}
#navi ul li a:hover {
    background-color: #0C3;
}
#navi ul li ul {
    position: relative;
    -webkit-transition: height 1s linear 0s;
    -moz-transition: height 1s linear 0s;
    -ms-transition: height 1s linear 0s;
    -o-transition: height 1s linear 0s;
    transition: height 1s linear 0s;
    height: 0px;
    overflow:hidden;
}
#navi ul li:hover ul {
    height: 100px;
    -webkit-transition: height 1s linear 0s;
    -moz-transition: height 1s linear 0s;
    -ms-transition: height 1s linear 0s;
    -o-transition: height 1s linear 0s;
    transition: height 1s linear 0s;
}
</style>
</head>
<body>
<div id="navi">
    <ul>
        <li><a href="#">First</a></li>
        <li class="active"><a href="#">Second</a>
            <ul class="child">
                <li><a href="#">First child</a></li>
            </ul>
        </li>
        <li><a href="#">Third</a></li>
    </ul>
</div>

</body>
</html>

これをチェックして

于 2013-10-18T06:19:09.223 に答える
2

これを行うと、完璧な外観になり、nav3 つのアイテムが押し下げられます。この高さを特定のクラスに追加します。

#navi ul li:hover ul {
    height:32px;
}

ただし、他のメインnavアイテムに別のサブ メニュー アイテムが含まれている場合は、すべての特定の要素に対してクラスを作成し、それらに応じて高さを指定する必要があります。これを見てください:

#navi ul li:hover .class {
    height:64px; /*for two items in sub menu and like this for other*/ 
}
于 2013-10-18T06:23:10.470 に答える
0

あなたのCSS:

#navi {
    height: auto;
    width: auto;
}
#navi ul {
    margin: 0px;
    padding: 0px;
    list-style-type: none;
}
#navi ul li {
    position: relative;
}
#navi ul li a {
    line-height: 30px;
    text-decoration: none;
    text-align: center;
    display: block;
    width: 100px;
    height: 30px;
    border: thin solid #999;
    color: #FFF;
    background-color: #0CF;
    -webkit-transition: all 1s;
    -moz-transition: all 1s;
    -ms-transition: all 1s;
    -o-transition: all 1s;
    transition: all 1s;
}
#navi ul li a:hover {
    background-color: #0C3;
}
#navi ul li ul {
    position:absolute;
    -webkit-transition: height 1s linear 0s;
    -moz-transition: height 1s linear 0s;
    -ms-transition: height 1s linear 0s;
    -o-transition: height 1s linear 0s;
    transition: height 1s linear 0s;
    height: 0px;
    overflow:hidden;
}
#navi ul li:hover ul {
    position:absolute;
    left: 100px;
    top: 0px;
    height:50px;
    -webkit-transition: height 1s linear 0s;
    -moz-transition: height 1s linear 0s;
    -ms-transition: height 1s linear 0s;
    -o-transition: height 1s linear 0s;
    transition: height 1s linear 0s;
}

あなたのhtml:

<div id="navi">
    <ul>
        <li><a href="#">First</a></li>
        <li class="active"><a href="#">Second</a>
            <ul class="child">
                <li><a href="#">First child</a></li>
            </ul>
        </li>
        <li><a href="#">Third</a></li>
    </ul>
</div>

このコーディングをコピーして貼り付けます。うまくいきました。この垂直メニューバーが欲しいと思いますか???

于 2013-10-18T06:17:22.360 に答える