【发布时间】:2017-09-01 21:05:42
【问题描述】:
我正在尝试使用 CSS Grid 构建产品页面。出于某种原因,我的图像一直重叠,而不是位于彼此下方。
我在下面的代码中模仿了我的代码(没有所有的 drupal 绒毛)。我在那里有同样的问题。我尝试使用单个网格以及网格中的网格(如我的示例)
https://jsfiddle.net/e28mc4f5/1/
#mygrid {
display: grid;
grid-template-columns: 300px 1fr;
grid-template-rows: auto;
grid-template-areas:
"images title"
"images model"
"images price"
;
}
#mygrid .items {
background-color: red;
grid-area: images;
display: grid;
grid-template-columns: 100px 200px;
grid-template-rows: 100px 100px auto;
grid-template-areas:
"thumbs main"
"thumbs main"
"thumbs main"
;
}
#mygrid .items .item {
grid-area: thumbs;
}
#mygrid .items .item img{
//why are there overlapping??
width: 100px;
height: auto;
}
#mygrid .items .item:first-child {
grid-area: main;
}
#mygrid .items .item:first-child img{
width: 200px;
height: auto;
}
<div id="mygrid">
<div class="items">
<div class="item">
<img src="http://lorempixel.com/100/100/sports">
</div>
<div class="item">
<img src="http://lorempixel.com/100/100/food">
</div>
<div class="item">
<img src="http://lorempixel.com/100/100/cities">
</div>
<div class="item">
<img src="http://lorempixel.com/100/100/nature">
</div>
</div>
<div class=info>MY TITLE</div>
<div class=info>My Description</div>
<div class=prijs>My Price</div>
</div>
我正在尝试将所有图像(第一个除外)放在名为“thumbs”的第一个网格列中。 (这行得通,但相互摔倒)
我将第一张图片放在更大尺寸的第二列中。 (这行得通)
我很确定我错过了一些基本的东西,但我已经尝试(和谷歌搜索)几个小时了。也许另一双眼睛可以启发我。
这是一个单网格版本。这里的问题是第一张图片不会把自己放在正确的位置。
https://jsfiddle.net/wrpt5g3b/1/
#mygrid {
display: grid;
grid-template-columns: 1fr 2fr 3fr;
grid-template-rows: 25px 25px 25px auto;
grid-template-areas:
"aside main model"
"aside main price"
"aside main input"
"aside . ."
;
}
#mygrid .items {
}
#mygrid .items .item {
grid-area: aside;
}
#mygrid .items .item img{
width: 100px;
height: auto;
}
#mygrid .items .item:first-child {
grid-area: main; //why is this ignoring it's place?
justify-self: stretch;
}
#mygrid .items .item:first-child img{
width: 200px;
//height: auto;
}
#mygrid .title {
grid-area: model;
justify-self: stretch;
}
#mygrid .info {
grid-area: input;
justify-self: stretch;
}
#mygrid .price {
grid-area: price;
justify-self: stretch;
}
<div id="mygrid">
<div class="items">
<div class="item">
<img src="http://lorempixel.com/100/100/sports">
</div>
<div class="item">
<img src="http://lorempixel.com/100/100/food">
</div>
<div class="item">
<img src="http://lorempixel.com/100/100/food">
</div>
<div class="item">
<img src="http://lorempixel.com/100/100/food">
</div>
</div>
<div class=title>MY TITLE</div>
<div class=info>My Description</div>
<div class=price>My Price</div>
</div>
【问题讨论】: