gpt4 book ai didi

css - css 网格的最大宽度

转载 作者:行者123 更新时间:2023-12-03 22:17:42 24 4
gpt4 key购买 nike

我想知道 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;
}

HTML
<html>
<body>
<header>
<nav>nav</nav>
</header>
<aside>aside</aside>
<main>main</main>
</body>
</html>

如果我必须将它们包裹在容器内,这将如何影响网格?如果我在 html 或 body 标签上设置最大宽度,那么我将如何获得一个延伸浏览器整个宽度的标题?

https://jsfiddle.net/6zd3o088/6/

最佳答案

将此视为四列网格

grid-template-columns: 10% 275px 1fr 10%;

然后根据修改后的网格区域分配元素
grid-template-areas: 
"header header header header"
". aside main .";

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;
}
<header>
<nav>nav</nav>
</header>
<aside>aside</aside>
<main>main</main>


使用 max-widthnav尊重我们必须采取的值(value) nav出标题,所以它成为一个网格元素。然后我们可以在标题上方的网格上对齐它。

使用 minmax对于内柱,我们可以达到预期的效果

body {
display: grid;
grid-template-columns: 1fr minmax(auto, 100px) minmax(auto, 300px) 1fr;
grid-template-rows: 1fr 1fr;
margin: 0;
padding: 0;
background: lightgrey;
}

header {
grid-column: 1/-1;
grid-row: 1;
background: rebeccapurple;
}

nav {
grid-column: 2 / 4;
grid-row: 1;
background: lightblue;
}

aside {
grid-column: 2;
background: lightgreen;
}

main {
grid-column: 3;
background: pink;
}
<header></header>
<nav>nav</nav>
<aside>aside</aside>
<main>main</main>


此处使用较小的列宽进行演示,仅供引用。根据需要修改最大数字。

Codepen

关于css - css 网格的最大宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49025403/

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