我正在尝试创建一个 megamenu(参见小提琴: http: //jsfiddle.net/BKHNk/),但我遇到的问题是当我将链接放在从菜单中飞出的 <div> 中时。菜单 1 下的下拉菜单是我希望它看起来的样子,但是一旦我将文本转换为菜单 2 中所示的链接,所有格式都会变得混乱。我认为问题在于链接正在继承属性,但我不知道防止这种情况发生的最佳方法。
基本上,我希望宽度根据内容尽可能地减小。部分文本应位于一行。小节项目都应该在自己的行中,每个小节文本(但不是逗号)作为链接。同样,基本上与菜单 1 的外观完全相同。
我还尝试将小节项目更改为无序列表,但这变得更加复杂,我认为没有必要这样做。
任何人都可以帮我弄清楚是什么使第二行中的所有文本都被继承以及如何防止它发生?谢谢!
HTML 代码如下:
<ul id="menu">
<li> <a href="#">Menu 1</a>
<div class="dropdown">
<div class="section">Section goes here</div>
<div class="subsection">Subsection 1, Subsection 2, Subsection 3</div>
<div class="rule"></div>
</div>
</li>
<li> <a href="#">Menu 2</a>
<div class="dropdown">
<div class="section"><a href="#">Section goes here</a></div>
<div class="subsection"><a href="#">Subsection 1</a>, <a href="#">Subsection 2</a>, <a href="#">Subsection 3</a></div>
<div class="rule"></div>
</div>
</li>
</ul>
下面的CSS:
#menu {
font-family: sans-serif;
list-style:none;
height: 32px;
width: 200px;
background: #888;
}
#menu li {
float:left;
display:block;
text-align:center;
position:relative;
padding: 5px;
margin:5px;
}
#menu li a {
color: black;
display:block;
text-decoration:none;
}
#menu li:hover a {
color:#ccc;
}
.dropdown {
margin:4px auto;
float:left;
position:absolute;
left:-999px;
text-align:left;
padding:10px;
background:#aaa;
width: auto;
white-space:nowrap;
}
#menu li:hover .dropdown {
left:0px;
top:auto;
}
.rule {
height: 2px;
width: 100%;
background-color: red;
}
.section {
font-weight:bold;
}
.subsection {
font-size: 75%;
}