我想知道 css 网格如何利用最大宽度。以旧方式,您将使用带有设置边距的包装类的容器。
使用 CSS 网格,根据您创建它们的方式,您不再需要使用容器,有时您无处可添加。
我希望标题为全宽,但我希望其中的导航最大宽度为屏幕分辨率的 80% 并自动设置边距,此代码类似于使用包装容器完成此操作的方式。问题是,我如何对 side 和 main 做同样的事情,因为它们不在父级内部来设置最大宽度?
body {
display: grid;
grid-template-areas:
"header header"
"aside main";
grid-template-columns: 275px 1fr;
grid-template-rows: 1fr 1fr;
}
header {
grid-area: header;
border: solid 1px black;
}
header > nav {
max-width: 80%;
margin: auto;
border: solid 1px blue;
}
aside {
grid-area: aside;
}
main {
grid-area: main;
}
Run Code Online (Sandbox Code Playgroud)
HTML
<html>
<body>
<header>
<nav>nav</nav>
</header>
<aside>aside</aside>
<main>main</main>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
如果我必须将它们包裹在容器内,这将如何影响网格?如果我在 html 或 body 标签上设置最大宽度,那么我将如何获得一个延伸浏览器整个宽度的标题?
将此视为四列网格
grid-template-columns: 10% 275px 1fr 10%;
Run Code Online (Sandbox Code Playgroud)
然后根据修改后的网格区域分配元素
grid-template-areas:
"header header header header"
". aside main .";
Run Code Online (Sandbox Code Playgroud)
grid-template-columns: 10% 275px 1fr 10%;
Run Code Online (Sandbox Code Playgroud)
grid-template-areas:
"header header header header"
". aside main .";
Run Code Online (Sandbox Code Playgroud)
要使用max-width带有nav尊重值的a ,我们必须nav从标题中取出 ,使其成为网格项。然后我们可以在网格上对齐在标题上方的上。
使用minmax了内部列就可以达到预期的效果
body {
display: grid;
grid-template-areas: "header header header header" ". aside main .";
grid-template-columns: 10% 275px 1fr 10%;
grid-template-rows: 1fr 1fr;
margin: 0;
padding: 0;
background: lightgrey;
}
header {
grid-area: header;
background:rebeccapurple;
}
header>nav {
max-width: 80%;
margin: auto;
background: lightblue;
}
aside {
grid-area: aside;
background: lightgreen;
}
main {
grid-area: main;
background: pink;
}Run Code Online (Sandbox Code Playgroud)
<header>
<nav>nav</nav>
</header>
<aside>aside</aside>
<main>main</main>Run Code Online (Sandbox Code Playgroud)
此处使用较小的列宽进行演示,仅供参考。根据需要修改最大数字。
| 归档时间: |
|
| 查看次数: |
11606 次 |
| 最近记录: |