css - 网格模板区域跨越列名

标签 css sass css-grid

所以你我想要这样的网格:

+-----------------------+
|          A            |
-------|--------|-------+
|  B   |  C     |   D   |
|      |        |       |
+------+--------+-------+

我可以这样做(scss 语法):

grid-template-areas: "a-block a-block a-block" "b-block c-block d-block";

那么问题来了:我怎么能不重复“a-block”三次?我可以做类似repeat("a_block", 3) 之类的事情吗? 是否有更紧凑的方式来跨越网格区域列(在 sass 中)?

最佳答案

这个 sass 函数应该可以解决问题。不确定这是否是最好的编写方式,但它似乎可行。

@function repeat-str($str, $times) {
  @if $times > 0 {
    @return $str + repeat-str($str, $times - 1);
  }
  @return "";
}

.grid {
  grid-template-areas: repeat-str("a-block ", 3) "b-block c-block d-block";
  // output: grid-template-areas: "a-block a-block a-block " "b-block c-block d-block";
}

关于css - 网格模板区域跨越列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49142698/

相关文章:

javascript - 在 HTML 中更改页面

css - Bootstrap Starter 模板导航栏不工作

css - 使用 SASS 或 CSS 变量时,rgba 效果不适用

CSS:当子元素的高度可变时,将子元素的底部与父元素的顶部(Y 轴上方)对齐

css - 如何将后缀为 ‘.scss’的文件导入到Vue元素的子组件中?

javascript - 有没有办法用颜色填充按钮背景的一半?

css - Glyphicon 加载时间导致抖动

css - 折叠 CSS Grid 两列布局中未使用的空间

javascript - 在 JavaScript 中使用 CSS Grid repeat() 声明

css - 使用 CSS 居中复选框