以下 html 代码用于导航栏。 我在这里有一些注释掉的代码,我想成为"粘合剂"菜单项的子菜单。 我将该子菜单列表放在"粘合剂"的"a"标签之间。 我不确定该列表作为子菜单的正确位置。 使该列表成为"粘合剂"子菜单的CSS是什么? 另外,我知道我没有使用class=.... 在标签中。 如果我坚持我在这里使用的约定(没有类=...(,css 会是什么? 如果我使用类=....在标签中,这将如何改变 CSS?
<html>
<head>
<title>Alt-Web Demos :: Multi-colored Drop Menu</title>
<style>
body { font-family: "Trebuchet MS", Arial, Helvetica, sans-serif; }
/* BEGIN HORIZONTAL DROP-MENU */
nav {
position: relative;
width: 600px; /**adjust width as needed**/
margin: 0 auto;
padding: 0;
text-align: center;
background:#CFF;
}
nav ul {
margin: 0;
padding: 0
}
nav li {
list-style: none;
font-size: 12px;
float: left;
text-align: center;
}
/**top level menu**/
nav li a {
display: block;
text-decoration: none;
margin-right: 12px; /* space between links */
width: 9em; /* adjust as needed or use auto */
padding: 8px;
font-weight: bold;
line-height: 1.50em;
border: 1px dotted #666;
border-top: none;
color:#000;
}
/**alternating background colors**/
nav li:nth-child(odd) > a { background: #CAD3D3}
nav li:nth-child(even) > a { background: #9BBB59}
/**top menu style on mouse over**/
nav li:hover > a{
color: #FFF;
background: #004A43;
}
/**sub-menu**/
nav li ul {
display: none;
text-align: center;
margin: 0;
padding: 0 1em;
background: none;
}
/**sub-menu, help for older IE**/
nav li:hover ul, nav li.hover ul {
display: block;
position: absolute;
padding: 0;
}
nav li:hover li, nav li.hover li { float: none; }
/**drop-menu style**/
nav li:hover li a, nav li.hover li a {
width: 9em; /* adjust width as needed or use auto */
margin-top: 0;
}
/**drop-menu style on mouse over**/
nav li li a:hover {
background:#D3E1B7;
color: #004A43;
}
/* Clear floated elements at the end*/
nav:after {
visibility: hidden;
display: block;
font-size: 0;
content: " ";
clear: both;
height: 0;
}
/**end Horizontal drop-menus**/
</style>
</head>
<body class="demos">
<div id="content">
<nav>
<ul>
<li><a class="first" href="#">ABOUT US ▼</a>
<ul>
<li><a href="#">Videos</a></li>
<li><a href="#">Newsletter</a></li>
</ul>
</li>
<li><a href="#">PRODUCTS ▼</a>
<ul>
<li><a href="#">Broken Glass</a></li>
<li><a href="#">Mosaic Tiles</a></li>
<li><a href="#">Adhesives ►
<!--<ul>
<li><a href="#">Sticky</a></li>
<li><a href="#">Stickier</a></li>
<li><a href="#">Stickiest</a></li>
<li><a href="#">Hella Sticky</a></li>
</ul>-->
</a>
</li>
<li><a href="#">Grout</a></li>
</ul>
</li>
<li><a href="#">ACCESSORIES ▼</a>
<ul>
<li><a href="#">Gloves</a></li>
<li><a href="#">Rubber Mallets</a></li>
<li><a href="#">Sponges</a></li>
<li><a href="#">Safety Glasses</a></li>
</ul>
</li>
<li><a href="#">CONTACT</a></li>
</ul>
</nav>
</div>
</body>
</html>
您只想将子菜单嵌套在li
中,而不是a
中。然后,您需要更改用于显示嵌套ul
的选择器,以使用直接十进制选择器li:hover > ul { display: block; }
,以便在将鼠标悬停在一个子菜单上时不会显示li
中的所有子菜单。然后,如果您希望它向右扩展,请在双嵌套菜单上使用left: calc(100% - 12px); top: 0;
,calc()
是考虑li
中链接的水平边距。
<html>
<head>
<title>Alt-Web Demos :: Multi-colored Drop Menu</title>
<style>
body {
font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
}
/* BEGIN HORIZONTAL DROP-MENU */
nav {
position: relative;
width: 600px;
/**adjust width as needed**/
margin: 0 auto;
padding: 0;
text-align: center;
background: #CFF;
}
nav ul {
margin: 0;
padding: 0
}
nav li {
list-style: none;
font-size: 12px;
float: left;
text-align: center;
position: relative;
}
/**top level menu**/
nav li a {
display: block;
text-decoration: none;
margin-right: 12px;
/* space between links */
width: 9em;
/* adjust as needed or use auto */
padding: 8px;
font-weight: bold;
line-height: 1.50em;
border: 1px dotted #666;
border-top: none;
color: #000;
}
/**alternating background colors**/
nav li:nth-child(odd) > a {
background: #CAD3D3
}
nav li:nth-child(even) > a {
background: #9BBB59
}
/**top menu style on mouse over**/
nav li:hover > a {
color: #FFF;
background: #004A43;
}
/**sub-menu**/
nav li ul {
display: none;
text-align: center;
margin: 0;
padding: 0 1em;
background: none;
}
/**sub-menu, help for older IE**/
nav li:hover > ul,
nav li.hover > ul {
display: block;
position: absolute;
padding: 0;
}
nav li:hover li,
nav li.hover li {
float: none;
}
/**drop-menu style**/
nav li:hover li a,
nav li.hover li a {
width: 9em;
/* adjust width as needed or use auto */
margin-top: 0;
}
/**drop-menu style on mouse over**/
nav li li a:hover {
background: #D3E1B7;
color: #004A43;
}
/* Clear floated elements at the end*/
nav:after {
visibility: hidden;
display: block;
font-size: 0;
content: " ";
clear: both;
height: 0;
}
/**end Horizontal drop-menus**/
nav ul ul ul {
left: calc(100% - 12px);
top: 0;
}
</style>
</head>
<body class="demos">
<div id="content">
<nav>
<ul>
<li><a class="first" href="#">ABOUT US ▼</a>
<ul>
<li><a href="#">Videos</a></li>
<li><a href="#">Newsletter</a></li>
</ul>
</li>
<li><a href="#">PRODUCTS ▼</a>
<ul>
<li><a href="#">Broken Glass</a></li>
<li><a href="#">Mosaic Tiles</a></li>
<li><a href="#">Adhesives ►</a>
<ul>
<li><a href="#">Sticky</a></li>
<li><a href="#">Stickier</a></li>
<li><a href="#">Stickiest</a></li>
<li><a href="#">Hella Sticky</a></li>
</ul>
</li>
<li><a href="#">Grout</a></li>
</ul>
</li>
<li><a href="#">ACCESSORIES ▼</a>
<ul>
<li><a href="#">Gloves</a></li>
<li><a href="#">Rubber Mallets</a></li>
<li><a href="#">Sponges</a></li>
<li><a href="#">Safety Glasses</a></li>
</ul>
</li>
<li><a href="#">CONTACT</a></li>
</ul>
</nav>
</div>
</body>
</html>