【问题标题】:Responsive menu using pure css and not in javascript or jquery使用纯 css 而不是 javascript 或 jquery 的响应式菜单
【发布时间】:2013-08-20 19:48:08
【问题描述】:

我正在使用纯 CSS 的下拉菜单。对于下面的普通 css 菜单代码,我需要一个良好的响应式下拉导航菜单。我需要使用纯 css 而不是 javascript 或 jquery 的响应。

我正在尝试使用纯 css 进行响应,但我无法做到完美。任何人请帮助我。提前致谢。

ul.menu{
float:right;
}

ul.menu > li{
float:left;
list-style:none;    
}

ul.menu > li.current-menu-item a{
background: #5C5C5C;
color:#fff; 
}

ul.menu > li > a{
padding: 31px;
display:block;  
text-decoration: none;
font-family: Arial, Helvetica, sans-serif;
color:#666666;
-webkit-transition: all 0.3s ease-out;
-moz-transition: all 0.3s ease-out;
-o-transition: all 0.3s ease-out;
transition: all 0.3s ease-out;
}

ul.menu > li > a:hover{
background: #5C5C5C;
color:#fff; 
}

ul.menu > li:hover > ul.sub-menu{
display:block;
visibility:visible;
list-style:none;
opacity:1;  
top: 108px; 
}

ul.menu > li > ul.sub-menu > li > a:hover{
background:#5C5C5C;
color:#fff; 
}

ul.menu > li > ul.sub-menu{
visibility:hidden;
position: absolute;
width: 200px;
z-index: 999;
list-style:none;    
background: #f9f9f9;
border: 1px solid #e9e9e9;
border-radius: 0 0 5px 5px;
border-bottom: 3px solid #757575;
top:40px;
opacity:0;  
-webkit-transition: all .25s ease;
-moz-transition: all .25s ease;
-ms-transition: all .25s ease;
-o-transition: all .25s ease;
transition: all .25s ease;  
}

ul.menu > li > ul.sub-menu > li > a{
padding: 15px;
display:block;
text-decoration: none;
font-family: Arial, Helvetica, sans-serif;
color:#666666;
-webkit-transition: all 0.3s ease-out;
-moz-transition: all 0.3s ease-out;
-o-transition: all 0.3s ease-out;
transition: all 0.3s ease-out;
border-bottom: 1px solid #efefef;   
}

【问题讨论】:

  • 请发布您的 HTML - 足以重现问题、描述问题以及您希望的行为。如果可能的话,一个小提琴,jsbin 也会有所帮助。
  • 这是我的html代码。当我将鼠标悬停在 menu3 上时,下拉列表像幻灯片一样从顶部流动。但是,在响应中我不需要悬停。在这种情况下,单击 menu3 时,下拉菜单应该可以工作。有没有纯css的代码? @dc5
  • 你在那里。你看到 html 代码和我需要什么了吗?
  • 也许这会提供一些想法? Pure CSS Touch Menu

标签: css


【解决方案1】:
<div>
    <ul class="mymenu">
        <li><a class="dropdown" href="#">Menu 1</a>
            <ul>
                <li><a href="#">Sub-menu 1</a></li>
                <li><a href="#">Sub-menu 2</a></li>
                <li><a href="#">Sub-menu  3</a></li>
            </ul>
            </li>

    </ul>
</div>


div ul {
    -webkit-font-smoothing:antialiased;
    text-shadow:0 1px 0 #FFF;
    background: #ddd;
    list-style: none;
    margin: 0;
    padding: 0;
    width: 100%;
}
div li {
    float: left;
    margin: 0;
    padding: 0;
    position: relative;
    min-width: 25%;
}
div a {
    background: #ddd;
    color: #444;
    display: block;
    font: bold 16px/50px sans-serif;
    padding: 0 25px;
    text-align: center;
    text-decoration: none;
    -webkit-transition: all .25s ease;
       -moz-transition: all .25s ease;
        -ms-transition: all .25s ease;
         -o-transition: all .25s ease;
            transition: all .25s ease;
}
div .dropdown:after {
    content: ' ▶';
}
div .dropdown:hover:after{
    content:'\25bc'
}
div li:hover a {
    background: #ccc;
}
div li ul {
    float: left;
    left: 0;
    opacity: 0;
    position: absolute;
    top: 35px;
    visibility: hidden;
    z-index: 1;
    -webkit-transition: all .25s ease;
       -moz-transition: all .25s ease;
        -ms-transition: all .25s ease;
         -o-transition: all .25s ease;
            transition: all .25s ease;
}
div li:hover ul {
    opacity: 1;
    top: 50px;
    visibility: visible;
}
div li ul li {
    float: none;
    width: 100%;
}
div li ul a:hover {
    background: #bbb;
}

/* Clearfix */

.mymenu:after, .cf:before {
    content:"";
    display:table;
}
.mymenu:after {
    clear:both;
}
.mymenu {
    zoom:1;
}

【讨论】:

  • 谢谢@srk。将鼠标悬停在子菜单的主菜单上时效果很好。我不需要一个悬停的。单击主菜单时,我需要一个下拉菜单。
  • @user2644743 - 您是在寻找 CSS 解决方案还是使用 Javascript/JQuery 对您有用?您需要使用任何脚本添加点击事件以使其在点击时工作,只需切换现在使用 CSS 在 li 悬停时触发的类名。
  • 此菜单运行良好stackoverflow.com/a/32470745/4258817 - 演示链接在您决定之前的测试答案中
猜你喜欢
  • 2013-01-24
  • 2013-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多