Reputation: 33
I made it so that when I hover a item in my menu, there comes a little line underneath it with: border-bottom: 2px;
. Now when I hover the item in my menu the parent element (The header in this case) will also grow 2px
on the bottom.
My HTML code:
<div class="header">
<nav class="navigation_menu">
<ul class="navigation_ul">
<a href="#"><li>Lorum</li></a>
<a href="#"><li>Ipsum</li></a>
<a href="#"><li>Lorpsum</li></a>
<a href="#"><li>Ipum</li></a>
<a href="#"><li>Nadoa</li></a>
</ul>
</nav>
</div>
My CSS code:
body {
background:f5f5f5;
margin: 0px;
padding: 0px;
font-family: roboto;
}
/** Text Style **/
a {
text-decoration: none;
color: inherit;
}
/** Header Style **/
.header {
background: #607d8b;
margin: 0px;
padding: 10px;
padding-bottom: 50px;
color: white;
}
/** Navigation Menu Style **/
.navigation_menu ul {
margin: 0px;
padding: 0px;
overflow: hidden;
}
.navigation_menu li {
font-size:18px;
}
.navigation_menu li:hover {
border-bottom: 2px solid white;
}
.navigation_menu ul li {
display: inline-block;
padding: 0px 0px;
}
And here is a sample: http://codepen.io/anon/pen/rVjJqW
I hope I can find some answer here! Thanks in advance!
Upvotes: 0
Views: 139
Reputation: 4503
add .navigation_menu li
- border-bottom: 2px solid transparent;
/** General Style **/
body {
background:f5f5f5;
margin: 0px;
padding: 0px;
font-family: roboto;
}
/** Text Style **/
a {
text-decoration: none;
color: inherit;
}
/** Header Style **/
.header {
background: #607d8b;
margin: 0px;
padding: 10px;
padding-bottom: 50px;
color: white;
}
/** Navigation Menu Style **/
.navigation_menu ul {
margin: 0px;
padding: 0px;
overflow: hidden;
}
.navigation_menu li {
font-size:18px;
border-bottom: 2px solid transparent;
}
.navigation_menu li:hover {
border-bottom: 2px solid white;
}
.navigation_menu ul li {
display: inline-block;
padding: 0px 0px;
}
<div class="header">
<nav class="navigation_menu">
<ul class="navigation_ul">
<a href="#"><li>Lorum</li></a>
<a href="#"><li>Ipsum</li></a>
<a href="#"><li>Lorpsum</li></a>
<a href="#"><li>Ipum</li></a>
<a href="#"><li>Nadoa</li></a>
</ul>
</nav>
</div>
use pseudo-elements :before
or :after
/** General Style **/
body {
background:f5f5f5;
margin: 0px;
padding: 0px;
font-family: roboto;
}
/** Text Style **/
a {
text-decoration: none;
color: inherit;
}
/** Header Style **/
.header {
background: #607d8b;
margin: 0px;
padding: 10px;
padding-bottom: 50px;
color: white;
}
/** Navigation Menu Style **/
.navigation_menu ul {
margin: 0px;
padding: 0px;
overflow: hidden;
}
.navigation_menu li {
font-size:18px;
position: relative;
}
.navigation_menu li:hover:before {
content: '';
position: absolute; bottom: 0; left: 0;
width: 100%;
height: 2px;
background: #fff;
}
.navigation_menu ul li {
display: inline-block;
padding: 0px 0px;
}
<div class="header">
<nav class="navigation_menu">
<ul class="navigation_ul">
<a href="#"><li>Lorum</li></a>
<a href="#"><li>Ipsum</li></a>
<a href="#"><li>Lorpsum</li></a>
<a href="#"><li>Ipum</li></a>
<a href="#"><li>Nadoa</li></a>
</ul>
</nav>
</div>
Upvotes: 0
Reputation: 6490
An alternate solution-
For .navigation_menu li:hover
, add margin-bottom: -2px;
, and remove the overflow: hidden;
for ul
Upvotes: 1
Reputation: 288590
The problem is that the border occupies some space, so the parent grows.
Instead, you can consider setting a transparent border and changing the color at hover:
.navigation_menu li {
border-bottom: 2px solid transparent;
}
.navigation_menu li:hover {
border-bottom-color: white;
}
/** General Style **/
body {
background: f5f5f5;
margin: 0px;
padding: 0px;
font-family: roboto;
}
/** Text Style **/
a {
text-decoration: none;
color: inherit;
}
/** Header Style **/
.header {
background: #607d8b;
margin: 0px;
padding: 10px;
padding-bottom: 50px;
color: white;
}
/** Navigation Menu Style **/
.navigation_menu ul {
margin: 0px;
padding: 0px;
overflow: hidden;
}
.navigation_menu li {
font-size:18px;
border-bottom: 2px solid transparent;
}
.navigation_menu li:hover {
border-bottom-color: white;
}
.navigation_menu ul li {
display: inline-block;
padding: 0px 0px;
}
<div class="header">
<nav class="navigation_menu">
<ul class="navigation_ul">
<a href="#"><li>Lorum</li></a>
<a href="#"><li>Ipsum</li></a>
<a href="#"><li>Lorpsum</li></a>
<a href="#"><li>Ipum</li></a>
<a href="#"><li>Nadoa</li></a>
</ul>
</nav>
</div>
Upvotes: 2