CSS之background——背景与渐变练习题
1、单选题
将背景的绘制区域规定到内容框,应使用background-clip属性中的哪个属性值?
A content-box
B border-box
C padding-box
D none-box
参考答案:A
2、多选题
在没有内填充(padding)的情况下,将背景的绘制区域从包含边框到不包含边框,如效果图所示,下列代码哪个可以实现?(选择两项)
效果图
A background-clip:padding-box;
B background-clip:content-box;
C background-clip:border-box;
D background-position:border-box;
参考答案: AB
3、2-4编程练习
小伙伴们,根据gif效果图,补充代码,实现:
(1)当鼠标悬停在“border-box”区域,显示元素的背景图片被裁剪到边框盒
(2)当鼠标悬停在“padding-box”区域,显示元素的背景图片被裁剪到内边距框
(3)当鼠标悬停在“content-box”区域,显示元素的背景图片被裁剪到内容框
(4)当鼠标不停留在这3个区域时,没有图片显示
效果图如下:
任务:
第一步:当鼠标不悬停在三个区域时,背景图片时隐藏的
第二部:当鼠标停留在“border-box”区域时,元素显示的背景图片会包含元素的边框
第三部:当鼠标停留在“padding-box”区域时,元素显示的背景图片不会包含元素的边框,但会包含元素的内边距
第四部:当鼠标停留在“content-box”区域时,元素显示的背景图片不会包含元素的边框盒内边距
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>background-clip</title> <meta name='description' content='background-clip'> <meta name='keywords' content='background-clip'> <style> /* 给最外层的div设置样式 */ .border, .padding, .content { width: 300px; height: 300px; float: left; margin-left: 50px; } a { text-decoration: none; font-size: 30px; } /* 放置背景图片的div样式 */ .div1, .div2, .div3 { width: 200px; height: 200px; border: 10px solid rgba(0, 255, 0, 0.3); padding: 50px; margin-top: 50px; background-image: url(images/weimobLogo.png); } .border:hover div, .padding:hover div, .content:hover div { display: block; } /* 补充代码 */ </style> </head> <body> <div class='border'> <a href=''>border-box</a> <div class='div1'></div> </div> <div class='padding'> <a href=''>padding-box</a> <div class='div2'></div> </div> <div class='content'> <a href=''>content-box</a> <div class='div3'></div> </div> </body> </html>
参考代码:
.border div, .padding div, .content div { display: none; } .border:hover div { background-clip: border-box; } .padding:hover div { background-clip: padding-box; } .content:hover div { background-clip: content-box; }
4、2-7编程练习
2-6选择题
单选题
在CSS3中新增的背景图片属性中,哪个可以绘制背景图像的起点?(选择一项)
A background-clip
B background-size
C background-origin
D background-position
参考答案:C
5、2-7编程练习
小伙伴们,根据gif效果图,写出代码,实现:
(1)当打开页面时,背景图片区域绘制到内边距框
(2)当鼠标悬停在添加背景图片的元素上时,背景图片会被替换掉,新的背景图片的位置会以内容左上角为原点,向右、向下各偏移10px
图片地址分别为:
效果图如下:
任务
第一步:写出要设置背景图片的HTML元素
第二步:给元素设置基本样式
Tips:宽、高、边框、内边距
第三步:给元素加上背景图片,背景图片显示范围从内边距框开始
第四部:当鼠标悬停在元素上时,图片被替换,并且背景图片的起点从内容区域的左上角开始向左、向下偏移10个像素。
参考代码:
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>background-clip</title> <meta name='description' content='background-clip'> <meta name='keywords' content='background-clip'> <style> div { width: 500px; height: 200px; border:10px solid #9999fe; } .sample{ background-image: url('http://climg.mukewang.com/582c342b0001fd6507000210.jpg'); background-origin: padding-box; } .sample:hover { background-image: url('http://climg.mukewang.com/582c34220001091605000150.jpg'); background-origin:content-box; background-position:top 10px left 10px; background-repeat:no-repeat; } </style> </head> <body> <div class='sample'> </div> </body> </html>
2-9单选题
在CSS3新增的background-size属性中,哪个属性是以父元素的百分比来设置图像的宽度和高度?(选择一项)
A cover
B length
C percentage
D contain
参考答案:C
2-10编程练习
小伙伴们,根据效果图写出代码,实现:
(1)默认状态图片是不显示的
(2)当鼠标悬停在不同的列表项上时,出现带背景图片的div元素,元素的背景图片大小就是列表项上的标题文字。
比如:当鼠标悬停在“50% 50%”区域时,元素的背景图片是父元素大小的50%。
效果图如下:
任务
第一步:当鼠标悬停在属性值区域上时,属性值文字下方的元素要显示出来。Tips:注意伪类选择器与后代选择器配合使用
第二部:鼠标悬停在不同属性值的区域上时,显示的元素的背景图片大小时不一样的,按照每个列表项的标题文字去设置,看下效果是否和你想的一样。
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>background-clip</title> <meta name='description' content='background-clip'> <meta name='keywords' content='background-clip'> <style> a { text-decoration: none; } ul { list-style: none; } div { background-image: url(http://climg.mukewang.com/582c39e50001b08102000065.jpg); width: 100px; height: 100px; display: none; border: 2px solid red; background-repeat: no-repeat; } /* 补充代码 */ .length:hover div{ display:block; background-size:100px 100px; } .percent:hover div{ display:block; background-size:50% 50%; } .cover:hover div{ display:block; background-size:cover; } .contain:hover div{ display:block; background-size:contain; } </style> </head> <body> <h2>background-size不同属性值不同效果</h2> <ul> <li class='length'> <h3><a href="">100px 100px</a></h3> <div></div> </li> <li class='percent'> <h3><a href="">50% 50%</a></h3> <div></div> </li> <li class='cover'> <h3><a href="">cover</a></h3> <div></div> </li> <li class='contain'> <h3><a href="">contain</a></h3> <div></div> </li> </ul> </body> </html>
2-15编程练习
小伙伴们,根据效果图写出代码,用所学的背景图片属性只是,实现div元素中呈现多个背景图片
效果图如下:
任务
第一步:写出放置背景图片的html元素,给元素设置足够的宽和高
第二部:给元素加入多个背景图片
任务提示
Tip:
(1)多个图片路径之间的符号。
(2)注意每个图片设置。
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>background-clip</title> <meta name='description' content='background-clip'> <meta name='keywords' content='background-clip'> <style> /* 此处写代码 */ html, body { margin: 0; padding: 0; } div { width: 700px; height: 800px; margin:0 auto; background:url('images/111.png') 50% 0, url('images/222.png') center top 180px , url('images/333.png') center top 360px ; background-repeat:no-repeat; } </style> </head> <body> <!-- 此处写代码 --> <div> </div> </body> </html>