html - 无法让我的网格元素拉伸(stretch)父 div

标签 html css css-grid

我正在尝试使用 css 网格创建一个网站(第一次)。

这是我目前所拥有的:

Here is what I have so far

问题出在红色区域,我希望按钮中的3个元素跨越红色区域的整个高度。这是我当前的 CSS:


#red{
    background-color: red;
    padding-right: 5px;
    height: 100%
    grid-area: 1/1/2/2;
    display: grid;
    grid-template-columns: 100%;
    grid-template-rows: 33% auto auto;
}

#upperelement{

    grid-area: 1/1/2/2;
    background-color: blue;
}

#upperelementselect{
    height:100%;
    width: 100%;
    font-size: 20px;
    border: none;
    border-radius: 10px;
    text-align: center;
    font-family: "Lucida Sans Unicode", "Lucida Grande", sans-serif;
    background-color: #404040;
    color: white;
}

#middleelement{
    padding-top: 5px;
    grid-area: 2/1/4/2;
}

#middleelementselect{
    height:100%;
    width: 100%;
    font-size: 20px;
    border: none;
    border-radius: 10px;
    text-align: center;
    font-family: "Lucida Sans Unicode", "Lucida Grande", sans-serif;
    background-color: #757575;
    color: white;
}

#lowerelement{
    padding-top: 5px;
    padding-bottom: 5px;
    grid-area: 1/3/2/4;
}

#lowerelementbutton{
    height:100%;
    width:100%;
    font-size: 20px;
    border: none;
    border-radius: 10px;
    text-align: center;
    font-family: "Lucida Sans Unicode", "Lucida Grande", sans-serif;
    background-color: #404040;
    color: white;
}

这是我的 html 简而言之:

<div class="red">
<div id="upperelement"><select id="upperelementselect"></select></div>
<div id="middleelement"><select id="middleelementselect"></select></div>
<div id="lowerelement"><button id="lowerelementbutton"></button></div>
</div>

我做错了什么?我知道使用表格可能会容易得多,但这不是重点:)

最佳答案

正如我在评论中所说,这里有一些错误或不理想的选择,如果没有其他上下文,很难提供适当的解决方案。但是您可以通过以下方式或多或少地实现您的要求:

.grid {
  display: grid;
  grid-gap: 5px;
  grid-template-rows: repeat(3, 1fr);
  grid-template-columns: repeat(2, 1fr);
  background-color: red;
  color: white;
}

.controls-column {
  grid-column: 1;
}

.side-content {
  padding: 5px;
  grid-column: 2;
  grid-row: 1/4;
}

.control {
    height: 100%;
    width: 100%;
    font-size: 20px;
    border: none;
    border-radius: 10px;
    text-align: center;
    font-family: "Lucida Sans Unicode", "Lucida Grande", sans-serif;
    color: white;
}

.select-top {
  background-color: #404040;
}

.select-middle {
  background-color: #757575;
}

.button {
  background-color: #404040;
}
<div class="grid">
  <div class="controls-column">
    <select class="control select-top"></select>
  </div>
  
  <div class="controls-column">
    <select class="control select-middle"></select>
  </div>
  
  <div class="controls-column">
    <button class="control button">button</button>
  </div>
  
  <div class="side-content">
    Lorem ipsum dolor sit amet consectetur adipisicing elit. Architecto quibusdam obcaecati quod distinctio est reprehenderit, sint incidunt culpa unde nobis consequatur ut temporibus, molestiae facilis. Cum veritatis delectus necessitatibus maiores?
    Lorem ipsum dolor sit amet consectetur adipisicing elit. Architecto quibusdam obcaecati quod distinctio est reprehenderit, sint incidunt culpa unde nobis consequatur ut temporibus, molestiae facilis. Cum veritatis delectus necessitatibus maiores?
    Lorem ipsum dolor sit amet consectetur adipisicing elit. Architecto quibusdam obcaecati quod distinctio est reprehenderit, sint incidunt culpa unde nobis consequatur ut temporibus, molestiae facilis. Cum veritatis delectus necessitatibus maiores?
  </div>
</div>

除此之外,您绝对应该查看一些指南,例如 this和/或一些教程,因为您缺少的主要是对 CSS 网格布局原则和 sintaxe 的一些基本理解。希望这有助于您入门。

关于html - 无法让我的网格元素拉伸(stretch)父 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58402967/

相关文章:

css - 固定网格列,而其他更改

css - css网格中的自动行跨越

javascript - 确定从 dragenter 和 dragover 事件中拖动的内容

jquery - 观察 DOM 变化,优雅的方式

html - 内联 block 元素,一个固定,一个相对定位

css - 将 font awesome 导入 laravel mdb vue 环境

html - 布局未按预期工作( block 级元素,宽度 : 50%)

javascript - 如何从动态生成的 html 中捕获属性 id?

javascript - CSS动画在onload angularjs后不起作用

html - 为什么我在 CSS Grid 中得到的是列而不是行?