Как отцентрировать кнопку
Еле как отцентрировал кнопку через Grid, используя тег button, но если хочу сделать через тег a? Кнопка расплывается по экрану, пробовал через inline-block тоже не получается, только если двигать margin'ом вправо, что сразу делает эластичность кнопки никакой. Вроде задача несложная, но просто до меня не доходит, как сделать это красиво.
/* ======SERVISES====== */
.servises {
display: flex;
margin: 100px 0;
}
.servises__item {
width: 33.333333%;
text-align: center;
padding-bottom: 100px;
}
.servises__title {
text-align: center;
color: #000;
padding-top: 150px;
font-size: 55px;
letter-spacing: 0px;
padding-bottom: 150px;
}
.servises__icon {
margin-bottom: 70px;
}
.servises__subtitle {
color: #787878;
margin-bottom: 80px;
font-size: 45px;
}
.servises__text {
font-size: 25px;
color: #787878;
font-weight: 100;
max-width: 450px;
}
.servises__btn {
display: grid;
align-items: center;
justify-items: center;
text-align: center;
font-size: 23px;
text-decoration: none;
text-transform: uppercase;
padding: 25px 65px;
background: linear-gradient(to bottom, #5e407c, #4a50a8);
background-size: 200%;
color: #fff;
border-radius: 50px;
margin: 70px auto;
border: 0;
cursor: pointer;
transition: 1s;
}
.servises__btn:active {
background: linear-gradient(to top, #5e407c, #4a50a8);
transition: 1s;
}
<h1 class="servises__title">KREA.</h1>
<div class="container">
<div class="servises">
<div class="servises__item">
<img class="servises__icon" src="img/services-1.png" alt="">
<h4 class="servises__subtitle">Consultacy</h4>
<div class="servises__text">Lorem ipsum dolor sit amet consectetur adipisicing elit. Numquam itaque quibusdam non consequuntur? Commodi, illum! Nostrum expedita laboriosam officia, eligendi libero quos, eos ad aperiam mollitia quia enim velit. Deleniti.</div>
</div>
<div class="servises__item">
<img class="servises__icon" src="img/services-2.png" alt="">
<h4 class="servises__subtitle">Mentorship</h4>
<div class="servises__text">Lorem ipsum dolor sit amet consectetur adipisicing elit. Numquam itaque quibusdam non consequuntur? Commodi, illum! Nostrum expedita laboriosam officia, eligendi libero quos, eos ad aperiam mollitia quia enim velit. Deleniti.</div>
</div>
<div class="servises__item">
<img class="servises__icon" src="img/services-3.png" alt="">
<h4 class="servises__subtitle">Incubatory</h4>
<div class="servises__text">Lorem ipsum dolor sit amet consectetur adipisicing elit. Numquam itaque quibusdam non consequuntur? Commodi, illum! Nostrum expedita laboriosam officia, eligendi libero quos, eos ad aperiam mollitia quia enim velit. Deleniti.</div>
</div>
</div>
</div>
<button class="servises__btn" href="#">GET IN TOUCH</button>
Ответы (2 шт):
/* ======SERVISES====== */
body {
display: flex;
flex-flow: column;
}
.servises {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 1rem;
}
.servises__title {
text-align: center;
color: #000;
padding-top: 150px;
font-size: 55px;
letter-spacing: 0px;
padding-bottom: 150px;
}
.servises__icon {
margin-bottom: 70px;
}
.servises__subtitle {
color: #787878;
margin-bottom: 80px;
font-size: 45px;
}
.servises__text {
font-size: 25px;
color: #787878;
font-weight: 100;
max-width: 450px;
}
.servises__btn {
display: inline-block;
text-align: center;
font-size: 23px;
text-decoration: none;
text-transform: uppercase;
padding: 25px 65px;
background: linear-gradient(to bottom, #5e407c, #4a50a8);
background-size: 200%;
color: #fff;
border-radius: 50px;
margin: 70px auto;
border: 0;
cursor: pointer;
transition: 1s;
}
.servises__btn:active {
background: linear-gradient(to top, #5e407c, #4a50a8);
transition: 1s;
}
<h1 class="servises__title">KREA.</h1>
<div class="container">
<div class="servises">
<div class="servises__item">
<img class="servises__icon" src="img/services-1.png" alt="">
<h4 class="servises__subtitle">Consultacy</h4>
<div class="servises__text">Lorem ipsum dolor sit amet consectetur adipisicing elit. Numquam itaque quibusdam non consequuntur? Commodi, illum! Nostrum expedita laboriosam officia, eligendi libero quos, eos ad aperiam mollitia quia enim velit. Deleniti.</div>
</div>
<div class="servises__item">
<img class="servises__icon" src="img/services-2.png" alt="">
<h4 class="servises__subtitle">Mentorship</h4>
<div class="servises__text">Lorem ipsum dolor sit amet consectetur adipisicing elit. Numquam itaque quibusdam non consequuntur? Commodi, illum! Nostrum expedita laboriosam officia, eligendi libero quos, eos ad aperiam mollitia quia enim velit. Deleniti.</div>
</div>
<div class="servises__item">
<img class="servises__icon" src="img/services-3.png" alt="">
<h4 class="servises__subtitle">Incubatory</h4>
<div class="servises__text">Lorem ipsum dolor sit amet consectetur adipisicing elit. Numquam itaque quibusdam non consequuntur? Commodi, illum! Nostrum expedita laboriosam officia, eligendi libero quos, eos ad aperiam mollitia quia enim velit. Deleniti.</div>
</div>
</div>
</div>
<a class="servises__btn" href="#">GET IN TOUCH</a>
Вы как-то неправильно понимаете грид. Грид -- это сетка, в которую надо помещать какое-то содержимое. Кнопка это контент, а не грид. То есть надо делать как-то так:
.container {
display: grid;
grid-template-columns: 100%;
grid-template-rows: 100vh;
}
.button {
place-self: center;
display: block;
background-color: indigo;
color: white;
padding: 1em;
text-decoration: none;
text-transform: uppercase;
}
<div class="container">
<a href="#" class="button">get in touch</a>
</div>
Но тогда не понятно, зачем вам нужен грид. Грид обычно нужен для взаимного расположения нескольких блоков контента, а у вас одна кнопка. Есть несколько способов выровнять блок по центру, например такой:
.container {
text-align: center;
}
.button {
display: inline-block;
background-color: indigo;
color: white;
padding: 1em;
text-decoration: none;
text-transform: uppercase;
}
<div class="container">
<a href="#" class="button">get in touch</a>
</div>
Но в современной веб-вёрстке элементы не располагают просто так. Кнопка начинается и заканчивается в строго определённых местах, имеет строго определённую высоту, отступы. Такую вёрстку вы много раз видели в журналах, на афишах (посмотрите что такое модульная сетка в графическом дизайне). Сетку закладывает в макет графический дизайнер, задача верстальщика просто перенести сетку в css. Если в макете грида нет, то использовать grid в css мало смысла (для выравнивания элементов подойдёт flex, он гораздо проще).