Reputation: 6909
I have the following menu:
<ul id="nav-mobile" class="right">
<li><img src="images/ic_icon1.png"/>
<a class="white-text" href='#'><span>Links</span></a>
<ul id="quicklinkdrop" class="dropdown-content">
<li><a href="#">Home</a></li>
<li><a href="#">Access</a></li>
<li><a href="#">Zone</a></li>
</ul>
</li>
<li><img src="images/ic_icon2.png"/>
<a class="white-text" href='#'><span>User</span></a>
<ul id="userdrop" class="dropdown-content">
<li><a href="profile.html">My Profile</a></li>
<li><a href="logout.html">Log Off</a></li>
</ul>
</li>
</ul>
and I use CSS to style it:
#nav-mobile{
margin-top: 0px;
}
#nav-mobile li {
display: inline-block;
margin: 0 2.5em 1.5em 1.5em;
font-family: Roboto, Helvetica, Arial, sans-serif;
}
#nav-mobile li a{
text-decoration: none;
position: relative;
}
#nav-mobile li img{
position: relative;
top: .4em;
}
#nav-mobile li .dropdown-content {
display: none;
position: absolute;
color: #188CCC;
background-color: white;
z-index: 1;
box-shadow: 0px 8px 25px 0px rgba(28, 24, 28, 0.65);
max-width: 180px;
}
#nav-mobile li:hover .dropdown-content{
display: block;
}
#nav-mobile li .dropdown-content li:hover {
background-color: #CCCCCC;
}
#nav-mobile li .dropdown-content li a {
display: none;}
#nav-mobile li:hover .dropdown-content li a {
display: block;
}
For the most part everything works as desired. Only when the user hovers over Home, Access, and Zone menu items, only the word itself gets highlighted, not the entire row. how can that be accomplished with CSS?
Upvotes: 0
Views: 43
Reputation: 43574
You can use the following solution (with many changes on the CSS code):
#nav-mobile{
margin-top: 0px;
}
#nav-mobile li {
display: inline-block;
margin: 0 2.5em 1.5em 1.5em;
font-family: Roboto, Helvetica, Arial, sans-serif;
}
#nav-mobile li a{
text-decoration: none;
position: relative;
}
#nav-mobile li img{
position: relative;
top: 0.4em;
}
#nav-mobile li .dropdown-content {
display: none;
position: absolute;
color: #188CCC;
background-color: white;
z-index: 1;
box-shadow: 0px 8px 25px 0px rgba(28, 24, 28, 0.65);
max-width: 180px;
}
#nav-mobile li:hover .dropdown-content{
display: block;
padding:0;
margin:0;
}
#nav-mobile li .dropdown-content li {
margin:0;
width:100%;
}
#nav-mobile li .dropdown-content li a {
display: block;
margin:0;
padding: 0.75em 2.5em 0.75em 1.5em;
font-family: Roboto, Helvetica, Arial, sans-serif;
}
#nav-mobile li .dropdown-content li:hover {
background-color: #CCCCCC;
}
<ul id="nav-mobile" class="right">
<li>
<img src="images/ic_icon1.png"/>
<a class="white-text" href='#'><span>Links</span></a>
<ul id="quicklinkdrop" class="dropdown-content">
<li><a href="#">Home</a></li>
<li><a href="#">Access</a></li>
<li><a href="#">Zone</a></li>
</ul>
</li>
<li>
<img src="images/ic_icon2.png"/>
<a class="white-text" href='#'><span>User</span></a>
<ul id="userdrop" class="dropdown-content">
<li><a href="profile.html">My Profile</a></li>
<li><a href="logout.html">Log Off</a></li>
</ul>
</li>
</ul>
An improved example (reduced CSS code):
ul#nav-mobile, ul#nav-mobile ul {
color:#188ccc;
list-style-type:none;
margin:0;
padding:0;
}
ul#nav-mobile li {
display:inline-block;
margin:0;
}
ul#nav-mobile li a, ul#nav-mobile li a:link {
display:inline-block;
font-family:Roboto, Helvetica, Arial, sans-serif;
margin:0;
padding:0.75em 2.5em 0.75em 0.5em;
position:relative;
text-decoration:none;
}
ul#nav-mobile li ul.dropdown-content {
box-shadow:0px 8px 25px 0px rgba(28, 24, 28, 0.65);
display:none;
max-width:180px;
position:absolute;
z-index:1;
}
ul#nav-mobile li:hover ul.dropdown-content {
display:block;
}
ul#nav-mobile li:hover ul.dropdown-content li,
ul#nav-mobile li:hover ul.dropdown-content li a {
width:100%;
}
ul#nav-mobile li:hover ul.dropdown-content li:hover {
background:#ccc;
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<ul id="nav-mobile" class="right">
<li>
<i class="fa fa-stack-overflow" aria-hidden="true"></i>
<a class="white-text" href='#'><span>Links</span></a>
<ul id="quicklinkdrop" class="dropdown-content">
<li><a href="#">Home</a></li>
<li><a href="#">Access</a></li>
<li><a href="#">Zone</a></li>
</ul>
</li>
<li>
<i class="fa fa-stack-overflow" aria-hidden="true"></i>
<a class="white-text" href='#'><span>User</span></a>
<ul id="userdrop" class="dropdown-content">
<li><a href="profile.html">My Profile</a></li>
<li><a href="logout.html">Log Off</a></li>
</ul>
</li>
</ul>
Upvotes: 2
Reputation: 301
#nav-mobile{
margin-top: 0px;
}
#nav-mobile > li {
display: inline-block;
margin: 0 2.5em 1.5em 1.5em;
font-family: Roboto, Helvetica, Arial, sans-serif;
}
#nav-mobile li a{
text-decoration: none;
position: relative;
}
#nav-mobile li img{
position: relative;
top: .4em;
}
#nav-mobile li .dropdown-content {
display: none;
position: absolute;
color: #188CCC;
background-color: white;
z-index: 1;
box-shadow: 0px 8px 25px 0px rgba(28, 24, 28, 0.65);
max-width: 180px;
width: 100%;
padding-left: 0px;
list-style: none;
}
#nav-mobile li:hover .dropdown-content{
display: block;
}
#nav-mobile li:hover .dropdown-content li a{
display: block;
padding: 0.75em 2.5em 0.75em 1.5em;
}
#nav-mobile li .dropdown-content li:hover a{
background-color: #CCCCCC;
}
<ul id="nav-mobile" class="right">
<li><img src="images/ic_icon1.png"/>
<a class="white-text" href='#'><span>Links</span></a>
<ul id="quicklinkdrop" class="dropdown-content">
<li><a href="#">Home</a></li>
<li><a href="#">Access</a></li>
<li><a href="#">Zone</a></li>
</ul>
</li>
<li><img src="images/ic_icon2.png"/>
<a class="white-text" href='#'><span>User</span></a>
<ul id="userdrop" class="dropdown-content">
<li><a href="profile.html">My Profile</a></li>
<li><a href="logout.html">Log Off</a></li>
</ul>
</li>
</ul>
Hope this will help you
Upvotes: 0
Reputation: 3414
Give list items 100% width and no margin left, adjust padding of <a>
tag accordingly:
#nav-mobile li .dropdown-content li {
width: 100%;
margin-left: 0;
}
#nav-mobile li:hover .dropdown-content li a {
padding-left: 10px;
}
Upvotes: 0