我需要将元素的 宽度 保持为 高度 的百分比。因此,随着高度的变化,宽度也会更新。
通过为padding-top使用%值可以实现相反的效果,但以padding-left为百分比将是对象宽度的百分比,而不是其高度。
因此,使用这样的标记:
<div class="box">
<div class="inner"></div>
</div>
我想使用这样的东西:
.box {
position: absolute;
margin-top: 50%;
bottom: 0;
}
.inner {
padding-left: 200%;
}
为了确保根据盒子 的高度保持 盒子的 长宽比 。高度是可变的,因为它的百分比裕度-当窗口的高度改变时,盒子的高度也会改变。
我知道如何使用JavaScript来实现这一点,只是想知道是否有一个干净的纯CSS解决方案?
您可以使用具有所需比例的图像来帮助按比例调整大小(可以通过将一维设置为某个值,另一维设置为“自动”来按比例缩放图像)。图像不必是可见的,但必须占用空间。
.box {
position: absolute;
bottom: 0;
left: 0;
height: 50%;
}
.size-helper {
display: block;
width: auto;
height: 100%;
}
.inner {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
background: rgba(255, 255, 153, .8);
}
<div class="box">
<img class="size-helper" src="//dummyimage.com/200x100/999/000" width="200" height="100">
<div class="inner">
1. box has fluid height<br>
2. img has 2:1 aspect ratio, 100% height, auto width, static position<br>
2.1 it thus maintains width = 200% of height<br>
2.2 it defines the dimensions of the box<br>
3. inner expands as much as box
</div>
</div>
在上面的示例中,box,inner和helper的大小都相同。
问题内容: 我有一个可以放在一起的网站,它的固定长宽比大约等于风景,例如视频。 我想使它居中并扩展以填充可用的宽度和可用的高度,但不要在任何一侧变大。 例如: 高而薄的页面将使内容伸展整个宽度,同时保持成比例的高度。 短而宽的页面将使内容伸展到整个高度,并具有成比例的宽度。 我一直在研究两种方法: 使用具有正确长宽比的图像来扩展容器,但我无法在主要浏览器中以相同的方式表现该图像。 设置成比例的底部
问题内容: 我想创建一个div可以随窗口宽度变化而改变其宽度/高度的。 是否有任何CSS3规则可以允许高度根据宽度而改变,同时保持其长宽比? 我知道我可以通过JavaScript来做到这一点,但我宁愿只使用CSS。 问题答案: 只需使用百分比值创建包装器,如下所示: 它将导致高度等于其容器宽度的75%(长宽比为4:3)。 这取决于以下事实: 相对于生成的盒子的包含块的宽度计算百分比(来源:w3.o
我想知道如何将高度设置为
问题内容: 我的元素: 风格: 脚本,使其保持方形: 问题是要在纯CSS中做同样的事情。没有脚本。 问题答案: 我知道有两种技术可以根据元素的高度保持元素的长宽比: 当 高度相对于视口时 : 您可以使用vh单位: 对于 基于父元素的高度的高度 : 您可以使用具有所需纵横比的虚拟图像。宽高比为1:1的示例可以使用1 * 1透明.png图像,也可以使用@vlgalik注释为1 * 1 base64编码
有没有一种方法,只使用CSS,将图像的高度设置为其容器的高度,同时保持纵横比,允许宽度溢出和隐藏?这听起来有很多要求,但肯定有办法。我的意思是,我希望显示图像的完整高度,但如果宽度比容器允许的宽度宽(使用引导网格系统),那么只需溢出:隐藏。我将高度设置为100%,看起来很好,但图片从侧面挤压,以适合容器内,而不是溢出和被裁剪。通过将宽度设置为100%,它将填充容器。我认为这是使用容器作为标准的10
我有一个使用CSS flexbox缩放到可用高度的DIV。在这个DIV中,我想在两个维度上与DIV一起缩放图像。这意味着它应该被缩放以保持其长宽比,并且小于相应DIV维度的维度应该居中。 我可以使图像跟随DIV的宽度,但不能跟随高度。因此,肖像图像脱离DIV界限。 这里有一个jsFiddle来演示这个问题。