我正在尝试使用 flexbox 创建具有特定装订线大小的基于列的布局。
例如,我想包括将类添加col-2
到给定元素的选项,这将使该元素的大小与该行中其他元素的 2 个相同。col-3
对于 3 个元素的大小,col-4
对于 4 个等。
我通过更改添加类flex
的元素的属性来做到这col-n
一点。
SCSS 混合
// number of columns
$columns: 8;
// column proportions mixin
@mixin column-prop($n) {
flex: $columns * $n;
}
.col-2 {
@include column-prop(2);
}
.col-3 {
@include column-prop(3);
}
.col-4 {
@include column-prop(4);
}
...
HTML
<div class="grid">
<div>flex: 8</div>
<div>flex: 8</div>
<div class="col-2">flex: 16</div>
</div>
<div class="grid">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</div>
<div class="grid">
<div>flex: 8</div>
<div>flex: 8</div>
<div>flex: 8</div>
<div>flex: 8</div>
<div class="col-4">flex: 32</div>
</div>
如果我不使用任何填充,则此方法有效:
但是,如果我添加填充,则尽管我已对所有子元素
进行了设置,但填充的大小会附加到内容(就好像它是一个内容框一样) 。
我相信不适用于弹性物品。box-sizing: border-box;
box-sizing: border-box;
我怎样才能简单地将填充包含在每个元素的大小中,就好像它们是boxer-box
元素一样?