css 如何做到固定图片比例 短边剪切

我想写死图片的宽和高,比如都是200px,但同时我又不想图片变形。有什么办法可以实现按照图片的短边进行剪切呢?比如,有一张图片是400600的,我希望他能剪切成400400的,多出去的部分就不要了,然后按照比例缩放成200*200的,放进我的容器中。
css能实现么?

阅读 10.1k
9 个回答

谢谢大家集思广益,最后我综合了大家的想法,终于找到了最佳解决方案。写出来大家看一下哈~

<div style="width: 200px; height: 200px; background:url(./img/text.png) no-repeat;background-size: cover;background-position:center;overflow:hidden; ">
</div>

<div style="width: 200px; height: 200px; font-size: 150px;">
  <img src="./test.png" alt="" style="max-width: 200px;max-height: 200px;">
</div>

css好像不能对img直接做自适应裁剪处理,可以用background代替或者js模拟

css只能做到障眼法式的隐藏。
你的需求,感觉是想重新生成一张按短边居中裁剪过的正方形图片,七牛的图片处理倒是可以帮到你吧

试试使用css的clip属性

外层一个固定宽高的div,里面放图片,图片固定宽度,高度自适应,外层的div超出部分隐藏。。如果想让放进去的图片显示居中的部分用背景图,background-position:center;
我不知道是不是你想要的效果

@lafang @溺水的鱼

<div style="width: 200px; height: 200px; font-size: 150px;background-position:center;overflow:hidden; ">
  <img src="./test.png" alt="" style="max-width: 200px;">
</div>

第二种,引用了@smallmarkone 答案

<img border="0" src="./test.png" style="position:absolute;clip:rect(10px 110px 200px 10px)">

img外边套一个容器div,设置宽高,img在div中水平垂直居中,然后div设置overflow:hidden;但是这种情况只能适用于图片尺寸大于div容器的宽高的情况

来看看这个。

<img style="width: 200px;height:200px;display:inline-block;background:url(./img/text.png) no-repeat 0 0 / cover;">
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏