Макет полноэкранного режима Bootstrap с высотой 100%
Я хочу разработать киоск-приложение, которое должно растянуться до 100% полного сенсорного экрана.
Когда я вложен для каждого вида/шаблона приложения - строки и столбцы, становится ужасно сложно определить каждую строку и каждый столбец, чтобы установить растяжку на 100% или меньше (в зависимости от вложенного элемента) по высоте.
Есть ли плавающий макет для такого случая?
РЕДАКТИРОВАТЬ
Вот какой код:
<div id="mmenu_screen" class="container-fluid main_container">
<div class="row">
<div class="col-sm-6">
<div class="row">
<div class="col-sm-12" id="mmenu_screen--book">
<!-- Button for booking -->
</div>
</div>
<div class="row">
<div class="col-sm-12" id="mmenu_screen--information">
<!-- Button for information -->
</div>
</div>
</div>
<div class="col-sm-6 mmenu_screen--direktaction">
<!-- Button for direktaction -->
</div>
</div>
</div>
Вот что я хочу сделать:
+------------------------------+small screen
|-------------+ +------------+ |
|| | | | |
|| | | | |
|| | | | |
|| | | | |
|-------------+ | | |
|-------------+ | | |
|| | | | |
|| | | | |
|| | | | |
|| | | | |
|-------------+ +------------+ |
+------------------------------+
+----------------------------------------+
|----------------------------------------|huge screen
|| || ||
|| || ||
|| || ||
|| || ||
|| || ||
|| || ||
|| || ||
|--------------------| ||
|--------------------| ||
|| || ||
|| || ||
|| || ||
|| || ||
|| || ||
|| || ||
|----------------------------------------|
+----------------------------------------+
Не что-то вроде этого (макет, который выглядел хорошо на маленьком экране, теперь выглядит коротким)
+----------------------------------+
| |
| +------------------------------+ |
| |--------------| | |
| +--------------| | |
| | || | |
| +------------------------------+ |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
+----------------------------------+
Ответы
Ответ 1
Все, что вам нужно сделать, это иметь высоту 100vh на вашем основном контейнере/обертке, а затем установить высоту 100% или 50% для дочерних элементов.. в зависимости от того, чего вы пытаетесь достичь. Я попытался скопировать ваш макет в основном смысле.
Если вы хотите сосредоточиться внутри, загляните в flexbox. Я привел пример для вас.
Вы можете просмотреть его на весь экран и изменить размер браузера и посмотреть, как он работает. Макет остается прежним.
.left {
background: grey;
}
.right {
background: black;
}
.main-wrapper {
height: 100vh;
}
.section {
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.half {
background: #f9f9f9;
height: 50%;
width: 100%;
margin: 15px 0;
}
h4 {
color: white;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<div class="main-wrapper">
<div class="section left col-xs-3">
<div class="half"><h4>Top left</h4></div>
<div class="half"><h4>Bottom left</h4></div>
</div>
<div class="section right col-xs-9">
<h4>Extra step: center stuff here</h4>
</div>
</div>
Ответ 2
Вот ответ, используя последнюю версию Bootstrap 4.0.0. Этот макет проще использовать в классах flexbox и sizing, которые представлены в Bootstrap 4. Этот макет возможен с очень небольшим дополнительным CSS.
#mmenu_screen > .row {
min-height: 100vh;
}
.flex-fill {
flex:1 1 auto;
}
<div id="mmenu_screen" class="container-fluid main_container d-flex">
<div class="row flex-fill">
<div class="col-sm-6 h-100">
<div class="row h-50">
<div class="col-sm-12" id="mmenu_screen--book">
<!-- Button for booking -->
Booking
</div>
</div>
<div class="row h-50">
<div class="col-sm-12" id="mmenu_screen--information">
<!-- Button for information -->
Info
</div>
</div>
</div>
<div class="col-sm-6 mmenu_screen--direktaction flex-fill">
<!-- Button for direktaction -->
Action
</div>
</div>
</div>
демонстрация
Класс flex-fill
будет доступен в Bootstrap 4.1
Ответ 3
Если вертикальная прокрутка отсутствует, вы можете использовать position:absolute
и height:100%
объявлено на html и элементах тела.
Другой вариант - использовать единицы высоты видовых экранов, см. " Сделать div" на 100% высоты окна браузера
Абсолютное положение Пример:
html, body {
height:100%;
position: absolute;
background-color:red;
}
.button{
height:50%;
background-color:white;
}
<div class="button">BUTTON</div>