Reputation: 1
I want to vertically align dropdown buttons with the navigation bars. Where did i wrong?
i've tried vertical-align, padding, margin, position, etc but nothing works.
This is my full code: http://jsfiddle.net/ckv82mtz/
<ul class="nav navbar-nav">
<li><a><div class="dropdown">
<button onclick="myFunction()" class="dropbtn">Bidang Ilmu</button>
<div id="myDropdown" class="dropdown-content">
<a href="#">Fisika</a>
<a href="#">Matematika</a>
<a href="#">Kimia</a>
<a href="#">Biologi</a>
</div>
</div></a></li>
<li><a href="#about">About</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
i want the navbars and dropdown buttons vertically align.
Upvotes: 0
Views: 1252
Reputation: 1
<!DOCTYPE html>
<html>
<head>
<title>College Academy</title>
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
<link href="http://fonts.googleapis.com/css?family=Lato:300,400,700,300italic,400italic,700italic" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="app.css">
</head>
<link rel="icon" type="image/x-icon" href="collegeicon.ico">
<body>
<script type="text/javascript" src="script.js"></script>
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">College Academy</a>
</div>
<div id="navbar" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Bidang Ilmu <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="#">Fisika</a></li>
<li><a href="#">Matematika</a></li>
<li><a href="#">Kimia</a></li>
<li><a href="#">Biologi</a></li>
</ul>
</li>
<li><a href="#about">About</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a><form class="example" action="/action_page.php">
<input type="text" placeholder="Search.." name="search2">
<button type="submit"><i class="fa fa-search"></i></button>
</form></a></li>
</ul>
</div>
</div>
</nav>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.4.js"></script>
<script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
</body>
</html>
Check code for navigation.
Upvotes: 0
Reputation: 2142
You can use display: flex
with a combination of align-items: center
on your nav to achieve alignments.
Read more here for flex properties
body {
background-image: url("coldemy123.jpg");
background-size: cover;
background-position: center;
}
body,
html {
width: 100%;
height: 100%;
font-family: "Lato";
color: white;
}
h1 {
font-weight: 700;
font-size: 5em;
}
.content {
padding-top: 25%;
text-align: center;
text-shadow: 0px 4px 3px rgba(0, 0, 0, 0.4), 0px 8px 13px rgba(0, 0, 0, 0.1), 0px 18px 23px rgba(0, 0, 0, 0.1);
}
.iconcoldemy {
width: 25px;
height: 25px;
vertical-align: middle;
}
hr {
width: 400px;
border-top: 1px solid #f8f8f8;
border-bottom: 1px solid rgba(0, 0, 0, 0.2);
}
/* Dropdown Button */
.dropbtn {
font-size: 14px;
color: grey;
border: none;
cursor: pointer;
background-color: #f8f8f8;
}
/* The container <div> - needed to position the dropdown content */
.dropdown {
position: inherit;
display: inline-block;
}
/* Dropdown Content (Hidden by Default) */
.dropdown-content {
display: none;
position: absolute;
background-color: #f1f1f1;
width: 100px;
box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
z-index: 1;
}
/* Links inside the dropdown */
.dropdown-content a {
color: grey;
padding: 12px 16px;
text-decoration: none;
display: block;
}
/* Change color of dropdown links on hover */
.dropdown-content a:hover {
background-color: #ddd
}
/* Show the dropdown menu (use JS to add this class to the .dropdown-content container when the user clicks on the dropdown button) */
.show {
display: block;
}
.nav{
display: flex;
align-items: center;
}
<!DOCTYPE html>
<html>
<head>
<title>College Academy</title>
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
<link href="http://fonts.googleapis.com/css?family=Lato:300,400,700,300italic,400italic,700italic" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="app.css">
</head>
<link rel="icon" type="image/x-icon" href="collegeicon.ico">
<body>
<script type="text/javascript" src="script.js"></script>
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">College Academy</a>
</div>
<div id="navbar" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li>
<div class="dropdown">
<button onclick="myFunction()" class="dropbtn">Bidang Ilmu</button>
<div id="myDropdown" class="dropdown-content">
<a href="#">Fisika</a>
<a href="#">Matematika</a>
<a href="#">Kimia</a>
<a href="#">Biologi</a>
</div>
</div>
</li>
<li><a href="#about">About</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li>
<a>
<form class="example" action="/action_page.php">
<input type="text" placeholder="Search.." name="search2">
<button type="submit"><i class="fa fa-search"></i></button>
</form>
</a>
</li>
</ul>
</div>
</div>
</nav>
<div class="container">
<div class="row">
<div class="col-lg-12">
<div class="content">
<h1>College Academy</h1>
<h3>Belajar Kapanpun Dan Dimanapun Bersama Tutor Coldemy</h3>
<hr>
<button class="btn btn-default btn-lg"><input type="image" src="Coldemy3.png" class="iconcoldemy">Yuk Mulai!</button>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.4.js"></script>
<script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
</body>
</html>
Upvotes: 0
Reputation: 11
there are many ways to vertically align items you can use the line-height css property to vertically the nav items I have updated your html and CSS for a vertically aligned dropdown menu items
check this fiddle snippet
https://jsfiddle.net/hummadhassan/f637rkzp/
<ul class="nav navbar-nav">
<li><a>Bidang Ilmu</a>
<div class="dropdown">
<button onclick="myFunction()" class="dropbtn">Bidang Ilmu</button>
<div id="myDropdown" class="dropdown-content">
<a href="#">Fisika</a>
<a href="#">Matematika</a>
<a href="#">Kimia</a>
<a href="#">Biologi</a>
</div>
</div>
</li>
<li><a href="#about">About</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
.navbar-nav {
list-style: none;
background-color: #dddddd;
}
.navbar-nav:after {
content: ' ';
display: block;
clear: both;
}
.navbar-nav li a {
text-decoration: none;
}
.navbar-nav li {
float: left;
padding: 0 10px;
line-height: 30px;
position: relative;
}
.navbar-nav li .dropdown {
display: none;
position: absolute;
z-index: 10;
}
.navbar-nav li:hover .dropdown {
display: block !important;
}
.dropbtn {
font-size: 14px;
color: grey;
border: none;
cursor: pointer;
background-color: #f8f8f8;
}
.dropdown {
position: inherit;
display: inline-block;
}
Upvotes: 1
Reputation: 13
I think currently the fastest way would be to use flexbox to your #myDropdown element. Add display: flex; flex-direction: column;
and those child elements should be aligned below the div.
Without flexbox though, you could add a position: absolute
or position: relative
to those child elements and then move them around with top and left styles.
Upvotes: 0