首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >网格项跨度不会超过1列

网格项跨度不会超过1列
EN

Stack Overflow用户
提问于 2019-03-29 06:09:45
回答 1查看 879关注 0票数 3

无论我将"grid- column“设置为什么值,橙色框都不会跨越多个列。

为什么会这样呢?

我尝试过以下几种方法:组合:(这是.hr-3项)

grid-column: 6 / span 9; grid-column: 6 / 9; grid-column: 2 / 7; grid-column: 2 / span 9;

我三次确认我的目标是正确的。

似乎什么都不起作用..

代码语言:javascript
复制
@import url('https://fonts.googleapis.com/css?family=Montserrat|Teko');
html, body {
  background: transparent;
  width: 100%;
  height: 100%;
}
#a {
  margin: 50px 0 0 50px;
  width: 70%;
  height: 70%;
  background: rgb(250,250,250);
  display: grid;
  grid-template-columns: auto auto 1px auto repeat(6, 2fr);
  grid-template-rows: auto repeat(9,1fr);
  //transform: rotate(-45deg);
  grid-gap: 5px;
}
.item {
  //background: rgba(100,100,0,0.02);
  font-family: 'Montserrat', sans-serif;
}
.item-1 {
  grid-column: 1 / 2;
  grid-row: 1 / 2;
}
.item-2 {
  grid-column: 2 / 3;
  grid-row: 1 / span 3;
  writing-mode: vertical-rl;
  text-orientation: upright;
  display: flex;
  align-items: center;
  padding-top: 3px;

}
.item-3 {
  grid-column: 4 / 5;
  grid-row: 1 / span 3;
   writing-mode: vertical-rl;
  text-orientation: upright;
  display: flex;
  align-items: center;
  padding-top: 3px;
}
.item-4 {
  grid-column: 5 / 6;
  grid-row: 1 / 1;
  
}
.hr-1 {
  grid-column: 3 / 4;
  grid-row: 2 / span 3;
  background: rgba(0,0,0,0.9);
}
.hr-2 {
  grid-column: 6 / 7;
  grid-row: 1 / span 8;
  border-left: 25px solid red;
 
}
.hr-3 {
  grid-column: 6 / span 9;  // <------- DOESN'T WORK?
  grid-row: 6/8;
  border: 25px solid orange;
}
代码语言:javascript
复制
<div id="a">
  <div class="item item-1"><b>John</b></div>
  <div class="item item-2"><b>A</b>lexander</div>
  <hr class="hr-1"/>
  <div class="item item-3"><b>B</b>lue</div>
  <div class="item item-4"><b>Peterson</b></div>
  <div class="item item-5"></div>
  <hr class="hr-2"/>
  <hr class="hr-3"/>
  <hr class="hr-4"/>
</div>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-29 06:16:02

hr有一个默认的边际设置,它造成了这个问题。使它们等于0

默认的边距设置为auto,因此它会在轨道内对齐您的项目(一个空项目),这会让您认为您的元素没有跨越所需的列。在所有情况下,您将看到的是您创建的50px边框(left+right)

代码语言:javascript
复制
@import url('https://fonts.googleapis.com/css?family=Montserrat|Teko');
html, body {
  background: transparent;
  width: 100%;
  height: 100%;
}
#a {
  margin: 50px 0 0 50px;
  width: 70%;
  height: 70%;
  background: rgb(250,250,250);
  display: grid;
  grid-template-columns: auto auto 1px auto repeat(6, 2fr);
  grid-template-rows: auto repeat(9,1fr);
  //transform: rotate(-45deg);
  grid-gap: 5px;
}
.item {
  //background: rgba(100,100,0,0.02);
  font-family: 'Montserrat', sans-serif;
}
.item-1 {
  grid-column: 1 / 2;
  grid-row: 1 / 2;
}
.item-2 {
  grid-column: 2 / 3;
  grid-row: 1 / span 3;
  writing-mode: vertical-rl;
  text-orientation: upright;
  display: flex;
  align-items: center;
  padding-top: 3px;

}
.item-3 {
  grid-column: 4 / 5;
  grid-row: 1 / span 3;
   writing-mode: vertical-rl;
  text-orientation: upright;
  display: flex;
  align-items: center;
  padding-top: 3px;
}
.item-4 {
  grid-column: 5 / 6;
  grid-row: 1 / 1;
  
}
.hr-1 {
  grid-column: 3 / 4;
  grid-row: 2 / span 3;
  background: rgba(0,0,0,0.9);
}
.hr-2 {
  grid-column: 6 / 7;
  grid-row: 1 / span 8;
  border-left: 25px solid red;
 
}
.hr-3 {
  grid-column: 6 / span 9;
  grid-row: 6/8;
  border: 5px solid orange;
}

hr {
 margin:0;
}
代码语言:javascript
复制
<div id="a">
  <div class="item item-1"><b>John</b></div>
  <div class="item item-2"><b>A</b>lexander</div>
  <hr class="hr-1"/>
  <div class="item item-3"><b>B</b>lue</div>
  <div class="item item-4"><b>Peterson</b></div>
  <div class="item item-5"></div>
  <hr class="hr-2"/>
  <hr class="hr-3"/>
  <hr class="hr-4"/>
</div>

以下是使用dev工具和保留默认页边距可以看到的内容:

您可以看到,该元素采用9列和2行,边距将所有内容居中。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55407617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档