作为大多数网站的一个重要组成部分,图像可以让网站看上去趣味盎然并给人留下深刻印象。设计方案中的图形元素能够构成网站品牌和视觉性标识的基础,使网站鹤立于万维网上不计其数的名种网站之中。
图像有装饰的作用,也有交流的功能。图像也属于内容而且有些概念更适合于用这种形象化的方式来传达。照片、插图、微标、图标、地图、图表和曲线图能用单靠文本可能无法办到的方式把你的想法解释清楚。尽管如此,要记住不是所看访问网站的人都能看见图像。
在 XHIML 文档中可以用img元素引用作为内容的图像,Web 浏览器会将其与文本一起呈现。但是目前浏览器对 object 元素的支持还不完善,而且缺乏一致性,所以使用img 元素仍然是首选的可靠方法。完全起装饰作用(而不传达信息)的图像应该用 CSS 附加到页面上,以便实现表现因素和内容的分离。
1、数字图像的工作原理
与存储在计算机的电子存储器中的其他东西一样,数字图像只不过是组织在一个虚拟文件中的一系列 1 和 0 组成的数据。计算机读取这批数字[每个数字称为一个位(bit),然后把它们成组成组地翻译为信号并传送到显示设备,在那里这些位会被转化为人眼可见的有色光(鲜红、深蓝、浅灰等)的小点。文件中还包含有经过编码的说明,描述了应该如何排列这些光点[ pixel(像素),这是"picture elements(图像元素)” 的缩写]——就像瓷砖镶嵌画一样——组成一幅可识别的图像。
因为这些图像是按“ 位的图纸” 组装而成的,所以被称为位图化图像( bitmapped image)。 在 Web上用来显示图像的就是位图。把每一个像素的颜色和位置信息累加起来是一个庞大的数据量。
用于 Web 的图像通常要经过压缩以降低文件的大小,以便即使是使用较慢的因特网连接,网页的下载时间也在可忍受的范围内。通过减少所存储的颜色或像素的数量,都可以大大降低文件的总体大小。如果你曾经通过慢速因特网连接下载过大文件,你就会知道那是一个何其折磨人的 过程。压缩图像的目标,是在不过多牺牲原始图片质量的前提下获得尽可能小的文件。
2、可用于 Web 的图像格式
用于 Web 的图像有 3 种压缩格式: JPEG、 GIF 和 PNG。其他格式的图像可能不能被浏览器呈现,所以你应该只使用 JPEG、 GIF 和 PNG 格式。几乎所有你可能会用来创建或编辑数字图像的程序都能用导出这些格式的文件。
①JPEG
JPEG(读作"jay-peg’’)代表联合图像专家组(Joint Photographic Experts Group),是发明这种格式的组织的名称。这种压缩方案先对像素的平均颜色值进行采样,然后抛弃冗余像素,以此降低文件大小。以后在对图像进行解压和呈现时,会根据存储的样本重建那些被删除的像素。
因为 JPEG 压缩会损失一些信息,所以它被称为有损的(lossy) 压缩。解压后的 JPEG 图像不可能达到与原始图像一样的质量。 JPEG 实际上是一种图像质量损失可调节(variable-loss)的格 式,可以在不同的失真级别下进行压缩。压缩率越高意味着有更多像素被抛弃,而所得到的文件也就越小,但在图像质量上要付出代价。高压缩率的 JPEG 图像看上去有些模糊,并且带有一些 被称为 artifact 的斑驳的污迹,那就是像素被重建的地方。压缩程度越高的图像其文件越小,但质量也越差。
每次编辑和保存一张 JPEG 图像的时候,实际上是再次压缩一张已经被压缩过的图像, 在此过程中又会损失一些数据。
JPEG 格式通过牺牲像素来节省磁盘空间,但它能在相对较小的文件中存储大量颜色信息, 因此比较适合于照片和其他一些具有大量不同颜色的图像,以及一些存在一种颜色平滑地过渡到另一种颜色[称为连续色调( continuous tone)]的情况的图像。JPEG 文件的文件扩展名是“.jpeg” 或".jpg",较短的一个更常见,因为有些计算机操作系统不允许使用 4 个(或更多)字符的文件扩展名。
②GIF
GIF 代表图形交流格式( Graphic Interchange Format)。它通过减少文件中保存的颜色数目来压缩图像,但保留了每一个像素的位置信息。因为 GIF 被认为是一种无损格式,所以比较适合于徽标、图标,以及包含有文本、需要维持清晰的轮廓以便阅读的图像。一个 GIF 图像最多能包含 256 种不同颜色,也可以包含更少的颜色。保存的颜色数目越少,文件也就越小。曲线图、地图、素描和其他具有大面积纯色或颜色种类很少的图像,都适合使用 GIF 格式。
GIF 图像还可以包含透明区域,图像后面的东西能够透过这些区域显示出来。一个像素要么完全透明,要么完全不透明,因此在透明区域和不透明区域交界处会形成锯齿状边缘。大多数图像编辑程序都允许为透明 GIF 图像指定一种杂边色(matte color),你可以将其设置为与页面背景色相同,以尽可能地减轻锯齿现象。
GIF的另一个显著特点是它支持初级的动画。一幅图像可以由许多帧组成,它们依次显示, 产生一些很酷的(也可能是很恼人的)效果。GIF动画中的每一帧都有额外的信息需要存储,所以自然会增加文件的大小。
GIF 文件使用扩展名“.gif”。
③PNG
可移植网络图形( Portable Network Graphic,缩写为 PNG)这种格式是作为专利性的GIF 格式 的自由的后继者而被发明的。与 GIF 一样, PNG 图像最多也只能包含 256 种颜色(这称为 8 位色,因为每个像素用 8 位数据来描述颜色时最多只有 256 个不同值),它对透明的支持也与 GIF 一样。由于采用了一种不同的压缩方案, 8 位 PNG 文件有时 比 GIF 文件更小。
PNG 格式的另一个变体支持 24 位色,所以能包含上百万种不同颜色。在这方面,它与 JPEG相似,但其文件往往比 JPEG 格式的更大。可以说, 24 位 PNG 图像最出色的特点在于它包含了一 个透明度的 alpha 通道( alpha channel),就像是在图像中嵌入的一个不可见层, 用于定义半透明区域。GIF 或 8位 PNG 中的透明像素是完全透明的,而 24位PNG 中的像素则可以是半透的,使某些部分的背景可以像透过半透明的膜一样透过图像显示出来。
许多较老的浏览器不完全支持具有 alpha 透明度的 PNG 图像,其中包括 Windows平台上的第 7 版之前的 IE。在这些老式浏览器过气之前,倘若你要使用 alpha 透明度的 PNG 图像,一定要谨慎从事。
PNG 文件使用扩展名 “.png”, 其发音是令人愉快的“ping”。
3、在内容中加入图像
网页上的文本内容是 XHTML 文档的一部分,它们被用来表明每一串词语的含义和用途的标签包围着。相比之下,图像是外部文件,实际上根本不是文档的一部分。在 XHTML 文档中使用 img 元素(或 object 元素,但 img 更常见,也更可靠)引用图像。呈现一个包含图像的网页分两个阶段:先是下载标记代码,然后再下载外部图像。只要 img 元素出现在文档里,浏览器就会从 Web 服务器获取它所引用的文件,并将其呈现在页面上以替代该元素。
①<img>
行内元素 img 被认为是一种替换元素(replaced element),因为被呈现的并不是元素本身。它也是没有任何文本内容的空元素,所以必须用一个结尾斜线 ( />) 自闭合。img 元素需要使用 src 属性声明图像文件的来源,其值是一个指向该文件在 Web 服务器上的位置的 URL (绝对的和相对的均可)。
alt 也是一个必需属性,它提供了与图像等价的替代性文本。如果无法获得图像,或者浏览器不能显示图像,那么将显示它所指定的替代性文本。还提高了网页对于有视力障碍的人的可访问性。下列代码显示了一个只包含src 和 alt 属性的 img 元素,这两个属性是保证 img 的有效性的最起码要求。
<img src="images∕pizza.jpg" alt="A pizza with sausage and olives" />
<a href="about.htm">关于我们</a>
”中的链接短语就是“关于我们”。<img src="/images/piechart.gif" alt="A pie chart showing the proportional popularities of different pizza toppings" longdesc="/toppings.html"/>
②上下文中的图像
img 是行内元素,因此它会显示在同一行上的毗邻文本的旁边,其底端与文本基于同一条不可见的基线。
<p><img src="/images/pizza.jpg" width="18θ" height="110" alt="A close-up of one of our delicious pizzas"/>
We handcraft our pizzas on the spot using only the best ingredients, and then we bake them to perfection in our rustic wood-fired brick oven.</p>
它在图形化浏览器中的显示结果:行内图像的底端与文本基于同一基线。
如果图像、文本或者两者被分别包含在块级元素(如 div 或 p) 中,那么标准的块行为将发挥作用,浏览器会产生恰当的换行。但这一次 img 元素位于段落之外,包装在自己的 div 元素之中。
<div><img src="/images/pizza.jpg" width="18θ" height="110" alt="A close-up of one of our delicious pizzas" /></div>
<p>We handcraft our pizzas on the spot using only the best ingredients, and then we bake them to perfection in our rustic wood-fired brick oven.</p>
图像(包含它的 div)和段落呈现在不同行上,div 和 p 都是块级元素,因此显示在各自的行上。
body 元素只能包含块级元素。而 img 是行内元素,所以它不能直接包含在 body 当中, 而是必须用一个块级容器加以包装,以保证 XHTML 文档的有效性。
两个或更多图像显示在一起时,其表现与别的行内元素一样。它们会像一组相邻的词那样一个挨一个地排在同一基线上。而且,与一串文字一样,如果一行的宽度不足以容纳相邻的一组图像,将会自动进行换行,把这些图像显示在几行上。
③让文字环绕图像
在 HTML 的早期版本中,使用一种现在已经废弃的 align属性实现这种效果,但是现在可以用 CSS 中的 float 属性做同样的事。
float 属性有 3 种值: left, right, none。当一个元素“ 浮动” 起来的时候,它会尽可能地向某一边(左边或右边)移动,直到(外)边缘碰到包含块的(内)边缘(或直到碰到另一个浮动元素)。
随后的文字或元素将绕开浮动元素向下流动。默认值 none 主要用于覆盖样式表中另一条规则给予元素的浮动属性。
在代码中,有一幅图像,后面跟着一段文字(二者都包含在同一个段落中)。其中,img 元素设置了 class 属性,以便对其应用 CSS 规则。
<p><img src="images/pizza.jpg" width="18θ" height="110" class="figure" alt="A close-up of one of our delicious pizzas"/>
Spaghetti & Cruft opened our doors in 1999, bringing great pizza and pasta to the heart of the city's trendy Riverbend district.We handcraft our pizzas on the spot using only the best ingredients, and then we bake them to perfection in our rustic wood-fired brick oven. We sell pizza by the slice or by the pie and even offer catering for any occasion all around the neighborhood.</p>
这个图像属于 figure 类。显示了针对这个类的 CSS 规则,它声明这类元素应该向左浮动:图像浮动到段落的左边,随后的文字绕过它向下流动。
.figure{
float:left;
}
行内图像与毗邻文字基于同一基线。但是当图像浮动到某一边时,它的顶端将与其所在行的顶端平齐,而图像本身则向下延伸并越过基线。在前面的例子中,环绕的文字直接抵到了图像的边缘,不便于阅读。可以通过修改 CSS 规则为浮动的图像指定一点边距,以便在图像与文字之间创造一点空间。
.figure {
float: left;
margin-right: 1em;
margin-bottom: .5em;
}
只有右边和下边需要边距,因为上边和左边不与文字接触。让上边和左边的边距保持默认值 0,使这两边与包含图像的段落的不可见的(内)边缘紧贴在一起。浮动图像现在有了一点喘息空间,边距扩大了图像的浮动的影响范围,现在文字环绕在图像的边距之外。
4、背景图像
使用 CSS 的 background-image 属性,可以向页面中加入装饰性的图像,而且不会把表现性的因素与内容混在一起。那些属于富有意义的内容的图像应该和其他内容放在一起。 XHTML 中几乎所有元素都能设置背景图像,元素的内容就覆盖在背景之上。默认情况下背景图像将在纵、横两个方向平铺:从元素左上角开始,在纵向和横向反复绘制,直到填满元素拥有的区域,这就像 厨房地板铺的瓷砖。
下例展示了一条为 body 元素设置背景图像的 CSS 规则。图像通过其 URL 指定, URL 包含在一对括号中,前面用关键字 url 标明:图形化浏览器呈现文档时,将用这个图像铺满其窗口。
body {
background-image: url(/images/background∙gif);
}
可以用 background-repeat 属性改变默认的平铺方式,说明图像应该只在横向平铺、只在纵向平铺或者根本不进行平铺。下例声明背景图像应该沿 x 轴横向平铺:图像现在只横贯页面顶端进行重复绘制,并未向下重复绘制。
body {
background-image: url(/images/background.gif);
background-repeat: repeat-x;
}
repeat-y 值将使图像在纵向平铺,但不在横向平铺:
body {
background-image: url(/images/background.gif);
background-repeat: repeat-y;
}
background-repeat 的默认值是 repeat,如果有必要,你可以用它覆盖别的规则中指定的其他值。也可以用 no-repeat 值完全禁止平铺:图像只出现了一次,在两个方向都没有进行平铺
body {
background-image:url(∕images/background.gif);
background-repeat: no-repeat;
}
如果背景图像比它所装饰的元素更大,那么元素的区域就像是一个用于界定背景中可见部分的窗口。背景图像比它所应用到的元素(本例中是一个 div) 大得多,所以背景图像的有些部分被隐藏了。
如果由于加入了更多内容、增大了文字的尺寸或者用 CSS 改变了元素的尺寸等原因,元素发生扩张,那么图像中将有更多的部分显露出来。
使用背景图像时要小心,不要让它们过多地妨碍内容的可阅读性。此外,还应该将背景色设置为一种与文字的前景色有鲜明对比的纯色(使用 CSS 的 backgroundcolor 属性) ,以防图像不能显示。在大多数现代浏览器的默认设置中,文字的颜色是黑色,其背景是白色。如果你的设计方案中使用了深色背景图像上的浅色文字,那么你还应该把背景色设置为一种深色。背景图像会盖住背景色,但是如果图像不能显示, 那么背景色将会显示出来。
5、定位背景图像
默认情况下,背景图像被放置在元素的左上角,CSS的background-position 属性控制着背景图像的位置。如果允许图像平铺,那么 background-position 的值表示平铺图案的起始位置。
这个属性接受两个值,一个用于横向位置,另一个用于纵向位置。横向值应该出现在纵向值之前,如果只指定一个值,它将被当做横向值。下面展示了用于将背景图像放置在 div 元素的右下角的 CSS 代码:图像被定位到元素的右下角,div 元素的高度与其内容的高度相同,所以它的底端没有抵到窗口底端。若非特意声明,元素的高度总是取决于其内容的高度。
div{
background-image: url(∕images∕background.gif);
background-repeat: no-repeat;
background-position: right bottom;
}
background-position 的值可以指定为关键字、长度值和百分数。用于指定横向位置的关键字有left、center 和 right,用于指定纵向位置的有 top、center 和 bottom 。注意,关键字center 既可用于指定横向位置,也可用于指定纵向位置。用于纵向时,它代表元素高度的一半,用于横向时, 它代表元素宽度的一半。
长度值就是一个带有度量单位的数值,如 10px、20mm或3.5em,两个值不必使用同样的单位。长度为 0 时不需要使用单位。background-position 属性指定了两个长度值,将图像放置在距左端 40 像素、距顶端 3em 的位置。
body {
background-image: url(∕images∕background.gif);
background-repeat: no-repeat;
background-position: 40p× 3em;
}
如果用百分数来定位背景图像,必须同时考虑图像以及它所装饰的元素的尺寸。将背景图像设置为距元素左边 75%,也会把参考点移到距图像的左边 75%的位置。在用 50%这个值定位背景图像时:背景图像的放置位置位于元素的中心。
对于基于度量单位的长度值来说则不是那么一回事。非百分数的长度值表示的总是从元素左上角到图像左上角的距离。
JPEG、GIF 和 PNG是3种用于压缩Web上使用的图像的流行文件格式。不同类型的图像应该选择不同的格式。色彩丰富的照片应该使用JPEG,具有纯色的文字和插图或者具有透明色的图像应该使用GIF或8位 PNG,具有alpha透明度的图像应该使用24位PNG。
本文地址:https://blog.csdn.net/CheryW/article/details/107359386
如对本文有疑问, 点击进行留言回复!!
XSS训练网站XSS Challenges所有题目解(中篇)
如何给未越狱的ios下载历史版本的app?未越狱IOS系统安装历史版本软件的方法,iPhone未越狱的手机如何安装旧版本APP?
Unity Android playerSetting相关设置
网友评论