css 在HTML中指定图像的width和heigth属性仍然相关吗?

vxf3dgd4  于 2022-12-15  发布在  其他
关注(0)|答案(7)|浏览(113)

我找到了a similar question here,答案是:“* 你应该总是在图像标签中定义宽度和高度 *。”但这是2009年的。
与此同时,前端的很多东西都发生了变化。我们现在都在做响应式页面设计,同时针对许多设备和大小(移动的,平板,桌面...)。
所以,我想知道是否仍然有必要指定宽度和高度属性,出于什么原因(响应,页面速度,搜索引擎优化...)?

o0lyfsai

o0lyfsai1#

img元素有width和height属性,但在任何DOCTYPE下都不需要。
Width和height属性只是“必需的”或者与保留页面空间和防止页面在加载时移动相关--这很重要。这可以通过使用CSS来实现,只要CSS加载足够快--它很可能在图像之前加载,所以一切都应该很好。
也可以(并且有效)只指定一个属性(宽度或高度),浏览器将计算省略的值以保持正确的纵横比。
如果需要的话,你可以在属性中指定百分比值。你不需要使用CSS,如果这是你所暗示的。
此外,它与add相关-在HTML5下,宽度和高度只能取一个像素值,换句话说,是一个有效的非负整数。
是否使用width和height属性取决于你的设计。如果你有很多不同大小的图片,你是想把所有的尺寸集中在CSS中还是把它们包含在img中?

fae0ux8s

fae0ux8s2#

是,您想要在2016中声明图像的宽度和高度。

1.让他们的视网膜做好准备
如果你想让你的图像为视网膜做好准备,你应该定义一个低于实际像素的宽度和高度。如果图像是800x600,指定<img width="400" height="300" />
1.避免页面跳转
如果没有宽度和高度,图像就不知道它有多大,这会导致页面在加载(重排)时出现不必要的跳转。声明高度和宽度可以解决这个问题。
请注意:

  • 定义了宽度和高度的图像仍然可以响应。只需将max-widthmax-height添加到CSS中。这将导致图像在不适合屏幕(see this sweet retina-ready, responsive kitten)时缩小(而不是放大)。定义min-widthmin-height将执行相反的操作。
  • 当您在所有屏幕尺寸下使用单个(相对较大)图像时,建议对JPG进行大量压缩(大约50%)以保持文件大小较低。
8gsdolmq

8gsdolmq3#

这个问题的基本答案(和大多数编码问题一样)是:* 视乎当时的情况而定 *
我想说,总是指定图像的heightwidth属性对页面渲染速度产生显著影响的“最佳实践”可以追溯到设计师使用表格和间隔GIF布局网站的时代,从那时起我们已经走过了很长的路。
未来的一个迹象是引入了新的picture元素,picture元素实际上是现有img元素的 Package 器,它允许您通过source元素指定几个不同大小的图像,用户代理本身实际上决定使用哪个版本。

<picture>
    <source media="(min-width: 64em)" src="high-res.jpg">
    <source media="(min-width: 37.5em)" src="med-res.jpg">
    <source src="low-res.jpg">
    <img src="fallback.jpg" alt="This picture loads on non-supporting browsers.">
    <p>Accessible text.</p>
</picture>

从上面的示例代码(取自Intel Developer Zone's article on the HTML5 picture element)可以看到,img元素本身没有heightwidth属性。
以下是一些资源,可帮助您确定声明图像大小的最合适方法:

rmbxnbpk

rmbxnbpk4#

好的标准总是值得推荐的。用一点额外的代码就可以很容易地合并静态img标记和泛型的(px)个值(em,%)值。更简单的是,完全去掉img标记,并将图片设置为具有唯一ID的div的背景。如果您有多个图片,使用sprite并将每个图片分配到其对应的div。您的标记源将看起来像<div id="image_001"></div>-仅此而已。不需要像JQuery这样的臃肿软件。

ppcbkaq5

ppcbkaq55#

如果我们讨论的是responsive,你可以使用bootstrap(如果不是,开始这样做).当处理图像时,你应该添加类img-responsive,这将在必要时修改图像的宽度,高度将是自动的,所以如果宽度减小,高度也会减小.
您将始终拥有一个保持其容器的相同%的图像,并且永远不会丢失纵横比。
SEO和图片大小声明没有关系,页面速度总是一样的,所以如果图片是800 x600 px,你会加载整个图片,即使你声明它是60 x40 px。
你一定认为,即使使用img-responsive,这个图像的最大宽度和高度也是图像的真实的大小,所以如果我们有一个800 x600 px的图像,它不会放大它(因为它会变得松散的质量)。
所以在2016年,建议不要声明图片的高度和宽度,而是使用bootstrap的img-responsive类,其他得到相同结果的responsive framework类,或者手工制作合适的jquery和css来达到相同的效果。
希望能有所帮助!

8i9zcol2

8i9zcol26#

,在HTML中的图像上指定宽度和高度属性仍然相关。

  • 加载图像所需的时间通常比加载构成页面其余部分的HTML代码所需的时间要长。因此,最好指定图像的大小,以便浏览器可以呈现页面上的其余文本,同时为仍在加载的图像留出适当的空间。*

因此,在图像上指定宽度和高度属性将通过防止加载延迟来提高网页性能

ogq8wdun

ogq8wdun7#

是的,有必要在 img 标签中添加heightwidth****属性,沿着src和alt属性来防止页面跳转。当我们的页面加载时,将为图像保留指定的空间,以便它可以安静地占据该位置。但是,这里会出现另一个问题响应性。2一旦我们给 img 标签给予height和width属性,对于所有屏幕尺寸,图像将倾向于保持相同的高度,这将使图像缩小。为了避免这种情况,我们需要添加**height:auto;**添加到CSS文件中的图像。

相关问题