сетки, показывающие полную страницу, когда высота установлена ​​на 100% - PullRequest
1 голос
/ 03 ноября 2019

С некоторых пор я работаю над макетом чата, и основная концепция моего сайта (который я покажу) заключается в том, что у меня есть фиксированная панель навигации и нижний нижний колонтитул (Bootstrap 4). Поэтому между ними я добавил систему сетки с 3 столбцами (3 + 6 + 3). Теперь я хочу, чтобы система сетки была высотой, чтобы она охватывала всю область между панелью навигации и нижним колонтитулом. Но проблема в том, что когда я задаю им высоту 100%, появляется полоса прокрутки и она превращается в сетку на всю страницу.

Мой код:

.dropdown-toggle::after {
  content: none;
}

body {
  margin: 0;
  padding: 0;
}
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"/>
<nav class="navbar navbar-expand navbar-dark" style="background-color:#3A5070">
  <a class="navbar-brand" href="#">LOGO</a>
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
      </button>

  <div class="collapse navbar-collapse" id="navbarSupportedContent">
    <ul class="navbar-nav ml-auto">
      <li class="nav-item">
        <img src="https://image.flaticon.com/icons/svg/1156/1156949.svg" width="25" style="margin-top:10px;margin-right:15px;" />
      </li>
      <li class="nav-item">
        <img src="https://image.flaticon.com/icons/svg/813/813020.svg" width="25" style="margin-top:10px;margin-right:15px;" />
      </li>
      <li class="nav-item dropdown">
        <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
          <img src="libs/images/icon.png" width="35" />
        </a>
        <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown" style="margin-top:7px;border-radius:0px;width:110%;">
          <a class="dropdown-item" href="#">Edit Profile</a>
          <div class="dropdown-divider"></div>
          <a class="dropdown-item" href="#">Logout</a>
        </div>
      </li>
    </ul>
  </div>
</nav>

<div class="row no-gutter" style="height:100%">
  <div class="col-3" style="background: orange;">col-3</div>
  <div class="col-6" style="background:black;">col-6</div>
  <div class="col-3" style="background: orange;">col-3</div>
</div>

<nav class="navbar fixed-bottom navbar-light " style="background-color:#3A5070">
  <a class="navbar-brand" href="#"></a>
</nav>

Ответы [ 2 ]

1 голос
/ 03 ноября 2019

Используйте calc () для расчета высоты элемента:

<style>
  .full_height {
    height: calc(100vh - 82px);
    overflow: auto;
  }
</style>

.full_height {
	height: calc(100vh - 82px);
	overflow: auto;
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.0/css/bootstrap.min.css" rel="stylesheet"/>

<nav class="navbar navbar-expand navbar-dark" style="background-color:#3A5070">
  <a class="navbar-brand" href="#">LOGO</a>
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"
    aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
    <span class="navbar-toggler-icon"></span>
  </button>

  <div class="collapse navbar-collapse" id="navbarSupportedContent">
    <ul class="navbar-nav ml-auto">
      <li class="nav-item">
        <img src="https://image.flaticon.com/icons/svg/1156/1156949.svg" width="25"
          style="margin-top:10px;margin-right:15px;" />
      </li>
      <li class="nav-item">
        <img src="https://image.flaticon.com/icons/svg/813/813020.svg" width="25"
          style="margin-top:10px;margin-right:15px;" />
      </li>
      <li class="nav-item dropdown">
        <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown"
          aria-haspopup="true" aria-expanded="false">
          <img src="libs/images/icon.png" width="35" />
        </a>
        <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown"
          style="margin-top:7px;border-radius:0px;width:110%;">
          <a class="dropdown-item" href="#">Edit Profile</a>
          <div class="dropdown-divider"></div>
          <a class="dropdown-item" href="#">Logout</a>
        </div>
      </li>
    </ul>
  </div>
</nav>

<div class="container-fluid full_height">
  <div class="row no-gutter text-center" style="height:100%">
    <div class="col-3" style="background: orange;">col-3</div>
    <div class="col-6" style="background:black;color:white;">col-6</div>
    <div class="col-3" style="background: orange;">col-3</div>
  </div>
</div>

<nav class="navbar fixed-bottom navbar-light " style="background-color:#3A5070">
  <a class="navbar-brand" href="#"></a>
</nav>

кодовая ссылка

0 голосов
/ 03 ноября 2019

Используйте CSS flex. Придание высоты 100% заберет все наследственные значения высоты у его родителя. здесь вы пытаетесь установить высоту содержимого на 100%. Таким образом, он принимает всю доступную высоту и нет места для верхнего и нижнего колонтитула. Если вы попытаетесь включить верхний и нижний колонтитулы в содержимое, то страница будет переполнена. Итак, свиток приходит.

body{
  margin:0;
  padding:0;
  display:flex;
  height: 100%;
  position: absolute;
  width: 100%;
  flex-direction:column;
} 
.row.no-gutter {
    flex: 1;
    overflow: auto;
    margin: 0;
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"/>


<nav class="navbar navbar-expand navbar-dark" style="background-color:#3A5070">
  <a class="navbar-brand" href="#">LOGO</a>
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
    <span class="navbar-toggler-icon"></span>
  </button>

  <div class="collapse navbar-collapse" id="navbarSupportedContent">
    <ul class="navbar-nav ml-auto">
          <li class="nav-item">
        <img src="https://image.flaticon.com/icons/svg/1156/1156949.svg" width="25" style="margin-top:10px;margin-right:15px;"/>
      </li> 
    <li class="nav-item">
        <img src="https://image.flaticon.com/icons/svg/813/813020.svg" width="25" style="margin-top:10px;margin-right:15px;"/>
      </li>
      <li class="nav-item dropdown">
        <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
          <img src="libs/images/icon.png" width="35" />
        </a>
        <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown" style="margin-top:7px;border-radius:0px;width:110%;">
          <a class="dropdown-item" href="#">Edit Profile</a>
          <div class="dropdown-divider"></div>
          <a class="dropdown-item" href="#">Logout</a>
        </div>
      </li>
    </ul>
  </div>
</nav>

  <div class="row no-gutter" >
  <div class="col-3" style="background: orange;">col-3</div>
    <div class="col-6" style="background:black;">col-6</div>
    <div class="col-3" style="background: orange;">col-3</div>
  </div>

<nav class="navbar fixed-bottom navbar-light " style="background-color:#3A5070">
  <a class="navbar-brand" href="#"></a>
</nav>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...