我是第一次开始使用 Grid CSS。我想在每个项目之间放置不同的空间,但我不想使用
grid-gap
,因为否则如果我使用网格间隙,我会得到与所有项目相同的距离。
我想将每个项目间隔不同的距离(
bottom
或 top
)。例如,我想将 Item1
和 Item2
分开一点,在两者之间创建一个轻微的空白。
然后我想隔开
Item2
和Item3
,创造一个更大的空白。
我尝试过使用像
padding-top
和padding-bottom
这样的东西,但它不起作用。我也尝试将元素放在特定的容器中,但它打破了所有grid-template-areas
.
我认为 grid-gap 可以单独用于每个元素,但我需要一些解决方案来专门选择空间的一侧
什么解决方案可以让我通过选择
top
、bottom
、left
和 right
的 px 来移动它们?
HTML
<!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="stile.css" rel="stylesheet" type="text/css">
</head>
<body>
<div class="grid-container">
<div class="grid-item1 x">Item 1</div>
<div class="grid-item2">Item 2</div>
<div class="grid-item3">Item 3</div>
</div>
</body>
</html>
CSS
.grid-container {
display: grid;
grid-template-columns: auto auto auto auto;
grid-auto-rows: auto auto auto auto;
grid-gap: 0px;
grid-template-areas:
"topbar topbar topbar topbar topbar"
"navbar navbar navbar navbar navbar"
"icon-bar icon-bar icon-bar icon-bar icon-bar";
}
.grid-item1 {
grid-area: topbar;
background-color: #cc0000 !important;
height: 68px;
}
.grid-item2 {
grid-area: navbar;
background-color: #ae0000 !important;
height: 33px;
}
.grid-item3 {
background: green;
text-align: center;
border: black 5px solid;
grid-area: icon-bar;
}
HTML
顺便说一句,
stile.css
打错了吗?
<link href="stile.css" rel="stylesheet" type="text/css">
CSS
在
.grid-container
中,grid-template-areas
和height
属性在这种情况下是不必要的。
通常我们不使用
.grid-item1
, .grid-item2
, and .grid-item3
etc. It's better to them with a common class like .grid-item
.
相反,您可以使用
grid-row-start
和 grid-row-end
属性来控制网格中每个项目的定位。
.grid-container {
display: grid;
grid-template-columns: auto auto auto auto;
grid-auto-rows: auto;
grid-gap: 0;
}
.grid-item {
background-color: #cc0000;
text-align: center;
border: 5px solid black;
}
.grid-item.x {
grid-row-start: 1;
grid-row-end: 3;
}
.grid-item:nth-child(2) {
margin-top: 20px;
}
.grid-item:nth-child(3) {
margin-top: 40px;
}