23.4.3 实例—圆角制作

在网页中,各个模块都用圆角作为背景,这样看上去给人的感觉更舒服。本小节用实例来讲解如何用定位属性来做圆角效果,同时还会用到前面章节学习的背景,原理就是用背景图来覆盖角的位置,选择好四个角的图片,现在就开始利用定位来做圆角。

(1)提供效果图,并准备好素材。下面列出圆角效果图和其完整代码,读者先看代码23.6,然后分析下面步骤是如何实现效果的。

代码23.6 源代码\第23章\实例—圆角制作.html


—————————————文件名:实例——圆角制作.html—————————————

01 <html>

02 <head>

03 <title>实例——圆角制作</title>

04 <style type="text/css">

05 body

06 {

07 /整个背景为黄色/

08 background:yellow;

09 }

10 #p

11 {

12 width:300px;

13 height:120px;

14 /设置为相对定位/

15 position:relative;

16 /设置4边边框/

17 border:1px solid#a7a5a5;

18 /对象背景为黑色/

19 background:#000000;

20 /字体为白色/

21 color:#ffffff;

22 }

23 #plefttop

24 {

25 /确定该对象的大小/

26 width:8px;

27 height:8px;

28 /设置为绝对定位/

29 position:absolute;

30 /设置对象向左移1像素/

31 left:-1px;

32 /设置对象向上移1像素/

33 top:-1px;

34 /背景属性取背景图片的位置并不重复/

35 background:url(bg.gif)no-repeat-2px-3px;

36 }

37 /下面的注解与#plefttop相似,故不做注解/

38 #prighttop

39 {

40 width:8px;

41 height:8px;

42 position:absolute;

43 right:-1px;

44 top:-1px;

45 background:url(bg.gif)no-repeat-2px-32px;

46 }

47 #pleftbottom

48 {

49 width:8px;

50 height:8px;

51 position:absolute;

52 left:-1px;

53 bottom:-1px;

54 background:url(bg.gif)no-repeat-2px-18px;

55 }

56 #prightbottom

57 {

58 width:8px;

59 height:8px;

60 position:absolute;

61 right:-1px;

62 bottom:-1px;

63 background:url(bg.gif)no-repeat-3px-49px;

64 }

65 </style>

66 </head>

67 <body>

68 <div id="p">

69 <div id="plefttop"></div><div id="prighttop"></div>

70 <p>

71 这个层是要设置成圆角,文字为白色,边框为黑色。用到的是这个圆角素材<img

72 src="bg.gif">

73

74 <div id="pleftbottom"></div><div id="prightbottom"></div>

75 </div>

76 </body>

77 </html>


【代码解析】在代码23.6中,用一个层包含4个带有背景图片的小层,代码第19行设置容器层的背景为黑色,字体为白色,层中显示的图片就是下面用background对其操作的素材,最终效果如图23.6所示。

23.4.3 实例—圆角制作 - 图1

图 23.6 实例—圆角制作完效果

(2)在基本代码中插入层,并设置边框以区分层大小。本步骤操作的是在网页中建层对象,并设置边框和部分文字。

现在从新建网页开始,从前面学的知识可知,插入样式代码即可在<head></head>中放入<style></style>标记对,然后配合<body></body>中的标记进行操作。

由于步骤(1)提供了完整代码,以后步骤只对关键代码列出并讲解,下面是对样式的操作。


01 <style type="text/css">

02 body

03 {

04 /设置黄色背景/

05 background:yellow;

06 }

07 #p

08 {

09 /设置对象宽和高,定位是相对定位,还有1像素的边框/

10 width:300px;

11 height:100px;

12 position:relative;

13 border:1px solid#a7a5a5;

14 }

15 </style>


【代码解析】代码第7~14行为P的样式设置。

在标记中放入一层,设置ID为p,输入文字,再插入一张要用到的图片素材,图片由圆角组成,共四个,按效果都要覆盖层P中的四个角,代码如下。


01 <body>

02 <div id="p">

03 <p>

04 这个层是要设置成圆角,文字为白色,边框为黑色。用到的是这个圆角素材<img

05 src="bg.gif">

06

07 </div>

08 </body>


通过上面CSS代码和标记的说明,本步骤的效果如图23.7所示。

23.4.3 实例—圆角制作 - 图2

图 23.7 文字和边框

(3)用不同的层设置定位属性来覆盖容器层的四个角,使背景为各层的背景效果,这样就达到了圆角效果,具体实现要在层对象中加入四个层,然后在CSS中来设置各层的定位属性。下面先对左上角的圆角进行设置,下面的样式是新加入的,本代码效果只控制层中ID设置为plefttop的层。


01 #plefttop

02 {

03 width:8px;

04 height:8px;

05 position:absolute;

06 left:-1px;

07 top:-1px;

08 background:url(bg.gif)no-repeat-2px-3px;

09 }


【代码解析】分析这个样式,代码第3~4行设置宽和高都为8像素,表示该层要在容器层中覆盖的大小,设置定位为绝对;在代码第5行,要对本容器层起作用则需要在容器层设置相对定位(注意到了吗?容器层设置为相对定位);然后在代码第6、7行,使该层往左和上端各移动1像素,刚好把边框的那部分遮住,用到的是背景图片bg.gif,其中-2和-3表示对背景图片的取坐标位置。设置完CSS代码后,HTML中的ID选择符就被CSS关联起来了,其代码如下。


<div id="p">

<div id="plefttop"></div>

<p>

这个层是要设置成圆角,文字为白色,边框为黑色。用到的是这个圆角素材<img src="bg.gif">

</div>


只对一个角进行设置,其他的角的设置方法类似,上面的设置效果如图23.8所示。

23.4.3 实例—圆角制作 - 图3

图 23.8 对左上端圆角设置

(4)调节边框与圆角背景,使其看上去更加美观,并设置层内背景。由步骤(3)可知,其他角设置只对定位方向进行设置,如对象prighttop的是向上面右端位置,同理负值往不同方向移动1像素遮住边框,同理,其他设置只对方向和背景取值不同,样式代码如下。


01 #prighttop

02 {

03 width:8px;

04 height:8px;

05 position:absolute;

06 right:-1px;

07 top:-1px;

08 background:url(bg.gif)no-repeat-2px-32px;

09 }

10 #pleftbottom

11 {

12 width:8px;

13 height:8px;

14 position:absolute;

15 left:-1px;

16 bottom:-1px;

17 background:url(bg.gif)no-repeat-2px-18px;

18 }

19 #prightbottom

20 {

21 width:8px;

22 height:8px;

23 position:absolute;

24 right:-1px;

25 bottom:-1px;

26 background:url(bg.gif)no-repeat-3px-49px;

27 }


在代码HTML的<body></body>中,与步骤(3)的区别就是多了几个层,代码如下。


<div id="p">

<div id="plefttop"></div><div id="prighttop"></div>

<p>

这个层是要设置成圆角,文字为白色,边框为黑色。用到的是这个圆角素材<img src="bg.gif">

<div id="pleftbottom"></div><div id="prightbottom"></div>

</div>


这样就完成了四个角的设置,有点圆角的感觉了,效果如图23.9所示。

23.4.3 实例—圆角制作 - 图4

图 23.9 4个圆角设置

(5)完成圆角制作。在容器层中设置背景为黑色,相反字体为白色,这样的效果就表达出来了,CSS代码如下。


01 #p

02 {

03 width:300px;

04 height:120px;

05 position:relative;

06 /设置了边框颜色/

07 border:1px solid#a7a5a5;

08 /背景颜色/

09 background:#000000;

10 /字体颜色/

11 color:#ffffff;

12 }


整个效果就这样完成了,本实例主要讲解圆角的制作,除了要求对代码的掌握外还得要求有美工(专给网站设置效果图的工作人员)的图片,再用图片来实现网页的效果,本实例最终效果如图23.10所示。

23.4.3 实例—圆角制作 - 图5

图 23.10 圆角最终效果

说明 用程序来实现圆角只是用四个不同的层,去覆盖四个角的位置。使视感觉上达到圆角效果。