Я использую Twitter Bootstrap 2.0.1 в проекте Rails 3.1.2, реализованном с помощью bootstrap-sass. Я загрузка оба bootstrap.css
и те bootstrap-responsive.css
файлы, а также bootstrap-collapse.js
Javascript.
У меня гибкий макет с навигационной панелью, как в примере . Это следует за инструкциями по «отзывчивому варианту» на панели навигации здесь . Он отлично работает: если страница уже, чем примерно 940 пикселей, панель навигации сворачивается и отображает «кнопку», которую я могу щелкнуть, чтобы развернуть.
Однако моя панель навигации выглядит хорошо при ширине около 550 пикселей, то есть ее не нужно сворачивать, если экран не очень узкий.
Как указать Bootstrap сворачивать панель навигации, только если ширина экрана меньше 550 пикселей?
Обратите внимание, что на этом этапе я не хочу изменять другие варианты поведения, например, складывание элементов вместо их отображения рядом.
источник
Ответы:
Вы ищете строку 239 из
bootstrap-responsive.css
Если
max-width
значение запускает отзывчивую навигацию. Измените его на 550 пикселей или около того, и он должен измениться в размере.источник
bootstrap-responsive.css
похоронен в жемчужине бутстрап-дерзости. Да, я мог бы его отредактировать, но потом, когда гем будет обновлен, мне придется сделать это снова. Есть ли способ переопределить запрос @media, аналогично переопределению других элементов CSS?@media (max-width: 767px)
блоке. Похоже, мне придется сделать более обширное переопределение, как предлагается в ответе Андреса Ильича.@media (max-width: 767px)
. Надеюсь, что Bootstrap (или bootstrap-sass) однажды будет включать в себя средства для использования переменных для установки пороговых значений, но я думаю, что это потребует интерполяции в селекторах носителей .Загрузочный> 2.1 && <3
Обновление 2013: легкий путь
(THX для Archonic через комментарий)
Обновление 2014: Bootstrap 3.1.1 и 3.2 (даже добавили в документацию )
Если вы настраиваете или переопределяете / редактируете
.less
переменные, вам нужны:источник
@navbarCollapseWidth: 600px;
гемом twitter-bootstrap-rails, если вы поместите что-то вроде boostrap_and_overrides.css.less.Вы можете создать новый
@media
запрос, чтобы опускать элементы навигационной панели по своему усмотрению, все, что вам нужно сделать, это сбросить предыдущий, чтобы разместить ваш новый запрос с желаемой шириной перетаскивания. Возьмем, к примеру:CSS
В следующем коде вы можете увидеть, как я включил исходный
@media
запрос, который обрабатывает перетаскивание перед979px
меткой, и новый запрос для поддержки желаемой точки перетаскивания550px
. Я изменил исходный запрос прямо из загрузочного CSS, чтобы сбросить все стили, примененные к этому конкретному запросу для элементов панели навигации, и перенес их в новый запрос, который вместо этого содержит нужную точку перетаскивания. Таким образом, мы можем коммутировать все стили из исходного запроса в новый запрос, не вмешиваясь в таблицу стилей, отвечающую за загрузку, таким образом, значения по умолчанию будут по-прежнему применяться к другим элементам в вашем документе.Вот короткая демонстрация с медиа-запросом, который можно перетаскивать по
550px
мере необходимости: http://jsfiddle.net/wU8MW/Примечание. Я разместил вышеупомянутые модифицированные
@media
запросы ниже кадра css, так как новый модифицированный css должен быть загружен первым, чем реагирующий css.источник
@media (max-width: 979px)
запрос, чтобы сделать новый@media (max-width: 550px)
запрос. Затем (2) вы вручную закодировали новый запрос 979px, чтобы переопределить эффекты запроса 979px в основномbootstrap-responsive.css
? Последовательность тегов в вашем CSS, похоже, не соответствует последовательностиbootstrap-responsive.css
, поэтому мне трудно сравнивать их, чтобы увидеть, что вы сделали.@media (max-width: 550px)
Запрос я написал не следует начальному@media (max-width: 979px)
синтаксису запросов , потому что все , что я сделал быстрый пример переопределения его вручную через поджигатель и копировать / вставить, стал ленивым на том, но правильный способ сделать это , как вы упомянули о вашем втором точка.bootstrap-sass будет поддерживать переменную $ navbarCollapseWidth в следующей версии (2.2.1.0). Вы сможете обновить его, чтобы делать именно то, что хотите, как только эта версия будет запущена!
источник
@import "bootstrap";
По состоянию на август 2013 г. страницу Bootstrap 3 «Настройка и загрузка» можно найти по адресу http://getbootstrap.com/customize/.
В Bootstrap 3 соответствующая переменная - @ grid-float-breakpoint.
На следующей странице переполнения стека есть дополнительные сведения: Bootstrap 3 Navbar Collapse
источник
Я подозреваю (и надеюсь), что это скоро будет официально реализовано. А пока я просто делаю простой css-хак, используя visible-phone на кнопке раскрывающегося списка и visible-tablet на втором наборе кнопок, которые я разместил на панели навигации. Раньше это выглядело так:
А теперь это выглядит так:
Обратите внимание, что порядок элементов важен, иначе у вас могут возникнуть проблемы с элементами, переходящими в следующую строку.
источник
Я создал отдельный файл SCSS, в котором перечислены все частичные данные, необходимые для начальной загрузки, таким образом, я могу включать и выключать эти части в зависимости от того, что нужно нашему сайту. Таким образом, я могу легко переопределить переменную точки останова. Вот что у меня получилось:
источник
Вот мой код (все другие решения показывали забавную полосу прокрутки, когда панель навигации опускалась, поэтому я отредактировал код, поэтому это не так). Я не мог опубликовать другой ответ, поэтому сделаю это здесь, чтобы другие нашли. Я использую рельсы для этого с Bootstrap 3.0.
assets / stylesheets / framework и переопределения вставьте это: (Отрегулируйте максимальную ширину до любого значения для достижения вашей цели.)
источник
Bootstrap 3.x
используя LESS , вы можете изменить значение в соответствии
@screen-small
с минимальным размеромпример:
@screen-small: 600px;
я использую это только для переключения в режим «крошечное устройство», когда ширина меньше 600 пикселей
источник
Bootstrap 3.x
используя SASS, вы можете изменить значение $ screen-sm для достижения минимального размера
пример: $ screen-sm: 600px;
Вам нужно поместить это значение в файл application.scss перед "bootstrap" @import;
Менее переменные начинаются с «@», просто изменили их на «$», чтобы переопределить их перед импортом.
Вот список переменных.
источник
Bootstrap 4.x
Изменить порог коллапса в Bootstrap 4.x совсем несложно. Всего 6 случаев:
<nav class="navbar navbar-expand">...</nav>
<nav class="navbar navbar-expand-sm">...</nav>
<nav class="navbar navbar-expand-md">...</nav>
<nav class="navbar navbar-expand-lg">...</nav>
<nav class="navbar navbar-expand-xl">.../nav>
<nav class="navbar">...</nav>
(Просто удалитеnavbar-expand-*
класс. Mobile-first, как в Bootstrap 4.x)Кредит на эту статью Кэрол Скелли Я нашел https://medium.com/wdstack/examples-bootstrap-4-navbar-b3c9dc0edc1a
источник
Это отличный пример того, где вы могли бы использовать МЕНЬШЕ версию файлов CSS Bootstrap. Как это сделать - ниже.
Еще лучше было бы отправить это как пул-реквест на Github, чтобы каждый мог получить выгоду, и ваш «собственный код», надеюсь, станет частью продвижения Bootstrap.
variables.less
которая указывает, когда сворачивать панель навигации. Что-то вроде:@navCollapseWidth: 979px
responsive-navbar.less
...@media (max-width: 979px)
на@media (max-width: @navCollapseWidth)
@media (min-width: 980px)
на@media (max-width: @navCollapseWidth - 1)
Конечно ... вам придется скомпилировать LESS одним из предложенных методов .
источник
Продолжая хакерство Тайлера, добавляя блок классов видимого телефона и класс скрытого телефона к элементу в основной сворачиваемой навигации, вы можете «вытащить» один или два свернутых элемента для отображения даже на панели навигации телефона.
источник
Просто запишите этот код в свой собственный файл style.css, и он будет работать.
источник