How do I customize only the top level of my navigation?

I am working on a navigation menu that has two levels. The first or top level is the visible horizontal bar. The second level is a vertical menu that appears below the clicked link. I am using the selector "nav ul li a" etc. to do this. My problem is that these styles also apply to second level vertical menus. What selectors can you use to apply styles at the top level?

<nav>
                <div class="container dropdown">
                    <ul>
                        <li><a href="index.html">Home</a></li>
                        <li><a href="#">Forums</a></li>
                        <li><a href="#" data-toggle="dropdown">Articles</a>
                            <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
                                <li><a href="#">Nintendo</a></li>
                                <li><a href="#">PlayStation</a></li>
                                <li><a href="#">PC Gaming</a></li>
                                <li><a href="#">Xbox</a></li>
                            </ul></li>
                        <li><a href="#">Reviews</a></li>
                        <li><a href="#">Tutorials</a></li>
                        <li><a href="#">About</a></li>
                    </ul>
                </div>
            </nav>

header nav {
                border-top: 1px solid #333;
                border-bottom: 1px solid #222;
                margin-top: 25px;
                padding: 10px;
                box-shadow:         0px -5px 10px 0px rgba(0, 0, 0, 0.75);
            }
            header nav ul {
                list-style: none;
                padding-top: 10px;
            }
            header nav ul li {
                display: inline;
            }   
            header nav ul li a:link, header nav ul li a:visited, header nav ul li a:active, header nav ul li a:hover  {
                color: #777;
                font-size: 14px;
                text-decoration: none;
                text-shadow: 3px 3px 3px #454545;
                margin-right: 15px;
                padding: 15px 25px;
                box-shadow:         -5px 0px 10px 0px rgba(0, 0, 0, 0.75);
                border-right: 1px solid #333;
                border-bottom: 1px solid #333;
            }
            header nav ul li a:hover {
                color: #fff;
                text-shadow: 3px 3px 3px #666666;
                background: rgba(183, 31, 47, 0.25);            
            }

      

PS: This is with bootstrap.

+3


source to share


2 answers


You must use '>' in your selector. More information on the child combinator selector here .

Instead nav ul li a



Use this: nav > div > ul > li > a

header nav {
  border-top: 1px solid #333;
  border-bottom: 1px solid #222;
  margin-top: 25px;
  padding: 10px;
  box-shadow: 0px -5px 10px 0px rgba(0, 0, 0, 0.75);
}
header nav ul {
  list-style: none;
  padding-top: 10px;
}
header nav ul li {
  display: inline;
}
header nav > div > ul > li > a:link,
header nav > div > ul > li a:visited,
header nav > div > ul > li a:active,
header nav > div > ul > li > a:hover {
  color: #777;
  font-size: 14px;
  text-decoration: none;
  text-shadow: 3px 3px 3px #454545;
  margin-right: 15px;
  padding: 15px 25px;
  box-shadow: -5px 0px 10px 0px rgba(0, 0, 0, 0.75);
  border-right: 1px solid #333;
  border-bottom: 1px solid #333;
}
header > nav > ul > li > a:hover {
  color: #fff;
  text-shadow: 3px 3px 3px #666666;
  background: rgba(183, 31, 47, 0.25);
}
      

<header>
  <nav>
    <div class="container dropdown">
      <ul>
        <li><a href="index.html">Home</a>
        </li>
        <li><a href="#">Forums</a>
        </li>
        <li><a href="#" data-toggle="dropdown">Articles</a>
          <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
            <li><a href="#">Nintendo</a>
            </li>
            <li><a href="#">PlayStation</a>
            </li>
            <li><a href="#">PC Gaming</a>
            </li>
            <li><a href="#">Xbox</a>
            </li>
          </ul>
        </li>
        <li><a href="#">Reviews</a>
        </li>
        <li><a href="#">Tutorials</a>
        </li>
        <li><a href="#">About</a>
        </li>
      </ul>
    </div>
  </nav>
</header>
      

Run codeHide result


+1


source


like this:



.container > ul {
  /*your style here*/
}

.container > ul > li {
  /*your style here*/
}

      

+1


source







All Articles