弹出菜单高度与主菜单相同

时间:2017-08-28 16:42:14

标签: jquery html css

我正在设计一个弹出菜单,并希望使子菜单高度等于主菜单的高度。

以下是我正在处理的菜单的 html 代码

<ul id="nav">
    <li class="button"><a>Sub menu title 1</a>
        <ul>
            <li><a>Link1</a></li>
            <li><a>Submenu2</a></li>
        </ul>
    </li>
    <li class="button"><a>Sub menu title 2</a>
        <ul>
            <li><a>Link4</a></li>
            <li><a>Submenu5</a></li>
        </ul>
    </li>
    <li class="button"><a>Sub menu title 3</a>
        <ul>
            <li><a>Link</a></li>
            <li><a>Submenu</a></li>
        </ul>
    </li>
</ul>

css

#nav {
top: 50%;
left: 0;
width: 200px;
border: 1px solid #000;
}
#nav ul {
width: 200px;
background: #f9f9f9;
position: absolute;
left: -9999em;
}
#nav a {
display: block;
padding: 5px 10px;
}
#nav ul li {
position: relative;
}
#nav li:hover ul {
left: 200px;
top: 0;
}
#nav li:hover > a {
cursor: pointer;
}
.button a {
display: block;
padding: 5px 10px;
}

这是小提琴(https://jsfiddle.net/9mqy3r4q/)。

有没有办法让弹出窗口的高度等于主菜单的高度

3 个答案:

答案 0 :(得分:0)

您可以使用height css属性:

#nav {
    top: 50%;
    left: 0;
    width: 200px;
    border: 1px solid #000;
    height: 100px;
}
#nav ul {
    width: 200px;
    background: #f9f9f9;
    position: absolute;
    left: -9999em;
    height: 100px;
}

答案 1 :(得分:0)

您已将JQuery标记添加到问题中,因此为此提供了JQuery解决方案。

&#13;
&#13;
console.log($('#nav').height())
var nav_height = $('#nav').height();
$('#nav ul').each(function(){
	$(this).css('height', nav_height+'px');
})
&#13;
#nav {
top: 50%;
left: 0;
width: 200px;
border: 1px solid #000;
}
#nav ul {
width: 200px;
background: #f9f9f9;
position: absolute;
left: -9999em;
}
#nav a {
display: block;
padding: 5px 10px;
}
#nav ul li {
position: relative;
}
#nav li:hover ul {
left: 200px;
top: 0;
}
#nav li:hover > a {
cursor: pointer;
}
.button a {
display: block;
padding: 5px 10px;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="nav">
    <li class="button"><a>Sub menu title 1</a>
        <ul>
            <li><a>Link1</a></li>
            <li><a>Submenu2</a></li>
        </ul>
    </li>
    <li class="button"><a>Sub menu title 2</a>
        <ul>
            <li><a>Link4</a></li>
            <li><a>Submenu5</a></li>
        </ul>
    </li>
    <li class="button"><a>Sub menu title 3</a>
        <ul>
            <li><a>Link</a></li>
            <li><a>Submenu</a></li>
        </ul>
    </li>
</ul>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

只需添加CSS:

.button {
    position:relative;
}