【问题标题】:How to selector complex situation multi-dimensional drop down menu如何选择复杂情况多维下拉菜单
【发布时间】:2018-03-21 17:55:09
【问题描述】:

您好,我需要创建一个多维下拉菜单。但我的悬停选择不起作用。我不知道如何使用从其他类 div 父级到其他类 div 父级的选择器。查看样式中的代码。欢迎使用 Javascript 解决方案

<style>
    body {
        margin: autp;
    }

    #container {
        display: table;
    }

    #lcontainer {
        padding: 0 10px 0 10px;
        display: table-cell;
    }

    #rcontainer {
        padding: 0 10px 0 10px;
        display: table-cell;
    }

    .rvcontainer {
        display: none;
    }

    .lvcontainer:hover #rcontainer>.rvcontainer {
        display: block;
    }
</style>

<div id="container">
    <div id="lcontainer">
        <div class="lvcontainer">
            Country
        </div>
        <div class="lvcontainer">
            Genre
        </div>
    </div>
    <div id="rcontainer">
        <div class="rvcontainer">
            Japan
            <br> Korea
            <br> American
            <br>
        </div>
        <div class="rvcontainer">
            Comedy
            <br> Mystery
            <br> Horror
            <br>
        </div>
    </div>
</div>

Javascript 解决方案,但是类不工作的问题。

<script>
    var lvcontainer = document.getElementsByClassName('lvcontainer');
    var rvcontainer = document.getElementsByClassName('rvcontainer');
    for(i=0; i<1; i++){
    lvcontainer[i].addEventListener("mouseover", function(){
        rvcontainer[i].style.display = "block":
    }, FALSE);
    }
    </script>

【问题讨论】:

  • stackoverflow.com/questions/5210033/… 包含仅使用 CSS 的答案。我觉得这很有趣,因为你的问题才发现它。
  • @Gunnar 我尝试了任何组合器,但都不起作用。如何在不同的父级中使用 rvcontainer 准确选择 lvcontainer。

标签: javascript css


【解决方案1】:

对我来说不是很清楚你的问题到底是什么。但是,要在多个级别上创建下拉菜单,您必须像这样使用:

在 html 中:

<ul>
  <li><a href="#">Link</a></li>
  <li><a href="#">Link</a></li>
  <li><a href="#">Link</a></li>
  <li><a href="#">Link</a>
    <ul>
      <li><a href="#">Link 2</a></li>
      <li><a href="#">Link 2</a></li>
      <li><a href="#">Link 2</a></li>
      <li><a href="#">Link 2</a>
        <ul>
          <li><a href="#">Link 3</a></li>
          <li><a href="#">Link 3</a></li>
          <li><a href="#">Link 3</a></li>
          <li><a href="#">Link 3</a></li>
          <li><a href="#">Link 3</a></li>
        </ul>
      </li>
    </ul>
  </li>
</ul>

而css可以是这样的:

li > ul {
  display: none;
}
li:hover > ul {
  display: block;
}
li a:hover {
  color: pink;
}
li ul li a:hover {
  color: green;
}
li ul li ul a:hover {
  color: yellow;
}

这种情况我选择改变颜色,当然你可以改变任何你想要的css属性。 可以看演示 here

【讨论】:

  • 我已经看到了这样的下拉菜单。多将显示在左侧菜单之后。我想要的是us.blackberry.com。它就像一个容器拆分为 2div 与浮动。所以它可以容纳更多的内容。
  • 您可以轻松地将我的示例转换为您的示例。但是你必须知道 CSS。对我来说,您似乎尝试复制一些 DOM 元素但不知道如何链接它们。查看this 旧文章,或自行搜索类似内容。
  • 我的代码只剩下一步如何选择它。带显示:阻止到 rvcontainer。
  • 你的答案会喜欢这个codepen.io/3ncrypter/pen/wBMbqL。使用这种下拉菜单。如果列表太多,它会增加更多的向下空间。
  • 大卫,我复制了你的代码,但不起作用。做一个 plnkr,看看你的问题。在 css 的主体上还有错字边距:autp; // 自动
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-04-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-24
  • 1970-01-01
  • 2013-10-15
  • 1970-01-01
相关资源
最近更新 更多