【问题标题】:Problems with image sizes图像尺寸问题
【发布时间】:2012-06-17 05:56:23
【问题描述】:

我为图像竞赛编写了一个应用程序,我现在想要实现的是显示这些图像。我遇到了一个小问题。

我通过保持纵横比将图像的大小调整为 400 像素 x 400 像素。这意味着一张图像可以是 400 像素宽和 200 像素高。另一个图像可以是 100px 宽和 400px 高。

客户端应用程序希望将它们显示在具有固定高度和宽度的网格中。

http://jsfiddle.net/tbedf/1/

有这个 css 技巧可以显示图像的一部分,但是当我这样做时,有些只显示图像的左角,在该区域只能显示白色或黑色,所以对我没有好处。

当我查看 facebook 时,他们在对齐图像和显示图像中心方面做得很好。

我怎样才能让它工作?

要求显示的缩略图大小为 100 x 100 像素

谢谢。

【问题讨论】:

  • 考虑改写这句话:“某些图像在该区域不是白色的”,因为它目前没有任何意义。
  • 你不小心一个字。
  • 你为什么使用 - li:hover { height:auto; } ?
  • 抱歉改写了。这里是凌晨 1 点。忘记 li:hover,例如,这就是 jsut。
  • @DarthVader 你的意思是类似于我更新的例子的解决方案吗?

标签: javascript html css image


【解决方案1】:

尝试用javascript存储每张图片的widthheight,然后循环应用以下样式:

position: absolute;
top: 50%;
margin-top: -1*($height/2); /* $height = stored height of current image */
right: 50%;
margin-right: -1*($width/2);  /* $width = stored width of current image */

li申请position: relative;


我为你制作了 jQuery 演示 - jsFiddle demo

jQuery 代码:

$(function() {
    var imgs = $('ul > li img');

    $.each(imgs, function(i, img) {
        /* cache variable for better performance */
        var $img = $(img);
        $img.css({
            'margin-top': $img.height()/-2,
            'margin-left': $img.width()/-2
        });     
    });
});​

CSS:

li {
    float: left;
    height: 100px;
    width: 100px;
    overflow: hidden;
    margin: 10px;
    padding: 10px;
    position: relative;
}

li:hover { overflow: visible; }

li img {
    position: absolute;
    display: block;
    top: 50%;
    left: 50%;
}

【讨论】:

    【解决方案2】:
    li { float:left; height:100px; overflow:hidden; margin:10px; padding:10px 10 0;}
    li:hover { height:auto; }    ​
    

    这个让所有的缩略图都是 100 x 100 像素

    【讨论】:

      【解决方案3】:

      为什么不将它们对齐到中心并使用类似的方法隐藏溢出?

      <div style="overflow:hidden;text-align:center;width:100px;height:100px;>
      <img src="">
      </div>
      

      【讨论】:

      • 在这种情况下如何强制执行 100px x 100px?
      • 调用图片到一个固定的 100px x 100px div 并隐藏溢出。我已经为你更新了上面的代码。
      • text-align: center; 不居中溢出内容
      猜你喜欢
      • 2019-01-25
      • 1970-01-01
      • 2017-05-05
      • 2013-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多