0

I have code with header, container (content) and footer, I can't align container vertically center, how I Can do it:

html, body {
  height: 100%;
}

footer {
  height: 50px;
  background: #eee;
  text-align: center;
  line-height: 50px;
  position: absolute;
  width: 100%;
  bottom: 0;
}

.text {
  padding-bottom: 20px;
}
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
</head>
<body>
  
  <div id="app">
    
    <nav class="navbar navbar-default">
  <div class="container-fluid">
    <!-- Brand and toggle get grouped for better mobile display -->
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
        <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="#">Brand</a>
    </div>

    <!-- Collect the nav links, forms, and other content for toggling -->
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
      <ul class="nav navbar-nav">
        <li class="active"><a href="#">Link <span class="sr-only">(current)</span></a></li>
        <li><a href="#">Link</a></li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>
          <ul class="dropdown-menu">
            <li><a href="#">Action</a></li>
            <li><a href="#">Another action</a></li>
            <li><a href="#">Something else here</a></li>
            <li role="separator" class="divider"></li>
            <li><a href="#">Separated link</a></li>
            <li role="separator" class="divider"></li>
            <li><a href="#">One more separated link</a></li>
          </ul>
        </li>
      </ul>
      <form class="navbar-form navbar-left">
        <div class="form-group">
          <input type="text" class="form-control" placeholder="Search">
        </div>
        <button type="submit" class="btn btn-default">Submit</button>
      </form>
      <ul class="nav navbar-nav navbar-right">
        <li><a href="#">Link</a></li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>
          <ul class="dropdown-menu">
            <li><a href="#">Action</a></li>
            <li><a href="#">Another action</a></li>
            <li><a href="#">Something else here</a></li>
            <li role="separator" class="divider"></li>
            <li><a href="#">Separated link</a></li>
          </ul>
        </li>
      </ul>
    </div><!-- /.navbar-collapse -->
  </div><!-- /.container-fluid -->
</nav>
    
  </div>  
  
  <div class="container">
    <div class="row">
      <div class="col-md-12">
        <div class="col-md-6 text">
          <p>
          Lorem ipsum dolor sit amet, consectetur adipisicing elit. Rerum dicta magni neque saepe sit ducimus culpa laudantium corporis doloribus delectus mollitia similique blanditiis ratione et, magnam. Expedita blanditiis in sunt.
          </p>
        </div>
        <div class="col-md-6 text">
          <p>
            Lorem ipsum dolor sit amet, consectetur adipisicing elit. Blanditiis consequatur, voluptatem harum excepturi, earum similique dolorem nisi deserunt id ipsam vitae explicabo, nostrum. Accusantium quos aut ad, adipisci quod optio.
          </p>
        </div>
        <div class="col-md-6 text">
          <p>
          Lorem ipsum dolor sit amet, consectetur adipisicing elit. Rerum dicta magni neque saepe sit ducimus culpa laudantium corporis doloribus delectus mollitia similique blanditiis ratione et, magnam. Expedita blanditiis in sunt.
          </p>
        </div>
        <div class="col-md-6 text">
          <p>
            Lorem ipsum dolor sit amet, consectetur adipisicing elit. Blanditiis consequatur, voluptatem harum excepturi, earum similique dolorem nisi deserunt id ipsam vitae explicabo, nostrum. Accusantium quos aut ad, adipisci quod optio.
          </p>
        </div>
      </div>
    </div>
  </div>
  
  
  <footer>
    
    text center;
    
  </footer>
 
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>  
</body>
</html>

How I Can vertically align center container considering height header and footer with position absolute;? Please help me. And I have 4 columns with col-md-6.

Example: http://jsbin.com/miboyuqewu/edit?html,css,output

GodmanT
  • 7
  • 6
  • Have you explored `flex` (if you're not concerned about legacy browser support), or `absolute` positioning on `.container` or `.container .row`? https://jsfiddle.net/7paf4msj/ – UncaughtTypeError Sep 05 '17 at 14:12
  • Please don't post the [same question](https://stackoverflow.com/questions/46052418/bootstrap-3-container-vertically-align-center). The answer can found in the duplicate questions posted in the other question. – Carol Skelly Sep 05 '17 at 14:14

2 Answers2

0

Use FlexBox

.container {
  display: flex;
  align-items: center;
  height: calc(100% - $navHeight - $footerHeight);
}

But i suggest you add a parent div for container and target the .body-content

<div class="body-content">
  <div class="container">
    @content
  </div>
</div>
Mike Trinh
  • 1,271
  • 2
  • 9
  • 19
0

You can use CSS3 transform to translate the content's position.

Do the following:

  1. Add a wrapper class to your content container.
  2. Add position: relative; to the body's CSS.
  3. For the new wrapper class, add the following CSS:

    .wrapper {
      position: absolute;
      top: 50%;
      -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
      transform: translateY(-50%);
    }
    
jswebb
  • 517
  • 2
  • 9