gpt4 book ai didi

css - 命名网格线有什么好处?

转载 作者:行者123 更新时间:2023-11-28 11:57:07 24 4
gpt4 key购买 nike

在 CSS Grid Layout 中命名网格线有什么好处?我看到很多这样做的例子,我想知道有什么好处?为什么不只依赖行号,而不是例如 first-column-start

最佳答案

简答

命名的网格线使代码更易于理解和维护。


解释

网格线是网格的水平和垂直分界线。

在两条平行的网格线之间形成一列或一行。

网格单元由相交的网格线组成。

enter image description here

来源:W3C CSS Grid Specification

( block axis / inline axis definitions )

可以通过数字定义的名称 引用网格线。以下两条规则相同。

#grid-container {
grid-template-rows: 2em 1fr 3em;
}

#grid-container {
grid-template-rows: [header-start] 2em [header-end body-start] 1fr [body-end footer-start] 3em [footer-end];
}

请注意,行可以有多个名称。

在布置网格时,我们可以只使用数值,如下所示:

#grid-item-1 { grid-row: 1 / 2; } /* the header */

#grid-item-2 { grid-row: 2 / 3; } /* the content */

#grid-item-3 { grid-row: 3 / 4; } /* the footer */

或者,为了让事情更容易理解和维护(考虑一年后返回此代码,或将此代码传递给其他开发人员),改用有意义的名称:

#grid-item-1 { grid-row: header-start / header-end; }

#grid-item-2 { grid-row: body-start / body-end; }

#grid-item-3 { grid-row: footer-start / footer-end; }

代码示例:

article {
display: grid;
grid-template-rows: [header-start] 2em [header-end body-start] 1fr [body-end footer-start] 3em [footer-end]; }

}
section:nth-child(1) { grid-row: header-start / header-end; }

section:nth-child(2) { grid-row: body-start / body-end; }

section:nth-child(3) { grid-row: footer-start / footer-end;}

/* non-essential demo styles */
article {
grid-gap: 1px;
background-color: gray;
height: 100vh;
border: 1px solid gray;
}
section {
background-color: white;
display: flex;
align-items: center;
justify-content: center;
}
section:nth-child(1) { background-color: aqua; }
section:nth-child(2) { background-color: orange; }
section:nth-child(3) { background-color: lightgreen; }
body { margin: 0;}
* { box-sizing: border-box; }
<article>
<section>header</section>
<section>body</section>
<section>footer</section>
</article>

更多信息:https://www.w3.org/TR/css3-grid-layout/#named-lines

关于css - 命名网格线有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51315575/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com