![CSS3网页设计从入门到精通(微课精编版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/800/26846800/b_26846800.jpg)
3.3 设计图像样式
在CSS没有普及前,主要使用<img>标签的属性来控制图像样式,如大小、边框、位置等。使用CSS可以更方便地控制图像显示,设计各种特殊效果,这种用法也符合W3C标准,是现在推荐的用法。
3.3.1 定义图像大小
<img>标签包含width和height属性,使用它们可以控制图像的大小。不过CSS提供了更符合标准的width和height属性,使用这两个属性可以更灵活地设计图像大小。
【示例1】下面是一个简单的使用CSS控制图像大小的示例。
启动Dreamweaver,新建网页,保存为test1.html,在<body>标签内输入以下代码。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P72_86122.jpg?sign=1738943548-2uzWb8tZJSCQqgZCP3iB63f8AbinxxFa-0-07a99209f7765d6221f88d189fdc0917)
在<head>标签内添加<style type="text/css">标签,定义一个内部样式表,然后输入下面样式,以类样式的方式控制网页中图片的显示大小。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P72_86123.jpg?sign=1738943548-zMetxKp4yq2rt4UWvzzfjd8g56ISX2f8-0-62e3b0f85b177cdebc1ca0186a154df5)
显示效果如图3.12所示,可以看到使用CSS更方便控制图片大小,提升了网页设计的灵活性。当图像大小取值为百分比时,浏览器将根据图像包含框的宽和高进行计算。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P72_19842.jpg?sign=1738943548-VpGPchfNo8TZvHBaS0HmcqAVOIt4luiS-0-879eb04665de2aa8afb383a31c12fb7f)
图3.12 固定缩放图像
【示例2】本示例统一定义图像缩小50%,然后分别放在网页中和一个固定大小的盒子中,则显示效果截然不同,比较效果如图3.13所示。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P72_86124.jpg?sign=1738943548-ZQXhbHIEvP2x1tQxu3KCgJpIRxPcGO2z-0-9f0cff2bb7c0732f5017d9265fcaf70e)
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P72_19843.jpg?sign=1738943548-B61bTKSdfgQhOry4xwVmdHwwU01NBpwu-0-edf34e234ff53d8984d579539f2ddc56)
图3.13 百分比缩放图像
提示:当仅为图像定义宽度或高度时,则浏览器能够自动调整纵横比,使宽和高能够协调缩放,避免图像变形。但是一旦同时为图像定义宽和高,就要注意宽高比,否则会失真。
3.3.2 定义图像边框
图像在默认状态下不会显示边框,但在为图像定义超链接时会自动显示2px~3px宽的蓝色粗边框。使用border属性可以清除这个边框,代码如下:
<a href="#"><img src="images/login.gif" alt="登录" border="0" /></a>
不推荐上述用法,建议使用CSS的border属性定义。CSS的border属性不仅可以为图像定义边框,还提供了丰富的边框样式,支持定义边框的粗细、颜色和样式。
【示例1】针对上面的清除图像边框效果,使用CSS定义则代码如下:
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P73_86126.jpg?sign=1738943548-72hu01MQOR3cdKoGo1IlJ5ALuVt5rOX8-0-a626a27845fa48505318327bf7240194)
使用CSS为<img>标签定义无边框显示,这样就不再需要为每个图像定义0边框的属性。下面分别讲解图像边框样式、颜色和宽度的详细用法。
1. 边框样式
CSS为元素边框定义了众多样式,边框样式可以使用border-style属性来定义。边框样式包括两种:虚线框和实线框。
(1)虚线框包括dotted(点)和dashed(虚线)。
【示例2】在下面示例中,分别定义两个不同的点线和虚线类样式,然后分别应用到两幅图像上,效果如图3.14所示,通过比较可以看到点线和虚线的细微差异。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P73_86127.jpg?sign=1738943548-VSMl3JpApI8rTVKIdaCQuQvjxxani91j-0-0d5c6c0fc749ef8745e505f6991f6f39)
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P73_19968.jpg?sign=1738943548-QSRvGBAPH1JAZUs8WfUt0cHAMXNzkV6t-0-822f48c2a47a8f9190a8ed420c73766e)
图3.14 IE浏览器中点线和虚线的比较效果
(2)实线框包括实线框(solid)、双线框(double)、立体凹槽(groove)、立体凸槽(ridge)、立体凹边(inset)、立体凸边(outset)。其中实线框solid是应用最广的一种边框样式。
提示:双线框由两条单线和中间的空隙组成,三者宽度之和等于边框的宽度。但是双线框的值分配也会存在一些矛盾,无法做到平均分配。如果边框宽度为3px,则两条单线与其间空隙分别为1px;如果边框宽度为4px,则外侧单线为2px,内侧和中间空隙分别为1px;如果边框宽度为5px,则两条单线宽度为2px,中间空隙为1px。其他取值依此类推。
2. 边框颜色和宽度
使用CSS的border-color属性可以定义边框的颜色;使用border-width属性可以定义边框的宽度。当元素的边框样式为none时,所定义的边框颜色和边框宽度都会同时无效。在默认状态下,元素的边框样式为none,而元素的边框宽度默认为2~3px。
【示例3】在下面示例中快速定义图像各边的边框,显示效果如图3.15所示。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P74_86129.jpg?sign=1738943548-2nOeAaxOoc9rGL7oW6yNF2M0gfc9As0l-0-11224a80dc35973b71b48a17ec1041ca)
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P74_20120.jpg?sign=1738943548-FbNqvy3jU6WPsHVdScbGBD0sYoMxl5wH-0-0d2de4a21010a44d6655421bb4961d45)
图3.15 定义各边边框的样式效果
【示例4】下面示例配合使用不同复合属性自定义各边样式,分别用border-style、border-color和border-width属性自定义图像各边边框样式,效果如图3.16所示。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P74_86130.jpg?sign=1738943548-VHzjOnKdOEj79Pp4tZDJdwOU7U6skAHh-0-80c2340df1ff79c509974e2929c0b99d)
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P74_20121.jpg?sign=1738943548-g8qfrIpmIqKkJdE3FUPs8zk4zDWocARZ-0-d19ff5ce888347e2e0bd3a83e24f0f42)
图3.16 自定义各边边框的样式效果
如果各边样式相同,使用border会更方便设计。
【示例5】下面示例定义各边样式为红色实线框,宽度为20px。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P75_86131.jpg?sign=1738943548-62V2g8kwxWobbHHOmOYXrUcKW6gVYDJV-0-dc5afecf8998d73c0c23b827d557dfb8)
在上面代码中,border属性中的3个值分别表示边框样式、边框宽度和边框颜色,它们没有先后顺序,可以任意调整顺序。
3.3.3 定义不透明度
在CSS3中,使用opacity可以设计图像的不透明度。该属性的基本用法如下:
opacity:0~1;
参数取值范围为0~1,数值越小,透明度越高,0为完全透明,而1表示完全不透明。
提示:早期IE浏览器使用CSS滤镜定义透明度,基本用法如下:
filter:alpha(opacity=0~100);
参数取值范围为0~100,数值越小,透明度越高,0为完全透明,100表示完全不透明。
【示例】在下面这个示例中,先定义一个透明度样式类,然后把它应用到图像中,并与原图进行比较,演示效果如图3.17所示。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P75_86133.jpg?sign=1738943548-C496G68VdM35EXA6cNIba6yNTzv3PTH0-0-b537832d3c8fd3abb401c98aeee27f3e)
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P75_20258.jpg?sign=1738943548-AaY650nmjnlxxHeZqJBVqekXvGG0qoeW-0-86f48fc0ff76fa33422a029832a62120)
图3.17 图像透明度演示效果
3.3.4 定义圆角特效
CSS3新增了border-radius属性,使用它可以设计圆角样式。该属性用法如下:
border-radius:none | <length>{1,4} [/ <length>{1,4}]?;
border-radius属性初始值为none,适用于所有元素,除了border-collapse属性值为collapse的table元素。取值简单说明如下。
none:默认值,表示元素没有圆角。
<length>:由浮点数字和单位标识符组成的长度值,不可为负值。
为了方便定义元素的4个顶角圆角,border-radius属性派生了4个子属性。
border-top-right-radius:定义右上角的圆角。
border-bottom-right-radius:定义右下角的圆角。
border-bottom-left-radius:定义左下角的圆角。
border-top-left-radius:定义左上角的圆角。
提示:border-radius属性可包含两个参数值:第一个值表示圆角的水平半径,第二个值表示圆角的垂直半径,两个参数值通过斜线分隔。如果仅包含一个参数值,则第二个值与第一个值相同,它表示这个角是一个四分之一圆角。如果参数值包含0,则就是矩形,不会显示为圆角。
【示例】下面示例分别设计两个圆角类样式,第一个类r1为固定12px的圆角,第二个类r2为弹性取值50%的椭圆圆角,然后分别应用到不同的图像上,演示效果如图3.18所示。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P76_86135.jpg?sign=1738943548-ZUcl9mF9udBvNjnTIZzBK25UsqZ0qawX-0-c64efb84f1b522ada0fb03225e575103)
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P76_20350.jpg?sign=1738943548-xLg39BUDIilEDmS2I8YBAjIN87Jm5xE8-0-747429d1092a442186da31664dcd81fa)
图3.18 圆角图像演示效果
3.3.5 定义阴影特效
CSS3新增了box-shadow属性,该属性可以定义阴影效果。该属性用法如下:
box-shadow:none | <shadow> [, <shadow>]*;
box-shadow属性的初始值是none,该属性适用于所有元素。取值简单说明如下。
none:默认值,表示元素没有阴影。
<shadow>:该属性值可以使用公式表示为inset && [ <length>{2,4} && <color>?],其中inset表示设置阴影的类型为内阴影,默认为外阴影;<length>是由浮点数字和单位标识符组成的长度值,可取正值或负值,用来定义阴影水平偏移、垂直偏移,以及阴影大小(即阴影模糊度)、阴影扩展。<color>表示阴影颜色。
提示:如果不设置阴影类型,默认为投影效果,当设置为inset时,则阴影效果为内阴影。X轴偏移和Y轴偏移定义阴影的偏移距离。阴影大小、阴影扩展和阴影颜色是可选值,默认为黑色实影。box-shadow属性值必须设置阴影的偏移值,否则没有效果。如果需要定义阴影,不需要偏移,此时可以定义阴影偏移为0,这样才可以看到阴影效果。
【示例1】在下面这个示例中,设计一个阴影类样式,定义圆角、阴影显示,设置圆角大小为8px,阴影显示在右下角,模糊半径为14px,然后分别应用到第二幅图像上,演示效果如图3.19所示。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P77_86137.jpg?sign=1738943548-9fy6viz7IV7eUfpQKYbrjCirKiB7N8Vu-0-e9b33c89bbc0504ec3d512b242f3d15f)
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P77_20477.jpg?sign=1738943548-kNiyAiB6tjhojpfve2UM6xPO8MJlXTGT-0-dd22c1909128241810d79ace72515594)
图3.19 阴影图像演示效果
【示例2】box-shadow属性用法比较灵活,可以设计叠加阴影特效。例如,在上面示例中,修改类样式r1的代码如下,通过多组参数值定义渐变阴影效果,如图3.20所示。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P77_86138.jpg?sign=1738943548-SeRufZ2tnDEMILSwVT5O56LaelBUaurf-0-4f2c8222a73ecc1386af35afdfab51a9)
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P78_20547.jpg?sign=1738943548-gyvlIa7R0sj2X48oyZQT8GxCkwwDEH7j-0-48ed834a737bc588850e01e068c320ed)
图3.20 设计图像多层阴影效果
提示:当设计多个阴影时,需要注意书写顺序,最先写的阴影将显示在最顶层。如在上面这段代码中,先定义一个10px的红色阴影,再定义一个10px大小、10px扩展的阴影。显示结果就是红色阴影层覆盖在黄色阴影层之上,此时如果顶层的阴影太大,就会遮盖底部的阴影。