gpt4 book ai didi

html - 带排水沟的 CSS 网格布局

转载 作者:行者123 更新时间:2023-12-04 15:26:20 25 4
gpt4 key购买 nike

我需要这样的布局:

enter image description here

这是我的尝试:

:root {
box-sizing: border-box;
}

*,
*::before,
*::after {
box-sizing: inherit;
}

.grid-container {
display: grid;
grid-template-columns:
[full-start] minmax(0, 1fr)
[main-start] minmax(0, 55.625em) [main-end]
minmax(0, 1fr) [full-end];
}

.grid-container > * {
grid-column: full-start / full-end;
}

.header {
background: #0e9daf;
}

.main {
background: #9E9E9E;
grid-column: main-start;
}

.sidebar {
background: #dd9f32;
}

.footer {
background: #9b51e0;
}
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<link rel="stylesheet" href="gridlayout.css">
<title>Document</title>
</head>
<body>
<div class="grid-container">
<header class="header">
Header
</header>

<main class="main">
Main
</main>

<aside class="sidebar">
Sidebar
</aside>

<footer class="footer">
Footer
</footer>
</div>
</body>
</html>


如果屏幕更宽,假设是 1080p 屏幕,则主要内容在左侧和右侧都有装订线,但页眉和页脚扩展了整个页面。

想想这样的事情,但我用网格来实现它:
  .main {
max-width: 800px;
margin: 0 auto;
}

在较大的显示器上,我想将主要区域分成两部分,我需要一个内容区域(所有博客文章的列表)和右侧的侧边栏,其中包含“最近的帖子”、“搜索栏”等小部件)。我需要在内容和侧边栏之间留出一些间隙(不多)。

在小屏幕上,我希望首先显示标题,标题下方的博客文章,博客文章下方的小部件,最后是页脚。

我什至不确定我是否以正确的方式处理了这个问题。我很想听听你的意见。谢谢你。

最佳答案

使用 grid-template-areas ,您可以轻松实现所需的布局

html,
body {
height: 100%;
margin: 0;
}

.grid-container {
height: 100%;
display: grid;
grid-template-columns: 1fr 1fr 1fr 15%;
grid-template-rows: 1fr 10fr 1fr;
justify-content: center;
grid-column-gap: 2%;
grid-template-areas: "h h h h" "m m m s" "f f f f";
}

.header {
background: #0e9daf;
grid-area: h;
}

.main {
background: #9E9E9E;
grid-area: m;
}

.sidebar {
background: #dd9f32;
grid-area: s;
}

.footer {
background: #9b51e0;
grid-area: f;
}

@media (max-width: 480px) {
.grid-container {
grid-template-areas: "h h h h" "m m m m" "s s s s" "f f f f";
}
}

@media (min-width: 1080px) {
.grid-container {
grid-template-columns: 10% 62% 12% 10%;
grid-template-areas: "h h h h" ". m s ." "f f f f";
}
}
<div class="grid-container">
<header class="header">
Header
</header>

<main class="main">
Main
</main>

<aside class="sidebar">
Sidebar
</aside>

<footer class="footer">
Footer
</footer>
</div>

关于html - 带排水沟的 CSS 网格布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62169096/

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