Великий Путь Вебмастера от идеи до интернет бизнеса
Блог Романа Чуешова
Начни зарабатывать в интернете на создании сайтов и блогов

Делаем разметку колонок на bootstrap 3 на примере реального сайта

Доброго времени суток, дорогие подписчики, а также гости данного блога. В одной из прошлых статей я подробно рассказывал о том, как организовывается Bootstrap разметка при помощи сеток. Сегодня же я объясню, как правильно рассчитывать размеры колонок для страниц сайтов, покажу, где можно найти готовые макеты веб-сервисов, а также сверстать шаблон самому.

Отдельное внимание я хочу уделить рассмотрению преимуществ верстки с помощью фреймворка для девайсов с разными размерами экрана. Ну и конечно же не оставлю вас без примера программного кода. Поехали!

Освежим память

Для разбора дальнейшего материала стоит вспомнить, что в Bootstrap 3 Grid System делится на 12 колонок. Если вы хотите увидеть на своих веб-страницах аккуратно выполненный и не поплывший дизайн, то придерживайтесь главного правила: сумма всех колонок в одной строке должна ровняться четко 12. Ни больше, ни меньше.

Для реализации описываемого механизма можно воспользоваться двумя встроенными классами, которые определяют вид разметки макета. К ним относится .container и .container-fluid. Второй класс определяет так называемые плавающие сетки.

Часто слышу вопросы: «А как легко запомнить раз и навсегда разницу между этими двумя контейнерами?». Дорогие читатели, на самом деле все очень просто:

.container – фиксированная ширина (fixed-width), т.е. такой макет будет растягиваться только до определенной ширины и по бокам от края окна будут отступы.

.container- fluid – максимальная ширина (full-width), т.е. в этом случае веб-страница будет занимать всю возможную ширину экрана и отступов никаких не будет.

Также стоит вспомнить, что есть классы, создающий строки – .row – и колонки – .col- X- Y, где вместо X указывается расширение экрана устройства (при помощи специальных классов), а вместо Y – количество колонок.

Чтобы аккуратно распределить информацию по странице, нужно для начала определить, сколько место необходимо выделить для того или иного объекта. И в гридах деление на колонки можно сравнить с объединениями ячеек в таблицах html.

w3schools

К примеру, если вам нужно выделить место для бокового меню с левой стороны и основного контента с правой, то задайте навигации класс .col- md-3, а главному блоку – .col- md-9.

И запомните, даже если для контента вам необходимо использовать всю возможную ширину окна, т.е. 12 колонок, не вставляйте его в блок строк. По правилам контент должен располагаться в пределах блока колонок, а они в свою очередь должны быть вложены в блоки строк.

Шаблончики, да макетики

Ну а теперь я могу перейти к описанию шаблонов. На основе системы Grid было создано огромное количество различных макетов, большинство которых выложены в Интернет в публичный доступ. Я хочу посоветовать вам одну ссылку с готовыми шаблонами и открытым кодом, примеры с которой отлично подойдут для обучения. Это http://www.w3schools.com/bootstrap/bootstrap_templates.asp.

Перейдя по ней, вы найдете 8 готовых решений различных типов сайтов. Программную реализацию каждого из них желательно проанализировать, видоизменить и после сверстать свой собственный Дизайн.

И вот тут стоит обратить внимание на главное преимущество верстки в изучаемом фреймворке. Его создатели предусмотрели множество полезных классов и других плюшек, которые обеспечивают сайт отзывчивостью. Это решает множество проблем, благодаря чему вам достаточно создать одну версию веб-сервиса и она будет корректно отображаться как на мобильных устройствах, так и на десктопах.

Если вы изучали css, то там существуют медиазапросы, с помощью которых определяется внешний вид дизайна в зависимости от размера экрана. «А что же обеспечивает отзывчивость в Bootstrap?» – спросят некоторые из вас. Ответ: все те же медиазапросы. Однако в этом случае они уже прописаны во встроенных классах, которых всего 4. Давайте подробнее рассмотрим их.

Экстра-маленькие девайсы (Смартфоны) Маленькие девайсы (Планшеты) Средние девайсы (Персональные компьютеры) Большие девайсы (Персональные компьютеры)
Разрешение <=767px >767px >991px >1199px
Ширина контейнера None (auto) 750px 970px 1170px
Класс -xs- -sm- -md- -lg-
Ширина колонки auto ~62px ~81px ~97px

А теперь вспомните, как я выше прописывал .col- X- Y. Так вот название одного их этих классов нужно подставлять вместо X.

Как же функционируют данные классы? Если вы зададите, например, col- lg-6, то при уменьшении ширины экрана начиная сразу с 1199px все колонки выстроятся одна под другой и займут все 12 ячеек.

Если же вы выберете класс sm, то такое произойдет, начиная с 767px. При этом данные параметры можно комбинировать и менять переменную Y.

Примерразметки на bootstrap 3

Для закрепления рассмотрите пример с использованием -sm- .

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<!—Подкорректируем стили -->
  <style>
    .row.content {height: 495px}
    .sidenav, .well{
      background-color: #DCDCDC;
      border: 3px double #686968;
      height: 100%;    
    }
  </style>
</head>
<body>
<!--При помощи visible-xs отображаем на экране гамбургер меню, т.е кнопку с тремя полосками, которая раскрывает и скрывает меню-->
<nav class="navbar navbar-inverse visible-xs">
  <div class="container-fluid">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#Navb">
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="#">NewBrand</a>
    </div>
    <div class="collapse navbar-collapse" id="Navb">
      <ul class="nav navbar-nav">
        <li class="active"><a href="#">Свежие новости</a></li>
        <li><a href="#">Видеоканал</a></li>
        <li><a href="#">Фотографии</a></li>
        <li><a href="#">Чат</a></li>
      </ul>
    </div>
  </div>
</nav>
<div class="container-fluid">
  <div class="row content">
<!-- hidden-xs скрывает данный блок при маленьком разрешении дисплея-->
    <div class="col-sm-3 sidenav hidden-xs">
      <h2>NewBrand</h2>
      <ul class="nav nav-pills nav-stacked">
        <li class="active"><a href="#section1">Свежие новости</a></li>
        <li><a href="#section2">Видеоканал</a></li>
        <li><a href="#section3">Фотографии</a></li>
        <li><a href="#section3">Чат</a></li>
      </ul><br>
    </div>
    <br>
 
    <div class="col-sm-9">
      <div class="well">
        <h4>Первая новость</h4>
        <p>Много текста..</p>
      </div>
      <div class="row">
        <div class="col-sm-3">
          <div class="well">
            <h4>Вторая новость</h4>
            <p>Поменьше текста...</p>
          </div>
        </div>
        <div class="col-sm-3">
          <div class="well">
            <h4>Третья публикация</h4>
            <p>Поменьше текста...</p>
          </div>
        </div>
        <div class="col-sm-3">
          <div class="well">
            <h4>Смешная статья</h4>
            <p>Картинки...</p>
          </div>
        </div>
        <div class="col-sm-3">
          <div class="well">
            <h4>Реклама</h4>
            <p>Описание товара...</p>
          </div>
        </div>
      </div>
      <div class="row">
        <div class="col-sm-4">
          <div class="well">
            <h4>Какой-</h4>
            <p>то</p>
            <p>контент</p>
          </div>
        </div>
        <div class="col-sm-4">
          <div class="well">
            <h4>Важная</h4>
            <p>кому-то</p>
            <p>информация</p>
          </div>
        </div>
        <div class="col-sm-4">
          <div class="well">
            <h4>Не очень</h4>
            <p>интересная</p>
            <p>новость</p>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>
 
</body>
</html>

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

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

Если вам понравился материал публикации, то подписывайтесь на мой блог и рассказывайте о нем друзьям. До скорой встречи! Пока-пока!

С уважением, Роман Чуешов

Прочитано: 2223 раз
Этот блог уже читают
читай и ты!
Оставить коментарий
:p :-p 8) 8-) :lol: =( :( :-( :8 ;) ;-) :(( :o: