Как сделать bootstrap 3 fluid layout без горизонтальной полосы прокрутки
вот пример ссылки: http://bootply.com/76369
это html я использую.
<div class="row">
<div class="col-md-6">.col-md-6</div>
<div class="col-md-6">.col-md-6</div>
</div>
bootstrap 3 не имеет контейнера-жидкости и строки-жидкости.
Я не могу обернуть его .класс контейнера, потому что он станет фиксированным макетом.
как сделать жидкость (полная ширина страницы) макет? ( без горизонтальной полосы прокрутки)
С этими разметки. при просмотре в результате х-свиток панель видна, так что вы можете прокручивать влево и вправо, что он не должен.
редактировать: 2015-12-09
Уже получил ответ и Bootstrap уже выпустил исправление с 3.1.0
21 ответов:
Это было введено в V3.1.0: http://getbootstrap.com/css/#grid-example-fluid
Commit #62736046 добавлено ".контейнер-жидкое изменение для контейнеров и планов полно-ширины".
у меня тоже есть это, и, ожидая их, чтобы исправить это, я добавил этот стыд css:
body { overflow-x: hidden;}- Это ужасно, но это работает. Я буду рад удалить его, когда они исправят проблему.
другая альтернатива, как указано в вопрос, чтобы переопределить
.row:.row { margin-left: 0px; margin-right: 0px; }
это известная проблема в BS 3 -https://github.com/twbs/bootstrap/issues/9862?source=cc
я протестировал на Bootply, используя последнюю сборку, поэтому продолжайте смотреть GitHub для последних обновлений/исправлений.В Bootstrap 3,
.rowдолжен использоваться внутри.containerили.container-fluidдля противодействия отрицательным полям в строке. это устранит горизонтальную полосу прокрутки.от доктора...
"строки должны быть помещены в a .контейнер (фиксированной ширины) или .контейнер-жидкость (полная ширина) для правильного выравнивания и прокладки."
Bootstrap 4
The
container>row>colотношения так же, как и 3.икс..."контейнеры являются самым основным элементом макета в Bootstrap и являются требуется при использовании нашей системы сетки по умолчанию"
Если я правильно вас понимаю, добавление этого после любых медиа-запросов переопределяет ограничения ширины на сетках по умолчанию. Работает для меня на bootstrap 3, где мне нужен макет 100% ширины
.container { max-width: 100%; /* This will remove the outer padding, and push content edge to edge */ padding-right: 0; padding-left: 0; }затем вы можете поместить свои элементы строки и сетки внутри контейнера.
обновление от 2014 года с начальной загрузки, документация:
сетки и макеты полной ширины люди, которые хотят создать полностью текучую среду макеты (это означает, что ваш сайт растягивается на всю ширину видового экрана) необходимо обернуть их содержимое сетки в содержащий элемент с обивка: 0 15px; компенсировать маржа: 0 -15px; используется на .строки.
просто мои 2 цента здесь. В основном это будет работать для вас, как и для меня.
body > .row { margin-left: 0px; margin-right: 0px; }
я столкнулся с той же проблемой (желая жидкий макет), но хотел сохранить отзывчивые варианты с перестановкой столбцов и так далее для небольших экранов и в конечном итоге с небольшим изменением переменных.меньше:
// Large screen / wide desktop (last row of file) @container-lg-desktop: 100%; //((1140px + @grid-gutter-width));это значение используется один раз в сетке.меньше и устанавливает
@media (min-width: @screen-lg-desktop) { .container { max-width: @container-lg-desktop; } .... }результат заключается в том, что более 1200px сетка является жидкой (без горизонтальных полос прокрутки). Ниже этого применяются обычные правила реагирования. Вы можете, конечно, установить это для других медиа-запросов, как ну так же легко.
если вы не хотите редактировать и компилировать .меньше себя вы можете переопределить maxwidth в своей собственной таблице стилей similair ниже:
@media (min-width: 1200px) { /* or min-width: wherever-you-want-your-fluid-breakpoint */ body .container { max-width: 100%; } }все это предполагает, что вы используете обычный синтаксис сетки начальной загрузки, включая контейнер, как показано ниже:
<div class="container"> <div class="row" > <div class="col-md-6">.col-md-6</div> <div class="col-md-6">.col-md-6</div> </div> </div>надеюсь, что это помогает!
в последней версии Twitter Bootstrap макет по умолчанию является жидким, поэтому вам не нужны дополнительные классы для объявления вашего макета как жидкого.
вы можете дополнительно обратиться к -
http://bassjobsen.weblogs.fm/migrate-your-templates-from-twitter-bootstrap-2-x-to-twitter-bootstrap-3/ http://blog.getbootstrap.com/
горизонтальная полоса прокрутки может появиться, если
container-fluiddiv помещается непосредственно внутриbody.правильный способ использования
container-fluidструктура:<body> <section> <div class="container-fluid"> <div class="row"> <!-- content goes here --> </div> </div> </section> </body>Итак, попробуйте обернуть ваш
container-fluidDIVs внутри внешнего div, например<div id="wrap">или<section>или<article>или<aside>или иным специализированным<div>и вуаля! нет горизонтальной полосы прокрутки.
в Bootstrap 3, помещая столбцы сразу под тело должно дать вам жидкий макет без горизонтальной полосы прокрутки
<body> <div class="col-md-6">.col-md-6</div> <div class="col-md-6">.col-md-6</div> </body>
Bootstrap 3.0 версия сложно они добавят исправление для этой проблемы и, вероятно, вернуть контейнер-жидкость в Bootstrap 3.1. А пока вот что я использую:
во-первых, вам понадобится пользовательский контейнер и установите его на 100% ширину, а затем вам нужно будет исправить расположение полей строк и navbar тоже, если у вас есть:
/* Custom container */ .container-full { margin: 0 auto; width: 100%; } /*fix row -15px margin*/ .container-fluid { padding: 0 15px; } /*fix navbar margin*/ .navbar{ margin: 0 -15px; } /*fix navbar-right margin*/ .navbar-nav.navbar-right:last-child { margin-right: 0px; }вы можете складывать классы container-full и container-fluid в корневом div, а затем использовать container-fluid.
надеюсь, что это помогает, если вам нужно больше информации, дайте мне знать.
найдено это решение
.row { margin-left: 0; margin-right: 0; } [class^="col-"] > [class^="col-"]:first-child, [class^="col-"] > [class*=" col-"]:first-child [class*=" col-"] > [class^="col-"]:first-child, [class*=" col-"]> [class*=" col-"]:first-child, .row > [class^="col-"]:first-child, .row > [class*=" col-"]:first-child{ padding-left: 0px; } [class^="col-"] > [class^="col-"]:last-child, [class^="col-"] > [class*=" col-"]:last-child [class*=" col-"] > [class^="col-"]:last-child, [class*=" col-"]> [class*=" col-"]:last-child, .row > [class^="col-"]:last-child, .row > [class*=" col-"]:last-child{ padding-right: 0px; }
Это то, что работал для меня. Я добавил встроенный стиль, чтобы удалить небольшое поле справа. Мне не очень нравится делать встроенный стиль, но этот атрибут одинокого стиля в моем html позволяет мне легко помнить о хакерской работе, сращенной с моим хорошо разделенным кодом. Это также устраняет проблему загрузки моих внешних стилей до или после начальной загрузки таблицы стилей по умолчанию.
<div class="row" style="margin-right:0px;"> <div class="col-md-6"> <div class="col-md-6"> </div>
Если это еще актуально для кого-то, мое решение было следующим образом:
.container{ overflow: hidden; overflow-y: auto; }
Это уже жидкость по умолчанию. Если вы хотите быть жидким для меньшей ширины вместо
col-md-6использоватьcol-sm-6илиcol-xs-6.
вы можете исправить эту проблему, не нарушая bootstrap css и ждать исправления в следующей версии, поэтому вы можете просто обернуть свою строку, определив свой собственный класс .контейнер-жидкость с прокладкой.
//Add this class to your global css file <style> .container-fluid { padding: 0 15px; } </style> //Wrap your rows in within this .container-fluid <div class="container-fluid"> <div class="row"> <div class="col-md-3">content</div> <div class="col-md-9">content</div> <div class="col-md-3">content</div> </div> </div>
вы можете добавить 10px заполнение по бокам вашего элемента тела, если все это дети строки
body { padding: 0 10px; }Если Ваша html-разметка выглядит примерно так:
<body> <div class="row"></div> <div class="row"></div> <div class="row"></div> </body>строки имеют 10 px отрицательное поле. Вот что вызывает переполнение. Если вы добавите 10px дополнение к телу, они будут отменять друг друга.
единственное, что помогло мне было установить
margin:0pxна верхней<div class="row">в моем html DOM.это снова не самый привлекательный способ решить проблему, но так как это только в одном месте, я поставил его в строку.
в качестве fyi контейнер-жидкость и очевидные исправления bootstrap только ввели увеличенные пробелы с обеих сторон видимой страницы... : (Хотя я наткнулся на свое решение, прочитав назад и вперед по вопросу github-так стоит чтение.
суммируя наиболее актуальные комментарии в одном ответе:
- Это известная ошибка
- есть обходные пути, но они могут вам не понадобиться (читайте дальше)
- это происходит, когда элементы размещаются непосредственно внутри тела, а не внутри контейнер-жидкости div или другой содержащий div. Размещение их непосредственно в теле-это именно то, что большинство людей делают при локальном тестировании. Как только вы разместите свой код на полной странице (таким образом, в контейнере-жидкости или другом контейнере div) вы не столкнетесь с этой проблемой (не нужно ничего менять).
Comments