在各种技术中,一个关键功能是将任何内容适配到其他任何内容。这并不是一个微不足道的问题,几年前我得到了一个非常冗长的JS解决方案,我对此并不是特别满意。
我已经简化了问题,将其转化为几个div。inner容器包含一个top和bottom容器,现在我想将该inner精确地适配到另一个outer容器内,保持纵横比并居中显示。
类似于这样的东西。 一个基本模板。这里的一个问题是,我不确定从CSS角度来看的责任。我将其视为类似于
我已经简化了问题,将其转化为几个div。inner容器包含一个top和bottom容器,现在我想将该inner精确地适配到另一个outer容器内,保持纵横比并居中显示。
类似于这样的东西。 一个基本模板。这里的一个问题是,我不确定从CSS角度来看的责任。我将其视为类似于
object-fit: contain
,唯一的区别是我有一个div容器而不是一个几何对象,但是寻求类似的行为。
html, body {
width: 100%;
height: 100%;
margin: 0
}
.outer {
width: 100%;
height: 100%;
}
.inner {
}
.top {
background-color: #0ff;
width: 1000px;
height: 1000px;
}
.bottom {
background-color: #0f0;
width: 1000px;
height: 1000px;
}
<div class=outer>
<div class=inner>
<div class=top>
</div>
<div class=bottom>
</div>
</div>
</div>
编辑:
为了明确应该没有滚动条。 inner
可以是任何大小的任何内容。它可能有 1000 个 youtube 嵌入,或者一个 2000x2000 的画布游戏。但如果 outer
是 100px x 100px,则所有内容都“适合”该空间。
编辑
基本上我想要 object-fit: contain
。 当您拥有一个 div
和内部的一个 img
时。 contain
将缩放以适应父容器的几何形状。它不被裁剪或调整大小。但是,我有一个 content div
而不是图像。那么如何重新创建相同的行为?
top
和bottom
的宽度可以改变以适应容器,这样可以吗? - Armin Ayariinner
的内容并不重要,可能是这个演示、1000 张图片或一个巨大的画布游戏。无论inner
作为容器是什么,都需要能够缩放到outer
中。物体不能调整大小,但必须在没有裁剪或失真的情况下进行缩放。 - user1059939