![CSS3+DIV网页样式与布局从入门到精通(微课精编版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/876/25456876/b_25456876.jpg)
4.2 设计背景图像样式
下面学习如何使用CSS设计背景图像的显示样式。
4.2.1 定义背景图像
![](https://epubservercos.yuewen.com/782D5E/13908176403385506/epubprivate/OEBPS/Images/Figure-P126_82370.jpg?sign=1739476647-PfqamBdmT3SEvN3CCc2A1fIjUjLOPlZa-0-18d6f81c8b396e0739da120df366a1ff)
视频讲解
在CSS中可以使用background-image属性来定义背景图像。具体用法如下。
background-image:none | <url>
默认值为none,表示无背景图;<url>表示使用绝对或相对地址指定背景图像。
提示:GIF格式的图像可以设计动画、透明背景等,图像小巧,而JPG格式的图像具有更丰富的颜色数,图像品质相对要好,PNG类型综合了GIF和JPG两种图像的优点。
【示例】如果背景包含透明区域的GIF或PNG格式图像,则被设置为背景图像时,这些透明区域依然被保留。在本示例中,先为网页定义背景图像,然后为段落文本定义透明的GIF背景图像。显示效果如图4.10所示。
<style type="text/css"> html, body, p{ height:100%;} body {background-image:url(images/bg.jpg);} p { background-image:url(images/ren.png);} </style> <p></p>
![](https://epubservercos.yuewen.com/782D5E/13908176403385506/epubprivate/OEBPS/Images/Figure-P126_82365.jpg?sign=1739476647-OGlqs5JGrQnYEHJGGSZdZY7tfPhhUnJY-0-78a3c6ad45facf4baffe02abc09d03d9)
图4.10 透明背景图像的显示效果
4.2.2 定义显示方式
![](https://epubservercos.yuewen.com/782D5E/13908176403385506/epubprivate/OEBPS/Images/Figure-P127_117671.jpg?sign=1739476647-91iJaKBoD6jMGVyfzOuZHWX9i37C2TvB-0-a5761d7741022558727c800eb9b8a316)
视频讲解
CSS使用background-repeat属性控制背景图像的显示方式。具体用法如下。
background-repeat:repeat-x | repeat-y | [repeat | space | round | no-repeat]{1,2}
取值说明如下。
☑ repeat-x:背景图像在横向上平铺。
☑ repeat-y:背景图像在纵向上平铺。
☑ repeat:背景图像在横向和纵向平铺。
☑ round:背景图像自动缩放直到适应且填满整个容器,仅CSS3支持。
☑ space:背景图像以相同的间距平铺且填满整个容器或某个方向,仅CSS3支持。
☑ no-repeat:背景图像不平铺。
【示例】本示例设计了一个公司公告栏,其中宽度是固定的,但是高度可能会根据正文内容进行动态调整,为了适应这种设计需要,不妨利用垂直平铺来进行设计。
第1步,把“公司公告”栏目分隔为上、中、下3块,设计<div id="call_tit">和<div id="call_btm">为固定高度,而中间块<div id="call_mid">可以随时调整高度。设计的结构如下。
<div id="call"> <div id="call_tit">公司公告</div > <div id="call_mid"></div > <div id="call_btm"></div > </div>
第2步,所实现的样式表如下,最后调整中间块元素的高度,以形成不同高度的公告牌,演示效果如图4.11所示。
![](https://epubservercos.yuewen.com/782D5E/13908176403385506/epubprivate/OEBPS/Images/Figure-P128_147486.jpg?sign=1739476647-hEHrL40yMNcuoN6MdhZWunxzsq168gmS-0-ba501920318360c0dc76eb53460355ca)
![](https://epubservercos.yuewen.com/782D5E/13908176403385506/epubprivate/OEBPS/Images/Figure-P128_82451.jpg?sign=1739476647-0hC7Q2fRrYOQdP0yWVuWQxB9Y32JfgC5-0-63956b1fb55e541f926e0d96cbd2c8f6)
图4.11 背景图像垂直平铺示例模拟效果
4.2.3 定义显示位置
![](https://epubservercos.yuewen.com/782D5E/13908176403385506/epubprivate/OEBPS/Images/Figure-P128_82478.jpg?sign=1739476647-kRKAZ7aM2Fjvd9S2VgH9AHWBVZ0qweph-0-1a3c3987d63d0078aa96c203ba84d283)
视频讲解
在默认情况下,背景图像显示在元素的左上角,并根据不同方式执行不同的显示效果。为了更好地控制背景图像的显示位置,CSS定义了background-position属性来精确定位背景图像。
background-position属性取值包括两个值,分别用来定位背景图像的x轴、y轴坐标,取值单位没有限制。具体用法如下。
background-position:[ left | center | right | top | bottom | <percentage> | <length> ] | [ left | center | right | <percentage> | <length> ] [ top | center | bottom | <percentage> | <length> ] | [ center | [ left | right ] [ <percentage> | <length> ]? ] && [ center | [ top | bottom ] [ <percentage> | <length> ]? ]
默认值为0% 0%,等效于left top。
【示例】本示例利用4个背景图像拼接起来组成一个栏目版块,这些背景图像分别被定位到栏目的4条边上,形成一个圆角矩形,并富有立体感,效果如图4.12所示。
![](https://epubservercos.yuewen.com/782D5E/13908176403385506/epubprivate/OEBPS/Images/Figure-P129_117693.jpg?sign=1739476647-9QqYlpxR7P22YuJmQe5UomAIoXVbbQyH-0-eaf2fdb308de8c2885c5a0db37e3c52b)
图4.12 背景图像定位综合应用
示例所用到的HTML结构代码如下。
<div id="explanation"> <h3><span>这是什么?</span></h3> <p class="p1"><span><span class="first">对</span>于网页设计师来说应该好好研究<acronym title="cascading style sheets">CSS</acronym>。Zen Garden致力于推广和使用CSS技术,努力激发和鼓励您的灵 感和参与。读者可以从浏览高手的设计作品入门。只要选择列表中的任一个样式表,就可以将它加载到这个页 面中。<acronym title="hypertext markup language">HTML</acronym>文档结构始终不变,但是读者可以自由地 修改和定义<acronym title="cascading style sheets">CSS</acronym>样式表。</span></p> <p class="p2"><span><acronym title="cascading style sheets">CSS</acronym>具有强大的功能,可以自 由控制HTML结构。当然读者需要拥有驾驭CSS技术的能力和创意的灵感,同时亲自动手,用具体的实例展示 CSS的魅力,展示个人的才华。截至目前,很多Web设计师和程序员已经介绍过许多关于CSS应用技巧和兼 容技术的各种技巧和案例。而平面设计师还没有足够重视CSS的潜力。读者是不是需要从现在开始呢? </span></p> </div>
根据这个HTML结构所设计的CSS样式表如下,请注意背景图像的定位方法。
![](https://epubservercos.yuewen.com/782D5E/13908176403385506/epubprivate/OEBPS/Images/Figure-P130_147491.jpg?sign=1739476647-iDLgLKqIZIPRR2kihyZJZlSasHan31vV-0-c5671b1e7a7af2e1c5b9ac4979f523bf)
在上面的样式表中,分别为不同元素定义背景图像,然后通过定位技术把背景图像定位到对应的4条边上,并根据需要运用平铺技术实现圆角区域效果。
注意:百分比是最灵活的定位方式,同时也是最难把握的定位单位。
在默认状态下,定位的位置为(0% 0%),定位点是背景图像的左上顶点,定位距离是该点到包含框左上角顶点的距离,即两点重合。
如果定位背景图像为(100% 100%),定位点是背景图像的右下顶点,定位距离是该点到包含框左上角顶点的距离,这个距离等于包含框的宽度和高度。
百分比也可以取负值,负值的定位点是包含框的左上顶点,而定位距离则由图像自身的宽和高来决定。
CSS还提供了5个关键字:left、right、center、top和bottom。这些关键字实际上就是百分比特殊值的一种固定用法。详细列表说明如下。
![](https://epubservercos.yuewen.com/782D5E/13908176403385506/epubprivate/OEBPS/Images/Figure-P131_147492.jpg?sign=1739476647-1kiXLzs0BXFBudinMY5BYkWanOFLwloc-0-b456bf8c29dce2912ce750c439045ee2)
4.2.4 定义固定背景
![](https://epubservercos.yuewen.com/782D5E/13908176403385506/epubprivate/OEBPS/Images/Figure-P131_117973.jpg?sign=1739476647-C9ExcXNNzD3f2JzJUK3BMxIzleM3vwRB-0-90a6a54d6763896a913713f2feb76153)
视频讲解
在默认情况下,背景图像能够跟随网页内容上下滚动。可以使用background-attachment属性定义背景图像在窗口内固定显示,具体用法如下。
background-attachment:fixed | local | scroll
默认值为scroll,具体取值说明如下。
☑ fixed:背景图像相对于浏览器窗体固定。
☑ local:背景图像相对于元素内容固定,也就是说当元素内容滚动时,背景图像也会跟着滚动,此时不管元素本身是否滚动,当元素显示滚动条时才会看到效果。该属性值仅CSS3支持。
☑ scroll:背景图像相对于元素固定,也就是说当元素内容滚动时,背景图像不会跟着滚动,因为背景图像总是要跟着元素本身。
【示例】在本示例中,为<body>标签设置背景图片,且不平铺、固定,这时通过拖动浏览器滚动条,可以看到网页内容在滚动,而背景图片固定显示。
![](https://epubservercos.yuewen.com/782D5E/13908176403385506/epubprivate/OEBPS/Images/Figure-P132_147495.jpg?sign=1739476647-H0zv4fHv8hLG6EKjhyRI62yvPd9yknbn-0-dc1ac8c51403dbb16160eed930db573e)
页面演示效果如图4.13所示。
![](https://epubservercos.yuewen.com/782D5E/13908176403385506/epubprivate/OEBPS/Images/Figure-P132_82794.jpg?sign=1739476647-c9X8cXEJavWveZTgQjG34EinscHXn0hY-0-4dd21149a01ab8ef2d8876e024b3f19a)
图4.13 背景图片固定
4.2.5 定义原点
![](https://epubservercos.yuewen.com/782D5E/13908176403385506/epubprivate/OEBPS/Images/Figure-P132_82809.jpg?sign=1739476647-9oll0cFzmTVEfhddpfuek24t2hq2I4as-0-60af17563e48614071e5ba18867948a5)
视频讲解
background-origin属性定义background-position属性的定位原点。在默认情况下,background-position属性总是以元素左上角为坐标原点定位背景图像。使用background-origin属性可以改变这种定位方式。该属性的基本语法如下。
background-origin:border-box | padding-box | content-box;
取值简单说明如下。
☑ border-box:从边框区域开始显示背景。
☑ padding-box:从补白区域开始显示背景,为默认值。
☑ content-box:仅在内容区域显示背景。
【示例】background-origin属性改善了背景图像定位的方式,更灵活地决定背景图像应该显示的位置。本示例利用background-origin属性重设背景图像的定位坐标,以便更好地控制背景图像的显示,演示效果如图4.14所示。
![](https://epubservercos.yuewen.com/782D5E/13908176403385506/epubprivate/OEBPS/Images/Figure-P133_117997.jpg?sign=1739476647-QR8l2a0iFMiCWY5BjVfNc004eUtIbNXc-0-8caff20678e778d454cf6d983bfac101)
图4.14 设计诗词效果
示例代码如下。
![](https://epubservercos.yuewen.com/782D5E/13908176403385506/epubprivate/OEBPS/Images/Figure-P134_147497.jpg?sign=1739476647-82c2VglPfiK2ogZYADcgJqO8fd2q5isC-0-e07f4e63c0eb1ec4ce37ca89a24e149a)
4.2.6 定义裁剪区域
![](https://epubservercos.yuewen.com/782D5E/13908176403385506/epubprivate/OEBPS/Images/Figure-P134_82971.jpg?sign=1739476647-suJksWvshvP3zhMf8N6IJadBBqcucQaP-0-8fd2e7b175c3328ee296e0e40044f81a)
视频讲解
background-clip属性定义背景图像的裁剪区域。该属性的基本语法如下。
background-clip:border-box | padding-box | content-box | text;
取值简单说明如下。
☑ border-box:从边框区域向外裁剪背景,为默认值。
☑ padding-box:从补白区域向外裁剪背景。
☑ content-box:从内容区域向外裁剪背景。
☑ text:从前景内容(如文字)区域向外裁剪背景。
提示:如果取值为padding-box,则background-image将忽略补白边缘,此时边框区域显示为透明;
如果取值为border-box,则background-image将包括边框区域;
如果取值为content-box,则background-image将只包含内容区域;
如果background-image属性定义了多重背景,则background-clip属性值可以设置多个值,并用逗号分隔。
如果background-clip属性值为padding-box,background-origin属性值为border-box,且background-position属性值为"top left"(默认初始值),则背景图左上角将会被截取掉部分。
【示例1】本示例演示了如何设计背景图像仅在内容区域内显示,演示效果如图4.15所示。
<style type="text/css"> div { height:150px; width:300px; border:solid 50px gray; padding:50px; background:url(images/bg.jpg) no-repeat; /*将背景图像等比缩放到完全覆盖包含框,背景图像有可能超出包含框*/ background-size:cover; /*将背景图像从content区域开始向外裁剪背景*/ background-clip:content-box; } </style> <div></div>
![](https://epubservercos.yuewen.com/782D5E/13908176403385506/epubprivate/OEBPS/Images/Figure-P135_118216.jpg?sign=1739476647-9GgMaLjmgiyC4P8SzUzJ58hslD47OWXc-0-69a56c7e0b42169e8166a4bd1296581e)
图4.15 以内容边缘裁切背景图像效果
【示例2】本示例同时定义background-clip和background-origin属性值为content,可以设计比较特殊的按钮样式,演示效果如图4.16所示。
![](https://epubservercos.yuewen.com/782D5E/13908176403385506/epubprivate/OEBPS/Images/Figure-P136_147500.jpg?sign=1739476647-HkaiDgRO4fIGcxMdfdqpWI0Fn1QAHe0N-0-c7b5e92019906c43003c44e301bb08a9)
![](https://epubservercos.yuewen.com/782D5E/13908176403385506/epubprivate/OEBPS/Images/Figure-P136_83086.jpg?sign=1739476647-gBco9P5a2I6KF74iSf2VX0sIELHlJTil-0-5d560d5cb2d7b0004dc581ba0bf7f4f3)
图4.16 设计按钮效果
4.2.7 定义大小
![](https://epubservercos.yuewen.com/782D5E/13908176403385506/epubprivate/OEBPS/Images/Figure-P136_83099.jpg?sign=1739476647-UDe9V0v5X3UOSa8o6qww3SxdN5aHPuKL-0-1e4d63a145e328e7ffde599c4201f1b8)
视频讲解
background-size可以控制背景图像的显示大小。该属性的基本语法如下。
background-size: [ <length> | <percentage> | auto ]{1,2} | cover | contain;
取值简单说明如下。
☑ <length>:由浮点数字和单位标识符组成的长度值。不可为负值。
☑ <percentage>:取值范围为0~100%。不可为负值。
☑ cover:保持背景图像本身的宽高比例,将图片缩放到正好完全覆盖所定义背景的区域。
☑ contain:保持图像本身的宽高比例,将图片缩放到宽度或高度正好适应所定义背景的区域。
background-size属性初始值为auto。可以设置1个或2个值,1个为必填,1个为可选。其中第1个值用于指定背景图像的width,第2个值用于指定背景图像的height,如果只设置1个值,则第2个值默认为auto。
【示例】设计自适应模块大小的背景图像。借助image-size属性自由定制背景图像大小的功能,让背景图像自适应盒子的大小,从而可以设计与模块大小完全适应的背景图像,本示例效果如图4.17所示,只要背景图像长宽比与元素长宽比相同,就不用担心背景图像脱节。
![](https://epubservercos.yuewen.com/782D5E/13908176403385506/epubprivate/OEBPS/Images/Figure-P137_118274.jpg?sign=1739476647-FabqnePLGCRntGsxjL2z2MpWr8Xui0qG-0-6dd1b9fd476708da041e02970e07215e)
图4.17 设计背景图像自适应显示
示例完整代码如下。
<style type="text/css"> div { margin:2px; float:left; border:solid 1px red; background:url(images/img2.jpg) no-repeat center; /*设计背景图像完全覆盖元素区域*/ background-size:cover; } /*设计元素大小*/ .h1 { height:120px; width:192px; } .h2 { height:240px; width:384px; } </style> <div class="h1"></div> <div class="h2"></div>
4.2.8 定义多背景图
![](https://epubservercos.yuewen.com/782D5E/13908176403385506/epubprivate/OEBPS/Images/Figure-P137_118391.jpg?sign=1739476647-2SKDufBYsbZHkw2qbRvIgpBPWC829bnh-0-a25f509907b2d45347efefc8c640861a)
视频讲解
CSS3中可以在一个元素里显示多个背景图像,还可以将多个背景图像进行重叠显示,从而使得背景图像中所用素材的调整变得更加容易。
【示例】本示例将用到8个背景图像,使用它们分别模拟圆角边框的4个顶角和4条边。最后通过CSS把它们分别固定到元素的边框和顶角上,设计效果如图4.18所示。
![](https://epubservercos.yuewen.com/782D5E/13908176403385506/epubprivate/OEBPS/Images/Figure-P138_147505.jpg?sign=1739476647-YmcKaaKkFsUvdE0QjTrfIGMICT3Os1qh-0-0674d5f6d3f4ad17cfa15cdfd9292b3a)
![](https://epubservercos.yuewen.com/782D5E/13908176403385506/epubprivate/OEBPS/Images/Figure-P139_147506.jpg?sign=1739476647-MFtugYshEZzFbQDKR4K9DhtJGCxGr18x-0-1624819712365870ad31f7a4ee450ed8)
![](https://epubservercos.yuewen.com/782D5E/13908176403385506/epubprivate/OEBPS/Images/Figure-P139_118438.jpg?sign=1739476647-k02hmgbVJaxmgXw9he6EEnI46ghMUOZh-0-33dee91cea9afdb5805927b437b1ac26)
图4.18 定义多背景图像