我想显示具有一定宽度和高度的URL中的图像,即使它具有不同的大小比例。

所以我想调整大小(保持比例),然后将图像剪切到我想要的大小。

我可以用html img属性调整大小,我可以用background-image剪切。

我怎么能两个都做?

例:

这个图片:

大小800x600像素,我想显示像200x100像素的图像

使用img我可以调整图像200x150px的大小:

style="width: 200px; height: 150px;"

src="http://i.stack.imgur.com/wPh0S.jpg">

这给了我这个:

并且使用background-image我可以剪切图像200x100像素。

style="background-image:

url('https://i.stack.imgur.com/wPh0S.jpg');

width:200px;

height:100px;

background-position:center;">

给我:

我怎么能两个都做?

调整图像大小,然后将其剪切为我想要的大小?

您可以使用两种方法的组合,例如。

.crop {

width: 200px;

height: 150px;

overflow: hidden;

}

.crop img {

width: 400px;

height: 300px;

margin: -75px 0 0 -100px;

}

您可以使用负margin在内移动图像。

请注意,如果在包含的图像上设置position:relative,则需要在包含div上设置position:relative。如果你不这样做,我发现IE实际上不会剪辑图像。

也从.crop img类中删除高度

@ waqar-alamgir如果删除了高度声明,它将无法工作

另请注意,使用css裁剪图像时,用户仍需下载图像。在将图像发送给用户之前,最好使用php和GD或其他图像编辑库来调整图像大小并裁剪图像。这一切都取决于你想要什么,加载服务器或用户带宽。

只是其他人的注意事项:.crop高度和宽度定义了切割图像最底部和最右边部分的位置。 .crop img的高度和宽度将缩放图像。 .crop img margin将平移图像

@sanchothefat假设我们不知道图像大小。我们需要使用Javascript指定保证金。对?这样会导致闪烁效果。你能想到其他任何解决方案吗?

@Jeevan隐藏图像,直到你的JS运行使用visibility:hidden;

@collindo是的。它会像一次渲染一样工作。假设您在SERP中呈现某些内容,即在您键入时搜索。而您正在使用它来显示搜索结果的图像。因此,每次隐藏可见性时,图像都会闪烁。

@Jeevan如果实施得好,它将适用于任何场景。例如,使用特殊类js-hide-until-loaded渲染图像,然后在图像onload事件触发时删除该类。 οnlοad="doSomething(this); $(this).removeClass(js-hide-until-loaded)"

@collindo我最初关注的是它的可见性:隐藏,然后让它可见。因为我们每隔一秒更新一次div就会引起轻微的闪烁。当文本在SERP中闪烁但图像不同时,你无法说出来。

有没有办法让裁剪的图像响应? coding.smashingmagazine.com/2011/01/12/

@skibulk你只需要在图像上使用百分比宽度和最大宽度。同样的方法仍然适用

使用CSS3,可以使用background-size更改background-image的大小,同时实现两个目标。

css3.info上有很多例子。

根据您的示例实现,使用donald_duck_4.jpg。在这种情况下,background-size: cover;就是您想要的 - 它适合background-image覆盖包含的整个区域并剪切多余的区域(取决于比率)。

.with-bg-size {

background-image: url('https://i.stack.imgur.com/wPh0S.jpg');

width: 200px;

height: 100px;

background-position: center;

/* Make the background image cover the area of the , and clip the excess */

background-size: cover;

}

Donald Duck!

css3 background-image background-size

很好的解决方案,但有一点需要注意的是,它与IE <9不兼容(如果这对任何人都重要)。另外,我想提一下,如果你用cover替换cover为background-size,它会缩放,但不会裁剪图像。

是否可以使用img标签?

对于标记,请查看CSS图像值和替换内容模块级别3规范中的object-fit: cover和相关值。

你试过用这个吗?

.centered-and-cropped { object-fit: cover }

我需要调整图像大小,居中(垂直和水平)并裁剪它。

我很高兴地发现,它可以在单个css-line中完成。

请查看此处的示例:http://codepen.io/chrisnager/pen/azWWgr/?edit = 110

以下是该示例中的CSS和HTML代码:

.centered-and-cropped { object-fit: cover }

original

object-fit: cover

style="border-radius:50%" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/3174/bear.jpg" alt="Bear">

谢谢,我认为这是最容易和最普遍的方式 - 但它似乎不适用于IE:/在这里找到文档:developer.mozilla.org/de/docs/Web/CSS/object-fit

IE11或EDGE(14)caniuse.com/#feat=object-fit不支持CSS3对象适配

@ eye-wonder它在Edge 16中得到支持,即将推出。如果它非关键并且节约使用,它可以在今天使用

在CSS3中,我们可以尝试img + object-fit或div + background-image。到目前为止,根据我的经验,背景图像可用于适应更多条件。

截至目前,这也得到了Edge的支持(不知道从什么时候开始)。

.imgContainer {

overflow: hidden;

width: 200px;

height: 100px;

}

.imgContainer img {

width: 200px;

height: 120px;

}

包含div基本上通过隐藏溢出来裁剪图像。

img {

position: absolute;

clip: rect(0px, 140px, 140px, 0px);

}

谢谢sanchothefat。

我对你的答案有所改进。由于裁剪非常适合每个图像,因此这个定义应该是HTML而不是CSS。

object-fit may help you, if you're playing with tag

以下代码将为您裁剪图像。你可以玩对象

img {

object-fit: cover;

width: 300px;

height: 337px;

}

在裁剪类中,放置要显示的图像大小:

.crop {

width: 282px;

height: 282px;

overflow: hidden;

}

.crop span.img {

background-position: center;

background-size: cover;

height: 282px;

display: block;

}

html看起来像:

img {

position: absolute;

clip: rect(0px,60px,200px,0px);

}

实例:

https://jsfiddle.net/de4Lt57z/

HTML:

CSS:

.crop img{

width:400px;

height:300px;

position: absolute;

clip: rect(0px,200px, 150px, 0px);

}

说明:

此处图像的大小由图像的宽度和高度值调整。裁剪是由剪辑属性完成的。

有关剪辑属性的详细信息如下:

.crop {

float: left;

margin: .5em 10px .5em 0;

overflow: hidden; /* this is important */

position: relative; /* this is important too */

border: 1px solid #ccc;

width: 150px;

height: 90px;

}

.crop img {

position: absolute;

top: -20px;

left: -55px;

}

您可以将img标记放在div标记中并执行这两个操作,但我建议不要在浏览器中缩放图像。由于浏览器具有非常简单的缩放算法,因此它在大多数时间都是糟糕的工作。最好先在Photoshop或ImageMagick中进行缩放,然后将它提供给客户端,非常漂亮。

我所做的是创建一个服务器端脚本,它将在服务器端调整大小并裁剪图片,这样它就可以在interweb上发送更少的数据。

这是相当微不足道的,但如果有人有兴趣,我可以挖掘并发布代码(asp.net)

CGI可能是最便携的方法(并且带宽有效),除非OP打算允许用户通过Javascript执行自己的大小调整和裁剪。

像Filestack这样的服务会为你做这件事。

它们会显示您的图片网址,并允许您使用网址参数调整其大小。这很容易。

在调整为200x100但保持纵横比后,您的图像将如下所示

整个网址看起来像这样

https://process.filestackapi.com/AhTgLagciQByzXpFGRI0Az/resize=width:200/crop=d:[0,25,200,100]/https://i.stack.imgur.com/wPh0S.jpg

但重要的是公平

resize=width:200/crop=d:[0,25,200,100]

哈哈哈好插头

好的插头可能 - 但同样 - 一个很棒的服务(不,我没有付钱说这个;-)) - 我真的刚刚注册,它非常酷

如果您使用的是Bootstrap,请尝试使用{ background-size: cover;

}作为,也可以给div一个类说,这样它就变成了

div.example{

background-size: cover}

我最近需要这样做。我想制作一个NOAA图表的缩略图链接。由于他们的图表可以随时更改,我希望我的缩略图随之改变。但是他们的图表有一个问题:它顶部有一个巨大的白色边框,所以如果你只是缩放它来制作缩略图,你最终会在文档中留下无关的空白。

这是我解决它的方式:

http://sealevel.info/example_css_scale_and_crop.html

首先,我需要做一点算术。 NOAA的原始图像是960×720像素,但前七十个像素是多余的白色边框区域。我需要一个348×172的缩略图,顶部没有额外的边框区域。这意味着原始图像的期望部分是720-70 = 650像素高。我需要将其缩小到172像素,即172/650 = 26.5%。这意味着需要从缩放图像的顶部删除70 = 19行像素中的26.5%。

所以…

设置高度= 172 + 19 = 191像素:

高度= 191

将下边距设置为-19像素(将图像缩短为172像素高):

下边距:-19px

将顶部位置设置为-19像素(向上移动图像,使前19个像素行溢出并隐藏而不是底部):

顶部:-19px

生成的HTML如下所示:

style="border:0;position:relative;margin-bottom:-19px;top:-19px"

src="…">

正如您所看到的,我选择了包含标签的样式,但您可以设置样式。

这种方法的一个工件是,如果显示边框,则顶部边框将丢失。因为无论如何我使用border = 0,这对我来说不是问题。

.crop {

width: 200px;

height: 150px;

overflow: hidden;

}

.crop img {

width: 100%;

/*Here you can use margins for accurate positioning of cropped image*/

}

html图像css设置大小,关于html:CSS显示调整大小和裁剪的图像相关推荐

  1. html自动裁剪图片宽度,html - CSS显示调整大小和裁剪的图像

    html - CSS显示调整大小和裁剪的图像 我想显示具有一定宽度和高度的URL中的图像,即使它具有不同的大小比例.所以我想调整大小(保持比例),然后将图像剪切到我想要的大小. 我可以用html ba ...

  2. css设置div不可编辑,css 怎么设置div不可点击

    css设置div不可点击的方法:1.通过"event.preventDefault()"方法取消事件的默认动作:2.通过"event.stopPropagation()& ...

  3. css设置四个圆角,css怎么设置4个圆角?css设置4个圆角方法

    div如何设置css圆角边框?css设置4个圆角方法有哪些?这对于刚刚入门的css新手,比较陌生,那么css怎么设置4个圆角?下面我们来看一下css设置4个圆角方法.[推荐学习:CSS3教程] CSS ...

  4. 移动端字体显示大小和css设置大小的不一致解决方案

    出现问题 这几天在做移动端页面,研究了一下手淘的 flexible.js 并在自己项目中试行了一下,然后发现了一个纠结无比的问题,即:css里设置了字体大小,但是显示却非常诡异,用 "诡异& ...

  5. html字体设置大小打印无效,css font-size属性怎么不管用?

    css font-size属性用于设置字体大小.在实际的开发中,有时会发现font-size属性不管用了,设置的字体大小是无效的.这是什么原因?怎么解决?下面本篇文章给大家介绍一下. css font ...

  6. css设置最小宽度消失,关于CSS:最小/最大宽度媒体查询没有语法意义

    我发现(最小宽度/最大宽度)媒体查询的概念有些混乱. 自然,如果我要设计媒体查询,我想说(用伪代码). if(screen.width < 420) { ApplyStyle(); } 谈论mi ...

  7. css设置打印样式表,[CSS] 创建打印样式表

    [CSS] 创建打印样式表 Chrome浏览器有一项非常好用的功能, 就是直接将网页保存为PDF(Ctrl+P), 虽然部分人觉得没有用, 但我经常使用这个功能 比如说, 有的博文写得不错, 想保存, ...

  8. html边框定义css设置,表格边框的css语法

    表格边框的css语法 更新时间:2006年09月21日 00:00:00   作者: 我们知道Dreamweaver在表格制作方面做得非常出色,但是在某些时候还是必须结合css才能达到一些特定效果,下 ...

  9. css设置字符长度,在css中设置最大字符长度

    12 个答案: 答案 0 :(得分:199) 你总是可以通过设置max-width和溢出ellipsis来使用截断方法 p { white-space: nowrap; overflow: hidde ...

  10. html div中css设置平均水平分布,CSS - 水平和垂直分布div

    4 个答案: 答案 0 :(得分:2) 首先,您可以使用Flexbox以更好的方式获得相同的结果. 对于垂直对齐文本到中间,您可以通过添加line-height属性并将其设置为容器div的相同精确高度 ...

最新文章

  1. Tarjan求割点桥
  2. 字节跳动凌晨发半个月奖金,网友:我酸了,又是别人家的公司!
  3. Lua的清屏快捷方式
  4. jms在jboss上的简单应用
  5. 评分卡实战中的几个问题
  6. element显示服务器的图片,Vue+ElementUI+SpringMVC实现图片上传和回显
  7. #pragma once与 #ifndef的区别 (转)
  8. 【PowerBi】Power Query 对数据进行合并查询
  9. 自制操作系统(五) 保护模式寻址原理、字符鼠标指针显示
  10. 机器学习中的numpy的array_Python中机器学习的Numpy指南
  11. oracle 获得节假日,Oracle 计算两个日期间时间排除非工作日及非工作时间
  12. mysql数据库 添加字段,修改字段,修改注释
  13. Excel如何根据出生日期计算年龄
  14. 面向对象之抽象类与接口【Java】
  15. Parameter Sniffing
  16. 【快讯通知】江苏省2022年度社会保险有关基数通知
  17. 神秘的程序员6 没事笑一笑
  18. Js鼠标放上去图片变大变小
  19. 创作者基金 11 月亮点
  20. 将Android布局转成图片,并保存到本地(解决JPEG图片因透明度变黑问题)

热门文章

  1. 树莓派如何接硬盘_树莓派3 挂载外接硬盘
  2. MT6589下载工具,MT6589刷机工具
  3. Flutter Dio Post请求
  4. Daemon Tools 4.x 或SPTD.SYS导致Windows不能启动的问题的解决方案
  5. 修炼一名程序员的职业水准(林庆忠__署名原创)
  6. 索尼手机的摄像功能怎么样?
  7. 百度推广系列之优化之笔
  8. 8月20日 网工学习 二层交换机功能 MAC地址 交换机的寻址 总结二层交换机,根据源MAC地址进行MAC地址表学习,根据目的MAC地址转发
  9. excel入门,如何玩转excel,你早该这么玩Excel笔记9
  10. FER 人脸情绪识别系统