Выровнять по центру в зависимости от количества столбцов
Я использую следующий стиль для выравнивания столбцов в центре страницы с помощью susy:
card{
@include span(3 of 12);
margin: 0 auto;
cursor: pointer;
}
Но это не перемещение элементов (div) в центр страницы по умолчанию, если у меня есть один элемент, он помещает его на левую сторону, но я хочу, чтобы этот единственный элемент был расположен в центре страницы. Элементы растут динамически, и они не являются статичными.
1 ответ
span()
Mixin генерирует float: left;
свойство, которое удерживает ваш элемент от центрирования. Вместо этого используйте функцию, чтобы избежать нежелательного вывода:
.card {
width: span(3 of 12);
margin: 0 auto;
cursor: pointer;
}
Обновление на основе уточняющего комментария...
Существует два способа выравнивания по центру / левому краю в зависимости от братьев и сестер. Один использует flexbox:
.container {
display: flex;
justify-content: center;
}
.card {
flex: 0 0 span(3 of 12);
// add gutters to all but the first element
& + & {
margin-left: gutter(of 12);
}
}
Другой использует только родную логику:
.card {
@include span(3 of 12);
outline: 1px dotted red;
&:first-child:last-child {
float: none;
margin: 0 auto;
}
}
Решение flexbox сохраняет все по центру, пока вы не заполните пространство. Плавающее решение центрируется только при наличии одного .card