Rizki Laksmana
Rizki Laksmana

Reputation: 1

How to vertically align Dropdown Buttons with Navigation Button

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

Answers (4)

Ashish Katoch
Ashish Katoch

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

Priyesh Diukar
Priyesh Diukar

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

Hummad Hassan
Hummad Hassan

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

Mr.Koukkula
Mr.Koukkula

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

Related Questions