【问题标题】:Automatic image stretch/squeeze/crop in both directions自动双向拉伸/挤压/裁剪图像
【发布时间】:2014-10-20 19:45:09
【问题描述】:

我有一个容器-DIV

  • 高度:400px;
  • 宽度:80%;

我有一组不同尺寸的图片。

如何指定图片:

  • 始终保持其纵横比
  • 始终填充容器 div
  • 与容器 div 的中心对齐
  • 当 div 比图像
    • 图像的宽度被拉伸或挤压到 div-width
    • 图像的高度会自动裁剪以保持纵横比
  • 当 div 比图片
    • 图像的高度被拉伸或挤压到 div 高度
    • 图像的宽度会自动裁剪以保持纵横比

这可能只使用 CSS(没有 JS)吗? 如果更简单,JS 也是一种选择。 图片可以设置为背景,也可以设置为 div 内的显式 img 标签。

例子:

  • 当窗口宽度为500px时,div为400px(W) & 400px(H)
    • 应将 1000 像素(宽)和 500 像素(高)的图像压缩为 800 像素(宽)x 400 像素(高),并从左侧和右侧裁剪 200 像素。
  • 当窗口宽度为1500px时,div为1200px(W) & 400px(H)
    • 应将 1000 像素(宽)和 500 像素(高)的图像拉伸为 1200 像素(宽)x 600 像素(高),并且应从顶部和底部裁剪 100 像素。

拨弄:http://jsfiddle.net/fnbL757q/

HTML:

<div id="container">
    <img id="image" src="https://lh4.googleusercontent.com/-jKo72r_w7e4/UlFMCWDx-dI/AAAAAAAAIl0/whCcucpCc_I/s1024/IMG_5364_LQ.jpg" />
</div>

CSS:

#container {
    max-height: 400px;
    width: 80%;
    border: 1px solid black;
    margin: 0 auto 0 auto;
    overflow: hidden;
}

#image {
}

提前致谢。

【问题讨论】:

  • 粘贴一些代码老兄。
  • 很好的解释,但不幸的是没有代码可以看到???。发布您的代码或解决您的问题

标签: jquery html css image image-resizing


【解决方案1】:

你可以试试这样的:

#container-DIV {
    background-image:url('your_image.png');
    background-repeat:no-repeat;
    background-size:cover;
}

css规则background-size:cover会根据http://www.w3schools.com/cssref/css3_pr_background-size.asp

将背景图片缩放到尽可能大,使背景区域完全被背景图片覆盖。背景图像的某些部分可能不在背景定位区域内可见

演示 JSFiddle:http://jsfiddle.net/lparcerisa/p3fxmh78/

【讨论】:

  • 这可以解决问题,谢谢!对于非 CSS3 支持,有什么方法可以做到这一点?
猜你喜欢
  • 1970-01-01
  • 2012-10-31
  • 1970-01-01
  • 2021-04-17
  • 1970-01-01
  • 2011-02-07
  • 1970-01-01
  • 2017-05-08
  • 1970-01-01
相关资源
最近更新 更多