wfareed
wfareed

Reputation: 139

bootstrap container-fluid shrinks when contents in a row-cell is not filled enough

The page container shrinks when a cell inside a row is empty or does not have enough contents.

html,
body {
  font-family: "open sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
  background-color: #f3f3f4;
  color: #676a6c;
  height: 100%;
}

.box {
  border: 1px red dotted;
}

#side-menu {
  background-color: #2f4050;
  padding: 0px;
}

#side-menu h1 {
  color: #1f3647;
  text-align: center;
  margin: 10px 0px;
  font-size: 25px;
}

.display-table {
  display: table;
  padding: 0px;
  height: 100%;
}

.display-table-row {
  display: table-row;
  height: 100%;
}

.display-table-cell {
  display: table-cell;
  height: 100%;
  float: none;
}

.valign-top {
  vertical-align: top;
}
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">

<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
  <title>Bootstrap 101 Template</title>

  <!-- Bootstrap -->
  <link href="./bootstrap/css/bootstrap.min.css" rel="stylesheet">
  <link rel="stylesheet" type="text/css" href="css/default.css">
  <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
  <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
  <!--[if lt IE 9]>
          <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
          <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
        <![endif]-->
</head>

<body>

  <div class="container-fluid display-table">
    <div class="row display-table-row">
      <!-- side menu -->
      <div class="col-md-2 display-table-cell valign-top" id="side-menu">
        <h1>Navigation</h1>
      </div>
      <!-- main content -->
      <div class="col-md-10 display-table-cell valign-top box">
        <div class="row">
          <header>
            <div class="col-md-5">
              <input type="text" name="term" placeholder="Search anythhing ...">
            </div>
            <div class="col-md-7">
              <ul>
                <li>Welcome to administration area</li>
                <li>
                  <a href="#">
                    <span class="glyphicon glyphicon-bell" aria-hidden="true"></span>
                    <span class="label lable-warning">3</span>
                  </a>
                </li>

                <li>
                  <a href="#">
                    <span class="glyphicon glyphicon-envelope" aria-hidden="true"></span>
                    <span class="label lable-message">3</span>
                  </a>
                </li>

                <li>
                  <a href="#">
                    <span class="glyphicon glyphicon-log-out" aria-hidden="true"></span> Log out
                  </a>
                </li>
              </ul>
            </div>
          </header>
        </div>

        <div class="row">
          <footer>
            <div class="pull-left"><b>Copyright</b> &copy; 2017</div>
            <div class="pull-right"><b>Admin System</b></div>
          </footer>
        </div>

      </div>
    </div>
  </div>




  <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <!-- Include all compiled plugins (below), or include individual files as needed -->
  <script src="./bootstrap/js/bootstrap.min.js"></script>
</body>

</html>

And as you can see i am using bootstrap to build my page. Container class is <div class="container-fluid display-table">

The page is supposed to be 100% width but it is having a left and right margins as shown here :

enter image description here

And when i fill the col-md-5with some text that is what i get : enter image description here

Any idea why this is happening ??

Upvotes: 0

Views: 904

Answers (2)

Kyle Berkland
Kyle Berkland

Reputation: 1

Agreed added 100% on display-table will give you your result you are wanting. See screenshot screenshot

Upvotes: 0

Rijo
Rijo

Reputation: 2718

I got this working with just adding width: 100% to the table element.

.display-table {width: 100%;}

Hope this solves the issue.

Upvotes: 2

Related Questions