Узнаем Bootstrap 4 за 30 минут

Узнаем Bootstrap 4 за 30 минут

Coding


Есть много версий Bootstrap, но 4 пока что является самой последней. В этой статье будем строить сайт лендинг с использованием Bootstrap 4.

Что нужно знать?

Перед началом, вам нужно убедиться в что вы владеете кое-какими умениями, для того, чтобы изучить и начать использовать такой фреймворк как Bootstrap:


Основы HTML
Простые знания CSS
И немного простого Jquery


Скачиваем и устанавливаем Bootstrap 4

Есть три способа установки и внедрения Bootstrap 4 в ваш проект.


1. Использование npm

Вы можете установить Bootstrap 4 запустив команду npm install bootstrap

2. Использование CDN

Вставьте эту ссылку в ваш проект между тегами <head></head>

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">

3. Скачивание библиотеки Bootstrap 4 и ее локальное использование

Структура нашего проекта должна выглядеть так


Новый функционал в Bootstrap 4

Чего нового в Bootstrap 4? И в чем разница между Bootstrap 3 и 4?

Четвертая версия идет в поставке с некоторыми отличными функциями, которых нет в третьей. А именно:

Bootstrap 4 написан на Flexbox Grid, то есть на флексах, в то время как Bootstrap 3 был написан с использованием флоатов.

Bootstrap 4 использует rem CSS единицы, в то время как Bootstrap 3 использует пиксели.

Панели, миниатюрки и велсы были полностью убраны.

Без углубления в детали, давайте перейдем к другим важным вещам.


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

Система сеток в Bootstrap помогает вам создать шаблон и легко сделать адаптивный сайт. Тут нет каких-либо изменений в названиях классов, кроме .xs класса, который больше не существует в Bootstrap 4.


Сетка разделена на 12 столбцов, следовально ваш шаблон будет основываться на этом.

Чтобы использовать систему сеток, вам придется добавить класс .row к главному диву.

col-lg-2 // класс используется для больших устройств, таких как ноутбуки
col-md-2 // класс используется для средних по размерам устройств, таких как планшеты
col-sm-2// этот класс используется для маленьких устройств, таких как мобильные телефоны.


Панель навигации

Обертка для панели навигации в Bootstrap 4 довольно крута. Она очень удобна, когда надо сделать адаптивный navbar.

Для этого, мы добавить класс navbar нашему index.html файлу.

<nav class="navbar navbar-expand-lg fixed-top ">
<a class="navbar-brand" href="#">Home</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse " id="navbarSupportedContent">
<ul class="navbar-nav mr-4">
<li class="nav-item">
<a class="nav-link" href="#">About</a>
</li>
<li class="nav-item">
<a class="nav-link " href="#">Portfolio</a>
</li>
<li class="nav-item">
<a class="nav-link " href="#">Team</a>
</li>
<li class="nav-item">
<a class="nav-link " href="#">Post</a>
</li>
<li class="nav-item">
<a class="nav-link " href="#">Contact</a>
</li>
</ul>
</div>
</nav>


Создайте и подключите main.css файл, чтобы вы могли кастомизировать CSS стиль.

Вставьте его в head тег вашегу index.html файла:

<link rel="stylesheet" type="text/css" href="css/main.css">

Добавьте цветов панели навигации:

.navbar{
background:#F97300;
}
.nav-link , .navbar-brand{
color: #f4f4f4;
cursor: pointer;
}
.nav-link{
margin-right: 1em !important;
}
.nav-link:hover{
background: #f4f4f4;
color: #f97300;
}
.navbar-collapse{
justify-content: flex-end;
}
.navbar-toggler{
background:#fff !important;
}


Новая сетка построена на флексах, так что выравнивание вам нужно уже делать с помощью Flexbox свойств. Для примера, чтобы разместить меню навигации справа, нам надо добавить свойство justify-content и выставить ему flex-end.

.navbar-collapse{
justify-content: flex-end;
}


Добавьте .fixed-top класс в панель навигации, чтобы сделать её фиксированной.

Чтобы сделать фоновый цвет ярким, добавьте .bg-light. Для темного фона, добавьте .bg-dark, а для светло голубого фона, добавьте класс .bg-primary.

.bg-dark{
background-color:#343a40!important
}
.bg-primary{
background-color:#007bff!important
}


Шапка

<header class="header">
</header>


Давайте попробуем создать разметку для шапки.

Тут мы хотим сделать так, что шапка забирала всю высоту окна, следовательно нам понадобится немного JQuery.

Для начала создадим файл под названием main.js и вставим его в index.html перед закрывающим тегом body.

<script type="text/javascript" src='js/main.js'></script>

В main.js вставим немного кода JQuery.

$(document).ready(function(){
$('.header').height($(window).height());
})


Было бы круто, если бы мы выставили фон для шапки.

/*стиль шапки*/
.header{
background-image: url('../images/headerback.jpg');
background-attachment: fixed;
background-size: cover;
background-position: center;
}


Давайте добавим наложение, чтобы шапка выглядела попрофессиональнее.

Добавьте этот код в ваш index.html файл.

<header class="header">
<div class="overlay"></div>
</header>


Далее добавьте это в ваш main.css файл.

.overlay{
position: absolute;
min-height: 100%;
min-width: 100%;
left: 0;
top: 0;
background: rgba(244, 244, 244, 0.79);
}


Теперь нам надо добавить описание внутрь шапки.

Чтобы обернуть наше описание, нам сначала надо создать <div> и выдать ему класс .container.

.container это класс в Bootstrap, который поможет вам обернуть ваш контент и сделает ваш шаблон более адаптивным.

<header class="header">
<div class="overlay"></div>
<div class="container">
</div>
</header>


Далее добавьте еще один div, который будет влючать в себя описание.

<div class="description text-center">
<h3>
Hello ,Welcome To My officail Website
<p>
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<button class="btn btn-outline-secondary">See more</button>
</h3>
</div>


Мы выставим его класс .description и добавим .text-center класс, чтобы убедиться в том, что контент размещён в центре страницы.

Кнопки

Добавьте класс .btn btn-outline-secondary к элементу button. Вообще есть много других классов для кнопок. Вот несколько примеров.

CodePen Embed - buttons in bootstrap 4


Вот как выглядит стилизация для .description в main.css файле.

.description{
position: absolute;
top: 30%;
margin: auto;
padding: 2em;
}
.description h1{
color:#F97300 ;
}
.description p{
color:#666;
font-size: 20px;
width: 50%;
line-height: 1.5;
}
.description button{
border:1px  solid #F97300;
background:#F97300;
color:#fff;
}


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


Секция информации

В этой секции мы будем использовать сетку Bootstrap, что бы разделить секцию на две части.

Чтобы начать сетку, мы выставим класс .row родителю div.

<div class="row></div>

Первая секция будет по левую сторону и будет содержать изображение, а вторая секция будет по правую сторону и будет включать в себя описание.

Каждый div будет брать по 6 колонок — это означает, что они возьмут по половине секции. Помните, что сетка делится на 12 колонок.

В первом div по левую сторону:

<div class="row">
// left side
<div class="col-lg-4 col-md-4 col-sm-12">
<img src="images/team-3.jpg" class="img-fluid">
<span class="text-justify">S.Web Developer</span>
</div>
</div>


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

<div class="row">
<div class="col-lg-4 col-md-4 col-sm-12">
<img src="images/team-3.jpg" class="img-fluid">
<span class="text-justify">S.Web Developer</span>
</div>
<div class="col-lg-8 col-md-8 col-sm-12 desc">
<h3>D.John</h3>
<p>
ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</p>
</div>
</div>


А вот и сам CSS:

.about{
margin: 4em 0;
padding: 1em;
position: relative;
}
.about h1{
color:#F97300;
margin: 2em;
}
.about img{
height: 100%;
width: 100%;
border-radius: 50%
}
.about span{
display: block;
color: #888;
position: absolute;
left: 115px;
}
.about .desc{
padding: 2em;
border-left:4px solid #10828C;
}
.about .desc h3{
color: #10828C;
}
.about .desc p{
line-height:2;
color:#888;
}


Секция портфолио

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


Структура нашего HTML кода для секции порфолио выглядит так.

<!-- portfolio -->
<div class="portfolio">
<h1 class="text-center">Portfolio</h1>
<div class="container">
<div class="row">
<div class="col-lg-4 col-md-4 col-sm-12">
<img src="images/portfolio/port13.png" class="img-fluid">
</div>
<div class="col-lg-4 col-md-4 col-sm-12">
<img src="images/portfolio/port1.png" class="img-fluid">
</div>
<div class="col-lg-4 col-md-4 col-sm-12">
<img src="images/portfolio/port6.png" class="img-fluid">
</div>
<div class="col-lg-4 col-md-4 col-sm-12">
<img src="images/portfolio/port3.png" class="img-fluid">
</div>
<div class="col-lg-4 col-md-4 col-sm-12">
<img src="images/portfolio/port11.png" class="img-fluid">
</div>
<div class="col-lg-4 col-md-4 col-sm-12">
<img src="images/portfolio/electric.png" class="img-fluid">
</div>
<div class="col-lg-4 col-md-4 col-sm-12">
<img src="images/portfolio/Classic.jpg" class="img-fluid">
</div>
<div class="col-lg-4 col-md-4 col-sm-12">
<img src="images/portfolio/port1.png" class="img-fluid">
</div>
<div class="col-lg-4 col-md-4 col-sm-12">
<img src="images/portfolio/port8.png" class="img-fluid">
</div>
</div>
</div>
</div>


Добавляя .img-fluid каждому изображению, мы делаем их адаптивными.

Каждый элемент в нашей галерее будет забирать себе четыре колонки, помните, что col-md-4 это для средних расширений экранов, а col-lg-4 для больших экранов.

Это равносильно 33.33333% на больших экранах, таких как десктопы или большие планшеты.

А маленькие девайсы получат 12 колонок, то есть iPhone и другие мобильные устройства будут забирать по 100% контейнера.

Давайте добавим немного стилизации нашей галерее.

/*Portfolio*/
.portfolio{
margin: 4em 0;
position: relative;
}
.portfolio h1{
color:#F97300;
margin: 2em;
}
.portfolio img{
height: 15rem;
width: 100%;
margin: 1em;
}


Секция блога

Карточки

Карточки в Bootstrap 4 делают дизайн блога куда проще. Особенно карточки хорошо подходят статей и постов.

Чтобы создать карточку, мы используем класс .card и назначаем его div элементу. Сам класс карточки содержит много функций:

.card-header определяет карточку шапки

.card-body для карточки основного контента

.card-title заголовок карточки

.card-footer определяет подвал карточки

.card-image для изображения карточки

Таким образом, HTML код нашего сайта должен сейчас выглядеть таким образом:

<!-- Posts section -->
<div class="blog">
<div class="container">
<h1 class="text-center">Blog</h1>
<div class="row">
<div class="col-md-4 col-lg-4 col-sm-12">
<div class="card">
<div class="card-img">
<img src="images/posts/polit.jpg" class="img-fluid">
</div>
<div class="card-body">
<h4 class="card-title">Post Title</h4>
<p class="card-text">
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</p>
</div>
<div class="card-footer">
<a href="" class="card-link">Read more</a>
</div>
</div>
</div>
<div class="col-md-4 col-lg-4 col-sm-12">
<div class="card">
<div class="card-img">
<img src="images/posts/images.jpg" class="img-fluid">
</div>
<div class="card-body">
<h4 class="card-title">Post Title</h4>
<p class="card-text">
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</p>
</div>
<div class="card-footer">
<a href="" class="card-link">Read more</a>
</div>
</div>
</div>
<div class="col-md-4 col-lg-4 col-sm-12">
<div class="card">
<div class="card-img">
<img src="images/posts/imag2.jpg" class="img-fluid">
</div>
<div class="card-body">
<h4 class="card-title">Post Title</h4>
<p class="card-text">
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</p>
</div>
<div class="card-footer">
<a href="" class="card-link">Read more</a>
</div>
</div>
</div>
</div>
</div>
</div>


Нам нужно добавить немного стилизации этим карточкам.

.blog{
margin: 4em 0;
position: relative;
}
.blog h1{
color:#F97300;
margin: 2em;
}
.blog .card{
box-shadow: 0 0 20px #ccc;
}
.blog .card img{
width: 100%;
height: 12em;
}
.blog .card-title{
color:#F97300;
}
.blog .card-body{
padding: 1em;
}


После добавления секции блога на наш сайт, дизайн должен выглядеть примерно таким образом:

круто, да?

Секция команды

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

Каждое наше изображение занимает .col-md-3 контейнера, что равно 25% общего места.

Вот наша HTML структура:

<!-- Team section -->
<div class="team">
<div class="container">
<h1 class="text-center">Our Team</h1>
<div class="row">
<div class="col-lg-3 col-md-3 col-sm-12 item">
<img src="images/team-2.jpg" class="img-fluid" alt="team">
<div class="des">
Sara
</div>
<span class="text-muted">Manager</span>
</div>
<div class="col-lg-3 col-md-3 col-sm-12 item">
<img src="images/team-3.jpg" class="img-fluid" alt="team">
<div class="des">
Chris
</div>
<span class="text-muted">S.enginner</span>
</div>
<div class="col-lg-3 col-md-3 col-sm-12 item">
<img src="images/team-2.jpg" class="img-fluid" alt="team">
<div class="des">
Layla
</div>
<span class="text-muted">Front End Developer</span>
</div>
<div class="col-lg-3 col-md-3 col-sm-12 item">
<img src="images/team-3.jpg" class="img-fluid" alt="team">
<div class="des">
J.Jirard
</div>
<span class="text-muted">Team Manger</span>
</div>
</div>
</div>
</div>


И давайте добавим немного стиля:

.team{
margin: 4em 0;
position: relative;
}
.team h1{
color:#F97300;
margin: 2em;
}
.team .item{
position: relative;
}
.team .des{
background: #F97300;
color: #fff;
text-align: center;
border-bottom-left-radius: 93%;
transition:.3s ease-in-out;
}


Было бы неплохо добавить анимированное наложение при наведении на изображение.

Чтобы применить этот эффект, добавим стили как показано ниже в наш main.css файл:

.team .item:hover .des{
height: 100%;
background:#f973007d;
position: absolute;
width: 89%;
padding: 5em;
top: 0;
border-bottom-left-radius: 0;
}

Форма связи

Форма обратной связи это последняя секция, которую нам надо добавить и затем мы закончим.

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

Как и Bootstrap 3, Bootstrap 4 также использует .form-control класс для полей input, но в 4-й версии появился новый функционал, такой как — переход с устаревшего .input-group-addon на .input-group-prepend, что использовать иконки как лейблы.

В нашей форме обратной связи мы обернем каждый input в div, который имеет класс .form-group.

Теперь наш index.html выглядит примерно так.

<!-- Contact form -->
<div class="contact-form">
<div class="container">
<form>
<div class="row">
<div class="col-lg-4 col-md-4 col-sm-12">
<h1>Get in Touch</h1>
</div>
<div class="col-lg-8 col-md-8 col-sm-12 right">
<div class="form-group">
<input type="text" class="form-control form-control-lg" placeholder="Your Name" name="">
</div>
<div class="form-group">
<input type="email" class="form-control form-control-lg" placeholder="YourEmail@email.com" name="email">
</div>
<div class="form-group">
<textarea class="form-control form-control-lg">
</textarea>
</div>
<input type="submit" class="btn btn-secondary btn-block" value="Send" name="">
</div>
</div>
</form>


А вот стили для секции обратной связи:

main.css

.contact-form{
margin: 6em 0;
position: relative;
}
.contact-form h1{
padding:2em 1px;
color: #F97300;
}
.contact-form .right{
max-width: 600px;
}
.contact-form .right .btn-secondary{
background: #F97300;
color: #fff;
border:0;
}
.contact-form .right .form-control::placeholder{
color: #888;
font-size: 16px;
}


Шрифты

Я считаю, что стандартные шрифты ужасны, по этому нам надо подключить Google Font API и мы там выберем Raleway шрифт, который очень хорошо подойдет к нашему шаблону.


Давайте добавим ссылку в наш main.css файл:

@import url(‘https://fonts.googleapis.com/css?family=Raleway');

и выставите глобальный стиль для HTML тегов шапки:

html,h1,h2,h3,h4,h5,h6,a{
font-family: “Raleway”;
}


Эффект скролла

Последнее, что нам нужно сделать это добавить эффект скролла. Тут мы снова применим JQuery. Не переживайте, если вы незнакомы с ним, просто добавьте этот код в ваш main.js файл.

$(“.navbar a”).click(function(){
$(“body,html”).animate({
scrollTop:$(“#” + $(this).data(‘value’)).offset().top
},1000)
})


И добавьте атрибут data-value каждой ссылке в панели навигации:

<li class=”nav-item”>
<a class=”nav-link” data-value=”about” href=”#”>About</a>
</li>
<li class=”nav-item”>
<a class=”nav-link “ data-value=”portfolio” href=”#”>Portfolio</a>
</li>
<li class=”nav-item”>
<a class=”nav-link “ data-value=”blog” href=”#”>Blog</a>
</li>
<li class=”nav-item”>
<a class=”nav-link “ data-value=”team” href=”#”>
Team</a>
</li>
<li class=”nav-item”>
<a class=”nav-link “ data-value=”contact” href=”#”>Contact</a>
</li>


Выставите id атрибут для каждой секции.

Примите во внимание, id должен быть идентичен data-valueатрибуту в ссылке панели навигации. Это нужно, чтобы скролл работал должным образом.

<div class=”about” id=”about”></div>


Завершение и выводы

Bootstrap 4 это отличный вариант для создания вашего веб приложения. Он предоставляет высококачественные элементы UI и его легко настраивать, интегрировать и использовать.

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


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


Не забывайте ставить 👍 если вам понравилась и подписаться на канал,а так же посетить наш чат.





Report Page