定义和用法

<img> 标签的 height 和 width 属性设置图像的尺寸。

提示:为图像指定 height 和 width 属性是一个好习惯。如果设置了这些属性,就可以在页面加载时为图像预留空间。如果没有这些属性,浏览器就无法了解图像的尺寸,也就无法为图像保留合适的空间,因此当图像加载时,页面的布局就会发生变化。(下面的篇幅详细解释了这个观点)。

提示:请不要通过 height 和 width 属性来缩放图像。如果通过 height 和 width 属性来缩小图像,那么用户就必须下载大容量的图像(即使图像在页面上看上去很小)。正确的做法是,在网页上使用图像之前,应该通过软件把图像处理为合适的尺寸。

延伸阅读:详解 height 和 width 属性

实例

将图像宽度和高度分别设置为 200 像素:

  1. <img src="/i/mouse.jpg" height="200" width="200" />

更多实例

改变图像大小 - 制作填充图像

height 和 width 属性有一种隐藏的特性,就是人们无需指定图像的实际大小,也就是说,这两个值可以比实际的尺寸大一些或小一些。浏览器会自动调整图像,使其适应这个预留空间的大小。使用这种方法就可以很容易地为大图像创建其缩略图,以及放大很小的图像。但需要注意的是:浏览器还是必须要下载整个文件,不管它最终显示的尺寸到底是多大,而且,如果没有保持其原来的宽度和高度比例,图像会发生扭曲。

使用 height 和 width 属性的另外一种技巧,是可以非常容易地实现对页面区域的填充,同时还可以改善文档的性能。设想一下,如果你想在文档中放置一个彩色的横条。您不需要创建一个具有完整尺寸的图像,相反,您只要创建一个宽度和高度都为 1 个像素的图像,并把自己希望使用的颜色赋给它。然后使用 height 和 width 属性把它扩展到更大的尺寸。

  1. <img src="/i/ct_1px.gif" width="200px" height="30px" />

这是上面这段 HTML 的效果,这个颜色彩条是用只有一个像素的图像制成的:

使用百分比值

使用 width 属性的最后一个技巧是使用百分比值来代替像素的绝对值。这将使浏览器按照与浏览器显示窗口的一定比例来缩放图像。因此,如果要创建一个宽度与显示窗口宽度相同,高度为 30 个像素的彩色横条,可以这样实现:

  1. <img src="/i/ct_1px.gif" width="60%" height="30px" />

当文档窗口的大小改变时,这个图像的大小也会随之改变:

提示:如果提供了一个百分比形式的 width 值而忽略了 height,那么不管是放大还是缩小,浏览器都将保持图像的宽高比例。这意味着图像的高度与宽度之比将不会发生变化,图像也就不会发生扭曲。

请看下面的 HTML:

  1. <img src="/i/ct_1px.gif" width="20%" />

也就是说,如果只设置图像 ct_1px.gif 的 width 属性的百分比值,会得到一个矩形图像(这是因为原始的 ct_1px.gif 就是一个只有 1px 宽和高的矩形):

提示:我们提供以上例子的目的是为了使您更好地理解 height 和 width 属性的用法。如果您只是需要大面积的纯色块来装饰页面,那么更好的办法是使用 CSS 来创建背景色

浏览器支持

所有浏览器均支持 height 和 width 属性。

语法

  1. <img height="value" />

或者:

  1. <img width="value" />

属性值

描述
pixels 以像素为单位的高度或宽度值。
percent 以包含元素的百分比计的高度或宽度值。

详解 height 和 width 属性

为什么要使用 height 和 width 属性

您是否见过当文档加载时其内容会显示不规律的移动。之所以会这样,是因为浏览器为了能够显示每一个加载的图像,而不断地重新调整页面的布局。浏览器通过下载并解析出图像的宽度和高度来决定图像的大小,然后就会在显示窗口中留出一个相应的矩形空间。然后浏览器就会调整页面的显示布局,以便把图像插入到显示当中。这同时也告诉我们,图像是独立的文件,它与源文件都分别是独立加载的。

但是这不是一种最有效的显示文档的方法,因为浏览器在显示相邻的以及后面的文档内容之前,必须要检查每一个图像文件,并计算它们的屏幕空间。这可能会给文档的显示带来非常大的延迟,从而打断用户的阅读。

对于创作者来说,一种更为有效的方法是通过 <img> 标签的 height 和 width 属性来指定图像的尺寸。这样的话,浏览器在下载图像之前就为其预留出了位置,从而可以加速文档的显示,还可以避免文档内容的移动。这两个属性都要求是整数值,并以像素为单位来表示图像尺寸。这两个属性在 <img> 标签中出现的次序并不重要。

height 和 width 属性的问题

虽然 <img> 标签的 height 和 width 属性能够改善性能并让你实现一些小技巧,但在使用它们时还是有一些棘手的负面效果。即使用户已经关掉了自动下载图像的功能,浏览器还是要把为图像预留的空间以指定的尺寸显示出来。而这样留给读者的通常是一个空的框架,里面有一个毫无意义的图标,表示这是放置图像的位置。这时页面将看上去非常糟糕,就像根本没有完成一样,并且大部分内容都毫无用处。如果不用这些指定的尺寸,则浏览器将只是在文本中放置一个图像图标,这样显示中至少还有一些文字可以阅读。

对于这个问题我们还没有解决方案,只能强调一点,就是去使用 alt 属性和一些描述性文字,这样读者至少知道这里缺少的是什么东西。我们还是建议您使用这些尺寸属性,因为我们鼓励一切能够改善网络性能的行为。

HTML <img> 标签的 height 和 width 属性的更多相关文章

  1. 如何获取Html的height和width属性(网页宽、高)

    1.页面如图所示 2.Html代码 <div style="color:green;" id="html_info"></div> 3. ...

  2. 关于CSS和JS中用到的各种Height和Width的问题

    自己记不住,列一下关于CSS和JS中用到的各类有关Height和Width属性的介绍对比. 所属类别 属性名 意义 其他 浏览器模型 Screen.height 浏览器窗口所在的屏幕的高度(单位像素) ...

  3. css中 Span 元素的 width 属性无效果原因及多种解决方案

    先运行下程序看下: <span style='width:300px;'>123</span> 输出:123 可以看到 span会自动根据包含的内容来变化宽度 这是因为:对于内 ...

  4. css中span元素的width属性无效果原因及多种解决方案

    先运行下程序看下: <span style='width:300px;'>123</span> 输出:123 可以看到 span会自动根据包含的内容来变化宽度 这是因为:对于内 ...

  5. CSS2.1SPEC:视觉格式化模型之width属性详解(下)

    本文承接CSS2.1SPEC:视觉格式化模型之width属性详解(上),继续分析CSS视觉格式化模型中width以及相关值的计算问题: 注:与上节不同,本节的demo中由于出现了float,absol ...

  6. css的继承之width属性(容易忽略)

    众所周知,css的三大特性分别是 继承性,层叠性,和优先级. 那么这里就详细说一下css中width的继承性及其特殊情况. 继承性概念详解:css的继承性指的被包在内部的标签拥有外部标签的样式性,子元 ...

  7. UIView的frame的扩展分类,轻松取出x、y、height、width等值

    一.引言: 在ios开发中,就界面搭建.控件布局时,都会很恶心的通过很长的代码才能取出控件的x.y.height.width等值,大大降低了开发效率.那为了省略这些恶心的步骤,小编在这里给UIView ...

  8. CSS2.1SPEC:视觉格式化模型之width属性详解(上)

    在介绍了包含块之后,CSS2.1标准中介绍了width属性和height属性,这两个属性在我们的页面布局中也发挥着重要的作用.在盒模型中,width和height包围了一个框的内容区域(content ...

  9. 在Asp.Net MVC中实现RequiredIf标签对Model中的属性进行验证

    在Asp.Net MVC中可以用继承ValidationAttribute的方式,自定制实现RequiredIf标签对Model中的属性进行验证 具体场景为:某一属性是否允许为null的验证,要根据另 ...

随机推荐

  1. c++实现加密和解密算法以及JNI技术的应用实例

    #include "jiami.h" #include "jni.h" #include "com_test_start_CommonClassLoa ...

  2. android-解决 Android N 上 报错:android.os.FileUriExposedException

    解决 Android N 上 安装Apk时报错:android.os.FileUriExposedException: file:///storage/emulated/0/Download/appN ...

  3. C#路径总结

    [相对路径]   Request.ApplicationPath /src Path.GetDirectoryName(HttpContext.Current.Request.RawUrl ) //s ...

  4. POJ 1054 The Troublesome Frog

    The Troublesome Frog Time Limit: 5000MS Memory Limit: 100000K Total Submissions: 9581 Accepted: 2883 ...

  5. Socket 多线程FTP软件开发

    Socket具体还可见360云中文档记载 Socket是一个非常古老的协议了 1970年 Socket.AF_Unix======AF意思是  addressFamily 地址簇 Import os ...

  6. Linux下网络故障诊断

    导读 由于实现网络服务器的层次结构比较多,因此当网络出现故障时,解决起来比较复杂.下面由我来为大家详细介绍Linux系统中可能出现的一些网络问题,如网卡硬件问题.网络配置问题.驱动程序问题,以及网络层 ...

  7. tomcat配置文件之Server.xml

    Server.xml包含的元素有<Server>.<Service>.<Connector>.<Engine>.<Host>.<Con ...

  8. NYOJ 61传纸条(一) 双线程DP问题

    http://www.cnblogs.com/HpuAcmer/archive/2012/05/06/2486591.html 题目链接:http://acm.nyist.net/JudgeOnlin ...

  9. OI 中的 FFT

    不行啊最近备考简直变成文化狗了= =..我还脑洞大开想学俄语什么心态.. 简单地说一下FFT(来,跟我一起念,法〰法〜塔,法斯特~福铝页~圈死佛而母).. FFT本来是做信号变换用的,当然OI和信号变 ...

  10. Nginx图片剪裁模块探究 http_image_filter_module

    官方地址:http://nginx.org/en/docs/http/ngx_http_image_filter_module.html 煮酒品茶:前半部安装和官方说明,后半部分实践 #yum ins ...