CSS滤镜和精灵技术
目录
-
- CSS滤镜和精灵技术
- 一、CSS滤镜(Filters)
- 二、CSS精灵技术(sprite)
一、CSS滤镜(Filters)
CSS3 滤镜是对图像等图形元素执行视觉效果操作,如模糊,平衡对比度或亮度, 色彩饱和度等。 可以使用 CSS3 filter 属性将滤镜效果应用于元素,该属性按提供的顺序接受一个 或多个滤镜功能。使用示例如下:
filter: blur() | brightness() | contrast() | drop-shadow() | grayscale() | hue-rotate() | invert() | opacity() | sepia() | saturate() | url();
/注:任何版本的 Internet Explorer 当前均不支持 CSS3 滤镜效果。较旧的 IE 版本支持非标准 filter 属性来创建诸如不透明度之类的效果,但是该功能已被弃用。/
各种效果分别如下
1、模糊效果
像高斯模糊效果这样的 Photoshop 可以使用该 blur()功能应用于元素。 此函数接受 CSS 长度值作为定义模糊半径的参数。较大的值将产生更多的模糊。 如果未提供参数,则使用值 0。
原图如下:

<style>
img{
width: 500px;
height: 300px;
-webkit-filter: blur(5px); /*-webkit是用来适应于谷歌等浏览器的内核*/
filter: blur(5px); /*这句话也必须加上*/
}
p{
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
-webkit-filter: drop-shadow(5px 5px 10px blue);
filter: drop-shadow(5px 5px 10px blue);
}
</style>
<body>
<img src="../image/7.png" alt="图片加载中">
<hr>
<p>西安邮电大学</p>
</body>
设置模糊效果之后
2、设置图像亮度
brightness()功能可用于设置图像的亮度。值 0%将创建全黑的图像。 而值 100%或 1 使图像不变。 还可以将亮度设置为高于 100%,这样可以使图像更亮。如果未提供参 数,则使用值 1。不允许使用负值。
/注意:75%接受以百分号表示的值(例如)的过滤器函数也接受以十进制表示的值(如 0.75)。如果该值无效,该函数将返回 none 并且将不应用任何滤镜效果。/
-webkit-filter: brightness(150%); /*百分数也可以用小数表示 */
filter: brightness(150%);
3、调整图像对比度
contrast()功能用于调整图像的对比度。值 0%将创建全黑的图像。而值 100%或 1 保持图像不变。还允许超过 100%的值,从而提供对比度较低的结果。 如果未提供参数,则使用值 1。
-webkit-filter: contrast(180%);
filter: contrast(180%);
4、向图像添加阴影
可以使用该 drop-shadow()功能将阴影效果应用于 Photoshop 等图像。此 功能类似于该 box-shadow 属性。
-webkit-filter: drop-shadow(4px 4px 12px red);
filter: drop-shadow(4px 4px 12px red);
5、将图像转换为灰度
使用 grayscale()功能可以将图像转换为灰度。值 100%完全是灰度。值 0% 保留图像不变。如果未提供参数,则使用值 0。
-webkit-filter: grayscale(100%);
filter: grayscale(100%);
6、反转效果
可以使用 invert()函数将像 Photoshop 这样的反转效果应用于图像。 100%或 1 的值被完全反转。 值为 0%会使输入保持不变。 0%到 100%之间 的值是效果的线性乘数。 如果未提供参数,则使用值 0。 不允许使用负值。
-webkit-filter: invert(63%);
filter: invert(63%);
7、对图像应用不透明度
opacity()功能可用于为图像添加透明度。值 0%是完全透明的。100%或 1 保持图像不变。如果未提供参数,则使用值 1。此功能类似于该 opacity 属性。
-webkit-filter: opacity(80%);
filter: opacity(80%);
8、将棕褐色效果应用于图像
sepia()功能将图像转换为棕褐色。值 100%或者 1 完全是深褐色。值 0% 保留图像不变。如果缺少参数,则使用值 0。(提示:在摄影方面,棕褐色调是一种特殊的处理方法,可以使黑白照片具有较暖 的色调(红棕色),以增强其存档质量)
-webkit-filter: sepia(60%);
filter: sepia(60%);
9、调整图像的饱和度
saturate()功能可用于调整图像的饱和度。值 0%完全不饱和。值是 100% 保留图像不变。还允许值超过 100%,从而提供超饱和结果。如果缺少参数,则 使用值 1。
/* -webkit-filter: saturate(2);
filter: saturate(2); */
二、CSS精灵技术(sprite)
1、CSS Sprites 在国内很多人叫 css 精灵,是一种网页图片应用处理方式。它 允许将一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来,当访 问该页面时,载入的图片就不会像以前那样一幅一幅地慢慢显示出来了。对于当 前网络流行的速度而言,不高于 200KB 的单张图片的所需载入时间基本是差不 多的,所以无需顾忌这个问题。 CSS Sprites 其实就是把网页中一些背景图片整合到一张图片文件中,再利 用 CSS 的“background-image”,“background- repeat”“background-position”的组合进行背景定位,background-position 可以 用数字精确的定位出背景图片的位置。 在网页访问中,客户端每需要访问一张图片都会向服务器发送请求,所以, 访问的图片数量越多,请求次数也就越多,造成延迟的可能性也就越大。 所以,CSS Sprites 技术加速的关键,并不是降低质量,而是减少个次数, 当然随之而来的增加内存消耗,CSS Sprites 图片繁琐的合成等缺点在网站性能 的提升前,也就不足为道了。
2、CSS Sprites 的使用:
.bg_sprite{background-image:url(/整图地址); background-repeat:no-repeat}
#ico1 {width:容器宽度;height:容器高度;background-position:X 坐标 Y 坐标}
#ico2 {width:容器宽度;height:容器高度;background-position:X 坐标 Y 坐标}
#ico3 {width:容器宽度;height:容器高度;background-position:X 坐标 Y 坐标}
.nav {width:容器宽度;height:容器高度;background-position:X 坐标 Y 坐标}
简略写法
#ico1 {
width:容器宽度;height:容器高度;
background:url(/整图地址) no-repeat X坐标 Y 坐标;
}
/其中,X 坐标和 Y 坐标表示原图相对于 ico1 框左上角点的偏移量,即 坐标 0 0 表示背景 图和 ico1 框的左上角点重合/
例如:如下图,将此图片作为背景图片
ico {
width: 16px;
height:16px;
background: url("bg_sprite.png") no-repeat 0 -234px;
}
效果图如下:
例如
原图
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<style>
.box{
width: 200px;
margin: 0 auto;
overflow: hidden;
}
.iton{
width: 43px;
margin-left: 10px;
height: 44px;
float: left;
background: url(../image/navsprites_hover.gif) no-repeat;
}
.span01{
background-position: 0 0;
}
.span02{
background-position: -47px 0;
}
.span03{
background-position: -91px 0;
}
.span01:hover{
background-position: 0 -45px;
}
.span02:hover{
background-position: -47px -45px;
}
.span03:hover{
background-position: -91px -45px;
}
</style>
<body>
<div class="box">
<span class="iton span01">
</span> <span class="iton span02">
</span> <span class="iton span03">
</span>
</div>
</body>
</html>
效果图
制作精灵图遵循原则
1. 精灵图上放的都是小的装饰性质的背景图片,插入图片不能往上放
2. 精灵图的宽度取决于最宽的那个背景
3. 可以横向摆放也可以纵向