css - 使用 CSS grid-template-areas 跨越多列的更简单方法

标签 css responsive-design css-grid

我真的很喜欢 grid-template-areas 的简单性和易操作性,但是有没有更简单的方法/快捷方式来指示一个区域跨越多列(比如 12)——在模板中?

当您有 12 列时,这开始变得非常恶心...

.wrapper{
  display: grid;
  grid-template-areas:
    "nav nav cont cont cont cont cont cont cont cont cont cont";

  @media all and (max-width: 839px){
    grid-template-areas:
      "nav nav cont cont cont cont";
  }
}

最佳答案

命名区域只是命名线的快捷方式,因此您可以使用其中任何一个。例如,您的 12 列代码可以改写为:

.wrapper{
  display: grid;
  grid-template-columns: [nav-start] repeat(2, auto) [nav-end cont-start] repeat(10, auto) [cont-end];
}

-start-end 行名称定义命名区域的方式与 grid-template-areas 相同,有时使用起来更方便。

(也就是说,我建议通常按照@temani-afif 所说的去做,而不是只使用两个有意义的列,使用 fr 单位来指定它们的相对大小。文字 12 列网格是一个神器网格系统必须克服的旧限制。但另一方面,使用实际的多列有时更清晰,尤其是当您在列之间使用间隙时。做最适合您的事情.)

关于css - 使用 CSS grid-template-areas 跨越多列的更简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52359428/

相关文章:

html - CSS - 如何排列 div 和文本

html - 从较小的子宽度开始,是否可以通过仅使用相对宽度缩小浏览器窗口来将其设置为等于其父宽度?

html - 使用固定宽度的列在 CSS 网格中居中

html - 两个 CSS 网格在同一个父容器中不对齐

html - 带有 float DIV 元素的 CSS

css - 找不到模块 : Error: Can't resolve './style.css' in Directory?

html - 当浏览器窗口小于内容时,背景图像不会重复?

css - California Responsive BigCommerce 模板的响应式设计

html - 如何在响应式设计中使用 CSS Sprite

css - 使用 ngStyle 定义网格区域时遇到问题