想让我的网格以正确的方式显示吗?

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

我一直在尝试学习CSS网格,但是遇到了一个网格错乱的问题。我知道没有很多内容,但是在尝试调试时,我删除了.item类。非常感谢您的帮助!

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" href="styles.css">
    <title>Document</title>
</head>
<body>
    <div class="grid-container">
        <div class="grid-item item-1">
        item 1
    </div>
    <div class="grid-container">
            <div class="grid-item item-2">
            item 2
        </div>
        <div class="grid-container">
            <div class="grid-item item-3">
            item 3
        </div>
        <div class="grid-container">
            <div class="grid-item item-4">
            item 4
        </div>
        <div class="grid-container">
            <div class="grid-item item-5">
            item 5
        </div>
    </div>
</body>
</html>

我的CSS:

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.grid-container {
    height: 100vh;
    border: 10px solid #ccc
}

网站:Picture of the problem

html css flexbox grid
2个回答
0
投票

如果我理解正确,您的问题是,每当您声明一个新的div时,div似乎就会向右移动,对吗?

通过使用.grid-container类声明所有div,您正在堆叠border属性,使每个连续div的边框比上一个宽10px。

尝试将类仅用于第一个div,如下所示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" href="styles.css">
    <title>Document</title>
</head>
<body>
    <div class="grid-container">
        <div class="grid-item item-1">
        item 1
    </div>
    <div class="grid-content">
            <div class="grid-item item-2">
            item 2
        </div>
        <div class="grid-content">
            <div class="grid-item item-3">
            item 3
        </div>
        <div class="grid-content">
            <div class="grid-item item-4">
            item 4
        </div>
        <div class="grid-content">
            <div class="grid-item item-5">
            item 5
        </div>
    </div>
</body>
</html>

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.grid-container {
    height: 100vh;
    border: 10px solid #ccc
}

.grid-content {
    border-top: 10px solid #ccc
}

工作示例:https://codepen.io/04kurisu/pen/WNNBmpE

如果我弄错了,请告诉我,我将更新答案。


0
投票

看来您没有正确关闭标签。包含grid-container类的div标签没有关闭。在体内,理想情况下,您应该有这样的东西:

<div class="grid-container">
  <div class="grid-item item-1">
    item 1
  </div>
</div>
<div class="grid-container">
  <div class="grid-item item-2">
    item 2
  </div>
</div>
<div class="grid-container">
  <div class="grid-item item-3">
    item 3
  </div>
</div>
<div class="grid-container">
  <div class="grid-item item-4">
    item 4
  </div>
</div>
<div class="grid-container">
  <div class="grid-item item-5">
    item 5
  </div>
</div>
© www.soinside.com 2019 - 2024. All rights reserved.