HTML - CSS图像调整自身的百分比?

我试图用自己的百分比来调整img的大小。 例如,我只想将图像缩小到50%,将图像缩小一半。 但应用width: 50%;会将图像大小调整为容器元素的50%(例如,可能是

的父元素)。

问题是,我可以在不使用javascript或服务器端的情况下用一定比例调整图像大小吗? (我没有图像大小的直接信息)

我很确定你不能这样做,但我只想看看是否有智能的CSS解决方案。 谢谢!

Min Ming Lo asked 2019-08-25T06:28:56Z

9个解决方案

98 votes

我有2种方法。

方法1.在jsFiddle上演示

此方法仅调整图像大小,而不是DOM中的实际尺寸,以及调整大小后居中于原始大小中间的视觉状态。

HTML:

CSS:

img {

-webkit-transform: scale(0.5); /* Saf3.1+, Chrome */

-moz-transform: scale(0.5); /* FF3.5+ */

-ms-transform: scale(0.5); /* IE9 */

-o-transform: scale(0.5); /* Opera 10.5+ */

transform: scale(0.5);

/* IE6–IE9 */

filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.9999619230641713, M12=-0.008726535498373935, M21=0.008726535498373935, M22=0.9999619230641713,SizingMethod='auto expand');

}​

浏览器支持说明:浏览器统计信息显示在width: 50%中。

方法2.在jsFiddle上演示

HTML:

CSS:

#wrap {

overflow: hidden;

position: relative;

float: left;

}

#wrap img.fake {

float: left;

visibility: hidden;

width: auto;

}

#img_wrap {

position: absolute;

top: 0;

right: 0;

bottom: 0;

left: 0;

}

#img_wrap img.normal {

width: 50%;

}​

注意:width: 50%和img.normal是相同的图像。

浏览器支持说明:此方法适用于所有浏览器,因为所有浏览器都支持方法中使用的50%属性。

该方法以这种方式工作:

width: 50%和img.normal有流量

width: 50%具有img.normal使其尺寸与内图(50%)相同

width: 50%是img.normal内唯一没有50%定位的元素,因此它不会打破第二步

width: 50%具有img.normal定位在50%内并扩大为整个元素(#img_wrap)

第四步的结果是width: 50%具有与图像相同的尺寸。

通过设置width: 50%在img.normal上,其大小为50%,即#img_wrap,因此原始图像大小为50%。

Vladimir Starkov answered 2019-08-25T06:30:57Z

37 votes

HTML:

CSS:

span {

display: inline-block;

}

img {

width: 50%;

}

这必须是使用容器元素方法的最简单的解决方案之一。

当使用容器元素方法时,这个问题是这个问题的变体。 诀窍是让容器元素收缩包装子图像,因此它的大小将等于未图像化图像的大小。 因此,当将图像的属性设置为百分比值时,图像相对于其原始比例缩放。

其他一些收缩包装属性和属性值为:float: left/right,position: fixed和min/max-width,如链接问题中所述。 每个都有自己的副作用,但display: inline-block将是一个更安全的选择。 Matt在他的回答中提到了float: left/right,但他错误地将其归因于overflow: hidden。

在jsfiddle上演示

编辑:正如木马所提到的,你也可以利用新推出的CSS3内在& amp; 外在尺寸模块:

HTML:

CSS:

figure {

width: intrinsic;

}

img {

width: 50%;

}

但是,在撰写本文时,并非所有流行的浏览器版本都支持它。

Community answered 2019-08-25T06:32:11Z

10 votes

试试zoom的财产

编辑:显然,FireFox不支持zoom属性。 你应该使用;

-moz-transform: scale(0.5);

对于FireFox。

Emir Akaydın answered 2019-08-25T06:32:54Z

3 votes

这实际上是可能的,我在设计我的第一个大型响应式设计网站时发现了多么偶然。

.wrapper { position:relative; overflow:hidden; }

.box { float:left; } //Note: 'float:right' would work too

.box > img { width:50%; }

overflow:hidden给出了包装器的高度和宽度,尽管有浮动内容,但没有使用clearfix hack。 然后,您可以使用边距定位内容。 您甚至可以使包装器div成为内联块。

Matt answered 2019-08-25T06:33:31Z

3 votes

另一个解决方案是使用:

它不会验证,因为src属性是必需的,但它可以工作(除了任何版本的IE,因为不支持srcset)。

benface answered 2019-08-25T06:34:03Z

1 votes

这是一个非常古老的线程,但我在搜索标准分辨率显示器上显示视网膜(高分辨率)屏幕捕获的简单解决方案时发现了它。

因此,现代浏览器只有一个HTML解决方案:

这告诉浏览器图像的尺寸是预期显示尺寸的两倍。 该值是成比例的,不需要反映图像的实际大小。 也可以使用2w 1px来达到相同的效果。 src属性仅供旧版浏览器使用。

它的好处是它在视网膜或标准显示器上显示相同的尺寸,在后者上缩小。

Max_B answered 2019-08-25T06:34:56Z

0 votes

我认为你是对的,就我所知,纯粹的CSS是不可能的(不是跨浏览器我的意思)。

编辑:

好吧,我不太喜欢我的回答,所以我有点困惑。 我可能已经找到了一个有趣的想法,可以帮助...也许它毕竟是可能的(虽然不是最漂亮的东西):

编辑:在Chrome,FF和IE 8& 9中经过测试和使用。。 它在IE7中不起作用。

这里是jsFiddle的例子

HTML:

CSS:

#img_wrap {

display: inline-block;

position:relative;

}

#rescaled_img_wrap {

width: 50%;

}

#original_img {

display: none;

}

#rescaled_img {

width: 100%;

height: 100%;

}

Wesley answered 2019-08-25T06:35:54Z

0 votes

function shrinkImage(idOrClass, className, percentShrinkage){

'use strict';

$(idOrClass+className).each(function(){

var shrunkenWidth=this.naturalWidth;

var shrunkenHeight=this.naturalHeight;

$(this).height(shrunkenWidth*percentShrinkage);

$(this).height(shrunkenHeight*percentShrinkage);

});

};

$(document).ready(function(){

'use strict';

shrinkImage(".","anyClass",.5); //CHANGE THE VALUES HERE ONLY.

});

此解决方案使用js和jquery,并仅基于图像属性调整大小,而不是基于父级。 它可以使用class和id参数调整单个图像或组的大小。

更多信息,请访问:[https://gist.github.com/jennyvallon/eca68dc78c3f257c5df5]

Jenny Vallon answered 2019-08-25T06:36:31Z

0 votes

这是一个不难的方法:

then in css:

div {

position: absolute;

}

img, div {

width: ##%;

height: ##%;

}

nickthehero answered 2019-08-25T06:37:00Z

图片百分比 html,HTML - CSS图像调整自身的百分比?相关推荐

  1. css图片精灵定位_DIV CSS Sprites精灵 CSS图像拼合 CSS背景贴图定位教程案例

    div css sprites精灵-CSS图像拼合 CSS贴图定位网页背景素材图片拼合定位布局技术教程篇与css sprites实例篇 css sprites拼合背景图片素材实现布局效果截图 一.什么 ...

  2. div css sprites精灵-CSS图像拼合 CSS贴图定位网页背景素材图片拼合定位布局技术教程

    div css sprites精灵-CSS图像拼合 CSS贴图定位网页背景素材图片拼合定位布局技术教程篇与css sprites实例篇 css sprites拼合背景图片素材实现布局效果截图 一.什么 ...

  3. opencv+python实战日记 入门篇(二)调整图片的尺寸、裁剪图像

    目录 调整图片的尺寸 裁剪图像 调整图片的尺寸 打印出来的(496, 488, 3)表示的是图片的长宽,3表示的是RGB通道. import cv2 import numpy as npimg = c ...

  4. css sprites原理,CSS Sprites (CSS图像拼合技术)教程工具

    一篇教程,其源文件可下载学习 Fast Rollovers Without Preload 一个快速翻转效果的例子 CSS Sprites + Rounded corners 另一个例子:使用CSS ...

  5. html图片拉伸整个页面,css如何让图片拉伸?

    css设置图片拉伸的方法:1.使用width与height属性强制设置图片大小使图片拉伸.2.使用background-size属性拉伸背景图片. 1.强行设定大小值会导致拉伸 示例://html . ...

  6. css单位计算方法,CSS中的单位和百分比计算

    CSS中的单位和百分比计算 发布时间:2020-05-23 15:53:59 来源:亿速云 阅读:217 作者:鸽子 CSS中的单位 绝对单位 in-英寸: cm; mm; pt-磅 相对单位 em- ...

  7. php中背景图怎么设置不重复,css 图像不重复怎么设置

    css图像不重复的设置方法:首先创建一个HTML示例文件:然后引入一张背景图片:最后通过设置属性为"background-repeat:no-repeat"来实现图像不重复即可. ...

  8. 使用Julia进行图像处理--使用形态学运算进行图像调整

    使用Julia进行图像处理--使用形态学运算进行图像调整 前言 图像二值化 基本运算 图像侵蚀 使用侵蚀分离物体 准备用于文本识别的图像 图像膨胀 合并几乎连接的对象 突出显示细节 派生操作 图像开运 ...

  9. python 调整灰度图像对比度_Python实现PS图像调整之对比度调整功能示例

    本文实例讲述了Python实现PS图像调整之对比度调整功能.分享给大家供大家参考,具体如下: 这里用 Python 实现 PS 里的图像调整–对比度调整.具体的算法原理如下: (1).nRGB = R ...

最新文章

  1. 晶体管逻辑芯片设计微缩图形化
  2. linux shell 错误 [: =: unary operator expected 解决办法
  3. 高效学习,战胜拖延症
  4. 如何找到SAP ABAP odata服务实现的具体backend 系统
  5. 我如何预测10场英超联赛的确切结果
  6. Maven学习(六)————企业Maven项目最佳实践
  7. node.js学习笔记之模拟路由
  8. resize view from nib引起的子控制器视图(childviewcontroller)部分区域无响应
  9. 垃圾分类图片数据集分享-约10w张数据集
  10. 外文参考文献找不到页码怎么办?
  11. 从程序员到技术总监:一个普通人13年的奋斗
  12. php拼手速 抢红包,拼手速必备 | 这样设置,微信抢红包速度更快!
  13. php反序列化漏洞中当不存在__invoke时的一种利用思路
  14. 抖音自动生成文字_抖音视频怎么加文字
  15. linux命令:xxd读取二进制文件
  16. 在声学技术这件事上,小米MIX 怎么就黑科技了?
  17. CAD中插入外部参照字体会变繁体_为什么CAD插入相同图框但尺寸却相差很多?
  18. 谷歌翻译网页无法翻译,最新解决方法
  19. 评论:Monster的诺基亚Purity Pro无线耳机
  20. 支付篇—微信扫码支付

热门文章

  1. 中兴V880刷机后无法打开数据连接的解决
  2. 关闭windows更新
  3. Allegro如何设置自动保存
  4. 怀化驾考系统的敏感程度
  5. JAVAFX 使用mybatis-plus整合sqlite 操作数据库,保存成功,但数据库没有数据
  6. nonebot2 安装与使用
  7. 674最长连续递增子序列个数(普通法)1952三除数
  8. jquery实现滑动标尺
  9. 小红书用户画像分析_数据分析中的用户画像,原来就是这么简单
  10. 电脑录屏工具FastStone Capture