Автоматическое расширение до нижней части страницы [CSS] - PullRequest
0 голосов
/ 22 апреля 2020

Я хочу, чтобы синий элемент расширился до нижней части страницы. Но если я установлю height: 100%, то он расширяется за пределы нижней части страницы. Я думаю, что это так, потому что он не принимает во внимание размер красного элемента, а затем вместе с размером красного элемента они go больше, чем 100% родительского элемента.

enter image description here

Как узнать, что оно выходит за пределы страницы? Потому что родительский элемент имеет границы, которые короче, чем синий элемент. enter image description here

Код выглядит так:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>App</title>
  <base href="/">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
  <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500&display=swap" rel="stylesheet">
  <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
  <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
  <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
  <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">

  <style>
    :root {
        --body-backroung-color: #e7e8e5
    }

    html, body {
        height: 100vh;
    }

    body {
        margin: 0;
        font-family: Roboto, "Helvetica Neue", sans-serif;
        background-color: var(--body-backroung-color);
    }

    .main-content {
        padding: 25px;
    }

    .zero-margin-lr {
        margin-left: 0;
        margin-right: 0;
    }

    .page-margin-lr {
        margin-left: 9em;
        margin-right: 9em;
        border-left: solid 0.1em gray;
        border-right: solid 0.1em gray;
    }



    .main-content-custom {
        background-color: #e9ecef;
    }

    .jumbotron-custom {
        margin-bottom: 0 !important;
    }

    .content {
        margin-bottom: 1em
    }
</style>
</head>
<body class="mat-typography">
  <div class="container-flex page-margin-lr">
  <!--RED ELEMENT-->
  <div class="row">
    <div class="col-12">
      <div class="jumbotron text-center">
        <h1>.</h1>
      </div>

      <nav class="navbar navbar-expand-lg navbar-light bg-light">
        <div class="collapse navbar-collapse" id="navbarSupportedContent">
          <ul class="navbar-nav mr-auto">
            <li class="nav-item">
              <a class="nav-link" [routerLink]="['/home']"
                 routerLinkActive="active">Home <span class="sr-only">(current)</span></a>
            </li>
          </ul>
        </div>
      </nav>
    </div>
  </div>

  <!--  BLUE ELEMENT-->
  <div class="row main-content-custom zero-margin-lr">
    <div class="col-2"></div>

    <div class="col-8">
      <div class="main-content">
        <form name="newPost" #newPost="ngForm">
          <div class="form-group">
            <label for="title">Title</label>
            <input id="title" name="title" type="text" class="form-control"/>
          </div>

          <div class="form-group">
            <label for="content">Content</label>
            <textarea id="content" name="content" class="form-control" rows="6"></textarea>
          </div>

          <div class="form-group">
            <label for="author">Author</label>
            <input id="author" name="author" type="text" class="form-control"/>
          </div>

          <div class="text-right">
            <button type="submit" class="btn btn-primary" >Post</button>
          </div>
        </form>
      </div>
    </div>

    <div class="col-2"></div>
  </div>
</div>

</body>
</html>

Фрагмент кода выше находится внутри элемента body. html и body имеют height: 100%

Как сделать так, чтобы синий элемент расширялся до нижней части страницы, но не go за / против родительского элемента?

1 Ответ

0 голосов
/ 24 апреля 2020

Таким образом, решение для меня было:

  • добавить height: auto; min-height: 100vh к родителю.
  • добавить flex: 1 к дочернему / синему элементу

Спасибо Зохиру Салаку за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...