• 使用compass更高效的编辑css --- 图片精灵


      compass是sass的一个库,关系相当于js中的jq。比较可惜的是compass的文档比较混乱 看的不太舒服,下面是compass的文档地址,有兴趣的可以去看看

      http://compass-style.org/help/documentation/

      在这里我就不仔细讲compass的知识了,可以去阮一峰的博客里面有一遍compass的介绍,附上链接地址

      http://www.ruanyifeng.com/blog/2012/11/compass.html

      这里主要讲的是图片精灵,我们在网上可以找到很多关于compass使用图片精灵的方法,比较可惜的是不太满足我们的需求,所以做了如下改变

      需要注意的是config.rb上面要写上合成雪碧图的路径

    http_path = "/"
    css_dir = "dist/css"
    sass_dir = "src/sass"
    images_dir = "dist/img"
    javascripts_dir = "src/js"
    sprite_load_path = "src/img"
    output_style = :compressed
    asset_cache_buster :none

      编译之前的sass代码:

    @charset "utf-8";
    @import "compass/utilities/sprites";
    @import "compass/css3/background-size";
    
    // 公用图片精灵的配置信息
    $sprites_common: sprite-map("common/*.png", $spacing: 10px, $layout: vertical,$sort-by: '!width',$position:10px,$repeat:no-repeat,$clean-up:true);
    
    @mixin img-sprite($sprite, $name, $sprite-name) {
        //获取当前图标的图片名字
        $imgurl: sprite-file($sprite, $name);
        //获取当前图标的位置
        $pos: sprite-position($sprite, $name);
    
        //根据名字获取获取长度和宽度,并设置
         image-width($imgurl) / 2;
        height: image-height($imgurl) / 2;
        
        //设置图标的位置
        background-position: nth($pos, 1) / 2 nth($pos, 2) / 2;
        //使用compass的Css3模块 兼容处理背景图片大小
        @include background-size(ceil(image-width(sprite-path($sprite)) / 2) auto);
    }
    
    @mixin img-common($name) {
        @include img-sprite($sprites_common, $name, "common");
    }
    
    //设定icon的图片信息
    .common{
        //下面这句代码会触发图标合成一张图
        background-image: sprite-url($sprites_common);
        background-repeat: no-repeat;
        display: inline-block;
        .icon-baike{
            @include img-common('ic_baike')
        }
        .icon-ic_card_gongshang{
            @include img-common('ic_card_gongshang')
        } 
    }

      编译之后的css文件:

    /* line 29, ../sass/ie.scss */
    .common {
      background-image: url('/img/common-sbb7f65b409.png');
      background-repeat: no-repeat;
      display: inline-block;
    }
    /* line 34, ../sass/ie.scss */
    .common .icon-baike {
      width: 18px;
      height: 20px;
      background-position: -5px -1870px;
      -moz-background-size: 59px auto;
      -o-background-size: 59px auto;
      -webkit-background-size: 59px auto;
      background-size: 59px auto;
    }
    /* line 37, ../sass/ie.scss */
    .common .icon-ic_card_gongshang {
      width: 30px;
      height: 30px;
      background-position: -5px -743px;
      -moz-background-size: 59px auto;
      -o-background-size: 59px auto;
      -webkit-background-size: 59px auto;
      background-size: 59px auto;
    }
  • 相关阅读:
    域环境下如何保护重要资料文件的安全(一)EFS加密(上)
    软件开发过程(CMMI/RUP/XP/MSF)是与非
    CMMI5在项目中的精简应用
    小型软件企业实施CMMI过程改进案例
    【转】plsql中ordered什么场合使用
    【转】C# Socket编程笔记
    某一个字段去重,其他字段全部查询的解决办法
    从Excel中导入数据时,提示未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序。
    oracle创建远程数据库连接dblink
    【转】eclipse 查看原始类出现The jar file rt.jar has no source attachment解决方法
  • 原文地址:https://www.cnblogs.com/HeJason/p/5721027.html
Copyright © 2020-2023  润新知