当前位置: 首页 > 面试题库 >

单击CSS创建下拉菜单

太叔弘壮
2023-03-14
问题内容

我需要建立一个包含5个选项的菜单,单击某个菜单后,将出现一个新的子菜单。我完全不知道该怎么做。

/**Navigation */



nav {

  border: 1px solid red;

  float: left;

  margin-right: 35px;

  min-height: 280px;

}



nav li {

  text-decoration: none;

  font-weight: normal;

  color: red;

  list-style: none;

}





/**Content */



#section {

  background-color: ;

  border: 1px solid;

  font: normal 12px Helvetica, Arial, sans-serif;

  margin-left: 180px;

}



.clearfix:before,

.clearfix:after {

  content: " ";

  display: table;

}



.clearfix:after {

  clear: both;

}


<div class="clearfix"></div>

<nav>

  <ul>

    <li><a href="index.html" accesskey="1"> Home </a> </li>

    <li><a href="Portfolio.html" accesskey="2"> Portfolio </a> </li>



    <ul>

      <li><a href="Commercial.html">Commercial</a> </li>

      <li><a href="Residential.html">Residential</a> </li>

      <li><a href="heritage.html">Heritage</a> </li>

      <li><a href="Rennovations.html">Rennovations</a> </li>

    </ul>



    <li><a href="services.html" accesskey="3"> Services </a> </li>

    <li><a href="aboutus.html" accesskey="4"> About Us </a> </li>

    <li><a href="contactus.html" accesskey="5"> Contact Us </a> </li>

  </ul>

</nav>

问题答案:

CSS没有点击处理程序。因此,不可能使用标准CSS。您可以使用一种称为“复选框hack”的方法,但是我谦虚地认为,它有点笨拙,并且会像您的用例要求那样在导航菜单中使用,这很尴尬。因此,我建议使用jQuery或Javascript。这是使用jQuery的一种非常简单的解决方案。

基本上,我们从一开始就隐藏了子导航,display: none; 然后使用jQuery,当单击“ .parent”时,将类“
.visible”切换到显示子导航元素(嵌套的UL)display: block;。再次单击时,它会在删除类时消失。

请注意,要使此方法起作用,每个嵌套<UL>的“ sub-nav”都 必须 具有.sub-nav该类,并且其父元素(the <LI>
必须具有.parent该类。另外,由于它使用jQuery,因此您需要将jQuery库连接到您的站点。您可以自己托管它并像往常一样链接它,也可以从Google的图书馆服务(推荐)中链接它。

$(document).ready(function() {

  $('.parent').click(function() {

    $('.sub-nav').toggleClass('visible');

  });

});


#nav ul.sub-nav {

  display: none;

}



#nav ul.visible {

  display: block;

}


<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<ul id="nav">

  <li>Home</li>

  <li class="parent">About

    <ul class="sub-nav">

      <li>Johnny</li>

      <li>Julie</li>

      <li>Jamie</li>

    </ul>

  </li>

  <li>Contact</li>

</ul>


 类似资料:
  • 问题内容: 我正在尝试制作一个简单的CSS下拉菜单,当您将鼠标悬停在链接上时,将显示子菜单。当您将鼠标悬停在li上时,我已经设法实现了这一点,但无法弄清楚如何使用链接来实现。 我之所以尝试使用链接而不是li来执行此操作,是因为我的菜单宽度为100%,并且li所占的面积比链接大,因此,如果将鼠标悬停在该区域上,则不显示该子菜单不想。 我的CSS如下: 问题答案: 如果可能的话,我会避免使用JS。这不

  • .dropbtn { background-color: #4CAF50; color: white; padding: 16px; font-size: 16px; border: none; cursor: pointer; } .dropdown { position: relative; display: inline-block; } .dropdown:hover .dropbtn {

  • 问题内容: 以前,我没有对多级纯CSS下拉菜单进行过很多工作,但是现在我正在寻找最干净的方法。当我搜索了这个网上我发现了很多那名4-5岁的解决方案,我不知道是否有更好的方法来实现这一目标,而不是做一些这样的。 问题答案: .third-level-menu 我还整理了一个现场演示,可在此处使用

  • 问题内容: 我试图做一个简单的CSS下拉菜单。当您将鼠标悬停在链接上时,我无法实现下拉子菜单。以下是我的HTML和CSS规则,谢谢。 问题答案: 尝试这个: 问题是您的菜单ul是可见的(始终),但是由于this规则的选择器,所以li里面的li是(始终)不可见。 请记住,visible:hidden隐藏元素,但仍在DOM中占用空间,而display:none隐藏元素并将其从页面元素流中移除 另外,您

  • 本文向大家介绍纯css下拉菜单 无需js,包括了纯css下拉菜单 无需js的使用技巧和注意事项,需要的朋友参考一下 再来个今天某人说过的例子:纯css下拉菜单: 效果图 这个的实现很简单,主要是:hover和过渡属性transition的使用。 代码: 因为ul是个伸缩对象,所以要让它脱离文档流,不是在实用时会影响到布局,给它一个绝对定位即可。 以上就是本文的全部内容,希望对大家的学习有所帮助,也

  • 我在Confluence上运行的HTML/CSS主题上实现了以下菜单。 默认情况下,我正在运行的主题提供了激活所有菜单项的下拉菜单的选项。但是,我希望只为其中一个菜单项显示下拉菜单。 该主题没有提供切换特定菜单项下拉列表的选项,这就是为什么我不得不求助于自定义CSS。 与发行说明菜单项对应的HTML如下-- 此外,添加以下自定义CSS将删除所有菜单项的下拉菜单。 我希望CSS有条件地不显示RELE