Создание столбцов начальной загрузки, размещенных в строках, занимает всю высоту экрана - PullRequest
1 голос
/ 11 ноября 2019

У меня есть некоторый код для проекта, который я делаю, и у меня проблемы с макетом начальной загрузки. Я хочу, чтобы эти столбцы складывались в полную высоту экрана. Здесь - это то, что я имею сейчас. У меня все строки, вложенные в столбцы, установлены на

height:100%

, потому что это было ближе всего к тому, что я хочу. Я хочу сделать что-то похожее на это (извините за слабые навыки рисования в MS): enter image description here

Вот мой код, если ссылка не работает:

<!DOCTYPE html>
<html lang="en">
<head>

<!-- Link to css file -->
<link rel="stylesheet" type="text/css" href="/static/main.css" mesdia="screen"/>

<!-- Bootstrap CDN-->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>

<meta charset="UTF-8">
<title>Layout</title>
<!--<h1>Welcome to the layout</h1>
<p>Where would you like to navigate to?</p>-->
</head>
<body>

<div class="container-fluid">
<div class="row" id="navcols">

    <div class="col layoutcol">
        <div class="row layoutrow" id="LeftCol1">Row</div>
        <div class="row layoutrow" id="LeftCol2">Row</div>
    </div>

    <div class="col-sm-6 layoutcol">
        <div class="row MidCol layoutrow">Row</div>
        <div class="row MidCol layoutrow">Row</div>
        <div class="row MidCol layoutrow">Row</div>
        <div class="row MidCol layoutrow">Row</div>
        <div class="row MidCol layoutrow">Row</div>
    </div>

    <div class="col layoutcol">
        <div class="row layoutrow" id="RightCol">Row</div>
    </div>

</div>
</div>

<!--
<div class="container-fluid">
    <h1 id="test">Welcome to my page! Where do you want to navigate to?</h1>
</div>-->

А вот CSS

html,body {
height: 100%;

ширина: 100%;}

.col {
background-color:lime;
}

#LeftCol1 {
background-color:blue;
height: 100%;
}

#LeftCol2 {
background-color:red;
height: 100%
}

.layoutrow{
border:solid 1px black;
}

.MidCol{
height: 100%;
}

#RightCol {
height: 100%;
}

Как я могу сделать это изменение? Спасибо!

Ответы [ 2 ]

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

То, что вы ищете, может быть возможно с комбинацией CSS и начальной загрузки.
Вот что я сделал.

<!DOCTYPE html>
<html lang="en">

  <head>
    <title>Grid </title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
    <style>
    .first .first_row{
      background-color: #ff0000;
      height: 50vh;
      border:2px solid black;
    }
    .first .second_row{
      background-color: #ffff00;
      height: 50vh;
      border:2px solid black;
    }

    .second .first_row{
      background-color: #cc99ff;
      height: 20vh;
      border:2px solid black;
    }
    .second .second_row{
      background-color: #ff0066;
      height: 20vh;
      border:2px solid black;
    }
    .second .third_row{
      background-color: #0099ff;
      height: 20vh;
      border:2px solid black;
    }
    .second .fourth_row{
      background-color: #006666;
      height: 20vh;
      border:2px solid black;
    }
    .second .fifth_row{
      background-color: #000099;
      height: 20vh;
      border:2px solid black;
    }
    .third .first_row{
      background-color: #006600;
      height: 100vh;
      border:2px solid black;
    }
    </style>
  </head>
<body>
  <div class="container-fluid">
    <div class="row">
      <div class="col-md-3 first">
        <div class="row first_row">
        </div>
        <div class="row second_row">
        </div>  
      </div>
      <div class="col-md-6 second">
        <div class="row first_row">
        </div>
        <div class="row second_row">
        </div>
        <div class="row third_row">
        </div>
        <div class="row fourth_row">
        </div>
        <div class="row fifth_row">
        </div>
      </div>
      <div class="col-md-3 third">
        <div class="row first_row">
        </div>    
      </div>    
    </div>
  </div>
</body>
</html>

Надеюсь, это поможет вам.

PS Не обращайте внимания на цвета.

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

Попробуйте поместить внутренние строки в контейнер следующим образом:

<div class="col-sm-6 layoutcol">
    <div class="container-fluid">
        <div class="row MidCol layoutrow">Row</div>
        <div class="row MidCol layoutrow">Row</div>
        <div class="row MidCol layoutrow">Row</div>
        <div class="row MidCol layoutrow">Row</div>
        <div class="row MidCol layoutrow">Row</div>
    </div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...