Helder Ferreira
Helder Ferreira

Reputation: 285

Dropdown container not showing right padding

I'm kinda new to HTML/CSS, and I'm trying to create a page with a login dropdown, but for some reason there's no padding on the right side of it. How can I fix it?

I wasn't able to find a solution.

enter image description here

<div class="navbar navbar-fixed-top navbar-default">
  <div class="navbar-header"><a class="navbar-brand">My Site</a>
    <a class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
      <span class="glyphicon glyphicon-bar"></span>
      <span class="glyphicon glyphicon-bar"></span>
      <span class="glyphicon glyphicon-bar"></span>
    </a>
  </div>
  <div class="container">
    <div class="navbar-collapse">
      <ul class="nav pull-right navbar-nav">
        <li><a href="/users/sign_up">Sign Up</a>
        </li>
        <li class="divider-vertical"></li>
        <li class="dropdown"> <a class="dropdown-toggle" href="#" data-toggle="dropdown">Sign In <strong class="caret"></strong></a>

          <div class="dropdown-menu" style="padding: 10px;min-width:240px;">

            Login via
            <div class="social-buttons">
              <a href="#" class="btn btn-fb"><i class="fa fa-facebook"></i> Facebook</a>
            </div>
            or

            <form action="[YOUR ACTION]" method="post" role="form" class="form-horizontal">
              <input class="form-control" id="inputEmail1" placeholder="Email" type="email" style="margin-bottom:.5em">
              <input class="form-control" id="inputPassword1" placeholder="Password" type="password" style="margin-bottom:.5em">

              <div class="checkbox">
                <label>
                  <input type="checkbox">Remember me</label>
              </div>

              <input class="btn btn-primary" style="margin-top:.75em;width: 100%; height: 32px; font-size: 13px;" type="submit" name="commit" value="Sign In">
            </form>


          </div>
        </li>
      </ul>
    </div>
  </div>
</div>

Upvotes: 0

Views: 450

Answers (3)

vanburen
vanburen

Reputation: 21663

Your HTML structure should be changed to reflect the base Bootstrap classes. Pull-right isn't respected in the way you're using it, use navbar-right instead. Check the Docs to see the options you have by default.

*Also this class doesn't exist > <span class="glyphicon glyphicon-bar"></span>

See working example Snippet.

.navbar .dropdown-menu-fb {
  padding: 10px;
  min-width: 240px;
}
.navbar .navbar-toggle {
  padding: 5px 10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css" rel="stylesheet" />
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
<div class="navbar navbar-fixed-top navbar-default">
  <div class="container">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-nav" aria-expanded="false"> <i class="fa fa-bars"></i>

      </button><a href="" class="navbar-brand">My Site</a>

    </div>
    <div class="collapse navbar-collapse" id="bs-nav">
      <ul class="nav navbar-nav navbar-right">
        <li><a href="/users/sign_up">Sign Up</a>

        </li>
        <li class="dropdown"> <a class="dropdown-toggle" href="#" data-toggle="dropdown">Sign In <span class="caret"></span></a>

          <ul class="dropdown-menu dropdown-menu-fb">
            <li class="btn btn-default navbar-btn btn-block"> <a href="#" class="btn btn-fb"><i class="fa fa-facebook"></i> Login via Facebook</a>

            </li>
            <li>
              <form action="[YOUR ACTION]" method="post" role="form">
                <p class="text-center">or Sign Up</p>
                <div class="form-group">
                  <input class="form-control" id="inputEmail1" placeholder="Email" type="email">
                </div>
                <div class="form-group">
                  <input class="form-control" id="inputPassword1" placeholder="Password" type="password">
                </div>
                <div class="form-group">
                  <div class="checkbox">
                    <label>
                      <input type="checkbox">Remember me</label>
                  </div>
                </div>
                <div class="form-group">
                  <input class="btn btn-primary navbar-btn btn-block" type="submit" name="commit" value="Sign In">
                </div>
              </form>
            </li>
          </ul>
        </li>
      </ul>
    </div>
  </div>
</div>

Upvotes: 1

Alex
Alex

Reputation: 929

As Bootstrap Documentation says, sometimes you will need to place your dropdown container in a different position, for those cases you need to add the dropdown-menu-right class like so:

 <div class="dropdown-menu dropdown-menu-right" style="padding: 10px;min-width:240px;">

Here's a JSFiddle with the example working:

JSFiddle

Upvotes: 1

Luca Giardina
Luca Giardina

Reputation: 518

The container is too big and it go out of the screen? Work on min-width and let container stay inside the viewport, than focus on padding.

<div class="dropdown-menu" style="padding: 10px;min-width:200px;">

probably you will have to work on dropdown-menu to fix it, we need the css code

Upvotes: 0

Related Questions