Встановлення максимальної ширини тіла за допомогою Bootstrap


76

Я будую свій перший сайт за допомогою Twitter Bootstrap і експериментую з рідинними макетами. Я встановив мій контейнер текучим, тепер вміст всередині займає всю ширину сторінки і адаптується, коли я змінюю розмір браузера.

Дизайн, над яким я працюю, був створений для максимальної ширини ~ 950px.

Я перевірив variables.lessі responsive.less, і документацію Bootstrap; Я не можу повністю зрозуміти, як це зробити.

Я також спробував додати до свого style.css:

body {
    max-width: 950px;
}

ваше правило css працює, що з ним поганого? демонстрація
Андрес Іліч

Гаразд. Повторно. Раніше це не працювало, однак, можливо, це стосувалося деяких проблем, які виникають у мене з LESS / Espresso / Codekit. Мої файли LESS неправильно компілюються. Однак тепер, коли він працює, bodyвирівнює ліворуч, а не по центру, як раніше. Будь-які пропозиції? Я пробував налаштування marginдля autoлівого і правого.
Olly F

2
@OllyF Зачекайте, ви хочете, щоб ваш "контейнер" був шириною 950 пікселів, а не повним документом? Я збентежений, твитер нежидкостний контейнер за замовчуванням має ширину 940 пікселів, тому це нижче вашого обмеження.
Андрес Іліч,

Я розумію, що краще, якщо bodyє max-width, на випадок, якщо я хочу зробити щось поза контейнером. У будь-якому випадку, відкладаючи це, я маю справу з контейнером для рідини. Коли я встановлюю рідину в контейнері, він розширюється на всю ширину тіла. Ось чому я намагаюся встановити максимальну ширину для тіла.
Olly F

1
@OllyF змініть цей медіа-запит усередині адаптивного css на ширину, яку ви шукаєте:, @media (min-width: 768px) and (max-width: 979px) { .. }у вашому випадку це буде max-width:950px;.
Андрес Іліч,

Відповіді:


26

Редагувати

Кращий спосіб зробити це:

  1. Створіть власний менший файл як основний менший файл (наприклад, bootstrap.less).

  2. Імпортуйте всі необхідні файли завантажувального файлу. (у цьому випадку вам просто потрібно імпортувати всі файли, що реагують менше, але responsive-1200px-min.less)

  3. Якщо вам потрібно змінити що-небудь у оригінальному файлі завантажувального файлу менше, вам просто потрібно написати власне менше, щоб перезаписати менше коду завантажувального файлу. (Тільки не забудьте ввести менше коду / файлу після @import { /* bootstrap's less file */ };).

Оригінал

У мене така сама проблема. Ось як я це виправив.

Знайдіть медіа-запит:

@media (max-width:1200px) ...

Видали це. (Я маю на увазі всю справу, а не тільки @media (max-width:1200px))

Оскільки за замовчуванням ширина Bootstrap становить 940 пікселів, вам не потрібно нічого робити.

Якщо ви хочете мати власне max-width, просто змініть правило css у медіа-запиті, яке відповідає бажаній ширині.


6
Будь-яка ідея, як це змінити, не змінюючи жодних файлів завантаження? Наприклад, чи є спосіб змінити цю поведінку в CSS після включення Bootstrap?
mdrozdziel

Ви можете мати власний основний менший файл, який включає всі ваші користувацькі менші файли та менше файлів завантажувального файлу. Ваш власний менший файл може перезаписати будь-які правила в менших файлах завантажувального файлу.
maxisam

А ще краще, просто перевизначте відповідні змінні замість фактичних стилів (див. Bootstrap / variables.less).
ebuat3989

176

Вам не потрібно змінювати адаптивний завантажувальний файл, видаляючи @media (max-width:1200px)...

Моя програма має max-width1600 пікселів. Ось як це працювало для мене:

  1. Створити bootstrap-custom.css - Наскільки це можливо, я не хочу перевизначати свій початковий css bootstrap.

  2. Всередині bootstrap-custom.css перевизначте рідину-контейнер, включивши такий код:

Подобається це:

/* set a max-width for horizontal fluid layout and make it centered */
.container-fluid {
  margin-right: auto;
  margin-left: auto;
  max-width: 1600px; /* or 950px */
}

11
Я змінив .container-fluid на .container (я використовую цей клас замість вашого) і змінив max-width на min-width, і це спрацювало! :)
gabrielhpugliese

7
Це не працює, коли ви використовуєте елементи початкового завантаження, такі як панель навігації, ширина якої все ще визначена в @media (max-width: 1200px)
digout

8
Це працює бездоганно добре! Він імітує макет Facebook, особливо для панелі навігації. Я думаю, що це має бути прийнятою відповіддю.
Девід Моралес,

2
Мінімум клопоту та максимальний ефект.
Matt Lacey

2
Встановлення поля: автоматичне не потрібно (більше з Bootstrap 3).
Доктор Ян-Філіп Герке,

8

У responsive.less ви можете прокоментувати рядок, який імпортує responsive-1200px-min.less.

// Large desktops

@import "responsive-1200px-min.less";

Подобається так:

// Large desktops

// @import "responsive-1200px-min.less";

Так, але коли він імпортує цей менший файл і у нього є всі файли css у додатку, він може помістити перший div у тег body, як це: <div class = "container-fluid"> і <div class = "row -fluid "> і весь контейнер буде текучим. Я думаю, що це його план. Я також рекомендую прочитати: будівельні ліси Там подано досить хороший приклад.
ionutab

1

На жаль, ніщо з перерахованого не вирішило проблему для мене.

Я не хотів редагувати bootstrap-responsive.css, тому пішов простим шляхом:

  1. Створіть css з пріоритетом перед bootstrap-responsive.css
  2. Скопіюйте весь вміст @media (min-width: 768px) and (max-width: 979px)(рядок 461 з останньою завантажувальною версією 2.3.1 на сьогодні)
  3. Вставте його у свій високопріоритетний css
  4. У своєму css поставте @media (min-width: 979px)там, де було сказано @media (min-width: 768px) and (max-width: 979px)раніше. Це встановлює стиль від 768 до 979 до всього, що перевищує 768.

Це воно. Це не оптимально, у вас буде продубльований css, але він працює на 100% ідеально!


1

Не знаю, чи на це вказували тут. Налаштування .containerширини потрібно встановити на веб-сайті Bootstrap. Мені особисто не потрібно було редагувати або торкатися нічого у файлах CSS, щоб налаштувати мій .containerрозмір, який становить 1600 пікселів. На вкладці Налаштування є три розділи, що відповідають за медіа та реагування Інтернету:

  • Точки зупинки медіа-запитів
  • Сіткова система
  • Розміри контейнерів

Окрім межі запитів медіа-запитів , на які, на мою думку, посилаються більшість людей, я також змінився @container-desktopна (1130px + @grid-gutter-width)та @container-large-desktopна (1530px + @grid-gutter-width). Тепер .containerзмінюється його ширина, якщо мій браузер масштабований до ~ 1600px та ~ 1200px. Сподіваюся, це може допомогти.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.