如何创建旁边有 2x3 网格的侧边栏
Posted
技术标签:
【中文标题】如何创建旁边有 2x3 网格的侧边栏【英文标题】:How to create a sidebar with 2x3 grid next to it 【发布时间】:2020-03-15 09:04:14 【问题描述】:我想创建一个侧边栏和一个 2 行 3 列的网格(在侧边栏旁边)。我已经有一个导航栏和一个页脚(只是一个布局,链接不应该工作)
我不知道如何使用 flexbox 创建侧边栏和主内容网格。
哦,超人标志:由于某种原因,我无法将其垂直居中。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<title>web1</title>
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<div class="menu-container">
<div class="logo-container">
<div class="logo"><img src="https://seeklogo.com/images/1/3-colors-superman-logo-ACD3F1907B-seeklogo.com.png"></div>
<nav class="menu">
<div class="buttonid">
<a href="#" class="myButton">Avaleht</a>
<a href="#" class="myButton">Tooted</a>
<a href="#" class="myButton">Kontakt</a>
</div>
</div>
</div>
</nav>
<div class="footer">
<div class="footer-item">SEE TÖÖTAB VIST</div>
</div>
</body>
</html>
*
margin: 0;
padding: 0;
box-sizing: border-box;
html, body
height: 100%;
.menu-container
color: #fff;
background-image: linear-gradient( rgb(0, 0, 0), rgb(255, 0, 0));
padding: 20px 0;
.logo-container
display: flex;
border: blue solid 2px;
height: 100px;
.menu
border: white solid 3px;
width: 100%;
text-align: center;
.myButton
box-shadow:inset 0px 1px 0px 0px #cf866c;
background:linear-gradient(to bottom, #d0451b 5%, #ff0000 100%);
background-color:#ff0000;
border-radius:3px;
border:1px solid #ffffff;
display:inline-block;
cursor:pointer;
color:#ffffff;
font-family:Arial;
font-size:13px;
padding:6px 24px;
text-decoration:none;
text-shadow:0px 1px 0px #854629;
.myButton:hover
background:linear-gradient(to bottom, #bc3315 5%, #d0451b 100%);
background-color:#bc3315;
.myButton:active
position:relative;
top:1px;
.logo img
width: 100px;
.footer
color: #fff;
background-image: linear-gradient( rgb(0, 0, 0), rgb(255, 0, 0));
padding: 20px 0;
position: absolute;
bottom: 1px;
width: 100%;
.footer-item
text-align: center;
font-weight: bold;
word-spacing: 30px;
.buttonid
align-items: center;
word-spacing: 30px;
height: 100px;
display: flex;
justify-content: center;
【问题讨论】:
你能用油漆或其他东西画一个模型吗? 【参考方案1】:您应该将布局分成不同的区域,并为每个区域使用一个 HTML 容器。 HTML5 给我们带来了一些,用它们代替 div,代码会更有意义且易于阅读。
首先开始构建 CSS 布局,header、main 和 footer,然后是 main 的内容(侧边栏和行)。
示例开始于:(possible example to come up with)
body
margin: 0;
min-height: 100vh;
display: flex;
flex-direction: column;
header,
footer,
aside,
article
border: solid;
main,
section
flex: 1;
display: flex;
section
flex-wrap: wrap;
article
flex: 1;
min-width: 30%;
/* is sizing an issue ? */
/* try */
body:hover * padding:0.25em;transition:0.25s;box-sizing:border-box;
body:hover aside, body:hover article margin:2px;
<header>
header</header>
<main>
<aside>
aside
</aside>
<section>
<article> article</article>
<article> article</article>
<article> article</article>
<article> article</article>
<article> article</article>
<article> article</article>
</section>
</main>
<footer>footer</footer>
从那里你有一个模板,你可以在其中插入你的内容,添加 class 或 id 并根据需要设置每个部分的样式
【讨论】:
绝对传奇!谢谢!【参考方案2】:将您的 .menu-container 设置为 display: grid; grid-template-column: [here goes the width of you side-nav, ex:200px] [width of your grid that has two rows ex: 1fr
;
对于您的其他网格显示:grid; grid-template-rows: repeat(2, 1fr);
grid-template-column: repeat(3,1fr);
【讨论】:
以上是关于如何创建旁边有 2x3 网格的侧边栏的主要内容,如果未能解决你的问题,请参考以下文章
如何创建 HTML / CSS 代码,以允许带有按钮的可滚动侧边栏更改旁边播放器中的视频源?