Css Grid:在不使用 grid-gap 的情况下,特定边(左、右、底部或顶部)的距离是多少?

问题描述 投票:0回答:1

我是第一次开始使用 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 css css-grid
1个回答
0
投票

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;
}
© www.soinside.com 2019 - 2024. All rights reserved.