首页 web前端 html教程 CSS 「Sprite」雪碧图应用_html/css_WEB-ITnose

CSS 「Sprite」雪碧图应用_html/css_WEB-ITnose

Jun 24, 2016 am 11:23 AM

  在写网页过程中,会遇到这种需要多个图标展示:

  

  如上图中的「女装」文字左边的图标。容易想到的解决方法是为每张图片加入CSS 「Sprite」雪碧图应用_html/css_WEB-ITnose标签,但这样做会增加HTTP请求数量,影响网站加载速度。比这更优的解决方案是:雪碧图sprite。

  所谓雪碧图就是把我们所需要的所有小图片用CSS sprite或者PS工具拼接成一张大图片,然后通过元素的background-image、background-positon属性完成图片的定位。

  为此,我做了个Demo。

  

   在学习的过程中,遇到了背景图片定位的问题,也就是background-position属性使用以及如何在这张大图片中定位到要显示的小图标。

   问题简化就是:

   

  答案是把这张图片设置为div的背景图。然后移动图片使图片3在div区域显示。

  假设4张小图大小一样,都是25x25像素,div也是25x25像素。因为把大图片设置为div的背景图时,默认图片的左上角顶点是与div区域的顶点重合的,所以要将「小图片3」向上垂直移动,水平方向保持不变。因此设置background-position:0px,-25px;(图片像素的定位可用CSS sprite工具查看)。

  就是这么个简单的问题,但我之前出于两点理解失误始终理解不了为什么像素值是负数。比如一个无序列表

    中每一项的
  • 都设置背景图片为这个大图片,当显示的时候,就像在一张完整的图片每个区域开个洞,各自看这张大图的局部,我这样理解就解释不了两个
  • 怎么都显示一样的小图片。我之所以有这样的理解是因为我忽略了每个li独自拥有这张大图,然后再移动这张大图,想显示哪个区域就显示哪个区域。再,为什么像素值是负数呢?我网上搜,发现也有不理解的网友认为直接把这个像素值为负数记住就行,有网友认为是div顶点动,图片不动,但也解释不通。后来查到的两句话点醒了我:
  • 怎么说呢,图片定位技术,实际上相当于开了一个窗户,你透过窗户看外面的景色。你的窗户大小是不会变的,但是景色却能改变位置,整张雪碧图,就是一个大的风景,通过控制他的定位,你就可以看到不同的风景,所以,可以先做适合大小的图片,然后再整合到一起去,通过负定位进行上移或左移,达到能让这个窗户显示自己正确背景的位置。
  • 以图片左上角为原点,整张图片向左和向上移为负,整张图片向右和向下移为正。
  •   有错误之处,还请指正。

      参考资料:

      W3C CSS背景属性

      显示切图的一部分作为背景显示

      CSS sprite在线工具

      本文Demo下载:

      模仿淘宝导航条(提取码:e0f5)

      

      

     

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1673
14
CakePHP 教程
1429
52
Laravel 教程
1333
25
PHP教程
1278
29
C# 教程
1257
24
HTML:结构,CSS:样式,JavaScript:行为 HTML:结构,CSS:样式,JavaScript:行为 Apr 18, 2025 am 12:09 AM

HTML、CSS和JavaScript在Web开发中的作用分别是:1.HTML定义网页结构,2.CSS控制网页样式,3.JavaScript添加动态行为。它们共同构建了现代网站的框架、美观和交互性。

HTML,CSS和JavaScript的未来:网络开发趋势 HTML,CSS和JavaScript的未来:网络开发趋势 Apr 19, 2025 am 12:02 AM

HTML的未来趋势是语义化和Web组件,CSS的未来趋势是CSS-in-JS和CSSHoudini,JavaScript的未来趋势是WebAssembly和Serverless。1.HTML的语义化提高可访问性和SEO效果,Web组件提升开发效率但需注意浏览器兼容性。2.CSS-in-JS增强样式管理灵活性但可能增大文件体积,CSSHoudini允许直接操作CSS渲染。3.WebAssembly优化浏览器应用性能但学习曲线陡,Serverless简化开发但需优化冷启动问题。

HTML的未来:网络设计的发展和趋势 HTML的未来:网络设计的发展和趋势 Apr 17, 2025 am 12:12 AM

HTML的未来充满了无限可能。1)新功能和标准将包括更多的语义化标签和WebComponents的普及。2)网页设计趋势将继续向响应式和无障碍设计发展。3)性能优化将通过响应式图片加载和延迟加载技术提升用户体验。

HTML与CSS vs. JavaScript:比较概述 HTML与CSS vs. JavaScript:比较概述 Apr 16, 2025 am 12:04 AM

HTML、CSS和JavaScript在网页开发中的角色分别是:HTML负责内容结构,CSS负责样式,JavaScript负责动态行为。1.HTML通过标签定义网页结构和内容,确保语义化。2.CSS通过选择器和属性控制网页样式,使其美观易读。3.JavaScript通过脚本控制网页行为,实现动态和交互功能。

HTML与CSS和JavaScript:比较Web技术 HTML与CSS和JavaScript:比较Web技术 Apr 23, 2025 am 12:05 AM

HTML、CSS和JavaScript是构建现代网页的核心技术:1.HTML定义网页结构,2.CSS负责网页外观,3.JavaScript提供网页动态和交互性,它们共同作用,打造出用户体验良好的网站。

HTML:是编程语言还是其他? HTML:是编程语言还是其他? Apr 15, 2025 am 12:13 AM

HTMLISNOTAPROGRAMMENGUAGE; ITISAMARKUMARKUPLAGUAGE.1)htmlStructures andFormatSwebContentusingtags.2)itworkswithcsssforstylingandjavascript for Interactivity,增强WebevebDevelopment。

超越HTML:网络开发的基本技术 超越HTML:网络开发的基本技术 Apr 26, 2025 am 12:04 AM

要构建一个功能强大且用户体验良好的网站,仅靠HTML是不够的,还需要以下技术:JavaScript赋予网页动态和交互性,通过操作DOM实现实时变化。CSS负责网页的样式和布局,提升美观度和用户体验。现代框架和库如React、Vue.js和Angular,提高开发效率和代码组织结构。

&lt; strong&gt;,lt; b&gt;有什么区别标签和lt; em&gt;,&lt; i&gt;标签? &lt; strong&gt;,lt; b&gt;有什么区别标签和lt; em&gt;,&lt; i&gt;标签? Apr 28, 2025 pm 05:42 PM

本文讨论了HTML标签,和和关注其语义与表现用途及其对SEO和可访问性的影响之间的差异。

See all articles