Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript/HTML:如何显示具有设置维度的IMG,以及如果图像比该维度宽或高,如何裁剪/隐藏溢出?_Javascript_Html_Css - Fatal编程技术网

JavaScript/HTML:如何显示具有设置维度的IMG,以及如果图像比该维度宽或高,如何裁剪/隐藏溢出?

JavaScript/HTML:如何显示具有设置维度的IMG,以及如果图像比该维度宽或高,如何裁剪/隐藏溢出?,javascript,html,css,Javascript,Html,Css,我有一堆图片,保证有: 最小宽度=200px 最大宽度=250px 最小高度=150px 最大高度=175px 我想做的是显示一个200px×150px的矩形图像,同时保持比例(无拉伸或收缩) 这意味着,我可能有一些溢出 如何显示图像,使其保持原始图像大小,同时显示在200x150像素的窗口中并隐藏溢出的图像?如果图像特别大,或者将有很多溢出的图像,则将其包装在具有所需尺寸的容器中,并溢出:隐藏(例如,缩略图浏览器)。您可能需要考虑创建它们的图像的预裁剪副本。这可以使用GD或IMAMGAGI

我有一堆图片,保证有:

  • 最小宽度=200px
  • 最大宽度=250px
  • 最小高度=150px
  • 最大高度=175px
我想做的是显示一个200px×150px的矩形图像,同时保持比例(无拉伸或收缩)

这意味着,我可能有一些溢出


如何显示图像,使其保持原始图像大小,同时显示在200x150像素的窗口中并隐藏溢出的图像?

如果图像特别大,或者将有很多溢出的图像,则将其包装在具有所需尺寸的容器中,并
溢出:隐藏(例如,缩略图浏览器)。您可能需要考虑创建它们的图像的预裁剪副本。这可以使用GD或IMAMGAGICK(0)来完成。您还可以在这些扩展周围找到一些包装库,这样可以使任务更容易。


[0]

这个技巧非常酷,而且与图像大小无关。好的,看……你可以这样做

<div style="width:Npx; height:Npx; overflow:hidden">
  <img src="source.png" style="width:Npx;">
</div>

那么这是如何工作的呢,div将把imagen保存在一个由您定义的Ypx组成的矩形Xpx中,并将“裁剪”外部的所有内容。然后使用resize,您可以为每个浏览器分配一个带有imagen的文件,浏览器将为您调整文件大小。因此,如果您放置与div支架相同的宽度,您将给出图像适合该矩形的提示。这是我在不使用服务器端代码的情况下可以找到的最佳选项

下一个例子是:

您可以再次定义一个矩形,然后指定一个背景,最大的问题是imagen无法调整大小以适应该区域

<div style="width:Npx; height:Npx; background:url(yourimage.png) center"></div>

希望对您有所帮助…最好的

我提出了一种类似于nahum第二个示例的解决方法。在您设置的大小范围内有3个图像。它不会调整图像大小或拉伸图像,并且它们将遵循周围文本的对齐方式

希望有帮助

杰迪迪亚



缩略图{
显示:块;显示:内联块;
宽度:200px;高度:150px;
背景位置:中心;
背景重复:无重复;
}

  • 使用span而不是div,因为IE6+7只允许在自然内联的元素上设置display:inline块
  • 第一个display:block是Firefox2的一个后备版本,它不支持内联块

从理论上讲,这正是CSS的
clip
属性的作用-但是使用它会有一个有时非常痛苦的副作用-图像需要绝对定位:

<html>
  <head>
    <style type="text/css">
    .thumbnail {
      width:200px;
      height:150px;
    }
    .thumbnail img {
      position:absolute;
      clip:rect(0, 200px, 150px, 0);
    }
    </style>
  </head>
  <body>
        <div class="thumbnail"><img src="http://uhaweb.hartford.edu/SDUNN/sandwich.jpg"></div>
        <div class="thumbnail"><img src="http://uhaweb.hartford.edu/SDUNN/sandwich.jpg"></div>
        <div class="thumbnail"><img src="http://uhaweb.hartford.edu/SDUNN/sandwich.jpg"></div>
        <div class="thumbnail"><img src="http://uhaweb.hartford.edu/SDUNN/sandwich.jpg"></div>
  </body>
</html>

.缩略图{
宽度:200px;
高度:150像素;
}
.缩略图像{
位置:绝对位置;
剪辑:rect(0,200px,150px,0);
}

事实上,这会使图像脱离文档流,这是非常令人讨厌的——你能做的最好的事情就是把它们放在一个正确尺寸的框架内(这意味着你也可以使用其他人建议的溢出掩码方法).Clip在正确的位置是一个有用的属性,很多人似乎不知道它。

只需在块上设置
minheight:whatever
max height:whatever
overflow:hidden
,然后将图像放在块中,就可以了。

我如何在隐藏溢出的同时将图像居中我必须计算垂直和水平方向的隐藏边和可见边之间的距离,并将其用于负片填充(我可能会使用脚本,但我相信css向导可以解决这个问题)这将从页面内容中删除图像-这看起来不像NickNick所追求的。背景图像不能替代图像!
<html>
  <head>
    <style type="text/css">
    .thumbnail {
      width:200px;
      height:150px;
    }
    .thumbnail img {
      position:absolute;
      clip:rect(0, 200px, 150px, 0);
    }
    </style>
  </head>
  <body>
        <div class="thumbnail"><img src="http://uhaweb.hartford.edu/SDUNN/sandwich.jpg"></div>
        <div class="thumbnail"><img src="http://uhaweb.hartford.edu/SDUNN/sandwich.jpg"></div>
        <div class="thumbnail"><img src="http://uhaweb.hartford.edu/SDUNN/sandwich.jpg"></div>
        <div class="thumbnail"><img src="http://uhaweb.hartford.edu/SDUNN/sandwich.jpg"></div>
  </body>
</html>