【问题标题】:jquery/css how to rescale and crop a large image to fit my display div?jquery/css 如何调整和裁剪大图像以适合我的显示 div?
【发布时间】:2015-01-23 03:42:58
【问题描述】:

所以基本上我有几个 div 支架,我设置为 192px 宽度和 192px,我将所有 img 类 .img_thumb 设置为适合 div 支架宽度和高度的 100%,重新缩放图像以适合 192px。

理想情况下,我想要做的是例如超过 3000 宽度/高度的图像,我想在运行中重新调整适合 192 像素的图像,然后裁剪图像的中间并将其放置在div 持有人。有人有什么建议吗?这就是我目前所拥有的

我的html

<div class="content sixteen full columns float-l">
    <div class="img_thumb_holder float-l">
        <img class="img_thumb" alt="portfolio">
    </div>
</div>

我的 CSS

.container .img_thumb_holder{
width:192px;
height:192px;
background: black;
position: relative; 
}

.container .img_thumb{ 
width: 100%; 
height:100%;
}

请注意,我想重新缩放和裁剪图像的一部分,而不仅仅是重新缩放以适应 div 支架中的整个图像。谢谢

【问题讨论】:

    标签: jquery html css


    【解决方案1】:

    你可以:

    1. Find out 你的图片是否太大,如果是,则应用too-large 类。
    2. 使用 CSS 调整 img.too-large 的大小以获得首选大小(设置绝对大小 width 和 height)。 .img_thumb.too-large { 宽度:1234px; /* 放入你自己的 / 高度:321px; / 这里首选尺寸 */ }
    3. 模拟“裁剪”:

      .img_thumb_holder {
          /* your previous code */
          position: relative;
          overflow: hidden;
      }
      .img_thumb.too-large {
          position: absolute;
          left: -123px;    /* use your own numbers here */
          top: -456px;    /* to position image as you see fit */
      }
      

    或者您可以将图像显示为background-image 并以完全不同的方式完成整个操作,正如另一个答案所建议的那样。

    【讨论】:

    • 不错,其实这个好多了,你怎么知道用-123px和-456px?
    • 这些只是示例值。使用您自己的值来显示您想要crop 的图片部分。 (即如果“crop”的角在(88px, 124px),则使用left: -88px; top: -124px。)
    • 是的,好吧..但是我有各种不同大尺寸的图像,例如 3000 x 800、6000 到 2000,如果适合一个但不适合另一个,裁剪会很奇怪,有什么办法我可以在中心裁剪,例如背景图像,我可以将其居中。但我喜欢在 img src 而不是 background-image 上做,因为我所有剩余的代码都围绕 img src ..
    • 如果您只将 .too-large 类放在您知道您将首先调整为“首选尺寸”的图像上(请参阅我的回答),那么您就会知道图像的显示尺寸。然后,您可以轻松地将您的位置计算为-(width / 2) + (containerSize / 2)(与高度类似)。
    【解决方案2】:

    你可以使用 background-image 和 background-position amd background-size

    .img_thumb_holder {
        width:192px;
        height:192px;
        background-size: 300px;
        background-position: center center;
    }
    

    和

    <div class="img_thumb_holder float-l"   style="background-image: url(....)">&nbsp;</div>
    

    【讨论】:

    • 你能做一个简单的小提琴让我试试吗?
    • 简单且完美运行,我可以知道使用中心和中心中心的区别吗?
    • 有什么方法可以对图像 src 做同样的事情吗?我的代码对同一个 src 有很多多次使用,一旦我将其更改为背景图像,我的代码就全部搞砸了..
    • 使用 background-position 可以分别指定水平位置和垂直位置。如果两个值相同,你可以只写一个。
    • 您可以将图像转换为带有背景图像的 div,但您必须根据图像的确切尺寸调整 div
    猜你喜欢
    • 1970-01-01
    • 2010-10-04
    • 2013-02-27
    • 1970-01-01
    • 2014-03-24
    • 1970-01-01
    • 1970-01-01
    • 2015-05-06
    相关资源
    最近更新 更多