自适应宽度的子菜单
submenu with adapting width
我有一个包含很多子级别的下拉菜单。我做了一个简单的 4 级示例。因为菜单在侧边栏中,对于较小的移动设备也应该很方便,所以我想限制总宽度。
有没有可能让不活跃的层级的宽度自动缩小,让整个菜单的总宽度不超过220px?因此,当我将鼠标移动到第 3 层时,第 1 层和第 2 层的宽度会自动变窄。
我的代码是(头部有 jquery 个链接):
<!doctype html>
<html lang="en">
<head>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.0/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script>
<script>
$( function() {
$( "#menu" ).menu();
} );
</script>
<style>
.ui-menu { width: 100px; font-size:12px; }
</style>
</head>
<body>
<ul id="menu">
<li><div>no 1</div>
<ul>
<li><div>no 2</div>
<ul>
<li><div>no 3</div>
<ul>
<li><div>no 4</div></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</body>
</html>
您可以使用 media query
。类似于:
@media screen and (max-width:220px) {
.ui-menu {
width:50px;
}
.ui-menu .ui-menu .ui-menu {
width:100px;
}
}
<!doctype html>
<html lang="en">
<head>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.0/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script>
<script>
$( function() {
$( "#menu" ).menu();
} );
</script>
<style>
.ui-menu { width: 100px; font-size:12px; }
</style>
</head>
<body>
<ul id="menu">
<li><div>no 1</div>
<ul>
<li><div>no 2</div>
<ul>
<li><div>no 3</div>
<ul>
<li><div>no 4</div></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</body>
</html>
我有一个包含很多子级别的下拉菜单。我做了一个简单的 4 级示例。因为菜单在侧边栏中,对于较小的移动设备也应该很方便,所以我想限制总宽度。
有没有可能让不活跃的层级的宽度自动缩小,让整个菜单的总宽度不超过220px?因此,当我将鼠标移动到第 3 层时,第 1 层和第 2 层的宽度会自动变窄。
我的代码是(头部有 jquery 个链接):
<!doctype html>
<html lang="en">
<head>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.0/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script>
<script>
$( function() {
$( "#menu" ).menu();
} );
</script>
<style>
.ui-menu { width: 100px; font-size:12px; }
</style>
</head>
<body>
<ul id="menu">
<li><div>no 1</div>
<ul>
<li><div>no 2</div>
<ul>
<li><div>no 3</div>
<ul>
<li><div>no 4</div></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</body>
</html>
您可以使用 media query
。类似于:
@media screen and (max-width:220px) {
.ui-menu {
width:50px;
}
.ui-menu .ui-menu .ui-menu {
width:100px;
}
}
<!doctype html>
<html lang="en">
<head>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.0/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script>
<script>
$( function() {
$( "#menu" ).menu();
} );
</script>
<style>
.ui-menu { width: 100px; font-size:12px; }
</style>
</head>
<body>
<ul id="menu">
<li><div>no 1</div>
<ul>
<li><div>no 2</div>
<ul>
<li><div>no 3</div>
<ul>
<li><div>no 4</div></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</body>
</html>