#html #css #css-grid
#HTML #css #css-сетка
Вопрос:
У меня сетка из 12 столбцов. он написан для общих целей. В этом у меня есть только один дочерний элемент, который занимает 6 столбцов. я могу выровнять по вертикали. но не выровнен по центру. как это сделать?
есть ли какой-либо способ без изменения системы сетки? пожалуйста, помогите мне.
.container{
display: grid;
grid-template-columns: repeat(12,1fr);
justify-content: center;
align-content: center;
height: 150px;
border: 1px solid blue;
}
.container div {
border: 1px solid red;
grid-column: span 6;
}
<div class="container">
<div>
<span>1</span>
</div>
</div>
Заранее спасибо.
Ответ №1:
Добавьте правила grid-column-start
и grid-column-end
и удалите grid-column: span 6
из .container div
. В вашем случае это должно выглядеть так:
.container div {
border: 1px solid red;
/*grid-column: span 6;*/
grid-column-start: 4;
grid-column-end: 10;
}
.container{
display: grid;
grid-template-columns: repeat(12,1fr);
justify-content: center;
align-content: center;
height: 150px;
border: 1px solid blue;
}
.container div {
border: 1px solid red;
/*grid-column: span 6;*/
grid-column-start: 4;
grid-column-end: 10;
}
<div class="container">
<div>
<span>1</span>
</div>
</div>
Комментарии:
1. Я полностью согласен с вами. некоторое время у меня есть 3 элемента несколько раз по 2. существует ли какой-либо общий подход, отличный от ручного вычисления. поскольку таблица стилей используется совместно с несколькими пользователями..
Ответ №2:
область сетки представляет собой комбинацию row-start / column-start / row-end / column-end
, и вы можете использовать ее следующим образом:
.container{
display: grid;
grid-template-columns: repeat(12,1fr);
justify-content: center;
align-content: center;
height: 150px;
border: 1px solid blue;
}
.container div {
border: 1px solid red;
grid-area:1 / 4 / 1 / 10;
}
<div class="container">
<div>
<span>1</span>
</div>
</div>
больше объяснений для grid-area
Ответ №3:
Вы могли бы добавить выравнивание текста по центру в следующем классе.
.container div {
border: 1px solid red;
grid-column: span 6;
text-align: center;
}