如何选择复杂情况下的多维下拉菜单

时间:2018-03-21 08:24:55

标签: javascript css

您好我需要创建一个多维下拉菜单。但我的悬停选择不起作用。我不知道如何使用其他类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>

1 个答案:

答案 0 :(得分:0)

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

在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