I am trying to vertically align the icons in the navigation bar, and I am trying to use this approach:
.element {
position: relative;
top: 50%;
transform: translateY(-50%);
}
This is my code:
HTML
<div class="navbar">
<nav>
<ul>
<% if logged_in? %>
<li><%= link_to "IOAKA", dashboard_path %></li>
<li><%= link_to(image_tag("icon_ioaka.png", alt: "geometry IOAKA icon",
:class => "icon", :id => "ioaka_icon2"), dashboard_path) %></li>
<li><%= link_to(image_tag("icon_settings.png", alt: "geometry settings icon",
:class => "icon", :id => "settings_icon"), edit_user_path(current_user)) %></li>
<li><%= link_to(image_tag("icon_logout.png", alt: "geometry logout icon",
:class => "icon", :id => "logout_icon"), logout_path, method: "delete") %></li>
<% else %>
<li><%= link_to "IOAKA", root_path %></li>
<li><%= link_to(image_tag("icon_login.png", alt: "geometry login icon",
:class => "icon", :id => "login_icon"), login_path) %></li>
<li><%= link_to(image_tag("icon_signup.png", alt: "geometry signup icon",
:class => "icon", :id => "signup_icon"), signup_path) %></li>
<li><%= link_to(image_tag("icon_ioaka.png", alt: "geometry IOAKA icon",
:class => "icon", :id => "ioaka_icon1"), root_path) %></li>
<% end %>
</ul>
</nav>
</div>
CSS
ul {
list-style-type: none;
margin: 0;
padding: 0;
text-align: left;
}
li {
display: inline;
}
a:link {
text-decoration: none;
}
a:active {
color: black;
}
.icon {
float: right;
}
#ioaka_icon1 {
height: 50px;
}
#signup_icon {
height: 44px;
}
#login_icon {
height: 50px;
}
.navbar {
max-width: 100%;
height: 65px;
line-height: 65px;
background-color: white;
border-bottom: #cfcfcf 3px solid;
}
If I use in this case:
.nav ul {
position: relative;
top: 50%;
-webkit-transform: translateY(-50%);
-ms-transform: translateY(-50%);
transform: translateY(-50%);
}
It seems that only the elements go 50%to the beginning ( transform: translateY(-50%);) and top: 50%; doesn't make any changes?
Question: What am I missing and why does it not work? Thanks in advance!