Posts Tagged: 工具


11
八 10

Chrome扩展腾讯微博提醒

用贯了twitter的一些插件,很不喜欢QQ面板的微博;还有一点比较恶心的是新版QQ全部用的微软雅黑字体…

遂花了些玩蛋的时间写了这个扩展,这里安装:Chrome扩展腾讯微博提醒安装地址

Chrome扩展比较好写,翻下文档中文翻译)就OK了

引用邓侃老师《Yahoo 与 Google,一点个人看法》中的话作为ending:

计算机行业的伟大成功大多遵循一个模式:拥有完善的基础架构,在此架构上有几个杀手应用,系统提供API。微软是这个模式最杰出的代表,无须赘言,它的基础架构就是Windows操作系统。互联网界的成功典范是 Google:它的架构说玄一点叫“云计算”,说平实一点就是遍布全球,前无古人的超大数据中心,和以Google File System文件系统,MapReduce并行处理技术等等,搭建起来的存储和计算平台。杀手应用也不多:搜索和广告。API的推广集中在地图和社区等方面。

为什么说这个模式容易造就伟大的成功呢?先说基础架构。这就好像国内的高速公路,修起来不容易,但一旦修好就坐地收钱,而且此系统有排它性。杀手应用也不可或缺,用户是无所谓什么操作系统的,他们在意的是杀手应用,另外操作系统上绑定的应用也别太多,否则用户就糊涂了。那么如何满足各 种用户的不同需要呢?答案是API。API的主要优点是规模效应,世界上总是有很多有聊或无聊的程序员(身兼产品经理)设计生产出各种基于API的软件或应用。用户呢,自行选择安装,丰俭由人。


31
七 10

CssGaga 2010 Beta1

拖了很久,今天终于要发布了,功能和使用方法看CssGaga帮助吧(内有视频演示)

下载CssGaga

解压了就能用,前提是装了.NET Framework 2.0+

这个跟之前项目里使用的有些差别:

  1. 重新调整了思路,代码改动较大,未在实践中检验,所以大家注意BUG并反馈哈
  2. 精简了界面,将一些功能(去注释、格式化、不换行压缩)默认开启,不再提供复选框进行设置

14
七 10

CssGaga帮助

下载

运行环境

  • Windows XP(需安装Microsoft .NET Framework 3.5
  • Windows Vista
  • Windows 7
  • 注:使用前请更改配置文件

    CssGaga.exe.config

    操作文件类型

    • .css 文件名必须以“.source.css”结尾,供开发使用(SVN只需托管*.source.css),经工具生成后会去除“.source”用于发布,即
      style.source.css → style.css

      注:会覆盖或删除之前的 style.css

    • .jpg
    • .gif
    • .png
    • .cur

    压缩CSS

    去除注释和空白

    Before:

    /*****
      Multi-line comment
      before a new class name
    *****/
    .classname {
        /* comment in declaration block */
        font-weight: normal;
    }

    After:

    .classname{font-weight:normal}

    保留注释

    Before:

    /*!
      (c) Very Important Comment
      Very Important Comment
    */
    .classname {
        /* comment in declaration block */
        font-weight: normal;
    }

    After:

    /*!(c) Very Important Comment Very Important Comment */
    .classname{font-weight:normal}

    去除结尾的分号

    Before:

    .classname {
        border-top: 1px;
        border-bottom: 2px;
    }

    After:

    .classname{border-top:1px;border-bottom:2px}

    Before:

    去除多余的分号

    .classname {
        border-top: 1px; ;
        border-bottom: 2px;;;
    }

    After:

    .classname{border-top:1px;border-bottom:2px}

    去除无效的规则

    Before:

    .empty { ;}
    .nonempty {border: 0;}

    After:

    .nonempty{border:0}

    去除零值的单位并合并多余的零

    Before:

    a {
        margin: 0px 0pt 0em 0%;
        background-position: 0 0ex;
        padding: 0in 0cm 0mm 0pc
    }

    After:

    a{margin:0;background-position:0 0;padding:0}

    去除小数点前多余的0

    Before:

    .classname {
        margin: 0.6px 0.333pt 1.2em 8.8cm;
    }

    After:

    .classname{margin:.6px .333pt 1.2em 8.8cm}

    色值压缩

    Before:

    .color-me {
        color: rgb(123, 123, 123);
        border-color: #ffeedd;
        background: none repeat scroll 0 0 rgb(255, 0,0);
    }

    After:

    .color-me{color:#7b7b7b;border-color:#fed;background:none repeat scroll 0 0 #f00}
    不压缩RGBA与IE滤镜中的色值

    Before:

    .cantouch {
        color: rgba(1, 2, 3, 4);
        filter: chroma(color="#FFFFFF");
    }

    After:

    .cantouch{color:rgba(1,2,3,4);filter:chroma(color="#FFFFFF")}

    去除编码声明

    Before:

    @charset "utf-8";
    #foo {
        border-width: 1px;
    }
    
    /* second css, merged */
    @charset "another one";
    #bar {
        border-width: 10px;
    }

    After:

    #foo{border-width:1px}#bar{border-width:10px}

    压缩IE滤镜

    Before:

    .classname {
        -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"; /* IE 8 */
        filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);       /* IE < 8 */
    }

    After:

    .classname{-ms-filter:"alpha(opacity=80)";filter:alpha(opacity=80)}

    去除多余引号

    Before:

    @import url("mod-1.css");
    @import url('mod-2.css');

    After:

    @import url(mod-1.css);
    @import url(mod-2.css);

    Before:

    .classname{ background: url("img/icon.png"); }
    .classname{ background: url('img/icon.png'); }

    After:

    .classname{background:url(img/icon.png)}
    .classname{background:url(img/icon.png)}

    不会影响正常的引号

    Before:

    .clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}

    After:

    .clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden}

    对HACK的影响

    支持常用HACK

    Before:

    #element {
        width: 1px;
        width: 2px\9;
        *width: 3px;
        #width: 3px;
        _width: 4px;
    }

    After:

    #element{width:1px;width:2px\9;*width:3px;#width:3px;_width:4px}

    不支持以下HACK

    html >/**/ body p {
        color: blue;
    }
    #elem {
        width: 100px; /* IE */
        voice-family: "\"}\"";
        voice-family:inherit;
        width: 200px; /* others */
    }

    修正常见 bug

    保留空格(IE6 bug)

    Before:

    .classname:first-letter { font-weight: bold; }
    .classname:first-line { font-weight: bold; }

    After:

    .classname:first-letter {font-weight:bold}
    .classname:first-line {font-weight:bold}

    中文字体Unicode编码

    Before:

    .classname { font-family: 宋体; }
    .classname { font-family: 黑体; }
    .classname { font-family: 微软雅黑; }

    After:

    .classname{font-family:\5B8B\4F53}
    .classname{font-family:\9ED1\4F53}
    .classname{font-family:\5FAE\8F6F\96C5\9ED1}

    注:支持以上三种字体

    删除不安全字体sans-serif(IE8 bug)

    Before:

    .classname { font-family: 宋体, sans-serif; }

    After:

    .classname{font-family:\5B8B\4F53}

    cursor生成根路径(IE6&7 bug)

    Before:

    {cursor:url('cursor/pre.cur'), auto;}

    After:

    {cursor:url(http://imgcache.qq.com/qzonestyle/css/cursor/pre.cur),auto}

    注:

    • cur文件所在的cursor文件夹与css同级且引用时为相对路径
    • 需在配置文件里设置下面两项的对应关系
      <add key="pathSource" value="E:\isd_webrebuild_rep\qzonev5_proj\trunk\qzonestyle\" />
      <add key="webSiteUrl" value="http://imgcache.qq.com/qzonestyle/" />

    合并CSS

    Before:

    @import url("reset.import.source.css");
    @import url("grid.import.source.css");
    @import url("mod-1.source.css"); /* mod-1.source.css 中 @import url("media.source.css"); */
    @import url("mod-2.css");
    @import url("../mod-3.source.css");
    @import url("http://imgcache.qq.com/qzonestyle/mod-4.source.css");

    After:

    @import url(media.css);
    @import url(mod-2.css);
    @import url(../mod-3.source.css);
    @import url(http://imgcache.qq.com/qzonestyle/mod-4.source.css);
    [reset.import.source.css 处理后的代码]
    [grid.import.source.css 处理后的代码]
    [mod-1.source.css 处理后的代码]

    注:

    • 只合并同级的*.source.css
    • 文件名包含“.import.source.css”的文件不会生成的同步目录(例如,不会生成到72等服务器)
    • 只合并一次,若mod-1.source.css中import了其他css文件(即便同级)则不做处理

    data URI & MHTML

    Before:

    .base64{background-image:url('base64/logo.png');}

    注:

    • 要转换的图片文件所在base64文件夹与css同级且引用时为相对路径

    After:

    • .base64{background-image:url(data:image/png;base64,[base64 string])}
    • /*
      Content-Type:multipart/related;boundary="_YT"
      
      --_YT
      Content-Location:logo.png
      Content-Transfer-Encoding:base64
      
      [base64 string]
      
      --_YT--
      */
      .base64{background-image:url(data:image/png;base64,[base64 string]);#background-image:url(mhtml:http://imgcache.qq.com/qzonestyle/css/style.css!logo.png);}

      注:

      • 需在配置文件里设置下面两项的对应关系
        <add key="pathSource" value="E:\isd_webrebuild_rep\qzonev5_proj\trunk\qzonestyle\" />
        <add key="webSiteUrl" value="http://imgcache.qq.com/qzonestyle/" />
    • .base64{background-image:url(data:image/png;base64,[base64 string]);#background-image:url(mhtml:http://imgcache.qq.com/qzonestyle/css/mhtml.css!logo.png);}

      注:

      • 需在配置文件里设置下面两项的对应关系
        <add key="pathSource" value="E:\isd_webrebuild_rep\qzonev5_proj\trunk\qzonestyle\" />
        <add key="webSiteUrl" value="http://imgcache.qq.com/qzonestyle/" />
      • 会在css文件同级生成mhtml.css

    生成MHTML时,若图片为alpha透明的png并以”.alpha.png“为结尾命名,则会自动生成IE6滤镜

    .base64{background-image:url(data:image/png;base64,[base64 string]);#background-image:url(mhtml:http://imgcache.qq.com/qzonestyle/css/style.css!shadow.alpha.png);_background-image:none;_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='mhtml:http://imgcache.qq.com/qzonestyle/css/style.css!shadow.alpha.png',sizingMethod='scale');}

    压缩图片

    • *.png → *.png
    • *.jpg → *.jpg

      若文件大于10KB,则转换为渐进式jpg

    何时压缩图片?

    • 不选择同步的情况下,拖进来直接压缩
    • base64编码前压缩
    • 同步前压缩

    注:图片压缩前不会备份,请自行备份

    自动登录同步服务器

    须配置,不需登录脚本则留空

    <add key="cmdDest1" value="" />
    <add key="cmdDest2" value="139.bat" />
    <add key="cmdDest3" value="217.bat" />

    注:CssGaga启动时即自动登录服务器

    同步文件并生成提测文件列表

    • 须配置本地路径与目的路径的对应关系
      <add key="pathSource" value="E:\isd_webrebuild_rep\qzonev5_proj\trunk\qzonestyle\" />
      <add key="pathDest1" value="\\172.25.32.72\imgcache\qzonestyle\" />
      <add key="pathDest1" value="\\172.25.32.139\imgcache\qzonestyle\" />
      <add key="pathDest1" value="\\10.6.207.217\data\release\imgcache\qzonestyle\" />
    • 须配置本地路径与提测格式的对应关系
      <add key="pathSource" value="E:\isd_webrebuild_rep\qzonev5_proj\trunk\qzonestyle\" />
      <add key="pathReport" value="/usr/local/imgcache/htdocs/qzonestyle/" />

      生成的提测文件列表格式如下:

      /usr/local/imgcache/htdocs/qzonestyle/img/1.png
      /usr/local/imgcache/htdocs/qzonestyle/img/2.png
      /usr/local/imgcache/htdocs/qzonestyle/img/3.png

    注:同步路径可在配置中更改显示名称

    <add key="pathDest1Name" value="拷到72" />

    备份

    选中备份后同步时在目的文件文件夹中建立backup文件夹,备份文件名中会加入备份时间

    \\172.25.32.72\imgcache\qzonestyle\xiaoyou_portal_v2\img\backup\logo-2010-9-2 13.54.20.png

    CSS3属性自动生成

    注:只支持下面提到的属性

    Before:

    .column {
        -moz-column-count: 4;
        -moz-column-gap: 20px;
    }

    After:

    .column{-moz-column-count:4;-webkit-column-count:4;column-count:4;-moz-column-gap:20px;-webkit-column-gap:20px;column-gap:20px}

    Before:

    .border-radius {
         -moz-border-radius: 12px;
    }

    After:

    .border-radius{-moz-border-radius:12px;-webkit-border-radius:12px;border-radius:12px}

    Before:

    .border-radius {
    	-moz-border-radius-topleft: 20px;
    	-moz-border-radius-topright: 0;
    	-moz-border-radius-bottomleft: 0;
    	-moz-border-radius-bottomright: 20px;
    }

    After:

    .border-radius{-moz-border-radius-topleft:20px;-webkit-border-top-left-radius:20px;border-top-left-radius:20px;-moz-border-radius-topright:0;-webkit-border-top-right-radius:0;border-top-right-radius:0;-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomright:20px;-webkit-border-bottom-right-radius:20px;border-bottom-right-radius:20px}

    Before:

    .box-shadow {
         -moz-box-shadow: 0px 0px 4px #ffffff;
    }

    After:

    .box-shadow{-moz-box-shadow:0 0 4px #fff;-webkit-box-shadow:0 0 4px #fff;box-shadow:0 0 4px #fff}

    Before:

    .transform {
         -moz-transform: rotate(9deg);
    }

    After:

    .transform{-moz-transform:rotate(9deg);-webkit-transform:rotate(9deg);-o-transform:rotate(9deg)}

    Before:

    .transition {
         -moz-transition: all 0.3s ease-out;
    }

    After:

    .transition{-moz-transition:all .3s ease-out;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out}

    Before:

    input[type="text"], textarea {
        -moz-box-sizing: border-box;
    }

    After:

    input[type="text"],textarea{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}

    后续开发计划

    css变量等等,基于CSS Wish List(偶们组之前的另外一个美女raina有翻译过,不过她的网站暂时打不开了,网址以后补上),Nicole Sullivan又整理了份css变量标准,正好可以参考


7
六 10

HttpWatch 7.0 license 下载

上篇提到了获得了license的事情,鉴于对现在的我和周遭的人价值不大,不如共享,注意8月29号过期!

下载HttpWatch 7.0 license

能用最好,不能用买正版克:)


28
五 10

HttpWatch 7.0

前些天不知哪个feed反刍,看到老赵几年前发的这篇《意外得到了一个免费的HttpWatch Professional的License》,是不是在预示着什么?

今天向往常一样Google Reader,看到httpwatch 7.0搞发布活动HttpWatch 7.0: Spot the Differences!,于是就简单掺和了一下,没想到抢了沙发,license也到手了。

httpwatch做个广告,原因嘛你懂的

7.0增加了4个新功能

2010-6-7正式发布,期待~


8
二 10

跨浏览器的Firebug

标题党一把,哇哈哈哈哈~

Firebug Lite越来越好了,Chrome的Firebug Lite扩展其实就是Firebug Lite(扩展的缺点是要安装),但是我发现身边的一些人(包括大牛)对其还不太了解,下面简单介绍一下

Firebug Lite安装及使用

  1. 用需安装Firebug Lite的浏览器打开Firebug Lite安装页面
  2. 设置浏览器显示书签栏
  3. 将此链接Firebug Lite 1.3Xb拖拽到浏览器的书签栏(也可直接拖拽此链接,可能会被RSS阅读器过滤,请打开本博查看)
  4. 打开要调试的页面
  5. 点击刚才加入书签栏的Firebug Lite 1.3Xb调出即可(为远程调用要稍许等待)

注:

  • 以上方法使用于大部分浏览器(Firefox/Chrome/Safari/Opera自不在话下),可能各浏览器多书签栏的叫法有不同
  • IE等不能拖拽到收藏夹栏可以通过右键添加
  • 可自行制作离线版本,详见Firebug Lite安装页面
  • 复杂的页面调试不了…

另一个比较常用的书签工具为大牛Steve Souders的SpriteMe,用于自动生成css sprite图片

SpriteMe安装及使用

同Firebug Lite类似,将这个链接SpriteMe(可能会被RSS阅读器过滤,请打开本博查看)拖拽到书签栏即可。

让人欣喜的是,和Firebug Lite一样是开源的,可在SpriteMe项目主页下载源码并建立离线版本。

下面是来自youtube的视频介绍(后半段为SpriteMe介绍):


10
一 10

在UlrtraEdit中配置Zen Coding

Zen Coding出来很久一段时间了,鬼哥更是在分享时潇洒的秀了一把,真是羡慕死人了。最近一直忙着搞需求,只有周末才有时间折腾一下,有点小郁闷~

Zen Coding中最吸引我的是html展开功能,一个轻量级的编辑器就够了,鉴于此选择了UltraEdit,用的是烈火汉化绿色版(绿色便携版没搞成功,貌似不支持),以下是配置方法:

  1. 下载UltraEdit Zen Coding.zip并解压Zen HTML UltraEdit.js至UltraEdit目录下的scripts目录中
  2. 按快捷键Ctrl+Shift+Z调出脚本窗口,点击添加按钮选择刚才解压的HTML UltraEdit.js并设置快捷键(我设置的Ctrl+Enter),按确定保存即可
    看不到图片请翻墙

接下来测试一下,新建文件,敲入以下语句:

div.mod.mod1>div.inner>div.hd+div.bd>ul>li*10>a

之后按下Ctrl+Enter,马上变成:

<div class="mod mod1">
	<div class="inner">
		<div class="hd"></div>
		<div class="bd">
			<ul>
				<li><a href=""></a></li>
				<li><a href=""></a></li>
				<li><a href=""></a></li>
				<li><a href=""></a></li>
				<li><a href=""></a></li>
				<li><a href=""></a></li>
				<li><a href=""></a></li>
				<li><a href=""></a></li>
				<li><a href=""></a></li>
				<li><a href=""></a></li>
			</ul>
		</div>
	</div>
</div>

大功搞成!

Zen Coding的html书写规则详见Zen HTML Elements


21
十一 09

Pixel Perfect – 工具

之前使用最多的工具是QQ/TM的截图(快捷键CTRL+ALT+A)和肉眼估算,追求pixel perfect的话还是要专业的工具才好

FastStone Capture

身为一款截图软件却带了一把邪恶的屏幕标尺,不幸落入设计师手中成为测量偶们页面的万恶之源!

Pixel Perfect

一款基于firebug的扩展,官网为http://www.pixelperfectplugin.com,效果不错,不过只支持Firefox

Microsoft Expression Web

通过工具栏的视图-描摹图像菜单来进行设置或调出

之后配合设计视图进行调试。用起来也没那么爽,设计视图的显示效果和浏览器始终会有差异

打造自己的Pixel Perfect

Pixel Perfect扩展和EW的描摹图像功能原理类似,将效果图叠在页面下方并设置一定的透明度之后偶们再用肉眼比对。知道了原理我们自己就可以开始DIY了,代码如下:

<!DOCTYPE html>
<html>

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Pixel Perfect - 99css.com</title>
<!-- Pixel Perfect -->
<style>
img.pixel-perfect{position:absolute;left:0;top:0;-moz-opacity:0.5;-khtml-opacity:0.5;opacity:0.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";#filter:alpha(opacity=50);}
#pg{position:relative;z-index:1;}
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
    $('<img class="pixel-perfect" src="设计/填写资料页副本.jpg" />').appendTo('body');
})
</script>
</head>

<body>

<div id="pg">
    <div id="hd">head</div>
    <div id="bd">body</div>
    <div id="ft">foot</div>
</div>

</body>

</html>

一个跨浏览器的Pixel Perfect就这样诞生了,使用时只需调整图片路径、top/left值、透明度即可(有时页面很长,js写在head中方便后期删除,暂时去除只需将整段注释掉;追求性能放在页面底部,不过本地调试就不用这么龟毛了吧)

Next

剩下的就是配合firebug/IE developer toolbar进行微调,体力活开始了…


2
十 09

[翻译]用Page Speed Activity捕获并分析浏览器渲染

安装

Page Speed 是一个 Firebug/Firefox 扩展,安装地址:http://code.google.com/speed/page-speed/download.html

背景:逐步呈现

快速的网页逐步呈现。即随浏览器的加载而逐步显示其内容。一个逐步呈现的页面给浏览者页面在加载的视觉回馈,并尽快给给用户请求信息。GoogleYahoo 都建议逐步呈现页面,比如把 CSS 写在页面 head 中。

对多绝大多数页面来说,有一些很好的实践来优化逐步呈现。一个快速的页面应该先给用户呈现可见的内容(译注:浏览器第一屏),随后呈现视线外的内容(即当前滚动区域外的内容)。一个快速的页面会在加载和渲染重量级的资源(如图片和视频)之前加载和渲染轻量级的资源(如文字)。

一些众所周知的技术会禁止逐步呈现。使用大量表格,甚至用来布局,在一些浏览器中会使逐步呈现失效。应用样式表在页面后方,即便这些样式表在开始的页面加载中使用不到,也会阻止逐步呈现。

用Page Speed Activity捕获浏览器渲染

很难决定一个页面是否要进行逐步呈现优化。大多数页面对肉眼来说呈现太快,以至于意识不到个别的渲染事件(尤其是在高速网络连接下),而且看不到屏幕区域外的内容是否呈现了。

幸运的是,Firefox 3.5 支持捕获浏览器渲染事件。Page Speed Activity 面板用这个功能可为页面呈现过程录制一个“幻灯片”。幻灯片的每一单元显示了哪一个屏幕区域被渲染(黄色),哪些区域在屏幕外(灰色)用户看不到。

启用渲染快照

由于捕获渲染快照会增加一些开销并拖慢浏览器,Page Speed Activity 屏幕快照默认是禁用的。启用渲染快照,确保Activity 下拉菜单中的”Paint Snapshots (slow)” 被选中。

Activity 面板中的渲染快照

一旦渲染快照启用,就开始用 Activity 面板录制。Activity 面板将在时间线上显示网络,缓存,和 JavaScript 事件。渲染快照幻灯片出在Activity 面板右侧。渲染快照会按捕获顺序绘制,最早的快照在顶部。拖动右侧的滚动条可看到所有的快照。

快照回放示例

译注:请到这里看演示


在这个例子中,我们可以看到以渲染快照慢动作回放的 Google 搜索结果页面的逐步呈现。这些快照用 modem 连接捕获。

用 Page Speed Activity 回放这个例子的渲染快照,请点击 Play Paint Events按钮。

在快照中,用户可见的区域为白色,用户不看见的区域(当前浏览器滚动区域之外)用灰色遮罩。每个快照用黄色遮罩显示重绘区域。

请注意,可见区域的文本内容首先呈现,之后是屏幕外的文本内容。通过先呈现屏幕内的可见区域,用户尽早获取了尽可能多的有用信息。

文本内容呈现后,图像内容接着呈现。推迟图像内容呈现直到文本内容下载完成并呈现完成,这使得浏览器尽早的显示文本内容,再一次尽早给用户尽可能多的有用信息。

在页面标签中给所有图像指定宽度和高度属性,浏览器不需在图像加载后 reflow 页面。尽管没有严格的与逐步呈现有关,指定图像的宽高会带来更好的用户体验,在页面加载时页面内容不会在附近移动。

最后,注意图像自身的逐渐呈现。允许用户在全部图像完成加载前看到图像内容。现代浏览器在 HTML 中用 <img> 标签逐步呈现图像。相反,许多浏览器中用CSS 的background-image 属性不会逐步呈现。为了逐步呈现图像,用 HTML 的 <img> 标签来代替 CSS 的 background-image属性。


总结

使用 Page Speed Activity 面板的渲染快照功能,我们可以清晰的观察页面的逐步呈现行为。这使得网页开发者可以为逐步呈现而优化页面,这是快速网页非常重要的特性之一。

延伸阅读


1
九 09

CssOptimizer1.0 发布

抽空将刚到公司时写的 CSS 压缩工具由 web 版移植为了离线版(这也是我的第一个 WinForm 程序),操作同 PngOptimizer(也许要翻墙) 类似,将要压缩的CSS 文件拖拽至程序窗口即可,之后会生成压缩后的文件并建立副本。

压缩原理如下:

  1. 删除换行符
  2. 删除}前的分号
  3. 删除注释

最好配合 Microsoft Expression Web 使用:

  1. EW进行如下设置:进入工具菜单 – 网页编辑器选项 – 代码格式选项卡,将 CSS
    下拉框中所有项的格式都设置为“行前:0”,“行后:0”,“空格后:0”
  2. 用 EW 编辑 CSS 时,右键“重设 CSS 格式”即可对代码进行格式化,之后保存
  3. 用本工具压缩

注:本程序只能在 Windows 下使用并须安装 .NET framework

下载地址:http://www.brsbox.com/filebox/down/fc/922b69797c5cf1a062b7a2415594bd46,下载后解压到任意目录即可