我有两张大小相等的图片。我有一个有一列和两行的网格。我想将一个图像移到第二行,但无论我做什么,它都不会移动到那里。我能做什么?代码:
    <!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">
    <title>Document</title>
    <style>
        body{
            margin: 0;
            padding: 0;
        }
        .container{
            display: grid;
            grid-template-columns: 1fr;
            grid-template-rows: 1fr 1fr;
        }
        .flex{
            display: flex;
            justify-content: center;
            align-items: space-evenly;
        }
        .flex img:nth-of-type(2){
            grid-row: 2/3;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="flex">
            <img src="resources/images/image1.png">
            <img src="resources/images/image2.png">
        </div>
    </div>
</body>
</html>发布于 2018-09-30 01:35:33
你搞乱了网格和伸缩。您的<div class="flex">要求行有两个元素。并且您只有一个(<div class="flex">)。尝试删除该div。
body{
  margin: 0;
  padding: 0;
}
.container{
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: 1fr 1fr;
  justify-items: center;
  align-items: center;
}发布于 2018-09-30 01:45:44
这对你有用吗?我已经在列表中显示了这些图像。
<!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">
    <title>Document</title>
    <style>
        body{
            margin: 0;
            padding: 0;
        }
        .container{
            display: grid;
            grid-template-columns: 1fr;
            grid-template-rows: 1fr 1fr;
        }
        .flex{
            display: flex;
            justify-content: center;
            align-items: space-evenly;
            list-style: none;
             display: inline;
        }
        .flex img:nth-of-type(2){
            grid-row: 2/3;
        }
        ul {
        white-space: nowrap;
        }
    </style>
</head>
<body>
    <div class="container">
            <ul class="flex">
                <li><img src="resources/images/image1.png"></li>
                <li><img src="resources/images/image1.png"></li>
            </ul>
    </div>
</body>
</html>发布于 2018-09-30 04:03:12
您的问题是,您的.container元素创建了一个网格格式化上下文,这两个img元素没有参与其中,因为它们是ul元素的子元素,类.flex参与了.container创建的网格格式化上下文。因此,例如,如果您要在标记中的ul元素之后添加一个兄弟元素,它将遵循您所概述的网格的规则。
如果希望使用在.container元素上概述的网格模板设置img元素的格式,请更改HTML标记,并使img元素直接成为.container元素的子元素。
在居中方面,您可以使用有关here的属性和值对justify-content: center将网格项目(网格容器的子元素)中的元素居中。
下面是您想要的示例:
.image {
  height: 200px;
  width: 200px;
}
.image:first-child {
  background: firebrick;
}
.image:last-child {
  background: royalblue;
}
/*
========================================
Ignore the above rules
========================================
*/
.container {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: 1fr 1fr;
  justify-items: center;
}<div class="container">
  <div class="image"></div>
  <div class="image"></div>
</div>
https://stackoverflow.com/questions/52570822
复制相似问题