Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何仅为一个类引用纯CSS的多级元素?_Css_Drop Down Menu - Fatal编程技术网

如何仅为一个类引用纯CSS的多级元素?

如何仅为一个类引用纯CSS的多级元素?,css,drop-down-menu,Css,Drop Down Menu,对水平菜单使用纯css。该文件来自cssscript.com: 这是我的标记: <ul class="main-navigation"> <li><a href="#">Home</a></li> <li><a href="#">Front End Design</a> <ul> <li><a href="#">HTML</a>

对水平菜单使用纯css。该文件来自cssscript.com:

这是我的标记:

<ul class="main-navigation">
  <li><a href="#">Home</a></li>
  <li><a href="#">Front End Design</a>
    <ul>
      <li><a href="#">HTML</a></li>
      <li><a href="#">CSS</a>
        <ul>
          <li><a href="#">Resets</a></li>
          <li><a href="#">Grids</a></li>
          <li><a href="#">Frameworks</a></li>
        </ul>
      </li>
      <li><a href="#">JavaScript</a>
        <ul>
          <li><a href="#">Ajax</a></li>
          <li><a href="#">jQuery</a></li>
        </ul>
      </li>
    </ul>
  </li>
  <li><a href="#">WordPress Development</a>
    <ul>
      <li><a href="#">Themes</a></li>
      <li><a href="#">Plugins</a></li>
      <li><a href="#">Custom Post Types</a>
        <ul>
          <li><a href="#">Portfolios</a></li>
          <li><a href="#">Testimonials</a></li>
        </ul>
      </li>
      <li><a href="#">Options</a></li>
    </ul>
  </li>
  <li><a href="#">About Us</a></li>
</ul>
这是原作,它可以工作:

ul {
  list-style: none;
  padding: 0;
  margin: 0;
  background: #1bc2a2;
}

ul li {
  display: block;
  position: relative;
  float: left;
  background: #1bc2a2;
}

/* This hides the dropdowns */


li ul { display: none; }

ul li a {
  display: block;
  padding: 1em;
  text-decoration: none;
  white-space: nowrap;
  color: #fff;
}

ul li a:hover { background: #2c3e50; }

/* Display the dropdown */


li:hover > ul {
  display: block;
  position: absolute;
}

li:hover li { float: none; }

li:hover a { background: #1bc2a2; }

li:hover li a:hover { background: #2c3e50; }

.main-navigation li ul li { border-top: 0; }

/* Displays second level dropdowns to the right of the first level dropdown */


ul ul ul {
  left: 100%;
  top: 0;
}

/* Simple clearfix */



ul:before,
ul:after {
  content: " "; /* 1 */
  display: table; /* 2 */
}

ul:after { clear: both; }

我关心的是,如果我在页面的其他地方使用它们,这将导致其他ul li等的样式。他们将与菜单无关。如何引用这些样式以仅用于菜单?

CSS选择器中的空白区域定义了子体层次结构,因此当您更改此选项时:

ul li {
为此:

.main-navigation ul li {
您正在查找
ul
标记中的列表项,该标记位于具有
.main navigation
类的元素中

相反,要使其工作,您需要将原始样式表的根
ul
定义替换为主类选择器:

.main-navigation {
  list-style: none;
  padding: 0;
  margin: 0;
  background: #1bc2a2;
}

.main-navigation li {
  display: block;
  position: relative;
  float: left;
  background: #1bc2a2;
}

/* This hides the dropdowns */


.main-navigation li ul { display: none; }

.main-navigation li a {
  display: block;
  padding: 1em;
  text-decoration: none;
  white-space: nowrap;
  color: #fff;
}

/* And so on.... */

如果您需要进一步澄清,请告诉我。

有人能解释一下为什么这会被否决吗?我真的想问对。谢谢
.main-navigation {
  list-style: none;
  padding: 0;
  margin: 0;
  background: #1bc2a2;
}

.main-navigation li {
  display: block;
  position: relative;
  float: left;
  background: #1bc2a2;
}

/* This hides the dropdowns */


.main-navigation li ul { display: none; }

.main-navigation li a {
  display: block;
  padding: 1em;
  text-decoration: none;
  white-space: nowrap;
  color: #fff;
}

/* And so on.... */