以百分比形式指定宽度和高度,而不会在HTML中扭曲照片比例

lo8azlld  于 2023-04-27  发布在  其他
关注(0)|答案(9)|浏览(366)

我想知道在width和height <img>属性中,我是否可以将width和height指定为百分比?
好吧,我想这是显而易见的,因为当我尝试这样做时,它会调整大小,但它似乎会扭曲我的图像质量。
下面是一个带有固定属性的标记示例:

<img src="#" width="346" height="413">

现在,当我们试图缩小这个比例时,比如说一半,通过百分比:

<img src="#" width="50%" height="50%">

我得到了完全不同的东西:

<img src="#" width="173" height="206.5">

我想我只是从根本上错误的百分比标记或东西,因为有一个明显的差异,我的第二个和第三个例子的视觉。

ulmd4ohb

ulmd4ohb1#

注意:除非使用HTML 4.01,否则直接以<img>widthheight属性提供百分比是无效的(详见current spec,obsolete spec和this answer))。也就是说,浏览器通常会容忍这种行为,以支持向后兼容。

第二个示例中的百分比宽度实际上应用于<img>所在的容器,而不是图像的实际大小。假设您有以下标记:

<div style="width: 1000px; height: 600px;">
    <img src="#" width="50%" height="50%">
</div>

您的结果图像将是500 px宽和300 px高。

jQuery Resize

如果你想把一张图片缩小到它宽度的50%,你可以用一段jQuery代码来实现:

$( "img" ).each( function() {
    var $img = $( this );
    $img.width( $img.width() * .5 );
});

只要确保你先去掉任何height/width = 50%的属性。

4smxwvx5

4smxwvx52#

你可以设置一个或另一个(只是不是两个),这应该会得到你想要的结果。

<img src="#" height="50%">
mccptt67

mccptt673#

以下是不同之处:
这会将图像设置为原始大小的一半。

<img src="#" width="173" height="206.5">

这会将图像设置为其可用演示区域的一半。

<img src="#" width="50%" height="50%">

例如,如果您将this作为页面上的唯一元素,它将尝试占用页面宽度的50%,从而使其可能大于其原始大小-而不是您期望的原始大小的一半。
如果它被呈现在大于原始尺寸,图像将出现极大的像素化。

9w11ddsr

9w11ddsr4#

尝试在css3中使用scale属性:
75%原创:

-moz-transform:scale(0.75);
-webkit-transform:scale(0.75);
transform:scale(0.75);

原始的50%:

-moz-transform:scale(0.5);
-webkit-transform:scale(0.5);
transform:scale(0.5);
bkhjykvo

bkhjykvo5#

width=“50%”and height=“50%”将width和height属性设置为父元素width和height的一半,如果我没有弄错的话。如果你使用的是percents,那么只设置width或height应该将width或height设置为父元素的百分比。

okxuctiv

okxuctiv6#

由于缺乏关于原始图像大小的信息,指定宽度和高度的百分比将导致非常不稳定的结果。如果您试图确保图像适合页面上的特定位置,则需要使用一些服务器端代码来管理重新缩放。

but5z9lq

but5z9lq7#

W3Schools

  • 包含元素的高度百分比(如“20%”)。*

所以我认为它们是指div所在的元素?

stszievb

stszievb8#

不知道这是不是你要找的,但为什么不直接使用内联CSS呢?
示例:

<img src="" alt="text alternative" style="width: 100%; height: 20%;" />
q0qdq0h2

q0qdq0h29#

实际上有一种方法可以只使用html来做到这一点。只需设置:
<img src="#" width height="50%">

相关问题