【发布时间】:2014-08-03 13:33:51
【问题描述】:
你能做到吗?我让用户将图像上传到宽度为 100% 的容器中,但我不希望图像大于原始大小。非常感谢!
【问题讨论】:
-
图像自然应该是它的大小。您是否也将图像设置为宽度:100?
-
没有。你不能。 CSS 无法知道随机图像的实际大小。您需要 javascript 来检测图像大小并缩放图像。
你能做到吗?我让用户将图像上传到宽度为 100% 的容器中,但我不希望图像大于原始大小。非常感谢!
【问题讨论】:
只是不要设置图片的width,只设置max-width。
img {max-width:100%; height:auto}
(height:auto 不是必需的,因为auto 是默认设置,但我把它放在那里是为了提醒自己,我希望图像具有其自然比例。)
这个sn-p有两个盒子,一个比图片小,一个比图片大。如您所见,较小框中的图像被缩小,而较大框中的图像具有正常大小。
div {border:2px outset green; margin:6px 0}
.box1 {width:100px; height:70px;}
.box2 {width:200px; height:100px;}
img {max-width:100%; height:auto}
<div class="box1">
<img src="https://i.stack.imgur.com/FuQYf.png" alt="" />
</div>
<div class="box2">
<img src="https://i.stack.imgur.com/FuQYf.png" alt="" />
</div>
【讨论】:
您可以在图像本身的样式标签中设置图像的最大宽度。 然后在样式表中将显示类型设置为“块”,将宽度设置为您想要的容器的任何百分比,并将高度设置为自动。然后添加 margin: 0px auto ,它应该完全居中并且永远不会大于它的原始大小。
如果这些是用户上传的图像并且您正在使用 PHP,例如,使用 getImageSize() 查找图像宽度并以编程方式将样式标记添加到图像。
【讨论】: