Я пытаюсь сделать макет с двумя колонками в полный рост с помощью twitter bootstrap 3. Кажется, что twitter bootstrap 3 не поддерживает макеты в полный рост. Что я хочу сделать:
+-------------------------------------------------+
| Header |
+------------+------------------------------------+
| | |
| | |
|Navigation | Content |
| | |
| | |
| | |
| | |
| | |
| | |
+------------+------------------------------------+
Если содержание растет, навигация также должна расти.
- Высота 100% для каждого родителя не работает, потому что есть случай, когда содержимое - одна строка.
- абсолютная позиция кажется неправильным
display: table
иdisplay:table-cell
решить проблему, но это не элегантно
HTML:
<div class="container">
<div class="row">
<div class="col-md-3"></div>
<div class="col-md-9"></div>
</div>
</div>
Есть ли способ сделать это с помощью по умолчанию Twitter начальной загрузки 3 класса?
html
css
twitter-bootstrap
Uladzimir
источник
источник
Ответы:
Редактировать: в Bootstrap 4 нативные классы могут создавать столбцы полной высоты ( DEMO ), потому что они изменили свою систему сетки на flexbox. (Продолжайте читать для Bootstrap 3)
Нативные классы Bootstrap 3.0 не поддерживают макет, который вы описываете, однако мы можем интегрировать некоторые пользовательские CSS, которые используют таблицы CSS для достижения этой цели.
Bootply demo / Codepen
Разметка:
(Релевантно) CSS
В приведенном выше коде будут получены столбцы полной высоты (благодаря добавленным нами настраиваемым свойствам таблицы CSS) и с соотношением 1: 3 (навигация: содержимое) для экранов средней ширины и выше - (благодаря классам по умолчанию для начальной загрузки: col-md -3 и col-md-9)
NB:
1) Для того , чтобы не напутают родные классы столбцов Bootstrap, тогда мы добавим еще один класс , как
no-float
в разметке и только установитьdisplay:table-cell
иfloat:none
на этом классе (как проставление самих классов столбцов).2) Если мы хотим использовать код таблицы CSS только для определенной точки останова (скажем, средней ширины экрана и выше), но для мобильных экранов мы хотим по умолчанию вернуться к обычному поведению начальной загрузки, чем мы можем обернуть наш собственный CSS в Медиа запрос, скажем:
Codepen демо
Теперь для небольших экранов столбцы будут вести себя как столбцы начальной загрузки по умолчанию (каждый получит полную ширину).
3) Если для всех значений ширины экрана необходимо соотношение 1: 3, то, вероятно, лучше удалить из разметки классы boottrap col-md- *, поскольку они не предназначены для использования.
Codepen демо
источник
Вы можете добиться того, чего хотите, с помощью
padding-bottom: 100%; margin-bottom: -100%;
трюка, который вы можете увидеть в этой скрипке.Я немного изменил ваш HTML, но вы можете добиться того же результата с вашим собственным HTML с помощью следующего кода
источник
Чистое решение CSS
Рабочая скрипка
Используя только CSS2.1, работайте со всеми браузерами (IE8 +), без указания высоты или ширины.
Это означает, что если ваш заголовок неожиданно увеличивается в размерах или вам нужно увеличить левую навигацию, вам не нужно ничего исправлять в CSS.
Полностью отзывчивый, простой и понятный и очень простой в управлении.
Пояснение: Контейнер
div
занимает 100% высоты тела, и он разделен на 2 секции. Раздел заголовка будет охватывать необходимую высоту, аHeightTaker
остальное будет занимать. Как это достигается? плавая пустой элемент вдоль стороны контейнера с высотой 100% (используя:before
), и даваяHeightTaker
пустой элемент в конце с правилом очистки (используя:after
). этот элемент не может находиться в одной строке с плавающим элементом, поэтому он выдвигается до конца. что именно на 100% документа.С этим мы делаем
HeightTaker
промежуток остальной частью высоты контейнера, без указания какой-либо конкретной высоты / поля.внутри этого
HeightTaker
мы строим нормальный плавающий макет (для достижения столбца, такого как отображение) с небольшим изменением ... у нас естьWrapper
элемент, необходимый для работы100%
высоты.Обновить
Вот демоверсия с классами Bootstrap. (Я только что добавил один div к вашему макету)
источник
Я подумал о тонком изменении, которое не меняет поведение начальной загрузки по умолчанию. И я могу использовать его только тогда, когда мне это нужно:
так что я могу использовать это так:
источник
Насколько мне известно, вы можете использовать до 5 методов для этого:
Bootstrap: у меня нет большого опыта с этим, но я не думаю, что они предоставляют стили для этого.
источник
Современное и очень простое решение:
HTML:
CSS:
источник
Чистое CSS-решение достаточно простое и работает как браузер Charm Cross.
Вы просто добавляете большой отступ и одинаково большое отрицательное поле к столбцам nav и content, а затем оборачиваете их строку в классе со скрытым переполнением.
Live view
Редактировать вид
HTML
CSS
Удачи!
источник
Решение может быть достигнуто двумя способами
Классы, которые используются для получения вышеупомянутого решения, не представлены в начальной загрузке 3. display: table и display: table-cell даны, но только при использовании таблиц в HTML. Отрицательные поля и классы заполнения также отсутствуют.
Следовательно, мы должны использовать пользовательские CSS для достижения этой цели.
Ниже первое решение
HTML код:
соответствующий css:
Ниже приводится второе решение
HTML код:
соответствующий css:
источник
Хорошо, я добился того же, используя Bootstrap 3.0
Пример с последней загрузкой
http://jsfiddle.net/HDNQS/1/
HTML:
SCSS:
источник
content:none
И другие мелочи). Я хотел опубликовать замену, которую я могу также скопироватьТак что, похоже, ваш лучший вариант -
padding-bottom
противостоять негативнойmargin-bottom
стратегии.Я сделал два примера. Один
<header>
внутри.container
, а другой снаружи .Обе версии должны работать правильно. Обратите внимание на использование следующего
@media
запроса, чтобы он убрал лишние отступы на небольших экранах ...Помимо этого, эти примеры должны решить вашу проблему.
источник
есть гораздо более простой способ сделать это, если все, что вас беспокоит, это установить цвет.
Поместите это или первым или последним в теге вашего тела
и это в твоем css
вы просто создаете фигуру, закрепляете ее за страницей и растягиваете на полную высоту. Используя существующие классы начальной загрузки, вы получите правильную ширину, и она останется отзывчивой.
У этого метода есть некоторые ограничения, но если это корневая структура страницы, то это лучший ответ.
источник
position: absolute
тогдаposition: fixed
?.container-fluid
. Я хотел бы использовать.container
. Идеи?.container
или не.container-fluid
имеют никакого отношения к этому вообще. то.col.col-md-2
устанавливает ширину с помощью начальной загрузки. Мой CSS выше заставляет div на полную высоту с достаточным отрицательным z-индексом, чтобы убедиться, что он стоит за всем. Как указано выше, это должен быть самый первый или самый последний элемент в вашем<body>
тегеЯ написал простой CSS, совместимый с Bootstrap, для создания таблиц полной ширины и высоты:
Скрипка: https://jsfiddle.net/uasbfc5e/4/
Принцип таков:
HTML:
CSS:
источник
0%;
на0;
совершенно разные. Если это произойдет, вы можете использовать1%;
вместо этого.пытаться
css для .fill класса ниже
Для справки просто загляните в скрипку.
источник
span
чтобыcol-md-
и позволяет увидеть , что происходит<div class="container"> <div class="row"> <div class="col-md-12">header section</div> </div> <div class="row"> <div class="col-md-4">Navigation</div> <div class="col-md-8">Content</div> </div> </div>
попробуй это
Посетите http://www.sitepoint.com/building-responsive-websites-using-twitter-bootstrap/
Благодаря Сайед
источник
Если после строки содержимого не будет (берется вся высота экрана), трюк с использованием
position: fixed; height: 100%
для.col:before
элемента может работать хорошо:источник
Это не было упомянуто здесь со смещением.
Вы можете использовать абсолютное положение для левой боковой панели.
CSS
HTML
источник
Попробуй это
Здесь используется Bootstrap 3, поэтому нет необходимости в дополнительном CSS и т. Д.
источник
Вы видели аффикс бутстрапа в разделе JAvascript ???
Я думаю, что это будет лучшее и простое решение, чувак.
Посмотрите там: http://getbootstrap.com/javascript/#affix
источник
После экспериментов с кодом, приведенным здесь: Учебник по Bootstrap
Вот еще одна альтернатива, использующая последнюю версию Bootstrap v3.0.2:
Разметка:
Дополнительный CSS:
Образец JSFiddle
Надеюсь, это поможет всем, кто заинтересован.
источник