This repository was archived by the owner on Feb 7, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Grids CSS (Float)
Pedro Britto edited this page Jan 21, 2017
·
2 revisions
<div class="row">
<div class="col -size-x">Item</div>
<div class="col -size-x">Item</div>
<div class="col -size-x">Item</div>
</div>
<!-- Onde size refere à media query e x ao tamanho do div em colunas -->
.row {
margin-left: calc(-#{$gutter} / 2);
margin-right: calc(-#{$gutter} / 2);
// gutter NEGATIVO
}
.col {
float: left;
margin-left: calc(#{$gutter} / 2);
margin-right: calc(#{$gutter} / 2);
// gutter POSITIVO
}
// Adicionar Media Queries para cada breakpoint desejado
@media #{$break-size} {
@for $i from 1 through $grid-columns {
.col-size-#{$i} {
width: calc(#{$i} / #{$grid-columns} * 100% - #{$gutter});
}
}
}
HTML:
<!-- Assumindo que o layout possui 6 colunas -->
<div class="row">
<div class="col -md-2">Item</div>
<div class="col -md-2">Item</div>
<div class="col -md-2">Item</div>
</div>
CSS:
// CSS Compilado
// gutter: 20px
// colunas: 6
.row {
margin: 0 calc(20px / 2);
}
.col {
margin-left: calc(20px / 2);
margin-right: calc(20px / 2);
float: left;
}
.-md.1 { width: calc(1 / 12 * 100% - 20px); }
// (...)
.-md.12 { width: calc(12 / 12 * 100% - 20px); }
Bom, pelo menos pro meu nível de conhecimento atual é bem menos flexível de se implementar, mas em compensação, é bem mais simples de se construir e requer muito menos código.
<div class="l-wrap">
<div class="number-col-grid">
<div class="grid-item">Grid item</div>
<div class="grid-item">Grid item</div>
<div class="grid-item">Grid item</div>
</div>
</div>
// .l-wrap é apenas um container, mas serve de exemplo de classe semântica.
.l-wrap {
max-width: 40em;
margin-right: auto;
margin-left: auto;
}
.number-col-grid .grid-item {
width: calc((100% - #{$gutter} * #{$number}) / #{$number});
margin-right: calc(#{$gutter} / 2);
margin-left: calc(#{$gutter} / 2);
float: left;
}
HTML:
<div class="l-wrap">
<div class="three-col-grid">
<div class="grid-item">Grid item</div>
<div class="grid-item">Grid item</div>
<div class="grid-item">Grid item</div>
</div>
</div>
CSS:
.l-wrap {
max-width: 40em;
margin-right: auto;
margin-left: auto;
}
.three-col-grid .grid-item {
width: calc((100% - 20px * 3) / 3);
margin-right: calc(20px / 2);
margin-left: calc(20px / 2);
float: left;
}