【问题标题】:4x3 grid with two items double height4x3 网格,两个项目双倍高度
【发布时间】:2018-07-29 19:51:37
【问题描述】:

我正在尝试创建具有两个双倍高度的 4x3 网格。

.grida {
	width:540px;
	display: grid;
	row-gap: 14px;
	grid-template-columns: repeat(4, 120px);
	justify-content:space-evenly;
	align-content: space-evenly;
	background-color: #fff;
	color: #444;
}

.card {
	background-color: #ddd;
	color: #555;
	border-radius: 5px;
	padding: 5px;
	font-size: 150%;
	height:68px;
}

.a {
	grid-row: auto / span 2;
}

.g {
	grid-row: auto / span 2;
}
<div class='grida'>
  <div class="card a">A</div>
  <div class="card b">B</div>
  <div class="card c">C</div>
  <div class="card d">D</div>
  <div class="card e">E</div>
  <div class="card f">F</div>
  <div class="card g">G</div>
  <div class="card h">H</div>
  <div class="card i">I</div>
  <div class="card j">J</div>
</div>

为什么会有空块?
我希望 a 和 g 是双倍高度。
有什么帮助吗?

【问题讨论】:

  • 看,如果它有助于我创建一个元素行双倍,其他列双倍:jsfiddle.net/1853602k
  • 只需将height: 160px; 添加到.a。 .a { height: 160px; grid-row: auto / span 2; }
  • 您正在为.card 类设置高度,这就是grid-row 不起作用的原因。请参阅下面的答案

标签: html css css-grid


【解决方案1】:

grid-row 不起作用,因为您在 card div 上设置了高度。为了调整card divs 的“高度”,我使用填充做了一个技巧。这样做:

.grida {
	width:540px;
	display: grid;
	row-gap: 14px;
	grid-template-columns: repeat(4, 120px);
	justify-content:space-evenly;
	align-content: space-evenly;
	background-color: #fff;
	color: #444;
}

.card {
	background-color: #ddd;
	color: #555;
	border-radius: 5px;
	font-size: 150%;
	padding: 30px 5px
}

.a, .g {
	grid-row: auto / span 2 !important;
}
<div class='grida'>
  <div class="card a">A</div>
  <div class="card b">B</div>
  <div class="card c">C</div>
  <div class="card d">D</div>
  <div class="card e">E</div>
  <div class="card f">F</div>
  <div class="card g">G</div>
  <div class="card h">H</div>
  <div class="card i">I</div>
  <div class="card j">J</div>
</div>

【讨论】:

    【解决方案2】:

    已经回答,但使用 grid-auto-rows:68px 可能是不那么 hacky 的解决方案。

        .grida {
            width:540px;
            display: grid;
            row-gap: 14px;
            grid-template-columns: repeat(4, 120px);
            justify-content:space-evenly;
            align-content: space-evenly;
            background-color: #fff;
            color: #444;
            /*setting the height of automatically/implicitly created rows*/
            grid-auto-rows:68px;
        }
    
        .card {
            background-color: #ddd;
            color: #555;
            border-radius: 5px;
            padding: 5px;
            font-size: 150%;
            /*height:68px;*/
    
        }
    
        .a,.g {
            grid-row: auto / span 2;
        }
    <div class='grida'>
        <div class="card a">A</div>
        <div class="card b">B</div>
        <div class="card c">C</div>
        <div class="card d">D</div>
        <div class="card e">E</div>
        <div class="card f">F</div>
        <div class="card g">G</div>
        <div class="card h">H</div>
        <div class="card i">I</div>
        <div class="card j">J</div>
    </div>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-02
      • 2018-11-17
      • 1970-01-01
      • 2020-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多