Біокаміни

Блокова система · Bootstrap російською. Що таке сітка бутстрап? Розрахунок ширини блоків

<div class = "col-lg-3 col-md-12" style = "height:150px; background:blue;"> Блок №3div > div > div >

Макет сайту для пристрою з крихітним екраном (width<768px) состоит из 3 блоков, которые расположены вертикально и занимают всю ширину контейнера.

<div class = "container" > <div class = "row" > <div class = "col-lg-6 col-md-8 col-sm-12 col-xs-12" style = "height:300px; background:green;">
Блок №1div > <div class = "col-lg-3 col-md-4 col-sm-6 col-xs-12" style = "height:100px; background:orange;">
Блок №2div > <div class = "clearfix visible-md-block" >
<div class = "col-lg-3 col-md-12 col-sm-6 col-xs-12" style = "height:150px; background:blue;">
Блок №3div > div > div >

Примітка: Для пристроїв з невеликою шириною екрана (<768px) блоки по умолчанию всегда занимают всю ширину рабочей области экрана (col-xs-12) и располагаются один под другим как в нашем примере. Настраивать макет для таких устройств имеет смысл, если макет отличается от вышесказанного.

<div class = "container" > <div class = "row" > <div class ="col-lg-6 col-md-8 col-sm-12" style = "height:300px; background:green;"> Блок №1
div > <div class ="col-lg-3 col-md-4 col-sm-6" style = "height:100px; background:orange;"> Блок №2
div > <div class = "clearfix visible-md-block" >
<div class = "col-lg-3 col-md-12 col-sm-6" style = "height:150px; background:blue;"> Блок №3
div > div > div >

Адаптивні службові класи Twitter Bootstrap для відображення та приховування елементів

Twitter Bootstrap 3 містить адаптивні службові класи, які дозволяють увімкнути відображення елементів лише на певних пристроях, розміри екранів яких потрапляють у відповідний діапазон.

У Twitter Bootstrap 3.2 додано підтримку властивості CSS display для класса.visible . Нова можливість дозволяє задавати видимість таким елементам, як inline, block і inline-block на різних екранах. Наприклад, клас.visible-md-block включає видимість елемента, якщо він є блоковим (block) і поточна ширина робочої області вікна браузера відповідає діапазону md (width >=992px<1200px).

Опис
.visible-xs-* Робить елемент видимим лише на пристроях з дуже маленьким екраном, у яких ширина екрана менше 768px. На інших пристроях ці елементи не помітні.
.visible-sm-* Робить елемент видимим тільки на пристроях, що мають екран шириною більше або дорівнює 768px (тобто ≥768px) і менше ніж 992px. На інших пристроях ці елементи не помітні.
.visible-md-* Робить елемент видимим лише на пристроях, що мають екран шириною більше або дорівнює 992px (тобто ≥992px) і менше 1200px. На інших пристроях ці елементи не помітні.
.visible-lg-* Робить елемент видимим лише на пристроях, що мають екран шириною більше або дорівнює 1200px (тобто ≥1200px). На інших пристроях ці елементи не помітні.

Примітка: Ви також можете спільно використовувати ці класи для того, щоб елементи були видні на кількох пристроях. Наприклад, можна застосувати клас.visible-xs-* і.visible-md-* на будь-який блок, щоб зробити його видимим на пристроях і з дуже маленьким і середнім екраном.

Таким чином, ви можете використовувати нижче перелічені службові класи, щоб приховати відображення елементів на певних пристроях.

Порада: Ви також можете спільно використовувати ці класи, щоб блоки не було видно на кількох пристроях. Наприклад, ви можете застосувати класи.hidden-xs та.hidden-md до блоку на веб-сторінці, щоб зробити цей блок невидимим на пристроях з дуже маленьким та середнім екраном.

<p class = "visible-xs-block" >Цей параграф буде видно лише на смартфонах.p > <p class = "visible-sm-block" >Цей параграф буде видно лише на планшетах.p > <p class = "visible-md-block" >Цей параграф буде видно лише на пристроях із середнім розміром екрана.p > <p class = "visible-lg-block" >Цей параграф буде видно лише на пристроях з великим екраном.p >

Подібно до звичайних адаптивних класів Twitter Bootstrap 3, можна використовувати наступні службові класи, щоб відображати або приховувати певні блоки під час друку веб-сторінок.

У цій статті познайомимося з класами фреймворку Bootstrap 3, призначеними для створення адаптивного «скелета» (макету) сайту.

"Будівельні" елементи сітки Bootstrap 3

Сітка Bootstrap складається з «будівельних» елементів. Основні – це обгорткові контейнери, ряди , адаптивні блокиі чуйні службові класи.

По суті, сітка - це просто список певних класів, за допомогою яких можна задати необхідну поведінку блокам (HTML елементам) і побудувати за їх допомогою певний адаптивний макет сайту.

Обгорткові контейнери

Обгортковий контейнер- це «будівельний» елемент сітки, з якого починається створення макета для всієї сторінки чи її частини (наприклад, шапки, основного меню, основної області, футера) залежно від стратегії розробки.

Контейнер у Bootstrap буває адаптивно-фіксованимабо адаптивно-гумовим.

Перший ( адаптивно-фіксований контейнер) характеризується тим, що він має постійну ширину в межах деякого діапазону ширини viewport (області перегляду).

У наступній таблиці наведено те, яку ширину має адаптивно фіксований контейнер при тій чи іншій ширині області перегляду (viewport) браузера:

Ширина viewport Ширина контейнера (container)
<768px Ширина контейнера дорівнює ширині viewport
>= 768px та<992px 750px
>= 992px та<1200px 970px
<=1200px 1170px

Крім установки ширини, адаптивно-фіксований контейнер Bootstrap ще центрує себе в горизонтальному напрямку щодо країв сторінки. Виконує це він за допомогою CSS властивостей margin-left:auto та margin-right:auto . Ще адаптивно-фіксований контейнер задає внутрішні відступи ліворуч і праворуч по 15рх (за допомогою CSS властивостей padding-left: 15px і padding-right: 15px) для вмісту, який у нього вміщено.

...

Адаптивно-гумовий контейнер відрізняється від адаптивно-фіксованого тим, що він займає всю ширину(100%) вікна браузера. Крім цього, він також як і адаптивно-фіксований контейнер задає внутрішні відступи ліворуч і праворуч по 15рх для вмісту, що в нього вміщено.

...

При розробці макету сайту зазвичай не застосовують вкладання одних обгорткових контейнерів Bootstrap в інші.

Отже, перший «будівельний» елемент сітки Bootstrap – це обгортковий контейнер.Він визначає ширину макета на різних viewport, а також виконує його центрування (тільки адаптивно-фіксований контейнер) щодо лівого та правого краю робочої області вкладки або вікна браузера.

Наступний будівельний елемент – це ряд (блок div із класом row). Ряд – це спеціальний блок, який застосовується лише для обертання інших будівельних елементів (адаптивних блоків). Його основне призначення - це нейтралізація позитивного внутрішнього відступу (15px ліворуч і праворуч) обгорткового контейнера або адаптивного блоку.


Приклад формування внутрішніх відступів:

Container (+15px) -> row (-15px) -> col (+15px) -> контент container (+15px) -> row (-15px) -> col (+15px) -> row (-15px) -> col (+15px) -> контент *col - це адаптивний блок

Приклад показує, що незалежно від того, в якому адаптивному блоці знаходиться контент, він завжди матиме правильний відступ від краю (тобто 15px зліва і праворуч).

Наступний "будівельний" елемент сітки Bootstrap - це адаптивний блок (div з класом col-?-?).


Адаптивні блоки- це елементи сітки Bootstrap, яким встановлений один або кілька класів col-?-? . Дані блоки є основними «будівельними» цеглинами, саме вони і формують необхідну структуру.

Ширина адаптивного блоку задається у зв'язку з типом пристрою. Це означає, що адаптивний блок на різних пристрояхможе мати різну ширину. Саме через це даний блок і називається адаптивним.

Як здійснюється встановлення ширини адаптивному блоку?Встановлення ширини адаптивного блоку, яку він повинен мати на певному пристрої, задається за замовчуванням від 1 до 12 (кількістю колонок Bootstrap). Це число вказується замість другого знака? у класі col-?-? .

Це число (за замовчуванням від 1 до 12) визначає який відсоток від ширини батьківського елементаповинен мати адаптивний блок.

Наприклад, число 1 - встановлює адаптивний блок ширину, рівну 8,3% (1/12) від ширини батьківського блоку. Число 12 - ширину, що дорівнює 100% (12/12) від ширини батьківського блоку.


Крім вказівки ширини адаптивного блоку необхідно ще вказати і тип пристрою(замість 1 питання). Клас пристрою визначатиме те, на якому viewport буде діяти ця ширина. У Bootstrap 3 розрізняють 4 основні класи. Це xs (ширина viewport >0) , sm (ширина viewport >= 768px), md (ширина viewport >= 992px) та lg (ширина області перегляду браузера >=1200px).

Наприклад, адаптивний блок з класом col-xs-12 col-sm-6 col-md-4 col-lg-3 матиме на пристрої xs ширину 100% (12/12), на sm - 50% (6/12) на md - 33,3% (4/12), на lg - 25% (3/12).

Крім цього, слід звернути увагу на те, що адаптивні блоки не обмежують свій діапазон. Тобто. якщо ви в атрибуті class адаптивного блоку вказали xs , але не вказали sm , його дія пошириться і на область дії цього діапазону.

Наприклад, адаптивний блок з класом col-xs-6 col-lg-3 матиме на пристроях xs, sm та md ширину 50% (6/12), на lg - 25% (3/12).

Адаптивний блок, як і контейнер, задає позитивні відступи ліворуч і праворуч по 15px для контенту, який у нього поміщений.

У правильному макеті, побудованому на основі сітки Bootstrap, адаптивний блок повинен завжди мати в якості свого батька ряд.

Наприклад, розіб'ємо блок на 3 рівні колонки, які на xs будуть відображатися вертикально, а на sm і вище горизонтально:

...
...
...

Наприклад, розрахуємо доступну ширину під контент для першого і другого блоку:

1 блок...
2 блок...

Контрольні точки Доступна ширина 1 блоку Доступна ширина 2 блоки
320px - 749.98px від 290px (320px - padding (30px)) до 719.98px (749.98px - padding (30px))
750px - 969.98px 720px (750px - padding (30px))
970px - 1169.98px 616,7px (970px*8/12 - padding (30px)) 293,3px (70px*4/12 - padding (30px))
1170px і більше 750px (1170px*8/12 - padding (30px)) 360px (1170px*4/12 - padding (30px))

Адаптивні блоки розташовуються в батьківському елементі один за одним рядками. В один рядок поміщаються адаптивні блоки із сумарною кількістю колонок не більше 12 (за умовчанням). Тобто. блоки, що не поміщаються в перший рядок, розташовуються у наступному рядку тощо.

Як розташовуються адаптивні блоки?

У Bootstrap 3 адаптивні блоки плавають (float:left). Це необхідно враховувати під час створення макету веб-сторінки.

Перед блоком, який повинен починатися з нового рядка, обов'язково необхідно розташувати порожній div елемент з класом clearfix . Ще його потрібно приховати для пристроїв, на яких цю дію виконувати не потрібно. Здійснюється приховування блоку за допомогою відповідних класів, наведених нижче.

Ще у плаваючих блоків є одна особливість. Наприклад, якщо у наведеному прикладі висота 1 блоку буде вище, ніж 2 блоки. То 3 блок буде розташовуватися не на новому рядку, а "прилипне" до правій стороні 1 блок.


Щоб цього не допустити, необхідно додати блок із класом clearfix і зробити його видимим для необхідних пристроїв (наприклад, на md та lg):

1 блок...
2 блок...
3 блок...

Основний принцип створення макета

Основний принцип створення макета полягає у вкладанні одних адаптивних блоків до інших. При цьому їх ширина - це відносний параметр, який задається у відсотковому відношенні (кількістю колонок) від ширини батьківського блоку. Тобто. на будь-якому рівні вкладеності, наприклад, ширина адаптивного блоку 6 колонок - це завжди 50% (6/12*100%) від ширини батьківського елемента.

Наприклад, розіб'ємо деякий блок (основний) на 4 блоки (2 у першому рядку та 2 у другому). Для простоти, макет створимо не адаптивний:

1 блок...
2 блок...
3 блок...
4 блок...

Створимо макет 3 блоки (3 x 2):

1 блок...
2 блок...
3-1 блок...
3-2 блок...
3-3 блок...
3-4 блок...
3-5 блок...
3-6 блок...
4 блок...

Неважко помітити, що розмітка вкладеного адаптивного блоку виконується як і основного. Це означає, що немає різниці, який рівень вкладеності має блок, створення його макета виконується за тими самими правилами.

Класи для адаптивного зміщення блоків

У Bootstrap є адаптивні класи (col-?-offset-?), за допомогою яких ви можете зсунути блок на певну кількість колонок праворуч. Перший? необхідно замінити на тип пристрою (xs, sm, md або lg). Другий? кількість колонок.

Наприклад, задаємо блоку на md пристроях ширину 8 колонок і розташуємо його в рядку по центру (тобто зрушимо його на 2 колонки вправо):

1 блок...

Крім інструментів для адаптивного зміщення блоків, Bootstrap 3 є ще спеціальні класи, за допомогою яких можна змінити порядок проходження елементів в межах одного рядка.

Чуйні службові класи Bootstrap 3

Bootstrap 3 містить адаптивні (службові) класи, які дозволяють керувати видимістю відображення елементів залежно від типу пристрою.

Крім вказівки пристрою (xs, sm, md, lg), на якому буде видно блок, необхідно вказати те, як на цьому пристрої він повинен відображатися. Можливі варіанти: inline, block та inline-block.

Клас Опис
visible-xs-? Робить елемент видимим тільки на пристроях з дуже маленьким xs екраном (ширина viewport<768px). На других устройствах эти элементы не отображаются.
visible-sm-? Робить елемент видимим лише на пристроях, що мають екран sm (ширина viewport >=768px та<992px). На других устройствах эти элементы не отображаются.
visible-md-? Робить елемент видимим лише на пристроях, що мають md екран (ширина viewport >=992px і<1200px). На других устройствах эти элементы не отображаются.
visible-lg-? Робить елемент видимим лише пристроях, мають екран lg (ширина viewport >=1200px). На інших пристроях ці елементи не відображаються.

Замість знаку? необхідно вказати block, inline або inline-block. Тобто. вказати, як цей елемент повинен відображатись.

Наприклад, додавання до елемента класу visible-md-block означатиме те, що він відображатиметься тільки на пристроях, що мають viewport md (width viewport >=992px і<1200px). Выглядеть данный элемент на странице будет как блок (CSS: display:block;).

Примітка: Ці класи також можна використовувати спільно для того, щоб елементи були видні на кількох пристроях. Наприклад, якщо ви застосуєте до елемента класи visible-xs-inline і visible-md-inline, це зробить його видимим на пристроях, що мають як маленький екран, так і середній. Відображатися цей елемент буде як малий (CSS: display: inline;).

Крім цих Bootstrap 3, має ще класи з протилежною дією. За допомогою їх можна приховати елементи на певних пристроях.

Ці класи також можна використовувати спільно, щоб зробити елемент не видимим на кількох пристроях.

Наприклад, елемент із класами hidden-xs і hidden-sm буде видно відразу на 2 пристроях (xs і sm).

Крім вищенаведених чуйних класів, фреймворк Bootstrap 3 містить і такі, які дозволяють керувати видимістю елементів під час друку.

Клас Опис
visible-print-block Елемент, який має вказаний клас, не відображатиметься на сторінці. Під час друку цей елемент буде видно, і мати як CSS-властивості display значення block .
visible-print-inline Елемент, який має вказаний клас, не відображатиметься на сторінці. Під час друку цей елемент буде видно, і мати як CSS-властивості display значення inline .
visible-print-inline-block Елемент, який має вказаний клас, не відображатиметься на сторінці. Під час друку цей елемент буде видно, і мати як CSS-властивості display значення inline-block .
hidden-print Елемент, який має вказаний клас, не відображатиметься під час друку. На сторінці (у браузері) цей елемент буде видно.

Приклад створення макету за допомогою сітки Bootstrap 3

У цьому розділі статті розглянемо процес створення адаптивного макета для блоку з використанням сітки Bootstrap 3.

Макет складається із трьох блоків. Ці блоки повинні розташовуватися на пристроях так, як показано на зображенні.


Розробляти макет зазвичай починають із крихітних пристроїв (xs). На цьому пристрої блоки мають однакову ширину, що дорівнює 12 колонкам Bootstrap.

Контент блоку 1...
Контент блоку 2...
Контент блоку 3...

На sm блоки розташовуються так:

  • 1 – займає всю ширину батьківського блоку;
  • 2 і 3 (кожен з них) - ширину, що дорівнює 6 колонкам Bootstrap.
Контент блоку 1...
Контент блоку 2...
Контент блоку 3...

На md блоки 1 і 2 розташовані на першому рядку, а блок 3 - на 2 рядку. 1 блок має ширину, що дорівнює 8 колонкам Bootstrap (col-md-8), 2 блок - 4 колонки (col-md-4).

3 блок повинен завжди розташовуватись на 2 рядку. Щоб це гарантувати, перед цим блоком необхідно помістити додатковий порожній блок класу clearfix . Цей блок не дозволить 3 блоку обтікати попередні блоки. Крім цього необхідно мати на увазі, що блок із класом clearfix необхідно відображати тільки на md, т.к. ця дія на інших пристроях не потрібна.

Контент блоку 1...
Контент блоку 2...
Контент блоку 3...

На lg адаптивні блоки розташовані горизонтально і разом займають всю ширину. 1 блок має ширину рівну половині ширини батьківського елемента (col-lg-6), 2 блок - одну четверту ширини (col-lg-3), і 3 блок - теж повинен займати одну четверту ширину батьківського елемента (col-lg-3) .

Контент блоку 1...
Контент блоку 2...
Контент блоку 3...

Ще цікаві теми.

Технології, що стрімко розвиваються, змушують нас йти в ногу з часом. Якщо раніше дизайн створювався на чистому HTML та CSS коді, то сьогодні час бібліотек коду.

Багато фронт-енд розробники, які цінують свій час, давно вже використовують шаблонізатори, сітчасті структури, SESS, LESS, Bootstrap та інші рішення. Це правильно, навіщо ускладнювати собі життя, коли є готові колекції та реалізації завдань.

Сьогодні ми розглянемо, як можна створювати блокові сітки на bootstrap 3.0. Хоча з упевненістю можу сказати, за півроку, потрібно буде вникати в нову 4 версію бутстрапу.

Хто ще не знайомий з Bootstrap?

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

Приклади рішень: http://getbootstrap.com/components/ - таби, стилізація таблиць, спливаючі вікна, навігація, меню, вертикальні списки, кнопки, іконки та інші принади. Теж на англ. мовою.

Що потрібно знати раніше про сітки bootstrap?

Раніше у другій версії бутстрапу були лише деякі доповнення для мобільних рішень. У третій версії весь фреймверк спочатку адаптований під різні пристрої: мобільні, планшети, десктопи. Зараз прояснитися:)

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

Весь код body контенту міститься у спеціальному div блоці. Він може бути фіксованою шириною .container, або повноекранним. container-fluid.

Сіткова система

Складається з 12 осередків, кожна з яких є div блоком у рядку.row.

Тепер подивіться нижче таблицю, щоб було легше розуміти наступні шматки коду.

Залежно від префіксу, ми будемо створювати сітку для потрібного пристрою.

Увага!Можна створювати сітку спочатку, орієнтуючись на кілька пристроїв одночасно. Досягається це шляхом комбінування префіксів.

приклад 1.Створимо деякі сітки тільки для десктопних пристроїв:


.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-8
.col-md-4
.col-md-4
.col-md-4
.col-md-4
.col-md-6
.col-md-6

Приклад 2. А тепер скомбінуємо сітку для робочого столу та мобільного одночасно:


.col-xs-12 .col-md-8
.col-xs-6 .col-md-4
.col-xs-6 .col-md-4
.col-xs-6 .col-md-4
.col-xs-6 .col-md-4
.col-xs-6
.col-xs-6