【发布时间】:2019-02-18 17:02:01
【问题描述】:
我正在尝试将具有现有高度和宽度属性的任何图像调整一个百分比(并保持比例)。我知道 transform: scale(1.05) 会采用 100 像素 x 100 像素的图像并将其设置为 105 像素 x 105 像素,但它仍然只会占用页面流中的原始 100x100 空间。
我该怎么做:
<img src="an.svg" width="100" height="100" alt="bigger please" class="resize" data-width="100" data-height="100"/>
img.resize {
height: auto;
width: calc(original width * 5%);
}
这样浏览器会渲染一个 105 x 105 像素的图像并占据整个 105x105?
我对这个问题使用了简化的数字,但图像对于任一维度都可以有任何值。
此外,我不能使用包装器或背景图像,但我可以访问图像上存在的数据高度和数据宽度属性。 Codepen 在这里:https://codepen.io/spicedham/pen/qMKLYq
【问题讨论】:
-
一个
100pxby100px转换为transform: scale(1.05)的图像将默认占据页面流中的105pxby105px。如果您的图像没有,则您有其他约束,例如max-width: 100%。请确保您已提供问题的minimal, complete, and verifiable example。 -
@ObsidianAge 比例是一种视觉变换,因此布局/流程不会改变,并且在图像增长时不会推送内容。 max-width 也不会影响缩放
-
@Obsidian Age 在此处添加了一个代码笔:codepen.io/spicedham/pen/qMKLYq,它显示缩放对我不起作用 - 但很可能我没有正确使用它。
标签: css image-resizing calc