首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML:仅使用HTML和CSS在内联列表中创建下拉列表。

HTML:仅使用HTML和CSS在内联列表中创建下拉列表。
EN

Stack Overflow用户
提问于 2014-09-19 10:06:48
回答 2查看 3.5K关注 0票数 1

我试图创建一个水平(内联)列表,其中一些我需要有一个下拉列表,只出现在悬停。现在看来一切都正常,但我的问题是下拉列表不是作为单独的列表出现,而是作为列表的其余部分出现的。除非没有其他解决方案,否则我不想使用JavaScript。

我的代码:

代码语言:javascript
复制
.horizontalList ul {
list-style-type:none;
text-align: center;
margin:0;
padding:0;
}
.horizontalList ul li {
display: inline;
position: relative;


}
.horizontalList ul li li a{
white-space:nowrap;
background-color: #300;
top:1.4em;
}
.horizontalList ul li a {
text-decoration:none;
padding: .2em 1em;
color: #fff;
background-color: #036;

}
.horizontalList ul li a:hover {
color: #fff;
background-color: #369;
}
.horizontalList ul ul {
position: absolute;
top: 1.4em;
left: 0;
display: none;

}
.horizontalList ul > li:hover ul {
display: block;
}
代码语言:javascript
复制
<div class="horizontalList">
  <ul>
    <li><a href="#">Home</a></li>
    <li>
      <a href="#">Laptops</a>
      <ul>
        <li><a href="#"> Repairs and Servicing</a></li>
        <li><a href="#">Sales</a></li>
      </ul>
    </li>
    <li><a href="#">milks</a></li>
  </ul>
</div>

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-19 10:15:50

这可以通过以下修改来实现:

  • position: relative;添加到.horizontalList ul li。这将确保子菜单相对于包含的li定位。
  • position: absolute;添加到.horizontalList ul ul。这将使其脱离正常流,并将其定位到topleft值。

CSS:

代码语言:javascript
复制
.horizontalList ul {
    list-style-type:none;
    margin: 0;
    padding: 0;
    text-align: center;
}
.horizontalList ul li {
    display: inline;
    position: relative;
}
.horizontalList ul li a {
    text-decoration:none;
    padding: .2em 1em;
    color: #fff;
    background-color: #036;
}
.horizontalList ul li a:hover {
    color: #fff;
    background-color: #369;
}
.horizontalList ul ul {
    position: absolute;
    top: 1.4em;
    left: 0;
    display: none;
}
.horizontalList ul > li:hover ul {
    display: block;
}

JS Fiddle: http://jsfiddle.net/s9z8rzt8/

票数 3
EN

Stack Overflow用户

发布于 2014-09-19 10:15:25

这是类似的外观,你有,只是使用一些我刚才放在一起作为模板。

小提琴

html

代码语言:javascript
复制
<ul id="nav">
    <li>
        <a href="#">Home</a>
    </li>

    <li>
        <a href="#">Chickens</a>
        <ul>
            <li><a href="#">eggs</a></li>

            <li><a href="#">meat</a></li>
        </ul>
    </li>
<li><a href="#">milks</a></li>

css

代码语言:javascript
复制
#nav{
    list-style:none;
    font-weight:bold;
    margin-bottom:10px;
    float:left; 
    width:100%;

}
#nav li{
    float:left;
    margin-right:10px;
    position:relative;
}
#nav a{
    display:block;
    padding:5px;
    color:#fff;
    background:#333;
    text-decoration:none;
}
#nav a:hover{
    color:#fff;
    background:#6b0c36;
    text-decoration:underline;
}


#nav ul{
    background:#fff; 
    background:rgba(255,255,255,0); 
    list-style:none;
    position:absolute;
    left:-9999px; 
}
#nav ul li{
    padding-top:1px; 
    float:none;
}
#nav ul a{
    white-space:nowrap; 
}
#nav li:hover ul{ 
    left:0; 
}
#nav li:hover a{ 
    background:#6b0c36;
    text-decoration:underline;
}
#nav li:hover ul a{ 
    text-decoration:none;
}
#nav li:hover ul li a:hover{ 
    background:#333;
}

现在,只要必要的话,就把它风格化

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25931391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档