【问题标题】:css: aspect ratio with grid-templatecss:带有网格模板的纵横比
【发布时间】:2021-10-16 17:38:12
【问题描述】:

我在 CSS 中使用网格框。网格中的每个项目必须是容器宽度的 1/3。我希望每个项目的纵横比为 2/1,这意味着宽度应始终是高度的两倍。如果容器的大小调整大小,我希望项目在保持纵横比的同时也调整大小。我该怎么做?

css:

.grid-container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-gap: 5px;

}

.grid-item {
    background-color: orange;
    border: solid;

}

html:

<div class="grid-container">
    <div class="grid-item"></div>
    <div class="grid-item"></div>
    <div class="grid-item"></div>
</div>

【问题讨论】:

    标签: css


    【解决方案1】:

    您需要您的网格项目跨越它们在网格中的位置。只要浏览器对纵横比的支持不完整,您就可以使用填充技巧:

    .grid-item {
      position: relative;
      display: flow-root;
    
      &:before {
        content: '';
        float: left;
        padding-top: 50%;
      }
    }
    

    【讨论】:

    • 谢谢。这解决了问题,但是它会创建一个新问题。那是我的错,我应该分享其余的代码,但认为这并不重要。这是完整的类:``` .grid-container { margin: 20px;高度:700px;溢出:自动;显示:网格;网格模板列:重复(3、1fr);网格间隙:5px; } ``` 也许你可以检查这段代码并调整你的窗口,因为很难解释发生了什么
    • 我认为不为网格使用高度可能是明智之举 - 当宽度改变时高度必须改变。至少,当你想保持纵横比时;)这是他的新问题吗?
    • 我刚刚测试过。我发现的只是身高问题......
    • 啊,我知道现在发生了什么。问题是我希望容器有一定的高度,如果里面有太多的项目(最终会被添加)我希望溢出是自动的。这里的问题是,只有当所有项目组合溢出容器高度时,才会以某种方式保持纵横比。一旦所有项目都适合容器高度,只有它们的宽度会被调整大小并且不会保持纵横比
    • 纯几何表明您可以保持纵横比或固定高度。恐怕你不能两者兼得…… :)
    猜你喜欢
    • 1970-01-01
    • 2017-07-11
    • 2019-01-05
    • 2019-01-19
    • 2021-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多