H5学习笔记(十一)背景 雪碧图

透明背景

opacity可以用来设置元素背景的透明,

  • 它需要一个0-1之间的值
  • 0 表示完全透明
  • 1 表示完全不透明
  •  0.5 表示半透明

opacity属性在IE8及以下的浏览器中不支持,IE8及以下的浏览器需要使用如下属性代替,这种方式支持IE6

  • alpha(opacity=透明度),透明度,需要一个0-100之间的值
  • 0 表示完全透明
  • 100 表示完全不透明
  • 50 半透明
.box{
    opacity: 0.5;
    filter: alpha(opacity=50);
}

 

背景图片

background-color设置背景颜色

background-image来设置背景图片

如果背景图片大于元素,默认会显示图片的左上角
 - 如果背景图片和元素一样大,则会将背景图片全部显示
 - 如果背景图片小于元素大小,则会默认将背景图片平铺以充满元素

可以同时为一个元素指定背景颜色和背景图片,这样背景颜色将会作为背景图片的底色, 一般情况下设置背景图片时都会同时指定一个背景颜色,background-repeat用于设置背景图片的重复方式,可选值:

  • repeat,默认值,背景图片会双方向重复(平铺)
  • no-repeat ,背景图片不会重复,有多大就显示多大
  • repeat-x, 背景图片沿水平方向重复
  • repeat-y,背景图片沿垂直方向重复

导航条上的渐变色可以截取背景图片

可以截取一个像素的竖条,然后使用背景进行平铺

.box1{
		width: 990px;
		height: 32px;
		background-color: #bfa;
		margin: 50px auto;
		/*
		 * 设置为背景图片
		 */
		background-image: url(img/bg.gif);
		/*
		 * 设置水平方向重复
		 */
		background-repeat: repeat-x;
	}


背景图片默认是贴着元素的左上角显示通过background-position可以调整背景图片在元素中的位置
可选值:top right left bottom center中的两个值 来指定一个背景图片的位置
top left 左上
bottom right 右下
如果只给出一个值,则第二个值默认是center

也可以直接指定两个偏移量, 第一个值是水平偏移量
 - 如果指定的是一个正值,则图片会向右移动指定的像素
 - 如果指定的是一个负值,则图片会向左移动指定的像素
第二个是垂直偏移量    
- 如果指定的是一个正值,则图片会向下移动指定的像素
- 如果指定的是一个负值,则图片会向上移动指定的像素

{
    background-repeat: no-repeat;
    background-position: -80px -40px;
}

background-attachment用来设置背景图片是否随页面一起滚动
可选值:
        scroll,默认值,背景图片随着窗口滚动
        fixed,背景图片会固定在某一位置,不随页面滚动

{
     background-attachment:fixed;
}

当背景图片的background-attachment设置为fixed时,背景图片的定位永远相对于浏览器的窗口

不随窗口滚动的图片,我们一般都是设置给body,而不设置给其他元素

 

按钮练习

图片资源

active.png

hover.png

link.png

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			.btn:link{
				/*将a转换为块元素*/
				display: block;
				/*设置宽高*/
				width: 93px;
				height: 29px;
				/*设置背景图片*/
				background-image: url(img/btn/link.png);
				/*设置背景图片不重复*/
				background-repeat: no-repeat;
				
			}
			
			.btn:hover{
				background-image: url(img/btn/hover.png);
			}
			
			.btn:active{
				background-image: url(img/btn/active.png);
			}
		</style>
	</head>
	<body>
		<a class="btn" href="#"></a>
	</body>
</html>

做完功能以后,发现在第一次切换图片时,会发现图片有一个非常快的闪烁,这个闪烁会造成一次不佳的用户体验。
产生问题的原因:
         背景图片是以外部资源的形式加载进网页的,浏览器每加载一个外部资源就需要单独的发送一次请求,但是我们外部资源并不是同时加载,浏览器会在资源被使用才去加载资源

         我们这个练习,一上来浏览器只会加载link.png由于hover和active的状态没有马上触发,所以hover.png和active.png并不是立即加载的当hover被触发时,浏览器才去加载hover.png当active被触发时,浏览器才去加载active.png
         由于加载图片需要一定的时间,所以在加载和显示过程会有一段时间,背景图片无法显示,导致出现闪烁的情况

         为了解决该问题,可以将三个图片整合为一张图片,这样可以同时将三张图片一起加载,就不会出现闪烁的问题了,
        然后在通过background-position来切换要显示的图片的位置,这种技术叫做图片整合技术(CSS-Sprite)
         优点:
         1 将多个图片整合为一张图片里,浏览器只需要发送一次请求,可以同时加载多个图片,提高访问效率,提高了用户体验。
         2 将多个图片整合为一张图片,减小了图片的总大小,提高请求的速度,增加了用户体验
 

btn.png

<style type="text/css">
	.btn:link{
	        /*将a转换为块元素*/
	        display: block;
		/*设置宽高*/
		width: 93px;
		height: 29px;
		/*设置背景图片*/
		background-image: url(img/btn/btn2.png);
		/*设置背景图片不重复*/
		background-repeat: no-repeat;		
	}
			
	.btn:hover{		
		/*
		 * 当是hover状态时,希望图片可以向左移动
		 */
		background-position: -93px 0px;
	}
			
	.btn:active{
		/*
		 * 当是active状态时,希望图片再向左移动
		 */
		background-position: -186px 0px;
	}
</style>

 

同时设置背景属性

background
- 通过该属性可以同时设置所有背景相关的样式
- 没有顺序的要求,谁在前睡在后都行,也没有数量的要求,不写的样式就使用默认值
 

body{
		height: 5000px;
		/*设置一个背景颜色*/
		/*background-color: #bfa;*/
		/*设置一个背景图片*/
		/*background-image: url(img/3.png);*/
		/*设置背景不重复*/
		/*background-repeat: no-repeat;*/
		/*设置背景图片的位置*/
		/*background-position: center center;*/
		/*设置背景图片不随滚动条滚动*/ 
		/*background-attachment: fixed;*/
				
		background-color: #bfa;
				
		
		background: #bfa url(img/3.png) center center no-repeat fixed;
}

 

雪碧图

使用雪碧图

1、量想要使用图标的大小,设置宽高

.box1{
	width: 129px;
	height: 45px;
	background-image:url(img/amazon-sprite_.png) ;
}

2、量所需图标到左上角的距离,设置偏移量

{
    background-position: -58px -338px;
}

 

制作雪碧图

使用ps制作雪碧图

1、增加画布大小

2、把其他图片复制到画布

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章