Настройка шаблона Bootstrap CSS - PullRequest
       29

Настройка шаблона Bootstrap CSS

102 голосов
/ 22 декабря 2011

Я только начинаю с Bootstrap из Твиттера, и мне интересно, что такое «лучшие практики» для настройки. Я хочу разработать систему, которая будет использовать все возможности шаблона css (Bootstrap или другой), быть полностью (и легко) модифицируемой, устойчивой (т. Е. Когда следующая версия Bootstrap будет выпущена из Twitter, я не надо начинать сначала.

Например, я хочу добавить фоновые изображения в верхнюю навигацию. Похоже, есть 3 способа сделать это:

  1. Изменить классы .topbar в bootstrap.css. Мне это особенно не нравится, потому что у меня будет много элементов .topbar, и я не обязательно хочу изменять их одинаково.
  2. Создайте новые классы с моими фоновыми изображениями и примените оба стиля (новый и начальный загрузчик к моему элементу). Это может привести к конфликтам стилей, которых можно избежать, если разделить класс .topbar на отдельные классы, а затем использовать только фрагменты, на которые не влияет мой пользовательский класс. Опять же, это требует больше работы, чем я считаю необходимым, и, хотя это гибко, это не позволит мне легко обновить bootstrap.css, когда Twitter выпустит следующую часть.
  3. Используйте переменные в .LESS для настройки. На первый взгляд это кажется хорошим подходом, но я не использовал его. МЕНЬШЕ У меня проблемы с компиляцией CSS на клиенте и с устойчивостью кода.

Хотя я использую Bootstrap, этот вопрос можно обобщить для любого шаблона CSS.

Заранее спасибо за вклад.

Ответы [ 8 ]

126 голосов
/ 29 декабря 2011

Лучше всего сделать.

1.раскройте twitter-bootstrap из github и локально клонируйте.

они очень быстро меняют библиотеку / фреймворк (они расходятся внутри. Некоторые предпочитают библиотеку, я бы сказал, что это фреймворк, потому что меняют ваш макетс момента загрузки на страницу).Ну ... разветвление / клонирование позволит вам легко получать новые версии.

2.Не изменяйте файл bootstrap.css

Это усложнит вашу жизнь, когда вам понадобится обновить bootstrap (и вам нужно будет это сделать).

3.Создайте свой собственный CSS-файл и перезаписывайте всякий раз, когда вам нужны оригинальные загрузочные файлы

, если они установили верхнюю панель с, скажем, color: black;, но вы хотите, чтобы он был белым, создайте новый очень специфический селектор для этой верхней панелии используйте это правило на конкретной верхней панели.Для таблицы, например, это будет <table class="zebra-striped mycustomclass">.Если вы объявите свой CSS-файл после bootstrap.css, он будет перезаписан, как вы захотите.

20 голосов
/ 20 августа 2012

Я думаю, что официально предпочтительным способом сейчас является использование Less и динамическое переопределение bootstrap.css (с использованием less.js), или перекомпиляция bootstrap.css (с использованием Node или компилятора Less).

Из документов Bootstrap , как динамически переопределить стили bootstrap.css:

Загрузите последнюю версию Less.js и укажите путь к ней (и Bootstrap) в <head>.

 <link rel="stylesheet/less" href="/path/to/bootstrap.less">
    <script src="/path/to/less.js"></script>

Чтобы перекомпилировать файлы .less, просто сохраните их и перезагрузите страницу. Less.js компилирует их и сохраняет в локальном хранилище.

Или, если вы предпочитаете статически скомпилировать новый bootstrap.css с вашими пользовательскими стилями (для производственных сред):

Установите инструмент командной строки LESS через Node и выполните следующую команду:

$ lessc ./less/bootstrap.less > bootstrap.css
17 голосов
/ 18 мая 2018

Обновление 2018 - Bootstrap 4

Я снова рассматриваю этот вопрос о настройке Bootstrap для 4.x, который теперь использует SASS вместо LESS.В общем, есть 2 способа настройки Bootstrap ...

1.Простые переопределения CSS

Одним из способов настройки является простое использование CSS для переопределения Bootstrap CSS.Для удобства обслуживания настройки CSS помещаются в отдельный файл custom.css, поэтому bootstrap.css остается неизменным.Ссылка на custom.css следует после bootstrap.css для работы переопределений ...

<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="css/custom.css">

Просто добавьте все необходимые изменения в пользовательский CSS.Например ...

    /* remove rounding from cards, buttons and inputs */
    .card, .btn, .form-control {
        border-radius: 0;
    }

До (bootstrap.css)

enter image description here

После (с custom.css)

enter image description here

При настройке вы должны понимать CSS Specificity .Переопределения в custom.css требуют использования таких специфических селекторов, как bootstrap.css.

Обратите внимание, что нет необходимости использовать !important в пользовательском CSS, если только вы не переопределяете один Bootstrap Utility классов . Специфика CSS всегда работает для одного класса CSS, чтобы переопределить другой.


2.Настройка с использованием SASS

Если вы знакомы с SASS (и вам следует использовать этот метод), вы можете настроить Bootstrap с помощью собственного custom.scss.В документации Bootstrap есть раздел , который объясняет это, однако документы не объясняют , как использовать существующие переменные в вашем custom.scss.Например, давайте изменим цвет фона тела на #eeeeee, а изменим / переопределим синий primary контекстный цвет на переменную Bootstrap $purple ...

/* custom.scss */    

/* import the necessary Bootstrap files */
@import "bootstrap/functions";
@import "bootstrap/variables";

/* -------begin customization-------- */   

/* simply assign the value */ 
$body-bg: #eeeeee;

/* use a variable to override primary */
$theme-colors: (
  primary: $purple
);
/* -------end customization-------- */  

/* finally, import Bootstrap to set the changes! */
@import "bootstrap";

Это также работает для создания новых пользовательских классов .Например, здесь я добавляю purple к цветам темы, что создает все CSS для btn-purple, text-purple, bg-purple, alert-purple и т. Д. *

/* add a new purple custom color */
$theme-colors: (
  purple: $purple
);

https://www.codeply.com/go/7XonykXFvP

С помощью SASS вы должны @ import bootstrap после настроек , чтобы заставить их работать!Как только SASS скомпилирован в CSS ( это должно быть сделано с помощью компилятора SASS node-sass, gulp-sass, npm webpack и т. Д. ), в результате CSS становится настроенной Bootstrap.Если вы не знакомы с SASS, вы можете настроить Bootstrap, используя инструмент, подобный этому построитель тем , который я создал.

Custom Bootstrap Demo(SASS)

Примечание. В отличие от 3.x, Bootstrap 4.x не предлагает официальный инструмент настройки.Однако вы можете загрузить только сетку CSS или использовать другой 4.x пользовательский инструмент сборки , чтобы перестроить Bootstrap 4 CSS по своему усмотрению.


Похожие:
Как расширить / изменить (настроить) Bootstrap 4 с помощью SASS
Как изменить основной цвет начальной загрузки?
Как создать новый набор цветовых стилей в Bootstrap 4 с помощью sass
Как настроить Bootstrap

10 голосов
/ 16 апреля 2012

После ответа Паблюза в декабре, теперь есть лучший способ настроить Bootstrap.

Использование: Bootswatch для генерации вашего bootstrap.css

Bootswatch создаетобычный Twitter Bootstrap из последней версии (что бы вы ни устанавливали в каталоге начальной загрузки), но также импортирует ваши настройки.Это позволяет легко использовать последнюю версию Bootstrap, сохраняя при этом собственный CSS, без каких-либо изменений в вашем HTML.Вы можете просто повлиять на файлы boostrap.css.

5 голосов
/ 20 февраля 2012

Вы можете использовать шаблон начальной загрузки с

http://www.initializr.com/

, который включает в себя все файлы начальной загрузки .less. Затем вы можете изменить переменные / обновить меньше файлов, как вы хотите, и он автоматически скомпилирует CSS. При развертывании скомпилируйте меньший файл в css.

3 голосов
/ 04 января 2015

Я недавно написал пост о том, как я делал это в Udacity за последние пару лет.Этот метод означает, что мы можем обновлять Bootstrap всякий раз, когда захотим, без конфликтов слияния, выброшенной работы и т. Д. И т. Д.

Пост более подробно описывает примеры, но основная идея заключается в том, что:

  • Сохраните чистую копию начальной загрузки и перезапишите ее внешне.
  • Измените один файл (переменные Bootstrap.less), добавив в него свои собственные переменные.
  • Сделайте файл сайта @include bootstrap.less и затем свои переопределения.

Это означает использование LESS и его компиляцию в CSS перед отправкой клиенту (LESS на стороне клиента, если он привередлив, и я обычно этого избегаю), но это ОЧЕНЬ хорошо для удобства сопровождения / обновления, и получить компиляцию LESS действительно очень легко,В связанном коде github есть пример, использующий grunt, но есть много способов добиться этого - даже с графическим интерфейсом, если это ваша вещь.

Используя это решение, ваша примерная проблема будет выглядеть так:

  • Измените цвет панели навигации с помощью @ navbar-inverse-bg в ваших переменных .less (не для начальной загрузки)
  • Добавьте свои собственные стили панели навигации в свой bootstrap_overrides.less, перезаписывая все, что вам нужно, по ходу работы..
  • Счастье.

Когда придет время обновить ваш загрузчик, вы просто поменяете нетронутую загрузочную копию, и все будет работать (если загрузчик внесет критические изменения, вынеобходимо обновить переопределения, но вам все равно придется это сделать)

Запись блога с кратким описанием - здесь .

Пример кода на github: здесь .

3 голосов
/ 15 января 2014

На мой взгляд, лучший вариант - скомпилировать пользовательский файл LESS, включая bootstrap.less, пользовательский файл variables.less и ваши собственные правила:

  1. Клон начальной загрузки в корневой папке: git clone https://github.com/twbs/bootstrap.git
  2. Переименуйте его в "bootstrap"
  3. Создать файл package.json: https://gist.github.com/jide/8440609
  4. Создать Gruntfile.js: https://gist.github.com/jide/8440502
  5. Создать папку "less"
  6. Скопируйте bootstrap / less / variables.less в папку "less"
  7. Изменить путь шрифта: @icon-font-path: "../bootstrap/fonts/";
  8. Создайте пользовательский файл style.less в папке "less", в который будет импортирован файл bootstrap.less и ваш пользовательский файл variables.less: https://gist.github.com/jide/8440619
  9. Пробег npm install
  10. Пробег grunt watch

Теперь вы можете изменять переменные по своему усмотрению, переопределять правила начальной загрузки в своем пользовательском файле style.less, и если однажды вы захотите обновить bootstrap, вы можете заменить всю папку начальной загрузки!

РЕДАКТИРОВАТЬ: Я создал шаблон Bootstrap, используя эту технику: https://github.com/jide/bootstrap-boilerplate

0 голосов
/ 18 декабря 2012

Использовать LESS с Bootstrap ...

Вот документы Bootstrap о том, как использовать LESS

(они были перемещены после предыдущих ответов)

...