为了账号安全,请及时绑定邮箱和手机立即绑定

css3有没有让大小刚好是父级的大小,但是不能改变图片的比例。

css3有没有让大小刚好是父级的大小,但是不能改变图片的比例。

竹马君 2016-06-13 15:40:22
因为父级div是个固定的正方形,图片可能是竖着,也可能是横着,想让这些图片都显示成正方形,大小刚好是父级的大小,但是不能改变图片的比例。原来的做法是只给width:100%;这样对横着的图片是可以了,但是竖着的图片下半截是空白的。如果改成width:100%;height:100%;又会改变图片的比例。现在想到的做法是给图片加onload,加载完成后判断它是横着还是竖着来给width:100%;或者height:100%;但是觉得样式还是应该用css,有能做这个的样式吗?
查看完整描述

10 回答

已采纳
?
怪盗饭团

TA贡献97条经验 获得超118个赞

可以不改变比例,但是父div既然是正方形的,那么图片如果也要是正方形的话就要被裁剪掉了
还有一种是图片比例不变,做背景图片
我自己还有种做法,就是可能会在图边上留白,就是水平垂直居中图片啦

查看完整回答
3 反对 回复 2016-06-13
?
weibo_哆啦A梦有大口袋_0

TA贡献107条经验 获得超146个赞

  1. 根据你的描述父元素大小是一个固定宽高,图片大小不确定。

  2. 要想图片显示正方形,只有1个办法

    1. 拉伸

    2. 截取

    

查看完整回答
6 反对 回复 2016-06-13
?
new_object_

TA贡献55条经验 获得超117个赞

图片填充就是使用如你所说的100%,但如果你想让图片比例保持不变,那就不可能做到充满父级元素。稍微想一下,你用的父级元素是正方形,宽高比是1:1,非正方形的图片宽高比必定不是1:1,你的两个条件就是相互矛盾的。


如果你仍然不想改变图片的视觉效果,那你唯一能改变的就是父级元素的宽高,就像lightbox图片显示插件的效果。你可以设置图片横向充满父级,然后通过js动态改变父级的高度。

查看完整回答
2 反对 回复 2016-06-13
?
慕容0029924

TA贡献3条经验 获得超5个赞

你块是正方形的  图是长方形的怎么可能正好放进去   不然就砍掉一块   或者不完全显示   再不然就是图片是正方形的

查看完整回答
2 反对 回复 2016-06-13
?
老猿

TA贡献86条经验 获得超82个赞

图片的大小不能预先知道的话。   可以用JS算出图片长宽各自和父级DIV的比,那个比例大,就给那个100%

查看完整回答
反对 回复 2016-06-14
?
jiklin

TA贡献2条经验 获得超2个赞

div {
  width: 150px;
  height: 150px;
  overflow: hidden;
}
div img {
  max-width: 100%;
  max-height: 100%;
}

以上代码可以在不改变图片比例的情况下最大化显示图片,不过会存在不能完全显示的情况。

查看完整回答
反对 回复 2016-06-14
  • 10 回答
  • 1 关注
  • 3408 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信