【问题标题】:grid item span won't span more than 1 column网格项目跨度不会超过 1 列
【发布时间】:2019-03-29 07:00:26
【问题描述】:

无论我将“网格列”设置为什么,橙色框都不会超过一列。

这是为什么呢?

我尝试了以下组合:(这是.hr-3 项目)

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

我三重检查我的目标是正确的项目。

似乎没有任何效果..

@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;
}
<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>

【问题讨论】:

    标签: css css-grid


    【解决方案1】:

    hr 有一个导致问题的默认边距设置。使它们等于0

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

    @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;
    }
    <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>

    使用开发工具并保持默认边距,您可以看到以下内容:

    您可以看到该元素占用了9 列和2 行,并且边距使所有内容居中。

    【讨论】:

    • 虽然是新手,我怎么知道或者自己想出来?
    • @xingZì 通过询问和其他已经遇到过这个问题的人你会告诉你,现在你知道了;) ...但你可以检查元素以查看默认样式,这不是微不足道的,因为您还必须知道边距导致空元素对齐
    • 由于某种原因,Firefox 不显示默认的 hr 样式 gyazo.com/f099639576400d2411e195d2794fae0d(左边是 chrome,右边是 firefox)。奇怪..
    • @xingZì 检查这个:briangrinstead.com/blog/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-07
    • 1970-01-01
    • 1970-01-01
    • 2018-10-31
    • 2018-08-06
    • 1970-01-01
    相关资源
    最近更新 更多