Статьи

Отзывчивые советы по веб-дизайну из CSS Bootstrap

С выпуском версии 3 Bootstrap стал мобильным, опираясь на свою и без того отзывчивую базу.

Какие вещи Bootstrap включает в свой CSS, чтобы помочь с этим? Давайте рассмотрим несколько вещей и узнаем, что может помочь нам в наших собственных проектах.

Определение правильных медиазапросов

Bootstrap имеет четко определенные точки останова для различных типов устройств, определенные с помощью медиазапросов CSS. Ниже приведены категории точек останова, используемые для различных типов устройств:

  1. Сверхмалые устройства (например, мобильные телефоны) используются по умолчанию, создавая концепцию «сначала мобильный» в Bootstrap. Это касается устройств шириной менее 768 пикселей.
  2. «Маленькие устройства» (например, планшеты) используют @media (min-width: 768px) and (max-width: 991px) { ... } .
  3. Устройства среднего размера (например, настольные ПК) имеют размер экрана меньше 1200 пикселей и больше 991 пикселей, используя @media (min-width: 992px) and (max-width: 1199px) { ... } .
  4. Устройства большего размера (например, широкоэкранные мониторы) имеют размер более 1200 пикселей и нацелены на использование @media (min-width: 1200px) { ... } .

Примечание. Мобильные устройства, которые мы используем сегодня, имеют две разные ориентации экрана: книжную и альбомную . Таким образом, вышесказанное в основном относится только к пейзажу. Например, если вы используете телефон Samsung Galaxy Note III, альбомная ориентация попадает в категорию «Малые устройства», тогда как книжная ориентация попадает в категорию «Экстра малые устройства».

Этот тип категоризации часто встречается в адаптивных средах, и вы, несомненно, сможете извлечь пользу из лучшего понимания.

Сетка системы демистифицирована

Если вы знакомы с сеточной системой Bootstrap, вы можете знать, что для правильной настройки ее сеток требуется определенная структура HTML. Давайте демистифицировать это.

Давайте сначала посмотрим на HTML Bootstrap для установки с двумя столбцами:

 <div class="container"> <div class="row"> <div class="col-xs-6"> <p>Column 1</p> </div> <div class="col-xs-6"> <p>Column 2</p> </div> </div> </div> 

Как показано выше, система сетки Bootstrap начинается с элемента контейнера. Контейнеры определяют, сколько места должна использовать сеточная система. Они могут быть двух типов: .container имеет разную ширину для разных типов устройств, тогда как .container-fluid расширяется, чтобы соответствовать ширине устройства.

С помощью медиазапросов Bootstrap дает разную ширину .container зависимости от размера устройства:

  • Очень маленькие устройства (<768 пикселей): width: auto (или без ширины)
  • Малые устройства (≥768px): width: 750px
  • Средние устройства (≥992px): width: 970px
  • Большие устройства (≥1200 пикселей): width: 1170px

Вот еще несколько CSS-объявлений, которые применяются к классу .container .

 .container { padding-right: 15px; padding-left: 15px; margin-right: auto; margin-left: auto; } 

Контейнер начальной загрузки

Как видно на изображении выше, .container предотвращает соприкосновение содержимого внутри элемента с краем браузера, используя отступы 15px с каждой стороны. Это также обеспечивает центрирование контейнера с помощью auto для левого и правого полей.

Строки являются еще одним важным элементом в Grid System Bootstrap. Перед созданием столбцов вы можете определить строку, используя класс .row . Вот фрагмент из Bootstrap CSS для класса .row :

 .row { margin-right: -15px; margin-left: -15px; } 

Как показано выше, наша строка имеет отрицательные левые и правые поля -15px, чтобы позволить строке коснуться края своего элемента контейнера. Это действует как обертка для хранения столбцов, которые могут добавить до 12 в количестве.

Bootstrap ряд

Вы, возможно, заметили, что поля в строке, кажется, противодействуют 15 пикселям отступа, примененного к контейнеру. Если мы проанализируем столбцы, мы увидим, зачем это нужно.

Вот фрагмент из CSS Bootstrap для .col-xs-6 .

 .col-xs-6 { padding-right: 15px; padding-left: 15px; } 

Как показано, левый и правый отступы 15px применяются к столбцам, что приводит к чему-то похожему на изображение ниже:

Бутстрэп колонки с отступом

Из-за отрицательных полей в строке столбцы соприкасаются с краями строки и краями контейнера. Но заполнение заставляет содержимое, которое находится внутри этих столбцов, оставаться на расстоянии 15 пикселей от краев контейнера.

Контейнеры используются для нескольких целей, а не только для системы сетки, поэтому заполнение 15px помогает избежать касания содержимого по краям браузера (при использовании .container-fluid ). Строки имеют отрицательные поля, так что они не выталкиваются заполнением контейнера.

Если вы рассматриваете возможность разработки собственной структуры, вы можете рассмотреть возможность использования этого метода заполнения / поля.

Определение правильной ширины столбца

Bootstrap использует проценты (%) в качестве единицы для определения ширины столбцов, что помогает с быстротой реагирования. Как указано выше, существует 4 различных категории точек останова на основе устройства. Каждая категория имеет свой набор классов для столбцов разных размеров.

  1. Очень маленькие устройства используют .col-xs-* .
  2. Маленькие устройства используют .col-sm-* .
  3. Средние устройства используют .col-md-* .
  4. Большие устройства используют .col-lg-* .

Символ звездочки (*) заменяется числом. Например, .col-xs-6 создает столбец, в 6 раз превышающий размер .col-xs-1 ; .col-sm-4 создает столбец, в четыре раза превышающий размер .col-sm-1 , и так далее.

По умолчанию для всех столбцов не задана ширина, которая по умолчанию width: auto . Однако в медиазапросах Bootstrap присваивает значения ширины каждому классу столбца.

Вот фрагмент из Bootstrap CSS для классов столбцов со звездочками, заменяющими размеры для краткости (xs, sm, md и т. Д.):

 .col-*-12 { width: 100%; } .col-*-11 { width: 91.66666667%; } .col-*-10 { width: 83.33333333%; } .col-*-9 { width: 75%; } .col-*-8 { width: 66.66666667%; } .col-*-7 { width: 58.33333333%; } .col-*-6 { width: 50%; } .col-*-5 { width: 41.66666667%; } .col-*-4 { width: 33.33333333%; } .col-*-3 { width: 25%; } .col-*-2 { width: 16.66666667%; } .col-*-1 { width: 8.33333333%; } 

Давайте проанализируем приведенный выше код. Класс .col-lg-6 будет иметь ширину 50% на больших устройствах, но при просмотре на средних, малых и сверхмалых устройствах используется width: auto по умолчанию width: auto . Это гарантирует, что столбцы преобразуются в сложенную компоновку (а не рядом) в небольших устройствах.

Отзывчивые таблицы

Таблицы, используемые для отображения табличных данных, также чувствительны в Bootstrap.

Чтобы использовать стили таблиц Bootstrap, мы используем класс .table , который имеет следующий CSS:

 .table { width: 100%; max-width: 100%; margin-bottom: 20px; } 

Bootstrap заставляет таблицы соответствовать ширине родительского элемента, применяя ширину 100%. Но в этом есть проблема. Многостолбцовая таблица будет сжата на небольших устройствах и может быть недоступна для чтения.

Bootstrap имеет другой класс для исправления этого: .table-responsive . Вот CSS:

 .table-responsive { width: 100%; overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; -ms-overflow-style: -ms-autohiding-scrollbar; border: 1px solid #ddd; } 

Эти стили заставляют таблицу прокручиваться по горизонтальной оси на небольших устройствах.

Адаптивные изображения

Работа с большими изображениями может быть проблемой для небольших устройств. Bootstrap использует класс .img-responsive чтобы сделать любое изображение отзывчивым:

 .img-responsive { display: block; max-width: 100%; height: auto; } 

Эта комбинация max-width: 100% и height: auto обеспечит пропорциональное уменьшение изображений в меньших устройствах, оставаясь в пределах ограничений родительского элемента на больших устройствах.

Вывод

Эти советы по RWD — это всего лишь несколько вещей, которые я взял в Bootstrap 3. Если вы заметили что-то еще в их исходном коде, не упомянутом здесь, не стесняйтесь поделиться им в комментариях.