【问题标题】:Drop down menu on mobile site移动网站上的下拉菜单
【发布时间】:2013-03-17 04:37:00
【问题描述】:

我在一个网站上工作,它有一个下拉菜单,我使布局具有响应性,并为移动设备添加了媒体查询。唯一的问题是,下拉菜单确实会在移动设备上下拉,但它也会激活第一个链接,因此它会直接进入该页面,让您有第二个响应时间。

我在学校了解到这一点,我可以发誓有一个非常简单的解决方法,比如 onclick 或类似的东西。虽然已经很晚了,但我正在尝试解决这个问题,但我找不到任何东西。

这是下拉html;

<div class="nav">
    <div class="links">
        <ul id="dropdown">
            <li>
                <a href="index.html"> Tetterode </a>
                <ul>
                    <li><a href="project.html">Project</a></li>
                    <li><a href="promenade.html">Promenade</a></li>
                    <li><a href="brochure.html">Brochure</a></li>
                    <li><a href="impressies.html">Impressies</a></li>
                </ul>
            </li>
            <li>
                <a href="oplevering.html">Woningen</a>
                <ul>
                    <li><a href="oplevering.html">Oplevering</a></li>
                    <li><a href="impressies.html">Impressies</a></li>
                </ul>
            </li>
            <li class="currentpage">
                <a href="ligging.html">Locatie</a>
                <ul>
                    <li><a href="ligging.html">Ligging</a></li>
                    <li><a href="situatie.html">Situatie</a></li>
                    <li><a href="routeplanner.html" class="smaller">Route<br>planner</a></li>

                </ul>
            </li>
            <li>
                <a href="hypotheken.html">Financiering</a>
                <ul>
                    <li><a href="hypotheken.html">Hypotheken</a></li>
                </ul>
            </li>
            <li>
                <a href="makelaars.html">Contact</a>
                <ul>
                    <li><a href="makelaars.html">Makelaars</a></li>
                </ul>
            </li>               
        </ul>
    </div>
</div>

这是css;

.nav{
    width: 100%;
    height:50px;
    background-image:url("bg.jpg");
    background-repeat:repeat;
    text-align:center;
    padding-bottom:0px;
    margin-bottom:0px;
}
.links ul li {
   list-style-type: none;
   padding-right: 15px;
   height:50px;
   display:inline-block;
   padding-top:0px;
   line-height:50px;
   padding-left:14px;
   text-shadow: 3px 3px 2px rgba(0, 0, 0, 0.50);
   margin-top:0px;
}
.links ul li:hover {
    height:50px;
   background-color:#b5001e;
   display:inline-block;
   margin:0px;
}
.links a {
   text-transform:uppercase;
   font-family:helvetica;
   font-size:16px;
   color:#fff;
   display:inline-block;
   font-size:20px;
   text-decoration:none;
}
.links a:hover {
  background-color:transparent;
}
#dropdown ul{
    background-color:#b5001e;
    list-style:none;
    position:absolute;
    left:-9999px;
    z-index:20;
    font-size:16px;
    padding-top:0px;
    margin-top:-2px;
    }
#dropdown ul li{
    float:none;
}
#dropdown ul a{
    white-space:nowrap; 
    font-size:16px;
}
#dropdown li:hover ul{ 
    left:0;
}
#dropdown li:hover a{ 
    text-decoration:underline;
}
#dropdown li:hover ul a{ 
    text-decoration:none;
}
#dropdown li:hover ul li a:hover{ 
color:#000;
}
.currentpage{
   height:50px;
   background-color:#b5001e;
   display:inline-block;
}

我基本上希望能够单击基本导航项目(tetterode、winingen 等)并看到其他项目下降,所以如果我愿意的话,我实际上有时间点击它们。

【问题讨论】:

  • 您要折叠项目吗?因为我在这里看不到任何下拉内容
  • 对不起,我没听懂你在说什么?那里有下拉的东西,它是一个有效的下拉菜单。顶部的“li”是主菜单项,当您将它们悬停时,“ul”就会出现“li”。虽然您无法将鼠标悬停在移动设备上,但这就是问题所在。
  • 看到这个:astuteo.com/mobilemenu
  • 是的,感谢您的推荐,但这不是我想要的。我想保留我当前的设计并使用它,我想保持菜单不变。

标签: css mobile drop-down-menu


【解决方案1】:

这是您的JSFIDDLE 代码。

我在 Iphone 4 上使用 IOS 6 对其进行了测试。每当您单击其中一个菜单时,您都会被重定向到该菜单中的链接。为了解决问题,您需要删除这些链接并将它们替换为 # 以便您的代码在移动网站上运行

所以,这个 HTML 结构将解决您的问题(仅在移动网站上使用):

<div class="nav">
    <div class="links">
        <ul id="dropdown">
            <li>
                <a href="#"> Tetterode </a>
                <ul>
                    <li><a href="project.html">Project</a></li>
                    <li><a href="promenade.html">Promenade</a></li>
                    <li><a href="brochure.html">Brochure</a></li>
                    <li><a href="impressies.html">Impressies</a></li>
                </ul>
            </li>
            <li>
                <a href="#">Woningen</a>
                <ul>
                    <li><a href="oplevering.html">Oplevering</a></li>
                    <li><a href="impressies.html">Impressies</a></li>
                </ul>
            </li>
            <li class="currentpage">
                <a href="#">Locatie</a>
                <ul>
                    <li><a href="ligging.html">Ligging</a></li>
                    <li><a href="situatie.html">Situatie</a></li>
                    <li><a href="routeplanner.html" class="smaller">Route<br>planner</a></li>

                </ul>
            </li>
            <li>
                <a href="#">Financiering</a>
                <ul>
                    <li><a href="hypotheken.html">Hypotheken</a></li>
                </ul>
            </li>
            <li>
                <a href="#">Contact</a>
                <ul>
                    <li><a href="makelaars.html">Makelaars</a></li>
                </ul>
            </li>               
        </ul>
    </div>
</div>

我的回答可能听起来很愚蠢。但如果您想保持相同的结构和相同的 CSS,这是唯一的方法。玩得开心编码!

【讨论】:

  • 谢谢,但该网站不仅是移动的,它只是有移动使用的查询,这仍然可能吗?
猜你喜欢
  • 2015-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-10
  • 1970-01-01
相关资源
最近更新 更多