Web课程学习笔记--CSS-Sprite的应用

news2024/9/21 18:40:03

雪碧图CSS Sprite的应用

CSS雪碧,即CSS Sprite,也有人叫它CSS精灵,是一种CSS图像合并技术,该方法是将小图标和背景图像合并到一张图片上,然后利用css的背景定位来显示需要显示的图片部分。例如常见的商品分类导航其实所有商品的背景图用的都是一个所有小图标拼凑成的大图,只是在不同类别显示对应类别的图标时,通过li背景定位到大图的对应图标的位置。背景图位置可以使用一些雪碧图生成工具的时候,生成对应的CSS样式文件里面会有对应的位置信息。

好处优点

有效减少网站的http请求数量,加速图片的显示。

条件

静态图片,图片不随用户信息的变化而变化。

小图片,容量比较小的(2-3KB)

图片加载量比较大的。

注意:大图片不建议用雪碧图咯,图片那么大,拼完之后岂不是拆机无敌大咯,加载就慢了,得不偿失!!!

原理

利用 css3的 background-position控制一个层可显示区域范围大小,通过一个窗口,对背景图进行滑动。
简单来说,就是利用这个属性,设置背景图需要显示的起始位置,在通过标签来控制背景图显示的范围。

background-position属性

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

根据图所知:

以左上角为(0,0)坐标

x,y都是负值

综上所诉,所以background-position的取值就是背景图显示的起始坐标,形式就是background-position:0, 0;

拼图

拼图可以用ps,或者网上很多在线雪碧图生成工具,可以利用这些去生成雪碧图。

其实最好的拼图就是每个图标边距是多少和图标周围的留白留多少都控制好,对css的background-position的坐标写起来有规律的话,好些很多(然而这个是我自己手动拖拉的,位置很没有规律,所以下面的坐标值都是调试过才取值的)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

讲完这些了,可以来正题了,html和css代码了,下面代码是模仿生成一个菜单~~~

代码

<div id="content">
  <ul class="content">
    <li class="cat-1">
      <i></i>
      <h3>女装/男装/内衣</h3>
    </li>
    <li class="cat-2">
      <i></i>
      <h3>鞋靴/箱包/配件</h3>
    </li>
    <li class="cat-3">
      <i></i>
      <h3>童装玩具/孕产/用品</h3>
    </li>
    <li class="cat-4">
      <i></i>
      <h3>家电/数码/手机</h3>
    </li>
    <li class="cat-5">
      <i></i>
      <h3>美妆/洗护/保健品</h3>
    </li>
    <li class="cat-6">
      <i></i>
      <h3>珠宝/眼镜/手表</h3>
    </li>
    <li class="cat-7">
      <i></i>
      <h3>运动/户外/乐器</h3>
    </li>
    <li class="cat-8">
      <i></i>
      <h3>游戏/动漫/影视</h3>
    </li>
    <li class="cat-9">
      <i></i>
      <h3>美食/生鲜/零食</h3>
    </li>
    <li class="cat-10">
      <i></i>
      <h3>鲜花/宠物/农资</h3>
    </li>
    <li class="cat-11">
      <i></i>
      <h3>房产/装修/建材</h3>
    </li>
  </ul>
</div>
#content{
  width: 180px;
  background: #f8f8f8;
  border: 1px solid #bbb;
}
h3{
  margin: 0;
  padding: 0;
}
ul{
  list-style: none;
  padding: 0;
}
li h3{
  font-size: 14px;
  font-weight: 400;
}
li{  
  margin:  3px 10px 0 0;
  display: block;
  height: 31px;
  line-height: 31px;
  overflow: hidden;
  border-bottom: 1px solid #dedede;
 
}
li i{
  background:  url(sprite.png);
  display: inline;
  width: 40px;
  height: 28px;
  float: left;
}
.cat-1 i{
  background-position: -7px -5px;
}
.cat-2 i{
  background-position: -2px -35px;
}
.cat-3 i{
  background-position: -7px -65px;
}
.cat-4 i{
  background-position: -7px -105px;
}
.cat-5 i{
  background-position: -7px -129px;
}
.cat-6 i{
  background-position: -7px -151px;
}
.cat-7 i{
  background-position:-60px -4px;
}
.cat-8 i{
  background-position:-56px -33px;
}
.cat-9 i{
  background-position: -56px -66px;
}
.cat-10 i{
  background-position:-60px -103px;
}
.cat-11 i{
  background-position: -51px -128px;
}

效果图如下

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

}
.cat-10 i{
background-position:-60px -103px;
}
.cat-11 i{
background-position: -51px -128px;
}


## 效果图如下

[外链图片转存中...(img-Fny7k0g5-1707132877339)]

**本文转载自 忆桐之家的博客,<a href="http://hongyitong.github.io/2016/12/23/雪碧图CSS%20Sprite的应用/" rel="nofollow">《雪碧图CSS Sprite的应用》</a>**

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1441256.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用深度学习对视频进行分类

目录 加载预训练卷积网络 加载数据 将帧转换为特征向量 准备训练数据 创建 LSTM 网络 指定训练选项 训练 LSTM 网络 组合视频分类网络 使用新数据进行分类 辅助函数 此示例说明如何通过将预训练图像分类模型和 LSTM 网络相结合来创建视频分类网络。 要为视频…

【Vue】Vue基础入门

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;Vue ⛺️稳重求进&#xff0c;晒太阳 Vue概念 是一个用于构建用户界面的渐进式框架优点&#xff1a;大大提高开发效率缺点&#xff1a;需要理解记忆规则 创建Vue实例 步骤&#xff1a; …

Spinnaker多云持续交付平台: 部署Minio存储服务

目录 一、实验 1.环境 2.K8S storage节点部署NFS 3.K8S 动态创建PV 4.K8S master节点部署HELM3 4.K8S master节点部署Minio存储服务&#xff08;第一种方式安装&#xff09; 5.Minio客户端安装MC命令 6.K8S master节点使用Docker 部署Minio存储服务&#xff08;第二种方…

雨云宿迁云服务器测评

我本打算趁着暑假买台云服务器开mc服务器&#xff0c;但由于没有试用且直接完结导致白废20块钱。 在此提醒大家&#xff0c;买用于开mc服务器的云服务器前能试用一定要试用&#xff01;不然鬼知道它性能够不够用&#xff01; 服务器配置如下: cpu:2v gold61332.5Ghz ram:2GiB…

Unity学习笔记之【IK反向动力学操作】

反向动力学Inverse Kinematics 反向动力学&#xff0c;简称IK。相较于正向动力学&#xff0c;反向动力学旨在子级对父级产生的影响。 使用IK&#xff0c;可以实现根据目标位置或方向来计算并调整角色的关节&#xff08;骨骼&#xff09;链&#xff0c;以使角色的末端&#xff…

C++基础知识点预览

一.绪论&#xff1a; 1.1 C简史&#xff1a; 与C的关系&#xff1a; 被设计为C语言的继任者&#xff0c;C语言是一种过程型语言&#xff0c;程序员使用它定义执行特定操作的函数&#xff0c;而C是一种面向对象的语言&#xff0c;实现了继承、抽象、多态和封装等概念。C支持类&…

WiFi 6 和WiFi 6e 的核心要点

目录 WiFi 6 是什么&#xff1f; WiFi 6/6e 的主要feature功能&#xff1a; 80Mhz and 160Mhz channel 1K QAM WiFi6 支持2.4G band OFDMA&#xff1a;Orthogonal frequency division multiple access OFDMA先把频段分为&#xff1a;Resource Units (RUs) Subcarriers …

51单片机编程应用(C语言):篮球比赛计分器

设计思路 1.LCD1602显示A 000:B 000 右下角显示24的数字&#xff0c;显示一节时间12&#xff1a;00. 2.规定矩阵键盘每一位表示的含义 s1按下&#xff0c;A队加一分 s2按下&#xff0c;A队加两分 s3按下&#xff0c;A队加三分 s4按下&#xff0c;A队减一分 如…

政安晨:快速学会~机器学习的Pandas数据技能(五)(分组和排序)

提升您的洞察力水平&#xff0c;数据集越复杂&#xff0c;这一点就越重要。 概述 映射允许我们逐个值地转换DataFrame或Series中的数据&#xff0c;针对整个列进行操作。然而&#xff0c;通常我们希望对数据进行分组&#xff0c;然后对所在组进行特定操作。 正如你将学到的&a…

Java stream 流的基本使用

Java stream 的基本使用 package com.zhong.streamdemo.usestreamdemo;import jdk.jfr.DataAmount; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;import java.util.ArrayList; import java.util.Comparator; import java.util.Li…

Flink Checkpoint过程

Checkpoint 使用了 Chandy-Lamport 算法 流程 1. 正常流式处理&#xff08;尚未Checkpoint&#xff09; 如下图&#xff0c;Topic 有两个分区&#xff0c;并行度也为 2&#xff0c;根据奇偶数 我们假设任务从 Kafka 的某个 Topic 中读取数据&#xff0c;该Topic 有 2 个 Pa…

js手写Promise(下)

目录 resolve与reject的调用时机封装优化 回调返回PromiseisPromise手动调用then 微队列catchresolverejectall传入的序列为空传入的值非Promise race完整的Promise代码 如果没有看过上半部分的铁铁可以看看这篇文章 js手写Promise&#xff08;上&#xff09; resolve与reject…

FastAdmin西陆招聘SAAS

应用介绍 基于ThinkPHP和微信小程序开发的招聘平台系统&#xff0c;包含微信小程序求职者端、微信小程序企业招聘端、PC企业招聘端、PC管理平台端 招聘系统是一种利用计算机和网络技术建立起来的具有完整的信息管理、分析和查询功能的人才招聘平台。它主要用于企业、单位、机构…

Python爬虫http基本原理#2

Python爬虫逆向系列&#xff08;更新中&#xff09;&#xff1a;http://t.csdnimg.cn/5gvI3 HTTP 基本原理 在本节中&#xff0c;我们会详细了解 HTTP 的基本原理&#xff0c;了解在浏览器中敲入 URL 到获取网页内容之间发生了什么。了解了这些内容&#xff0c;有助于我们进一…

pytorch入门第一天

今天作为入门pytorch的第一天。打算记录每天学习pytorch的一些理解和笔记&#xff0c;以用来后面回顾。当然如果能帮到和我一样的初学者&#xff0c;那也是不胜荣幸。作为一名初学者&#xff0c;难免有些地方会现错误&#xff0c;欢迎各位大佬指出 预备知识 这里主要介绍pyto…

从0开始学Docker ---Docker安装教程

Docker安装教程 本安装教程参考Docker官方文档&#xff0c;地址如下&#xff1a; https://docs.docker.com/engine/install/centos/ 1.卸载旧版 首先如果系统中已经存在旧的Docker&#xff0c;则先卸载&#xff1a; yum remove docker \docker-client \docker-client-latest…

MySQL篇之索引

一、定义 索引&#xff08;index&#xff09;是帮助MySQL高效获取数据的数据结构(有序)。在数据之外&#xff0c;数据库系统还维护着满足特定查找算法的数据结构&#xff08;B树&#xff09;&#xff0c;这些数据结构以某种方式引用&#xff08;指向&#xff09;数据&#xff0…

Python爬虫requests库详解#3

使用 requests 上一节中&#xff0c;我们了解了 urllib 的基本用法&#xff0c;但是其中确实有不方便的地方&#xff0c;比如处理网页验证和 Cookies 时&#xff0c;需要写 Opener 和 Handler 来处理。为了更加方便地实现这些操作&#xff0c;就有了更为强大的库 requests&…

Cisco firepower2100系列使用FDM管理FTD

Cisco firepower2100系列使用FDM管理FTD 啥是FDM Firepower Device Manager 当思科Firepower系列运行的FTD镜像时&#xff0c;可以通过2种方式进行管理 第1种方式&#xff1a; FMC (Firepower management Center) 可以进行统一管理&#xff0c;一台FMC可以管理多个FTD&…

深度学习入门笔记(八)可以不断思考的模型:RNN与LSTM

8.1 循环神经网络RNN 之前学到的 CNN 和全连接&#xff0c;模型的输入数据之间是没有关联的&#xff0c;比如图像分类&#xff0c;每次输入的图片与图片之间就没有任何关系&#xff0c;上一张图片的内容不会影响到下一张图片的结果。但在自然语言处理领域&#xff0c;这就成了…