css:background-position > 精灵技术

background-position : length || length 
background-position : position || position 
取值: 
length  : 百分数 | 由浮点数字和单位标识符组成的长度值。请参阅 长度单位  
position  : top | center | bottom | left | center | right

实例

"top left","left top"和"0% 0%","0,0"代表元素的左上角;

"top","top center","center top"和"50% 0"表示在元素顶边居中位置;

"right top","top right"和"100% 0"代元素的是元素的右上角位置;

"left","left center","center left"和"0% 50%"表示在元素左边中间位置;

"center","center center"和"50% 50%"表示在元素中间位置;

"right","right center","center,right"和"100% 50%"表示在元素右边中间位置;

"bottom left","left bottom"和"0% 100%"表示在元素的左下角;

"bottom","bottom center","center bottom"和"50% 100%"表示在元素的底下中间点位置;

"bottom right","right bottom"和“100% 100%”表示在元素右下角位置

为什么要讲CSS精灵技术,网页开发者喜欢在一个图片文件夹里散落着许多小图片,客户端每显示一张图片都会向服务器发送一次请求,图片越多请求次数越多,这样有可能造成图片延迟加载,影响用户体验,随着互联网技术的发展,大家越来越重视网页加载的速度了,于是这些小图片被整合到了一起,CSS Sprites出现了。

比如上面的图片,我们第一次想要切割第一个桃子出来,第二想要切割第二个或随便一个,按照图片在网页中的坐标是从左到右,上到下,0 0 就是左上角

-----------> x轴

|

|

|

|

|

y轴

        width: 90px;
        height: 100px;
        display: block;
        background: url(images/peach.png) 0 0 no-repeat;

这个就可以限制一个框框把第一个桃子显示出来,当你想要第二个桃子,直接改

background-position: 0 -115px;因为这张图的上桃子间隔是115px。这边有个实例:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<style>
    *{
        padding:0;
        margin:0;
    }
    .container{
        width: 1100px;
        height: 631px;
        margin: 0 auto;
        min-width: 900px;
        background: url(images/bg.jpg) 50% 50% no-repeat;
        position: relative;
    }
    h1{
        position: relative;
        top: 55px;
        left: 100px;
    }
    .all_peach{
        position: absolute;
        top: 85px;
        left: 210px;
        width: 800px;
        height: 500px;
    }
    /*将图片定位到左上角,用width和height限制显示的宽高,保证只能显示一个桃子*/
    .peach{
        position: absolute;
        top: 0;
        left: 0;
        width: 90px;
        height: 100px;
        display: block;
        background: url(images/peach.png) 0 0 no-repeat;
        animation-iteration-count: infinite;
        animation-name: shake;
        animation-timing-function: ease-in-out;
    }
    /*第一个桃子对应的精灵图的一个桃子,background-position: 0 0; 表示左上角,第一个桃子比较大*/
    .peach1 {
        background-position: 0 0;
        top: 158px;
        left: 108px;
    }
    /*background-position: 0 -115; 表示精灵图的第二个桃子*/
    .peach2 {
        background-position: 0 -115px;
        top: 97px;
        left: 278px;
    }
    .peach3 {
        background-position: 0 -115px;
        top: 129px;
        left: 488px;
    }
    .peach4 {
        background-position: 0 -115px;
        top: 214px;
        left: 297px;
    }
    .peach5 {
        background-position: 0 -115px;
        top: 314px;
        left: 448px;
    }
    .peach6 {
        background-position: 0 -115px;
        top: 305px;
        left: 613px;
    }
    /*动画执行时间*/
    .shake1 {
        animation-duration: 2.5s;
    }
    .shake2, .shake3 {
        animation-duration: 3.5s;
    }
    .shake4, .shake5, .shake6{
        animation-duration: 4s;
    }
    /*定义关键帧,从0% ~ 100%(可以自定义)*/
    @keyframes shake{
        0% {
            transform: rotate(2deg);
            transform-origin: 50% 0;
        }
        20% {
            transform: rotate(10deg);
            transform-origin: 50% 0;

        }
        40% {
            transform: rotate(0deg);
            transform-origin: 50% 0;
        }
        60% {
            transform: rotate(-2deg);
            transform-origin: 50% 0;
        }
        80%{
            transform: rotate(-10deg);
            transform-origin:50% 0;
        }
        100%{
            transform: rotate(0deg);
            transform-origin: 50% 0;
        }
    }
</style>
<body>
<div class="container">
    <h1>摇晃的桃子</h1>
    <div class="all_peach">
        <spac class="peach peach1 shake1"></spac>
        <spac class="peach peach2 shake2"></spac>
        <spac class="peach peach3 shake3"></spac>
        <spac class="peach peach4 shake4"></spac>
        <spac class="peach peach5 shake5"></spac>
        <spac class="peach peach6 shake6"></spac>
    </div>
</div>
</body>
</html>

运行效果:

详细了解backrgound-position:https://www.w3cplus.com/content/css3-background-size

原文地址:https://www.cnblogs.com/doudoublog/p/8151665.html

时间: 2024-10-11 23:08:03

css:background-position > 精灵技术的相关文章

认识CSS中精灵技术(sprite)和滑动门

前端之HTML,CSS(十) 精灵技术与精灵图 精灵技术本质 精灵技术是一种处理网页背景图像的方式,实质是将小的背景图片拼接到一张大的背景图像上.拼接成的大图被称为精灵图.浏览器打开网页时,每一个图片显示都是浏览器向服务器发送一次请求的结果,精灵技术是把多个小图片拼接为一个大图,有效减少了浏览器请求服务器的次数,与此同时也提高了页面的加载速度. 精灵技术使用 精灵技术实际是通过background属性限定盒子大小以后,通过background-position属性调整背景图片的位置,使得一个大图

CSS——精灵技术

精灵技术产生的背景 图所示为网页的请求原理图,当用户访问一个网站时,需要向服务器发送请求,网页上的每张图像都要经过一次请求才能展现给用户. 然而,一个网页中往往会应用很多小的背景图像作为修饰,当网页中的图像过多时,服务器就会频繁地接受和发送请求,这将大大降低页面的加载速度.为了有效地减少服务器接受和发送请求的次数,提高页面的加载速度,出现了CSS精灵技术(也称CSS Sprites.CSS雪碧). 精灵技术本质 简单地说,CSS精灵是一种处理网页背景图像的方式.它将一个页面涉及到的所有零星背景图

CSS图片翻转动画技术详解

因为不断有人问我,现在我补充一下:IE是支持这种技术的!尽管会很麻烦.需要做的是旋转front和back元素,而不是旋转整个容器元素.如果你使用的是最新版的IE,可以忽略这一节.IE10+是支持的,IE9完全不支持CSS动画. CSS动画非常的有趣:这种技术的美就在于,通过使用很多简单的属性,你能创建出就连皮克斯动画制作公司也会赞叹的漂亮的消隐效果.其中代表性的一种就是CSS图片翻转效果,能让你看到一张卡片的正反两面上的内容.本文就是要用最简单的方法向大家介绍如何创建这种效果. 简单说明:这并不

CSS background 属性详解

CSS background Property 语法: background: bg-color bg-image position/bg-size bg-repeat bg-origin bg-clip bg-attachment initial|inherit; Note: If one of the properties in the shorthand declaration is the bg-size property, you must use a / (slash) to sep

深入理解css中position属性及z-index属性

深入理解css中position属性及z-index属性 在网页设计中,position属性的使用是非常重要的.有时如果不能认识清楚这个属性,将会给我们带来很多意想不到的困难. position属性共有四种不同的定位方法,分别是static.fixed.relative.absolute.最后将会介绍和position属性密切相关的z-index属性. 第一部分:position: static static定位是HTML元素的默认值,即没有定位,元素出现在正常的流中,因此,这种定位就不会收到t

Css中Position定位属性与层级关系

今天同事发现一个有意思的问题,关于position的层级关系的,他要不说我也没注意过 测试后果然有趣,有待深入研究: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Css中Position定位属性与层级关系</title> 6 <style type="text/css"> 7 #W{ 8

【拼爹坑爹不比爹】深入理解css中position属性及z-index属性

总结:拼爹坑爹不比爹 1,定位移动:距左上角left+top;(移动后对于移动前:如果值为负数,则直接换成整数:如果值为整数,则直接改变相对方向.)2,单一父元素不设值,子z-index才奏效:"不比爹"3,多个父元素,"拼爹坑爹"(子凭父贵,子贵父不贵)(爹设值,因外有body)4,多个父元素多子元素,各父各子高低相互比,就是不比爹:>< [转]深入理解css中position属性及z-index属性 在网页设计中,position属性的使用是非常重要

《转》PNG格式小图标的CSS任意颜色赋色技术

转自张鑫旭的PNG格式小图标的CSS任意颜色赋色技术 一.眼见为实 CSS可以修改图片的颜色,没错,可以,眼见为实!您可以狠狠地点击这里:png小图标CSS赋色demo 上面的不是很黑的是原始图标,是个PNG图片,下面这个是可以赋色的: 下面,我们随意选择一个颜色,例如紫色,然后: 是不是感觉很厉害!以后设计师就不需要在提供几套颜色的图片了. SVG, icon fonts等技术似乎也不是那么耀眼了. 二.原理其实很简单 原理其实很简单,使用了CSS3滤镜filter中的drop-shadow,

div+css定位position详解

div+css定位position详解 1.div+css中的定位position 最主要的两个属性:属性 absolute(绝对定位) relative(相对定位),有他们才造就了div+css布局的多样性,让我们的网页丰富多彩起来. 首先解释relative(相对定位),顾名思义,定位是相对的,那他是相对于什么呢?参照物是什么? 看如下代码: 2 2.预览效果,现在是三个并列的div 3 3.给中间的div增加定位属性:position:relative; top:10px; left:10