>>分享Web前端开发技术,并对孙卫琴的《精通Vue.js:Web前端开发技术详解》提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 26241 个阅读者 刷新本主题
 * 贴子主题:  CSS 图像拼合技术 回复文章 点赞(0)  收藏  
作者:sunshine    发表时间:2019-08-15 17:00:26     消息  查看  搜索  好友  邮件  复制  引用

  

CSS  图像拼合技术

图像拼合

     图像拼合就是单个图像的集合。

    有许多图像的网页可能需要很长的时间来加载和生成多个服务器的请求。

    使用图像拼合会降低服务器的请求数量,并节省带宽。            

图像拼合 - 简单范例

     与其使用三个独立的图像,不如我们使用这种单个图像("img_navsprites.gif"):

         点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

     有了CSS,我们可以只显示我们需要的图像的一部分。

     在下面的例子CSS指定显示 "img_navsprites.gif" 的图像的一部分:                            

范例

    img.home
    {

    width:46px;

    height:44px;

    background:url(img_navsprites.gif) 0 0;

    }

                 范例解析:    
  • <img class="home" src="img_trans.gif" /> -因为不能为空,src属性只定义了一个小的透明图像。显示的图像将是我们在CSS中指定的背景图像
  • 宽度:46px;高度:44px; - 定义我们使用的那部分图像
  • background:url(img_navsprites.gif) 0 0; -  定义背景图像和它的位置(左0px,顶部0px)
     这是使用图像拼合最简单的方法,现在我们使用链接和悬停效果。            

图像拼合 - 创建一个导航列表

     我们想使用拼合图像 ("img_navsprites.gif"),以创建一个导航列表。

     我们将使用一个HTML列表,因为它可以链接,同时还支持背景图像:                    

范例

    #navlist{position:relative;}

    #navlist li{margin:0;padding:0;list-style:none;position:absolute;top:0;}

    #navlist li, #navlist a{height:44px;display:block;}

    #home{left:0px;width:46px;}

    #home{background:url('img_navsprites.gif') 0 0;}

   #prev{left:63px;width:43px;}

    #prev{background:url('img_navsprites.gif') -47px 0;}

    #next{left:129px;width:43px;}

    #next{background:url('img_navsprites.gif') -91px 0;}

             范例解析:    
  • #navlist{position:relative;} - 位置设置相对定位,让里面的绝对定位
  • #navlist li{margin:0;padding:0;list-style:none;position:absolute;top:0;} - margin和padding设置为0,列表样式被删除,所有列表项是绝对定位
  • #navlist li, #navlist a{height:44px;display:block;} - 所有图像的高度是44px
     现在开始每个具体部分的定位和样式:    
  • #home{left:0px;width:46px;} - 定位到最左边的方式,以及图像的宽度是46px
  • #home{background:url(img_navsprites.gif) 0 0;} - 定义背景图像和它的位置(左0px,顶部0px)
  • #prev{left:63px;width:43px;} - 右侧定位63px(#home宽46px+项目之间的一些多余的空间),宽度为43px。
  • #prev{background:url('img_navsprites.gif') -47px 0;} - 定义背景图像右侧47px(#home宽46px+分隔线的1px)
  • #next{left:129px;width:43px;}- 右边定位129px(#prev 63px + #prev宽是43px + 剩余的空间), 宽度是43px.
  • #next{background:url('img_navsprites.gif') no-repeat -91px 0;} - 定义背景图像右边91px(#home 46px+1px的分割线+#prev宽43px+1px的分隔线)

图像拼合s - 悬停效果

     现在,我们希望我们的导航列表中添加一个悬停效果。

            
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小 :hover 选择器用于鼠标悬停在元素上的显示的效果

提示: :hover 选择器可以运用于所有元素。


     我们的新图像 ("img_navsprites_hover.gif") 包含三个导航图像和三幅图像:

         点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

    因为这是一个单一的图像,而不是6个单独的图像文件,当用户停留在图像上不会有延迟加载。

    我们添加悬停效果只添加三行代码:                    

范例

    #home a:hover{background: url('img_navsprites_hover.gif') 0 -45px;}

    #prev a:hover{background: url('img_navsprites_hover.gif') -47px -45px;}

    #next a:hover{background: url('img_navsprites_hover.gif') -91px -45px;}

             范例解析:    
  • 由于该列表项包含一个链接,我们可以使用:hover伪类
  • #home a:hover{background: transparent url(img_navsprites_hover.gif) 0 -45px;} - 对于所有三个悬停图像,我们指定相同的背景位置,只是每个再向下45px
程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2020-02-20 10:33:04 重新编辑]
  Java面向对象编程-->第一个Java程序
  JavaWeb开发-->Servlet技术详解(Ⅱ)
  JSP与Hibernate开发-->Java对象持久化技术概述
  Java网络编程-->ServerSocket用法详解
  精通Spring-->通过Axios访问服务器
  Vue3开发-->绑定CSS样式
  键盘按键与 键码对照表
  Vue 3新特性RFC-0026异步组件的全新API
  Vue路由传递参数详细说明
  Vue用法详解
  jQuery 事件方法汇总
  jQuery 遍历过滤:缩小搜索元素的范围
  HTML DOM Image图片对象
  CSS padding(填充)
  CSS Border(边框)
  HTML 区块:div和span元素
  JavaScript prototype(原型对象)
  JavaScript中的 this关键字
  JavaScript的比较和逻辑运算符
  JavaScript 严格模式(use strict)
  一文读懂前端技术演进:盘点Web前端20年的技术变迁史
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。