html - 保持宽高比并防止 <div> 扩展

标签 html css

我有一个 <div>我试图在其中保持恒定的纵横比(因为内部元素需要是正方形)。我已经能够设计出 CSS,以便当您使窗口变小 时,高度会相应地缩小并且效果很好。然而,当我使窗口宽时,<div>不断扩大超出 parent 的高度。我怎样才能阻止这个 .BoardWrapper <div>从扩展到它的父级?

.BoardWrapper {
    width: 100%;
    padding-bottom: 50%;
    position: relative;
    border: 1px solid red;
}

.Board {
    position: absolute;
    top: 5px; bottom: 5px; left: 5px;right: 5px;
    border: 1px solid green;
}

.Left {
    height: 100%;
    position: absolute;
    left: 0; right: 30px;
    border: 1px solid blue;
}

.Right {
    height: 100%;
    width: 20px;
    float: right;
    border: 1px solid black;
}

.Container {
    position: absolute;
    top: 10vh; bottom: 5vh; left: 5vw; right: 5vw;
}
<div class='Container'>
  <div class='Right'></div>
  <div class='Left'>
    <div class='BoardWrapper'>
      <div class='Board'></div>
    </div>
  </div>
</div>

我真的不想在这里处理 JS 解决方案,因为这些都是 React 组件。但是,包含 React 或 Semantic-UI 的解决方案会很好(尽管似乎应该有原始 CSS 解决方案)。

我不想编辑 .Left , .Right , 或 .Container , 但如果有帮助,我当然可以添加额外的元素。

最佳答案

移除填充底部

.BoardWrapper {
  padding-bottom: 50%;
}

并添加高度

.BoardWrapper {
  height: 100%;
}

工作示例: https://jsfiddle.net/zwp8vwob/

关于html - 保持宽高比并防止 <div> 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46737244/

相关文章:

java - Swing 对话框 html 格式 'cutting off' 一半内容

css - 如何设置不填满页面的div的全尺寸背景图片

javascript - 使用转换 :rotate(); 时代码变慢

html - 仅当跨度文本不为空时,如何有条件地在跨度后添加文本

javascript - 通过 CSS 或 JS 设置 FB 评论的百分比 % 宽度 : not working

javascript - 在 Joomla 上集成 Flash 组件,无需在每个页面上重新加载它

javascript - 多个范围类型的 HTML 输入标签总是加起来为特定值?

javascript - ionic :unable to add image just above ionic tabs

html - 评论/消息中的 RTL 单词与英语单词混合

javascript - 使用 "more toggle"更改字体大小