<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[沉寂博客 - 网页设计]]></title>
<link>http://www.xa148.cn/</link>
<description><![CDATA[上帝给人了平等的机会；关键在于你如何把握！]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog2 v2.4]]></copyright>
<webMaster><![CDATA[ctxlxm@163.com(毛毛哥)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>沉寂博客</title> 
	<url>http://www.xa148.cn/images/logos.gif</url> 
	<link>http://www.xa148.cn/</link> 
	<description>沉寂博客</description> 
</image>

			<item>
			<link>http://www.xa148.cn/default.asp?id=650</link>
			<title><![CDATA[px，pt在使用中的区别]]></title>
			<author>ctxlxm@163.com(edream)</author>
			<category><![CDATA[网页设计]]></category>
			<pubDate>Wed,11 Aug 2010 13:41:00 +0800</pubDate>
			<guid>http://www.xa148.cn/default.asp?id=650</guid>	
		<description><![CDATA[字体大小的设置单位，常用的有2种：px、pt。这两个有什么区别呢？<br/><br/>先搞清基本概念：px就是表示pixel，像素，是屏幕上显示数据的最基本的点；<br/><br/>pt就是point，是印刷行业常用单位，等于1/72英寸。<br/><br/>这样很明白，px是一个点，它不是自然界的长度单位，谁能说出一个“点”有多长多大么？可以画的很小，也可以很大。如果点很小，那画面就清晰，我们称它为“分辨率高”，反之，就是“分辨率低”。所以，“点”的大小是会“变”的，也称为“相对长度”。<br/><br/>pt全称为point，但中文不叫“点”，查金山词霸可以看到，确切的说法是一个专用的印刷单位“磅”，大小为1/72英寸。所以它是一个自然界标准的长度单位，也称为“绝对长度”。<br/><br/>因此就有这样的说法，pixel是相对大小，而point是绝对大小。<br/><br/> <br/><br/>分清“屏幕效果”和“打印效果”：<br/><br/>在浏览网页过程中，所有的“大”“小”概念，都是基于“屏幕”这个“界面”上。“屏幕”上的各种信息，包括文字、图片、表格等等，都会随屏幕的分辨率变化而变化，一个100px宽度大小的图片，在800×600分辨率下，要占屏幕宽度的1/8，但在1024×768下，则只占约1/10。所以如果在定义字体大小时，使用px作为单位，那一旦用户改变显示器分辨率从800到1024，用户实际看到的文字就要变“小”（自然长度单位），甚至会看不清，影响浏览。<br/><br/>那是不是用pt做单位就没这样的问题呢？错！问题同样出现。刚才的例子已经很清楚的说明，在不同分辨率下，无论是px还是pt，都会改变大小。以现在的电脑屏幕情况，还没有一种单位可以保证，在不同分辨率下，一个文字大小可以“固定不变”。因为这很难以实现也不是很有必要：全球电脑用户以亿来数，屏幕从14寸到40寸甚至更高都有，屏幕大小不同，分辨率也不同，要保证一个字体在所有用户面前大小一样，实在是MISSION IMPOSSIBLE。另外，电脑有其自身的调节性。<br/><br/>那在页面设计中到底是用px还是pt呢？<br/><br/>我认为，这个并没有什么原则性差异，就看自己处于什么角度思考了。<br/><br/>Mac机怎么情况不清楚，在Windows里，默认的显示设置中，把文字定义为96DPI（PPI，微软都将DPI和PPI混为一体，我们也就无须较真了）。这样的定义，说明了：1px＝1/96英寸。联系pt的概念，1pt＝1/72英寸，可以得出，在这样的设置中，1px＝0.75pt，常见的宋体9pt＝12px。在显示器分辨率不变的基础上（比如现在常用的1024×768），1px大小也就固定不变，改变显示设置，调整为144DPI，可以得出，1px＝0.5pt，常见的宋体9pt＝18px。原先用12px来组成的一个文字，现在需要18px来组成，px多了，文字就“大”了，更易阅读了。<br/><br/>所以，px和pt的使用区别，只有当用户改变默认的96DPI下才会产生：使用px定义文字，无论用户怎么设置，都不会改变大小；使用pt定义文字，当用户设置超过96DPI的值，数值越大，字体就越大。<br/><br/>　　（附公式：px = pt * DPI / 72) 对了，刚才还提到改变浏览器中文字大小的选项，也可以改变网页的文字大小。但在这种情况下，使用px和pt都是无效的，因为这2个都是有实际“pixel”数值的单位，比如9pt是12px，大小固定。这里要引用新的单位：em，其实就是％。因为当网页中的字体没有给出实际的px或pt定义的话，会有一个默认值：12pt即16px，对应浏览器中“字体大小”中的“中等”，以这个为标准，变大或缩小。（只适用于IE，在FF中，即便定义px或pt也都可以变大变小）<br/><br/>所以，从这个概念上看，em才是真正的“相对单位”（百分比嘛，当然是相对），而px和pt都是绝对单位（都有固定值）。<br/><br/>在网页设计中，面向用户的屏幕的基本单位是px，因此使用px作为单位是最简单也最容易理解的，而pt也不过是通过了Windows的设置乘上了一个比率转变成px再显示，算是绕了个圈子。参考大部分大型网站，包括Adobe和Microsoft，都是使用px作为单位，而且在HTML中，默认的单位就是px，是不是也暗示着px是网页设计的“内定单位”？<br/><br/>　　但在Word或Photoshop中，使用pt就相当方便。因为使用Word和Photoshop的主要目的都不是为了屏幕浏览，而是输出打印。当打印到实体时，pt作为一个自然长度单位就方便实用了：比如Word中普通的文档都用“宋体 9pt”，标题用“黑体 16pt”等等，无论电脑怎么设置，打印出来永远就是这么大。又或者在Photoshop中，设置一个图片中的某个艺术效果的字体是72pt大小，然后分别将这张图片设为300DPI和72DPI，再打印出来，就可以看出，这2个字体大小完全一样，只是“清晰度”不同，300DPI更清晰。这是毫无疑问的结果。<br/><br/>　　最后整理一下所有出现过的单位：<br/><br/>　　px：pixel，像素，屏幕上显示的最小单位，用于网页设计，直观方便；<br/><br/>　　pt：point，是一个标准的长度单位，1pt＝1/72英寸，用于印刷业，非常简单易用；<br/><br/>　　em：即％，在CSS中，1em＝100％，是一个比率，结合CSS继承关系使用，具有灵活性。<br/><br/>　　PPI（DPI）：pixel（dot）per inch，每英寸的像素（点）数，是一个率，表示了“清晰度”，“精度”<br/><br/> <br/><br/>PX和PT转换的公式：<br/><br/>以前在文章中介绍过PX和PT的转换规则，其实很简单，pt=px乘以3/4。<br/><br/>比如12px×3/4=9pt大小。<br/><br/>PX和em转换的公式：<br/><br/>对于PX转em的方法也类似，就是em=16乘以px，也就是说1.5em=1.5×16=24px。<br/><br/> <br/><br/>设计中常用PX/EM/PT/百分比转换表格<br/><br/>Pixels <br/> EMs <br/> Percent <br/> Points<br/>&nbsp;&nbsp;<br/> <br/>6px <br/> 0.375em <br/> 37.50%<br/> 5pt<br/>&nbsp;&nbsp;<br/> <br/>7px <br/> 0.438em <br/> 43.80%<br/> 5.5pt<br/>&nbsp;&nbsp;<br/> <br/>8px <br/> 0.5em <br/> 50%<br/> 6pt<br/>&nbsp;&nbsp;<br/> <br/>9px <br/> 0.563em <br/> 56.30%<br/> 7pt<br/>&nbsp;&nbsp;<br/> <br/>10px <br/> 0.625em <br/> 62.50%<br/> 8pt<br/>&nbsp;&nbsp;<br/> <br/>11px <br/> 0.688em <br/> 68.80%<br/> 8pt<br/>&nbsp;&nbsp;<br/> <br/>12px <br/> 0.75em <br/> 75%<br/> 9pt<br/>&nbsp;&nbsp;<br/> <br/>13px <br/> 0.813em <br/> 81.30%<br/> 10pt<br/>&nbsp;&nbsp;<br/> <br/>14px <br/> 0.875em <br/> 87.50%<br/> 11pt<br/>&nbsp;&nbsp;<br/> <br/>15px <br/> 0.938em <br/> 93.80%<br/> 11pt<br/>&nbsp;&nbsp;<br/> <br/> <br/> <br/>16px <br/> 1em <br/> 100%<br/> 12pt<br/> <br/>17px <br/> 1.063em <br/> 106.30%<br/> 13pt<br/> <br/>18px <br/> 1.125em <br/> 112.50%<br/> 14pt<br/> <br/>19px <br/> 1.188em <br/> 118.80%<br/> 14pt<br/> <br/>20px <br/> 1.25em <br/> 125%<br/> 15pt<br/> <br/>21px <br/> 1.313em <br/> 131.30%<br/> 16pt<br/> <br/>22px <br/> 1.375em <br/> 137.50%<br/> 17pt<br/> <br/>23px <br/> 1.438em <br/> 143.80%<br/> 17pt<br/> <br/>24px <br/> 1.5em <br/> 150%<br/> 18pt<br/>&nbsp;&nbsp;<br/> <br/><br/> <br/><br/> <br/><br/> <br/><br/>字号 磅数 毫米<br/><br/>八号 5磅 1.84<br/><br/>七号 5.5磅 2.12<br/><br/>小六号 6.5磅 2.45<br/><br/>六号 7.5磅 2.81<br/><br/>小五号 9磅 3.15<br/><br/>五号 10.5磅 3.70<br/><br/>小四号 12磅 4.25<br/><br/>四号 14磅 4.93<br/><br/>小三号 15磅 5.23<br/><br/>三号 16磅 5.55<br/><br/>小二号 18磅 6.37<br/><br/>二号 22磅 7.80<br/><br/>小一号 24磅 8.42<br/><br/>一号 26磅 9.66<br/><br/>小初号 36磅 11.1<br/><br/>初号 42磅 12.7<br/><br/>=================================<br/>（附公式：px = pt * DPI / 72) ]]></description>
		</item>
		
			<item>
			<link>http://www.xa148.cn/default.asp?id=609</link>
			<title><![CDATA[时间间隔滚动小栏目,定时换屏]]></title>
			<author>ctxlxm@163.com(edream)</author>
			<category><![CDATA[网页设计]]></category>
			<pubDate>Tue,04 May 2010 09:13:34 +0800</pubDate>
			<guid>http://www.xa148.cn/default.asp?id=609</guid>	
		<description><![CDATA[<div class="UBBPanel"><div class="UBBTitle"><img src="http://www.xa148.cn/images/html.gif" style="margin:0px 2px -3px 0px"> HTML代码</div><div class="UBBContent"><TEXTAREA rows="8" id="temp91396"><!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML 1.0 Transitional//EN&#34; &#34;<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" target="_blank">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</a>&#34;>
<html xmlns=&#34;<a href="http://www.w3.org/1999/xhtml" target="_blank">http://www.w3.org/1999/xhtml</a>&#34;>
<head>
<meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=utf-8&#34; />
<title>会员板块</title>
<base target=&#34;_blank&#34;>
<style>
*{margin:0;padding:0;border:0;list-style:none;}
body{font:12px Verdana, Geneva, sans-serif;line-height:18px;color:#333;}
a{text-decoration:none;color:#004285;font-size:14px;font-weight:bold;}
a:hover{text-decoration:underline;color:#C33;}
.rig{border:1px solid #dedede;width:282px;margin-bottom:5px;position:relative;background:#fff;}
#qy a{font-size:12px;}
h5 span a{font-size:12px;font-weight:normal;color:#333;}
h5{padding:0 10px;font-size:14px;height:30px;line-height:30px;background:url(<a href="http://pigimg.zhongso.com/space/gallery/" target="_blank">http://pigimg.zhongso.com/space/gallery/</a>工程起重机/971669-1.jpg?1259835263) left center repeat-x;border-bottom:1px solid #dedede;}
span{float:right;}
</style>
</head>
<body>
<div class=&#34;rig&#34;>
  <h5><span><a href=&#34;<a href="http://www.gcqzj.com/channel/13083962" target="_blank">http://www.gcqzj.com/channel/13083962</a>&#34;>更多>></a></span>精彩企业专题</h5>
  <div id=&#34;qy&#34; style=&#34;width:256px;margin:7px 10px 5px;height:94px;overflow:hidden&#34; onMouseOver=&#34;qiScrollAmount=0&#34;
onmouseout=&#34;qiScrollAmount=2&#34;>
    <ul>
      <li id=&#34;tab1&#34;>
        <table border='0' cellspacing='0' cellpadding='0' width='256px'>
          <tr>
            <td  height='70'><a href=&#34;<a href="http://www.gcqzj.com/channel/13295702" target="_blank">http://www.gcqzj.com/channel/13295702</a>&#34;><img src=&#34;<a href="http://pigimg.zhongso.com/space/gallery/infoimgs/gc/gcqZj/20100415/2010041515380563250.jpg" target="_blank">http://pigimg.zhongso.com/space/gallery/infoimgs/gc/gcqZj/20100415/2010041515380563250.jpg</a>&#34; /></a></td>
          </tr>
          <tr>
            <td  height='24'><span><a href=&#34;<a href="http://www.gcqzj.com/channel/13295702" target="_blank">http://www.gcqzj.com/channel/13295702</a>&#34;>进入专题</a></span>
              <p><a href=&#34;<a href="http://www.gcqzj.com/channel/13295702" target="_blank">http://www.gcqzj.com/channel/13295702</a>&#34;>徐工集团专题</a></p></td>
          </tr>
          <!--一行-->
          <tr>
            <td  height='70'><a href=&#34;<a href="http://www.gcqzj.com/channel/13035462" target="_blank">http://www.gcqzj.com/channel/13035462</a>&#34;><img src=&#34;<a href="http://pigimg.zhongso.com/space/gallery/" target="_blank">http://pigimg.zhongso.com/space/gallery/</a>工程起重机/971677-1.jpg?1259836876&#34; /></a></td>
          </tr>
          <tr>
            <td  height='24'><span><a href=&#34;<a href="http://www.gcqzj.com/channel/13035462" target="_blank">http://www.gcqzj.com/channel/13035462</a>&#34;>进入专题</a></span>
              <p><a href=&#34;<a href="http://www.gcqzj.com/channel/13035462" target="_blank">http://www.gcqzj.com/channel/13035462</a>&#34;>三一重工专题</a></p></td>
          </tr>
        </table>
      </li>
      <li id=&#34;tab2&#34;></li>
    </ul>
  </div>
  <style>
    #btm{position:absolute;right:0;top:60px;width:12px;height:43px;background:url(<a href="http://pigimg.zhongso.com/space/gallery/" target="_blank">http://pigimg.zhongso.com/space/gallery/</a>infoimgs/gc/gcqZj/20100417/2010041716281352947.gif) no-repeat;overflow:hidden;}
	#btm a{display:block;height:22px;}
	#btm a#up:hover{background:url(<a href="http://pigimg.zhongso.com/space/gallery/" target="_blank">http://pigimg.zhongso.com/space/gallery/</a>infoimgs/gc/gcqZj/20100417/2010041716281352947.gif) -13px top no-repeat;}
	#btm a#dw:hover{background:url(<a href="http://pigimg.zhongso.com/space/gallery/" target="_blank">http://pigimg.zhongso.com/space/gallery/</a>infoimgs/gc/gcqZj/20100417/2010041716281352947.gif) -26px -22px no-repeat;}
  </style>
  <div id=&#34;btm&#34;><a id=&#34;up&#34; onclick=&#34;up()&#34; href=&#34;javascript:;&#34; target=&#34;_self&#34;></a><a id=&#34;dw&#34; onclick=&#34;dw()&#34; href=&#34;javascript:;&#34; target=&#34;_self&#34;></a></div>
<script>
var qoMarquee = document.getElementById(&#34;qy&#34;); //滚动对象
var tab1 = document.getElementById(&#34;tab1&#34;);
var tab2 = document.getElementById(&#34;tab2&#34;);
var qiLineHeight = 94;//单行高度，像素IE
var qiLineCount = 0; //实际行数
var qiScrollAmount = 2; //每次滚动高度，像素（速度）
var speed1=2000;//每次停留时间
var speed2=1;//滚动速度
tab2.innerHTML=tab1.innerHTML;
var alink=document.getElementById('btm').getElementsByTagName('a');
for(var i=0;i<alink.length;i++){
	alink[i].onfocus=function(){this.blur();}
}
function run() {
	if(qoMarquee.scrollTop==2*qiLineHeight){qoMarquee.scrollTop=0;window.setTimeout( &#34;run()&#34;, speed2 );}//重置并接着滚动
	else{
		qoMarquee.scrollTop +=qiScrollAmount;
		if ( qoMarquee.scrollTop % qiLineHeight == 0 ) {window.setTimeout( &#34;run()&#34;, speed1 );}//如果满格等待N秒
		else {window.setTimeout( &#34;run()&#34;, speed2 );}//正常滚动
	}
}
function up(){
		qiScrollAmount = 0;
		var amount=1;
		if(qoMarquee.scrollTop==2*qiLineHeight) qoMarquee.scrollTop=0;
		qoMarquee.scrollTop +=amount;
		if ( qoMarquee.scrollTop % qiLineHeight == 0 ) {amount=0;window.setTimeout( &#34;qiScrollAmount = 2&#34;, speed1 );}
		else window.setTimeout( up(), 1 );
}
function dw(){
		qiScrollAmount = 0;
		var amount=1;
		if(qoMarquee.scrollTop==0) qoMarquee.scrollTop=2*qiLineHeight;
		qoMarquee.scrollTop -=amount;
		if ( qoMarquee.scrollTop % qiLineHeight == 0 ) {amount=0;window.setTimeout( &#34;qiScrollAmount = 2&#34;, speed1 );}
		else window.setTimeout( dw(), 1 );
}
window.setTimeout( &#34;run()&#34;, speed1 );
</script>
</div>
</body>
</html></TEXTAREA><br/><INPUT onclick="runEx('temp91396')"  type="button" value="运行此代码"/> <INPUT onclick="doCopy('temp91396')"  type="button" value="复制此代码"/><br/> [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</div></div>]]></description>
		</item>
		
			<item>
			<link>http://www.xa148.cn/default.asp?id=603</link>
			<title><![CDATA[交互原型设计软件 Axure RP Pro 5 中文教程]]></title>
			<author>ctxlxm@163.com(edream)</author>
			<category><![CDATA[网页设计]]></category>
			<pubDate>Wed,21 Apr 2010 15:34:05 +0800</pubDate>
			<guid>http://www.xa148.cn/default.asp?id=603</guid>	
		<description><![CDATA[一直在用visio做交互原型和画pageflow，朋友推荐用Axure RP 4，试用了一下果然不错，特别在网上找到教程转帖给需要朋友。（作者:Hawking原创）<br/>先提供Axure RP pro 4.6版本的下载<br/><a target="_blank" href="http://www.jojobox.cn/blog/attachments/month_0803/AxureRP-Pro-Setup.zip">http://www.jojobox.cn/blog/attachments/month_0803/AxureRP-Pro-Setup.zip</a><br/>（软件仅供学习使用，反对商业用途 -_-！！！）<br/>Part I : 介绍(Introduce)<br/>　　互联网行业产品经理的一项重要工作，就是进行产品原型设计(Prototype Design)。而产品原型设计最基础的工作，就是结合批注、大量的说明以及流程图画框架图wireframe，将自己的产品原型完整而准确的表述给UI、UE、程序工程师，市场人员，并通过沟通会议，反复修改prototype 直至最终确认，开始投入执行。 <br/>　　进行产品原型设计的软件工具也有很多种，我写的这个教程所介绍的Axure RP，是taobao、dangdang等国内大型网络公司的团队在推广使用的原型设计软件。同时，此软件也在产品经理圈子中广为流传。之所以Axure RP得到了大家的认同和推广，正是因为其简便的操作和使用，符合了产品经理、交互设计师们的需求。<br/>　　在正式谈Axure RP之前，我们先来看看做产品原型设计，现在大致有哪些工具可以使用，而他们的利弊何在。<br/>　　纸笔：简单易得，上手难度为零。有力于瞬间创意的产生与记录，有力于对文档即时的讨论与修改。但是保真度不高，难以表述页面流程，更难以表述交互信息与程序需求细节。<br/>　　Word：上手难度普通。可以画wireframe，能够画页面流程，能够使用批注与文字说明。但是对交互表达不好，也不利于演示。<br/>　　PPT：上手难度普通。易于画框架图，易于做批注，也可以表达交互流程，也擅长演示。但是不利于大篇幅的文档表达。<br/>　　Visio：功能相对比较复杂。善于画流程图，框架图。不利于批注与大篇幅的文字说明。同样不利于交互的表达与演示。<br/>　　Photshop/fireworks：操作难度相对较大，易于画框架图、流程图。不利于表达交互设计，不擅长文字说明与批注。<br/>　　Dreamweave：操作难度大，需要基础的html知识。易于画框架图、流程图、表达交互设计。不擅长文字说明与批注。<br/>　　以上这些工具，都是产品经理经常会使用到的，但是从根本上来说，这些工具都不是做prototype design的专门利器，需要根据产品开发不同的目的，不同的开发阶段，选择不同的工具搭配使用，才能达到表达、沟通的目的。<br/>　　比如使用纸笔，更适合在产品创意阶段使用，可以快速记录闪电般的思路和灵感；也可以在即时讨论沟通时使用，通过图形快速表达自己的产品思路，及时的画出来，是再好不过的方法。而word则适合在用文字详细表达产品，对产品进行细节说明时使用，图片结合文字的排版，是word最擅长的工作。而ppt自然是演示时更好。visio则可以适用于各种流程图、关系图的表达，更可通过画use case 获取用户需求。PS/FW是图片处理的工具，DW则是所见即所得的网页开发软件，这些是设计师的看家本领，对于普通的产品经理来说，需要耗费太多的精力去掌握。<br/>　　其实每件工具，每个软件，在创造它的初期，软件设计师们都给它赋予了性格、气质。因为每个工具的产生，都是为了满足人类的某一方面需求。比如锄头是锄土的，起子是起螺丝的，电熨斗是烫衣服的。但是不同的工具都有自己的工作领域，在其他领域它并不擅长。而以上的软件在创造的初期，并非为了帮助产品经理、ue完成产品原型设计，因此他们都不能在prototype design 这件工作上得心应手。而Axure RP正是在互联网产品大张其道的前提下，为满足prototype design创建的需求，应运而生。<br/> 　　<br/>　　Axure RP 能帮助网站需求设计者，快捷而简便的创建 基于目录组织的原型文档、功能说明、交互界面以及带注释的wireframe网页，并可自动生成用于演示的网页文件和word文档，以提供演示与开发。<br/>　　没错！Axure RP 的特点是：<br/>•快速创建带注释的wireframe文件，并可根据所设置的时间周期，软件自动保存文档，确保文件安全。 <br/>•在不写任何一条html与javascript语句的情况下，通过创建的文档以及相关条件和注释，一键生成html prototype演示。 <br/>•根据设计稿，一键生成一致而专业的word版本的原型设计文档。 <br/>　　说到这里相信很多人已经激起了兴趣，但是在开始学习之前，我认为我们还是有必要先了解一下软件短短的历史，创造这一软件的公司—Axure Software Solutions, Inc.该公司创建于2002年五月，Axure RP是这一软件公司的旗舰产品，2003年一月Axure RP第一版本上线发表，至今已经正式发行到了第四个版本，而我提笔写到这里的时候，Axure 5.0版本beta版本已经正式提供下载试用，虽然我已经下载使用，但是我想，写教程还是应该先从稳定的4.6版说起，至于5.0版，我们可以伴随着软件一起成长。<br/>　　接下来我会结合图片，分几个步骤分享我对Axure的认识，<br/>　　一、 界面与功能<br/>　　二、 工具栏<br/>　　三、 站点地图<br/>　　四、 组件与使用方法<br/>　　五、 复用模板与使用<br/>　　六、 交互功能与注释<br/>　　七、 实例<br/>　　当然，在书写的过程中我会根据具体的情况再进行调整，尽量做到图文并茂，易于理解。写这个教程的目的，一方面为自己熟悉与更加理解Axure，另一方面也鞭策自己完善自己的blog网站<br/><a target="_blank" href="http://www.2tan.net">www.2tan.net</a><br/>，同时也希望以自己的绵薄之力，为希望学习Axure的朋友分享一点经验。由于这是我第一次尝试写教程，难免会出现偏颇，也希望朋友们能够不吝赐教，共同进步。<br/>　　为e文好的朋友附上自学Axure RP的几个途径：<br/>　　1、 打开软件，按F1调取帮助文档，对照文档学习。<br/>　　2、 登录<br/><a target="_blank" href="http://www.axure.com/au-home.aspx">http://www.axure.com/au-home.aspx</a><br/> 查看flash视频学习。<br/>　　3、 登录 Axure 博客 <br/><a target="_blank" href="http://axure.com/cs/blogs/Default.aspx">http://axure.com/cs/blogs/Default.aspx</a><br/>，了解软件最新信息。<br/>　　4、 登录讨论组<br/><a target="_blank" href="http://axure.com/cs/forums/Default.aspx">http://axure.com/cs/forums/Default.aspx</a><br/>，参与讨论。 <br/> <br/>Part II : 界面与功能(Interface &amp; Function)<br/>　　不论学习什么，打基础是很重要的。关于基础练习，我印象最深的故事是王羲之练习书法的故事，将一池水染黑，需要怎样的毅力？再有就是达芬奇与鸡蛋的故事，一个简单的鸡蛋，达芬奇画了无数次。我相信正是他们的一步一个脚印，才让他们有了后来伟大的成就。故事老套，道理浅显，可是我认为很重要。<br/>　　学习软件，应该先熟悉每个面板，每个基础功能，才能够真正谈到运用。所以我的学习方法是了解软件的基础功能开始。<br/>　　一、欢迎界面与功能<br/> 　　<br/>　　运行Axure RP后，首先弹出的是欢迎界面，它拥有的功能和其他软件的欢迎界面没有什么特别的不同。<br/>　　功能区1：文档区，这个区域显示用户最近打开的Axure RP文件，用户可以快捷的打开之前编辑的文件。同时也提供快捷按钮，可以创建新文档与打开Axure RP默认文件夹。<br/>　　功能区2：认证区，这个区域显示注册信息。<br/>　　已经注册的用户，显示注册者名称，与已经获得认证的图标。<br/>　　未注册用户，显示注册链接，引导用户完成注册注册。<br/>　　功能区3：Axure RP学习中心。主要包括在线学习、帮助文档、问题反馈三个环节。<br/>　　a、在线学习提供了三个链接：<br/>　　video tutorial：点击后进入视频学习中心，可以通过观看相关的flash教程学习Axure RP，不过都是e文解说。<br/>　　online community：进入Axure RP的官方讨论组，在线讨论学习。<br/>　　Axure blog：进入Axure的官方论坛，了解最新资讯。<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>　　b、帮助文档也提供了两个链接，但是其实起到的是一样的效果，都是打开帮助文档，只是跳往不同的章节罢了。<br/>　　c、问题反馈，通过点击链接可以发邮件到<br/><a target="_blank" href="http://www.xa148.cn/mailto:support@axure.com">support@axure.com</a><br/>，以寻求获得帮助。<br/>　　在欢迎界面中，Axure还提醒用户，用4.6高版本的软件创建保存的Axure文件，无法用以前的低版本查看。<br/>　　同时，如果我们不希望下次打开软件再看到这个面板，我们可以通过选择“Don&#39;t show this at startup”实现。<br/>　　二、软件主界面与功能<br/> 　　<br/>　　关闭欢迎界面后，我们进入软件的主界面，淡蓝色调的ui，并不是很张扬。<br/>　　功能区1：命令区，和我们操作的所有office软件一样，包含文件、编辑、查看和帮助，这些功能大抵是差不多的。table也很容易理解，就是对表格编辑的命令。而Axure特有的几个特殊的命令栏目是<br/>&nbsp;&nbsp;&nbsp;&nbsp;a、wireframe：线框，包含所有画原型线框图的相关命令。<br/>&nbsp;&nbsp;&nbsp;&nbsp;b、object：包含所有对工作区物体的操作命令，操作放入工作区的所有widgets，包括组合、排序、锁定以及脚注命令等。<br/>&nbsp;&nbsp;&nbsp;&nbsp;c、generate：自动生成html演示文件、word说明文档，以及对生成规则进行自行编辑、定义。<br/>　　功能区2：工具栏，基本和office风格一模一样，功能也很容易上手。<br/>　　功能区3：工作区，这就是我们平常操作工具，创建prototype的舞台，将自己的构思在这里释放，将自己的想法在这里展现。<br/>　　工作区的上部显示打开的文件名，可同时打开多文档，进行操作。<br/>　　功能区4：站点地图，Axsure RP创建的文件是模拟真实网站页面关系的，sitemap就是通过树形目录关系，管理所有的站点页面文件与流程图文件。科学的文件关系结构，对有效的演示文档与生成易读的说明文档相当重要。<br/>　　我的操作习惯是先画流程图，然后根据流程图构建页面文件框架，最后才开始页面的具体设置。期间可以将文件分为LOFI（低保真）与HIFI（高保真）两个部分进行分别展示，有利于不同的需求者使用。<br/>　　功能区5：器具箱，囤积了所有用来画wireframe与流程图的对象。我们可以通过拖拽的方式将小图形放入工作区，进行操作。对于这里面的对象，我们有必要一一详细了解。<br/>　　功能区6：复用模块区，这里创建的页面文件和sitemap的页面相似，唯一不同的是，master的每个文件，可以当作一个整体，被sitemap反复调用。这个功能就相当于程序开发中的程序复用，用好这个功能，可以减少我们很大一部的工作量。也更容易理解网页文件的关系，了解网页设计师、程序员是怎么构建网站的页面的。<br/>　　功能区7：页面笔记，用来对当前创作页面进行注释与说明。同时可以在这里对页面里的关键字段和特殊问题进行详细的描述。<br/>　　功能区8：页面载入时的交互功能。通过在这里设置，不同条件下，页面初次打开时的状况。<br/>　　功能区9：注释与交互区。这个注释和交互和7、8不同，7、8针对的是页面，而9针对的是页面中的元素，也就是一个个widgets。<br/>　　功能区的上面部分设置交互条件。通过鼠标点击、滑入、滑出，设置触发的事件，与对应widgets相应的变化。这一部分对没有程序基础的人可能会有一点难度，我稍后会做详细解释。<br/>　　功能区的下面部分是注释部分，用户可以对选定的对象进行详细的注释。Axure已经设置了几个默认的注释字段，但是其实这些默认的注释字段，大家完全可以不使用，因为它可能和你要说明的东西风马牛不相及。<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>　　那么该怎么办呢？Axure提供了自主设置字段，只要你自己设置好自己常用的字段，然后按照自己的习惯编写就可以了。比如说你要说明对象的功能、优先级、参数，那么你在设置中加入这三个字段就好了。Axure最大的优势就是你设置的这些注释，在生成说明文档时，Axure自动帮你生成PRD规格的表格文档，你可以省去相当大的编号工作，与文档工作。这些我在之后也会做说明。<br/>　　这些就是Axure的主要功能区，但是其实还有两个小的角落大家可能会忽略，那就是6、7、8区下面的一行系统信息，这里显示的信息很重要，但是一般人却经常会忽视。我只所以说重要，因为我们在给ui设计师wireframe的时候他们总会问，这里多少像素，那里多少像素，可是我们在画wireframe的时候却无法度量。Axure创建的wireframe，完全可以生成html，因此我们可以在画的时候就度量好每个像素距离。但是我们要怎么做呢？这就需要利用到下面这行小信息栏了。<br/>　　信息栏左边显示的是文档保存情况。而右边呢，当你将一个widgets放入工作区，并选择这个widget时，这里就有用了，它显示的是你所选择widget的高宽，以及距离页面顶部和左边的px距离。通过使用上下左右键，结合这个信息栏，你可以一步一步将它移动到你想去的地方。有意思吧？<br/>Part III : 文档管理(Document)<br/>　　<br/>　　开章要说的是文档管理。文档管理看似简单，但是这是从操作功能上来说的，而我在说功能上的时候，想把我对文档管理的理解也一并说一下。<br/>　　文档管理的目的，其实是为了有一个清晰的产品思路。刚开始工作的时候，我发现很多刚从学校出来的朋友对文档的命名与放置都是随心所欲的，我也不例外。没有好的整理习惯，这直接导致每次寻找先前的文档都要花费相当长的时间，甚至不小心误删，如果恰好有事请假，别的同事也无法接手工作。<br/>　　所以，做一个prototype需要首先构建一个清晰的文档关系，这样一方面能够让自己清楚文件关系与位置，更主要的是让开发者与接受者能清晰理解你的思路，生成更合理的产品说明word文档。<br/>　　Axure RP的sitemap，与windows的树形目录相似，是以父子关系构建页面关系的，每个页面既可以是一个页面page，也可以是一个流程图flow。<br/>一、工具功能条<br/> 　　<br/>　　1、增加一个子页面：为所选择的页面创建一个子页面。<br/>　　2、页面上移：同等级的页面中，将所选页面的上下排列次序，上移一个位置。<br/>　　3、页面下移：同等级的页面中，将所选页面的上下排列次序，下移一个位置。<br/>　　4、页面降序：将所选页面等级降序，作为原等级中，排列在所选页面上方之页面的子页面。<br/>　　5、页面升序：将所选页面等级升序，将所选页面的页面等级，升序为父页面的同等级页面。<br/>　　6、删除页面：将所选页面删除，同时删除其子页面。<br/>　　7、编辑页面：在工作区打开所选择页面，进行编辑。<br/>二、右键—增加为鼠标右击文件所显示命令，下同。<br/> 　　<br/>　　1、增加一个子页面：同 一，1。（表示和第一大点，第1小点功能相同，以下同此）<br/>　　2、在所选页面之上增加一个同等级页面。<br/>　　3、在所选页面之下增加一个同等级页面。<br/>三、右键—移动<br/> 　　<br/>　　1、页面上移：同一，2。<br/>　　2、页面下移：同一，3。<br/>　　3、页面降序：同一，4。<br/>　4、页面升序：同一，5。<br/>四、右键—复制<br/> 　　<br/>　　1、复制页面：复制所选页面，作为同级页面显示在所选页面下方。不包含所选页面子页面。<br/>　　2、复制分支：复制所选页面以及子页面，作为同级分支显示在所选页面分支下方。<br/>五、右键—页面类型<br/> 　　<br/> <br/>　　1、wireframe：页面类型定为线框图，文件图标显示页面图标。<br/>　　2、flow：页面类型定位流程图，文件图标显示流程图标。<br/>六、右键—其他<br/> 　　<br/>　　1、删除页面：同一、6。<br/>　　2、重命名页面：为所选页面重命名。<br/>　　3、编辑页面：同一、7。<br/>　　4、生成流程表：将所选页面以及其子页面关系，生成流程图。生产图有两种页面布局方式可选。标准模式，页面按照父子关系从上自下排列；阶梯模式，页面按照父子关系从左上至右下，以阶梯方式进行排列。<br/>　　5、复制页面链接到剪切板。<br/>　　以上就是sitemap所有命令，其实这些命令都很简单，也很容易理解，关键在于怎么去使用。<br/>　　由于页面有两种类型，wireframe与flow，所以要善于用这两种标记页面，从而让人理解你的意图。我总结大致这两种标记可以如下利用。<br/>　　flow图为父页面，wireframe图为子页面：先画流程图，然后根据流程图构建页面关系。这样在流程图的指引下结构页面关系，可以更清晰的理解页面框架。<br/>　　wireframe为父页面，flow为子页面：为页面线框图中的特殊部分做流程解释。可以对页面的细节部分进行详尽的解释。<br/>　　当然，这两种结构方式要活学活用，在复杂的产品页面结构中，他们完全是你中有我，我中有你的。 <br/>Part IV : 模板复用(Templates)<br/> 　　<br/>　　masters和sitemap面板很相似，文档操作也一样，它们的本质区别是，sitemap里的文件是最终展示页面，masters里的文件却只是一个模块，是页面的一个部分。<br/>　　masters的英文直译是主人或雇主，但是我认为这里可以叫做模板，或者复用模块。masters的文件，是页面中重复的模块，由于在不同页面中这些模块是一样的，所以拿出来作为一个模块编辑，然后在不同页面中进行调用。<br/>　　这个功能类似于网页程序开发中的程序复用，不同页面中调用同一段程序，一般把这段程序单独做成一段页面程序，然后用include命令进行调用。master的文件就相当于这段被调用的页面程序。dreamweaver也有类似的功能，就是template，可以参照理解。<br/>一、功能条<br/>　　master的功能条功能基本和sitemap一模一样，功能也基本一样。唯一不同的是master可以创建文件夹，可以通过文件夹收纳不同的文件，因此唯一不同的就是第一个功能按钮，功能作用是增加一个文件夹。<br/>二、右键单击文档——增加<br/> 　　<br/>　　增加功能的功能模块功能除了增加文件夹其他和sitemap相同，大家可以参考教程三中的二大条。<br/>　　而masters的文档组织结构主要依靠文件夹完成，页面文件之间不存在父子关系。这是文档操作与组织中与sitemap的最大不同。<br/>三、右键单击文档——移动<br/> 　　<br/>　　文件移动功能基本上也和sitemap完全相同，但是父子关系的文档移动是文件相对于文件夹完成，而不是相对于文件进行。<br/>　　功能，基本上也可以参考教程三的第三点。<br/>四、右键单击文件——文件身份“行为”<br/> 　　<br/>　　behavior是行为的意思，这个功能是axure升级到4版本后加入的，是针对master的不同使用情况而添加的一个功能，也是要重点介绍的功能。<br/>　　1、normal：普通文件。就是一般的复用文件。是默认创建的复用文件。<br/>　　2、place in background：定位的复用模板，这类模板的特点是定位于页面的底层，并且锁定模板中的widgets在他原来创建的位置。这类复用模块主要用于创建head、foot、侧边栏等明确定位的复用模块。<br/>　　3、custom widgets behavior：自定义模块。这类模块就类似于自创了一个widgets。<br/>　　这类模块与其他类型的复用模块的不同在于，其他模块与复用到页面的模块是完全相同的，模块的功能设置是什么，功能说明是什么，页面中的模块设置和功能说明就是什么。<br/>　　而自定义模块与页面中被复用的模块是母子关系。自定义模块只决定了模块的功能和位置，但是进入到特定的页面中，模块中的各自部分的说明和功能可以重新定义。<br/>　　充分理解三种不同类型的复用模块的区别，根据不同环境有效的选择，也是非常重要的。<br/>五、右键单击文件——其他<br/> 　　<br/>　　1、2、3功能都是文档文档操作功能，和sitemap一样，分别是删除、重命名和编辑master。<br/>　　4、5功能是对应的。前者是将所选模板文件批量运用于页面，后者是将所选模板文件，批量从页面中去除。通过选择此功能，会弹出sitemap文件的树形目录，你可以通过选择需要添加模板的页面，从而完成模板使用或移除。<br/>　　check all：选择所有页面<br/>　　uncheck all：所有页面都不选择<br/>　　check all children：选择所选页面以及其所有子页面<br/>　　uncheck all children：不选择所选页面以及其所有字页面<br/>　　在4中有特殊的position设置和options命令，<br/>　　position中有两个命令<br/>　　place in blackground：将文件至于页面背景<br/>　　specify location：是特殊定位，可以通过设置距离左侧和上边的距离，来将模板文件放入特定的位置。　<br/>　　options里的多选框的意思是“只有页面中没有此模板时才置入”，默认是选择的。如果不选择而置入页面，就会出现如果页面中已经有模板，模板被再次置入的情况。当然如果有特殊需要的模块，就可以这么使用了。<br/>　　6、usage report：使用报告，点击后弹出面板，显示所有使用了此复用模板的列表，显示的是文件名称，通过双击文件名，可以在工作区打开，直接编辑。<br/>PartV:Widget工具<br/>　　Axure RP的widgets工具栏，就是我们用来画线框图wireframe、流程图flow的工具，也可以说是组成我们最终输出图表的零件。好比我们小时候玩的组装积木，这些工具就是组装积木里的一个个小部件，组成什么？组合得怎样？完全依靠个人的经验和智慧。因此，熟悉每一个工具的用法和用途，才能随心所欲的画出脑海中的图形。<br/>　　Widgets工具栏，下分两类工具：<br/>　　wireframe线框图工具：基本上对应着web页面中的各种图形。针对页面中交互行为的表达，Axure RP专门增加了image map region 图像映射区、dynamic panel动态面版、menu（vertical/horizontal）水平/垂直菜单等几个特殊的工具。<br/>　　Flow工具：流程图所需的基本图形框架。<br/>　　我们先谈wireframe线框图工具。学习这部分工具，如果事先有html基础，或者对web页面元素有比较充分的理解，就很容易入手。以下我根据图片中的编码，依次讲解。<br/> 　　<br/>　　1、image图片：给wireframe中插入一个图片站位，也可以直接置入真实的图片。<br/>　　2、text panel文本：插入文本。相当于插入了一个标签。是不带链接的文本。但是其实也可以带链接，在interactions中我们会提到。<br/>　　3、hyperlink超链接：插入带链接的文本。相当于插入了一段带标签的文字。但其实在Axure中它与普通文本除了外型不同，没有本质区别。<br/>之所以将两类文字区分开来，目的还是为了在视觉表达中让人直观的理解链接文本和普通文本，而这对于设计人员理解也非常重要，因此建议画图时尽量标准的区分链接文本和普通文本。<br/>　　4、rectangle矩形：插入一个矩形。可以对其进行图形样式编辑。此图形通畅被用来表达板块的边界。<br/>　　5、placeholder占位符：插入一个占位符。占位符通常用来表达在页面中某些特殊区域，比如情况复杂，或者在系统升级中不需要修改，又或者无关紧要的区域等等。作者需要结合说明文字，进行对应的详细表达。<br/>　　6、button按钮：插入一个按钮，相当于标签。按钮一般结合表单使用，当然也可以作为强化的提示链接使用。<br/>　　7、teble表格：插入一个表格。Axure的表格使用起来不是很方便，增加行、列，修改行、列宽度都不方便，算是一个败笔。期待在下一个版本的时候能够有更好的进步。与标准化制作网页一样，表格的使用在画wireframe的时候就应该明确其作用，是用来作为数据列表展示使用，而不是作为网页布局的控件。<br/>　　8、text field文本输入框：结合表单使用。一般用作表单中提交数据。比如搜索框、用户登录框、注册信息填写框等。用作字段提交或单行数据提交。<br/>　　9、text area文本区：结合表单使用。一般用作大段文字编辑、提交。比如文章编辑、留言等板块。<br/>　　10、dro&#112;list下拉列表框：结合表单使用。一般用作下拉菜单或者下拉列表选项，比如在搜索中，可以通过下拉列表框来定位搜索分类的范围。也有人用它来做友情链接，可以通过下拉选择直接进行页面跳转。<br/>　　11、listbox列表选择框：结合表单使用。通过文本框列表选项，通常使用在多项列表选择，比如在填写简历表的时候，选择你所感兴趣的行业，会提供列表选择框。不过列表选择框都会结合按钮使用。<br/>　　12、checkbox多项选择：多项选择通常使用在表单中，以提供多项选择。比如在有些有些注册要求用户选择兴趣爱好，会提供十多个选项，因为选项可以并列进行，因此使用的是多项选择。<br/>　　13、raido button单项选择：在一组选择中选择适合选项，选项关系非此即彼。比如在填写性别的时候提供男女选择，用户非男即女，只取一项。当然，不排除再多提供一个双性选择，这样就是三选一，但是同样是非此即彼的单一选择。<br/>　　14、15、horizontal line水平线、vertical line垂直线：用以分割页面中的不同板块区域。由于web页面中只能存在垂直与水平线，为了系统生成用于演示的html文件，特将两种线条分开使用。<br/>　　16、button shape形状按钮：相当于图形按钮，多用于导航，或者多帧切换的版面切换按钮。可进行边角编辑。<br/>　　17、image map region图像映射区：它用于在web页面中制造一片不可见的区域，一般是图片的部分区域，相当于图片的热区，从而添加说明与互动。在现实的网页中经常会有一张大图中有某个区域是触发按钮，而图像映射区就可以用来说明这个区域的的功能和互动内容。<br/>　　18、inline frame框架：类似于html中的对象。用于在页面中制造页面框架，每个框架中嵌入不同的页面。我们经常看到后台系统分左右两栏，一般都是使用了框架，左侧载入的是导航页面，右侧是载入的管理页面。<br/>Axure的缺点是，暂时不支持百分比，因此iframe都是按像素度量的，和实际页面效果还是有差距。<br/>　　19、dynamic panel动态面版：是Axure为了表现多帧区域内容而制造的一个工具。它的图标很形象的说明了它的结构。它是不同的state叠加的一个动态区域，默认显示其中一个state，当用户触发按钮、图片或者下拉列表等时，可以设置相应动态面版切换到不同的state。不同state的关系，类似于photoshop的层，也类似于html中的css属性layer。<br/>我们可以通过右击dynamic panel进行state编辑，然后通过打开对应state进行编辑，编辑方式和编辑页面相同。<br/>　　20、21、menu（vertical/horizontal）水平/垂直菜单：用于制作水平或者垂直的菜单，可以添加漂浮的的子菜单，添加方法很简单，就是选择所要添加的菜单项，添加submenu。<br/> 　　Axure RP pro 的widgets工具栏，另一个重要的工具组就是flow，流程工具。<br/>　　<br/>　　对于画流程图，是我们经常会遇到的问题。我们和程序工程师沟通，用再多的口水，也无法挑明的事情，画一张简明的流程图，就能很直白的说明关键问题。<br/>　　有时候你可能会懊恼，因为程序员的思维犹如计算机，你告诉他为什么没有用，你就告诉他该怎么做，是左是右，是0是1就好了。这个时候，产品经理需要的是理性思维，清晰的思路，如果你不清晰，工程师大多数会跟着你的思路乱做一团。所以多画几个流程，多根据页面需求画清晰的流程，就能解决实际的问题。<br/>　　话不多说，本章主要介绍flow里面的工具，因为图形其实很好介绍，简单的英文翻译就好了，所以也顺带说说这些图形在流程里的作用。方式还和以前一样，编号，对号入座，咱们来一个萝卜，一个坑：<br/>　　1、rectangle：矩形<br/>　　作用：一般用作要执行的处理（process），在程序流程图中做执行框。<br/>　　在axure中如果是画页面框架图，那么也可以指代一个页面。有时候我会把页面和执行命令放在同一个流程中做说明，这个时候将两类不同的矩形做色彩区别，然后做说明就好了。<br/>　　2、rounded rectangle：圆角矩形或者扁圆<br/>　　作用：表示程序的开始或者结束，在程序流程图中用作为起始框或者结束框。<br/>　　3、beveled rectangle：斜角矩形<br/>　　&nbsp;&nbsp; 作用：斜角矩形我几乎不使用，可以视情况自行定义。或者在其他的流程图中，有特殊含义，暂不知晓，也希望有识之士指点一二。<br/>　　4、diamond：菱形<br/>　　&nbsp;&nbsp; 作用：表示决策或判断（例如：If...Then...Else）,在程序流程图中，用作判别框。<br/>　　5、file：文件<br/>　　&nbsp;&nbsp; 作用：表达为一个文件，可以是生成的文件，或者是调用的文件。如何定义，需要自己根据实际情况做解释。<br/>　　6、bracket：括弧<br/>　　&nbsp;&nbsp; 作用：注释或者说明，也可以做条件叙述。一般流程到一个位置，做一段执行说明，或者特殊行为时，我会用到它。<br/>　　7、semicircle：半圆形<br/>　　&nbsp;&nbsp; 作用：半圆在使用中常作为流程页面跳转、流程跳转的标记。<br/>　　8、triangle：三角形<br/>　　&nbsp;&nbsp; 作用：控制传递，一般和线条结合使用，画数据传递。<br/>　　9、trapezoid：梯形<br/>　　&nbsp;&nbsp; 作用：一般用作手动操作。<br/>　　10、ellipse：椭圆形或圆形<br/> 　　&nbsp;&nbsp;作用：如果画小圆，一般是用来表示按顺序数据的流程。<br/>　　&nbsp;&nbsp; 如果是画椭圆形，很多人用作流程的结束。如果是在use case用例图中，椭圆就是一个用例了。<br/>　　11、hexagon：六边形<br/>　　&nbsp;&nbsp; 作用：表示准备之意，大多数人用作流程的起始，类似起始框。<br/>　　12、parallelogram：平行四边形<br/> 　　&nbsp;&nbsp;作用：一般表示数据，或确定的数据处理。或者表示资料输入（Input）。<br/>　　13、actor：角色<br/>　　&nbsp;&nbsp; 作用：来自于use case 用例，模拟流程中执行操作的角色是谁。需要注意的时，角色并非一定是人，有时候是机器自动执行，有时候也可是是模拟一个系统管理。<br/>　　14、database：数据<br/>　　&nbsp;&nbsp; 作用：就是指保存我们网站数据的数据库。<br/>　　15、image：图片<br/>　　&nbsp;&nbsp; 作用：表示一张图片，或者置入一个已经画好的图片、流程或者一个环境。<br/>　　基本上，axure讲基本流程图、页面框架图、use case 用例图涉及到的一些关键图形都囊括在flow流程工具中，模糊了流程图的区别，而尽量贴近交互设计时的工作内容。<br/>　　流程图无疑只是一个表达的工具，我们在使用的时候应该根据自己的实际情况使用，而不应该死钻牛角尖，非要知道某个图形的通用标准。理解和沟通是第一位的。而对于某些具有标准性含义的图形，大家人所共知，则我们应该遵循共同的准则，这样就能达到表达的目的。<br/>　　其实axure里面由于不涉及到具体的程序流程，所以有些标准的图形并没有提供，如不规则图形、侧面双矩形等，大家可以自己google一下或者baidu一下很容易就知道。大多数情况下，还是自己自定义一下自己的符号标准，就跟prd文档加上名词解释一样，才是解决方法。 <br/> PartVI:注释annotations<br/>　　<br/>　　Axure rp将interaction交互与annotations注释说明功能放在了一个面版上，同时又针对整个页面有一个交互与注释说明。<br/>　　交互功能设置的是用户通过不同方式触发页面中元素或者载入页面时，发生的交互动作。而注释说明则用文字详细说明对应元素的细节或页面的说明。由于针对整个页面的说明和交互，与针对页面中某个元素的说明与交互在文档表现和生成的不同，而被分开，但是他们的实际功能是一致的，可以一起来说。<br/>　　针对页面和针对页面元素的功能，分别默认处于软件界面的右侧和底侧。如下面两张图片所示：<br/> 　　<br/>　　　　　　　　　　　　　　　　　　　底部<br/>&nbsp;&nbsp;　　<br/>　　　　　　　　　　右侧<br/>　　对于交互与注释说明，有必要分开讲述。这一节主要讲述annotations，即注释说明。<br/>　　首先，我定义一下对交互与注释说明的解释。<br/>　　Interaction：交互功能，用以设置页面中的交互事件，如页面跳转、面版跳转。从而实现框架图中不同对象的实际功能。在生成html框架页面时，产生相应的对象功能，用以演示操作。<br/>　　Annotations：注释说明，用以对页面或页面中的特定对象进行说明注释。可以根据实际情况分类编写说明内容。比如优先级、功能类型、交互效果、说明等。让程序在开发的时清楚了解该对象或该页面的程序实现详情与细节。<br/>　　那么，现在重点来说注释。<br/>　　1、自定义注释与说明<br/>　　你也许看到e文会头大，你也许第一次看到annotations面版中specification、status、benefit、effect等一连串的英文单词脑袋发晕，那么我告诉你，你完全不用在意这些单词和选项的意义，因为也许它们根本就不适合你，而你可以自定义一套自己的说明选项。<br/>　　我之所以说你不必去理解，出于两个理由，一是因为这些定义，是axure根据一些欧美公司文档中常见的字段归纳出来的，他不适合我们的国情和我们自己公司的实际情况，二则是一个文档中该向你的程序员、设计师表达什么，并没有一个完全的框架。你尽可以根据你要说明的事情，以及你们往常的沟通方式来定义。那么现在看看，我们怎么来定义吧。<br/>　　如果是定义右侧的对象注释，选择 annotations &amp; interactions &gt; customize fields and viwe<br/>　　如果是定义底部的页面注释，选择 page notes – default &gt; manage notes<br/>　　就弹出了自定义窗口，由于功能类似，所以我只选择复杂的右侧的对象注释来说明<br/>&nbsp;&nbsp;　　<br/>　　如图所示，我们看到了两个区域：<br/>　　区域一：Fields：这是管理系统所有的说明字段的，这里定义了针对对象你要说明它的哪些属性，这些属性，用什么类型type的文字进行表述。<br/>　　A)新增字段<br/> 　　 <br/>　　先在前面的下拉选择框中定义该字段的type类型，有四种类型：<br/>　　Text：文本文字。说明字段中用大段的文字进行说明。<br/>　　Number：数字。说明字段中只包含数字说明。<br/>　　Date：日期。说明字段只有日期<br/>　　Sel&#101;ctlist：选择列表。通过设置特定的选择条件，以供选择。<br/>　　然后在后面的填空框中输入字段的名称，比如我想设置一个对页面中对象的开发优先级的说明字段，那么我就可以给这个字段命名为“优先级”。然后点击add按钮，你所设置的说明字段就被添加到下面的字段列表了。<br/>　　B)管理字段<br/>　　管理字段，首选必须选中你要管理的字段。<br/> 　　<br/> <br/>　　然后可以通过选择右侧的功能按钮，对字段进行管理：<br/>　　<strong>Remove：</strong>删除此字段。<br/>　　Rename：对字段重命名。<br/>　　Move up：将字段排列顺序上移一格。<br/>　　Move down：将字段排列顺序下移一格。<br/>　　Edit sel&#101;ctlist：编辑选择列表中的项目，该功能只有当你所选择的说明字段的type类型是sel&#101;ctlist时，你才能选择。选择后会弹出编辑窗口，你可以根据自己的需求，填写不同的选择项，Axure定义，每一行为一个选择项。<br/>&nbsp;&nbsp;　　<br/>　　点ok之后，你就完成了对所选项的管理。<br/>　　区域二Custom views：这里是定义了我们自定义文件的版本。我们可以选择几个常用的说明字段，归纳起来生成一个自定义版本。<br/>　　A）新增用户自定义说明<br/> 　　 <br/>　　新增说明很简单，只要在输入框中输入一个名称，点选add，就会弹出一个选择框<br/>&nbsp;&nbsp;　　<br/>　　你可以通过add field下拉列表选择你的自定义说明中要包含的说明字段项目，然后点add添加到你的自定义说明中。<br/>　　当你都选择完成后，点done，就创建了一个你自己的自定义说明。<br/>　　B）管理自定义说明<br/>　　管理自定说明，和管理说明字段一样，在管理前，你必须选中你要管理的自定义说明。<br/>　　Rename：对字段重命名。<br/>　　Edit：重新定义此自定义说明中所包含的fields说明字段。弹出选择框，供你重新选择。<br/>　　Remove：删除此自定义说明。<br/>　　最后，当你即完成了对字段的处理，又完成了自定义说明的生成后，点done，你就定义完成了你自己的注释与说明。这个时候，你再选择annotations &amp; interactions，你将会看到你自己的自定义说明：<br/>&nbsp;&nbsp;　　<br/>　　选择后，右侧的注释与说明的字段就都是你自己的了：<br/>&nbsp;&nbsp;　　<br/>　　2、自定义注释与说明的现实意义<br/>　　那么这些自定义说明到底对于我们有什么现实的意义呢？有的，下面我来说明一下。<br/>　　这涉及到axure rp的两个文档生成功能<br/>　　生成演示文档：我们利用axure完成文档的编写后，需要给程序演示，那么我们怎么演示呢？<br/>　　请按下f5键，会弹出提示框，按照默认设置确定后，就会生成html演示文件。你就可以拿这些html文件，给程序员、设计师们演示你的文件了。<br/>　　而我们自定义的这些说明，在编写好的时候会出现在如图中的位置：<br/> 　　<br/> 　　就是说明面版的激活按钮，点击弹出你的说明文字。这样，用户就可以在不明白的时候在页面中调出说明文字，一一查看了。<br/>　　生成word文档：我们也可以生成word的文档的说明文件，这样的文件甚至可以当作PRD文档使用，而说明则会根据label的标签以及编号，对应生成table说明文档。<br/>生成word的快捷键是F6，生成specification说明书。<br/> 　　<br/>　　综上所述，运用好了annotations，就可以解决好prd文档中最重要的工作，即功能说明。至于设置怎样的注释，完全就靠你自己来掌控了。<br/>　　Ps：页面notes更加简单，因为针对页面的说明只能有一段文本，不存在特殊说明字段的编辑。<br/> ============ 最默默无闻的分割线，以下是2008.07.22更新的内容 ============<br/>PartVII:交互interactions(上)<br/>　　Axure RP Pro5终于发布了，直观操作上，最明显的变化之一就是在命令行多了“share.分享”，其次所有窗口可以以浮动形式编辑了。为了与时俱进，以后的教程将以Axure RP Pro5为基础来继续写。<br/>　　话说上次功能说到注释annotations，这次就来说它的“亲兄弟”交互interactions。之所以说他们是亲兄弟，除了因为他们长在同一个面版上，更因为他们需要结合起来使用，这样才能清楚的表明功能详情。<br/>　　打个不恰当的比方，如果要说明的功能对象是人，那么注释annotations标注的是这个人的基本属性，比如“性别、年龄、学历……”，交互interactions则是说明人根据外部条件，做出的回应。比如你父母做好饭菜给你，你就吃饭；给你10块钱，一个瓶子，嘱托你买酱油，你就会一溜烟小跑去打酱油（这个比喻有点过时，现在都不这么买了）。当然，我们说的是绝对条件下的绝对反应，这就是机器语言。<br/>　　我们以一条简单的文字链接为例：“hawking 的 axure rp 5&nbsp;&nbsp;文章列表”。我们来对它添加交互行为。<br/>　　我把交互分为三个部分的：交互触发、交互条件、交互行为。这样的区分，其实是参考程序编程的结构而做的，这就把程序构成人性化、语义化了。<br/>　　这章我着重讲解交互触发与交互行为中的快速链接，详情的交互行为与交互条件留待后面两章进行详解。还是照例先给三个名词做出名词解释。<br/>　　交互触发：是发生交互的导火索，说明引起交互的触发动作是什么。<br/>　　　以此文字链为例，交互的触发原因，是“点击文字链”。<br/>　　交互条件：是达成我们目标行为的前提条件。如果目标行为只有一个，对触发没有任何条件限制，交互条件则可以被忽略。<br/>　　　再以此文字链接为例，如果对查看文章列表没有任何限制，则不设置交互条件，用户点击文字链，直接发生交互行为。如果对查看文章列表有权限限制，只允许作者查看，则触发交　　互行为的条件就是“以文章作者hawking的身份登录”。<br/>　　　PS：有条件本身，就必然会有条件的反面。或者有多个条件，就会有多个条件之外的例外情况。在写文档的时候，必须考虑进去，说明清楚，这一点最容易疏漏，而造成程序员在开发的时候想当然，或者再回来问你。针对这个例子，条件的反面就是“登录者不是hawking，或没有登录”。<br/>　　交互行为：是机器依据触发事件与条件，做出的反应动作或行动。<br/>　　　此文字链接的的交互行为，就是“页面跳转到hawking 的 axure rp 5&nbsp;&nbsp;文章列表页面”。<br/>　　一、交互触发<br/>　　触发主要有两种，一种是页面载入触发，一种是鼠标行为触发。<br/>　　1、页面载入触发，针对的对象就是我们所编辑的页面，axure将其放在了page notes&amp;page interactions面版中。如下图所示，就是page interactions。<br/> <br/> 　　Axure暂时仅支持一种页面触发条件，就是OnPageLoad当页面载入时。<br/>　　如图所示，针对我们设置的case事件，axure提供了三个功能。<br/>　　Add case：给所选对象增加事件。<br/>　　Edit case：编辑所选事件。（功能前提，选择你索要编辑的事件，比如鼠标选择case 1）。<br/>　　Del&#101;te case：删除所选事件。（功能前提，选择你索要编辑的事件，比如鼠标选择case 1）。<br/>　　2、鼠标行为触发是当用户使用鼠标操作界面时，引发交互。<br/> <br/>　　Axure支持的鼠标触发行为根据你所选择的对象不同而不同，选择图形、文字、链接会出现三种触发行为：<br/>　　Onclick：当鼠标点击目标时，触发交互行为。<br/>　　OnMouseEnter：当鼠标移入目标热区时，触发交互行为。<br/>　　OnMouseOut：当鼠标从目标热区移出时，触发交互行为。<br/>　　如果选择的是输入框、多选框等则会出现对应功能的触发行为：<br/>　　OnKeyUp：Fires when the user releases a key.当释放键盘时触发交互行为。<br/>　　OnFocus：当鼠标选择、聚焦到对象时，触发交互行为。<br/>　　OnLostFocus：当鼠标失去对目标对象的选择、聚焦时，触发交互行为。<br/>　　特别的，选择下拉框、列表框会出现：<br/>　　Onchange：当所选项被更改时，触发交互行为。<br/>　　而选择我们所编辑的对象后，如果对象之前没有编辑过交互事件，则有两个选项<br/>　　Add case：给所选对象增加事件。<br/>　　Quick link：快速添加链接。<br/>　　如果曾经编辑过交互事件，则有三个功能，和页面载入触发是一样的，这里也就不再累述。<br/>　　二、交互行为—快速链接<br/>　　选择好交互触发后，在对交互没有特定条件设置的前提下，我们可以直接设置此次触发引起的交互行为。由于链接跳转是网页中最常用的交互行为，因此axure特意提供了一个快速链接的功能。<br/>　　选择对象后，点击快速链接则会弹出如下link properties 链接属性面版：<br/> <br/>　　如图所示，此面版中有四条可选命令：<br/>　　1、link to a page in this design：链接到这个项目中的某一特定页面。<br/>　　你可以通过鼠标点击，选择你想要跳转的，树型目录中的相应页面。<br/>　　2、link to an external url o&#114; file：链接到一个外部链接或者文件。<br/>　　你可以通过在hyperlink框中输入链接地址，完成链接导向。<br/>　　注意：链接最好是绝对链接地址，不然就容易出错。<br/>　　3、reload current page：重新载入当前页面。<br/>　　Variable changes are applied变量变化生效。<br/>　　4、back to previous page：返回浏览前一页面。<br/>　　Varable changes are not applied变量变化不生效<br/>文章转载自“折折熊de交互论”（<br/><a target="_blank" href="http://www.jojobox.cn">http://www.jojobox.cn</a><br/>）]]></description>
		</item>
		
			<item>
			<link>http://www.xa148.cn/default.asp?id=599</link>
			<title><![CDATA[[js+css]点击隐藏层,点击另外的层不能隐藏原层]]></title>
			<author>ctxlxm@163.com(edream)</author>
			<category><![CDATA[网页设计]]></category>
			<pubDate>Tue,06 Apr 2010 14:17:06 +0800</pubDate>
			<guid>http://www.xa148.cn/default.asp?id=599</guid>	
		<description><![CDATA[<div class="UBBPanel"><div class="UBBTitle"><img src="http://www.xa148.cn/images/html.gif" style="margin:0px 2px -3px 0px"> HTML代码</div><div class="UBBContent"><TEXTAREA rows="8" id="temp89342"><script>
var old=null;
function changemenu(mydiv){
  var obj = document.getElementById(mydiv);
  if (old!=null&amp;&amp;old!=obj)
    old.style.display='none';
  old=obj;
  if (obj.style.display=='none'){
    obj.style.display='block';
  }else{
    obj.style.display='none';
  }
}
</script>
 <div id=&#34;myc&#34;>
  <div class=&#34;changemeun&#34;>
<div class=&#34;a1&#34;> <a  onclick=&#34;changemenu('menu_1');&#34;>学院信息</a></div>
 <div class=&#34;a2&#34;><a  onclick=&#34;changemenu('menu_2');&#34;>先进性教育</a></div>
<div class=&#34;a3&#34;><a  onclick=&#34;changemenu('menu_3');&#34;>招生信息</a></div>
 <div class=&#34;a4&#34;><a  onclick=&#34;changemenu('menu_4');&#34;>最新讲座</a></div>
 <div class=&#34;a5&#34;><a  onclick=&#34;changemenu('menu_5');&#34; >学校活动</a></div>
  </div>
  <div  id=&#34;menu_1&#34; style=&#34;DISPLAY: none&#34; class=&#34;list_a1&#34;>1货币转换，下图显示了这个程序子只进行简单的 把元素放在下面的目录下，在创币转换应用程序这个例 所需的界面，包括一些UI组件实例（Button, ComboB 货币转换，下图显示了这个程序组件实例（Button, ComboB 货币转换，下图显示了这个程序子只进行简单的 把元素放在下面的目录下，在创币转换应用程序这个例 所需的界面，包括一些UI组件实例（Button, ComboBox, Label, TextArea, and TextInput）。在这个应用程序中，用户必须输入一个加拿大元的数目子只进行简单的 把元素放在下面的目录下，在创币转换应用程序这个例组件实例（Button, ComboB 货币转换，下图显示了这个程序子只进行简单的 把元素放在下面的目录下，在创币转换应用程序这个例 所需的界面，包括一些UI组件实例（Button, ComboBox, Label, TextArea, and TextInput）。在这个应用程序中，用户必须输入一个加拿大元的数（Button, ComboBox, Label, TextArea, and TextInput）。在这个应用程序中，用户必须输入一个加拿大元的数目， 
</div>
  <div  id=&#34;menu_2&#34; style=&#34;DISPLAY: none&#34; class=&#34;list_a2&#34;>2货币转换，下图显示了这个程序子只进行简单的 把元素放在下面的目录下，在创币转换应用程序这个例 所需的界面，包括一些UI组件实例（Button, ComboB 货币转换，下图显示了这个程序组件实例（Button, ComboB 货币转换，下图显示了这个程序子只进行简单的 把元素放在下面的目录下，在创币转换应用程序这个例 所需的界面，包括一些UI组件实例（Button, ComboBox, Label, TextArea, and TextInput）。在这个应用程序中，用户必须输入一个加拿大元的数目子只进行简单的 把元素放在下面的目录下，在创币转换应用程序这个例组件实例（Button, ComboB 货币转换，下图显示了这个程序子只进行简单的 把元素放在下面的目录下，在创币转换应用程序这个例 所需的界面，包括一些UI组件实例（Button, ComboBox, Label, TextArea, and TextInput）。在这个应用程序中，用户必须输入一个加拿大元的数（Button, ComboBox, Label, TextArea, and TextInput）。在这个应用程序中，用户必须输入一个加拿大元的数目， 
</div>  
<div  id=&#34;menu_3&#34; style=&#34;DISPLAY: none&#34; class=&#34;list_a3&#34;>3货币转换，下图显示了这个程序子只进行简单的 把元素放在下面的目录下，在创币转换应用程序这个例 所需的界面，包括一些UI组件实例（Button, ComboB 货币转换，下图显示了这个程序组件实例（Button, ComboB 货币转换，下图显示了这个程序子只进行简单的 把元素放在下面的目录下，在创币转换应用程序这个例 所需的界面，包括一些UI组件实例（Button, ComboBox, Label, TextArea, and TextInput）。在这个应用程序中，用户必须输入一个加拿大元的数目子只进行简单的 把元素放在下面的目录下，在创币转换应用程序这个例组件实例（Button, ComboB 货币转换，下图显示了这个程序子只进行简单的 把元素放在下面的目录下，在创币转换应用程序这个例 所需的界面，包括一些UI组件实例（Button, ComboBox, Label, TextArea, and TextInput）。在这个应用程序中，用户必须输入一个加拿大元的数（Button, ComboBox, Label, TextArea, and TextInput）。在这个应用程序中，用户必须输入一个加拿大元的数目， 
</div> 
<div  id=&#34;menu_4&#34; style=&#34;DISPLAY: none&#34; class=&#34;list_a4&#34;>4货币转换，下图显示了这个程序子只进行简单的 把元素放在下面的目录下，在创币转换应用程序这个例 所需的界面，包括一些UI组件实例（Button, ComboB 货币转换，下图显示了这个程序组件实例（Button, ComboB 货币转换，下图显示了这个程序子只进行简单的 把元素放在下面的目录下，在创币转换应用程序这个例 所需的界面，包括一些UI组件实例（Button, ComboBox, Label, TextArea, and TextInput）。在这个应用程序中，用户必须输入一个加拿大元的数目子只进行简单的 把元素放在下面的目录下，在创币转换应用程序这个例组件实例（Button, ComboB 货币转换，下图显示了这个程序子只进行简单的 把元素放在下面的目录下，在创币转换应用程序这个例 所需的界面，包括一些UI组件实例（Button, ComboBox, Label, TextArea, and TextInput）。在这个应用程序中，用户必须输入一个加拿大元的数（Button, ComboBox, Label, TextArea, and TextInput）。在这个应用程序中，用户必须输入一个加拿大元的数目， 
</div>
<div  id=&#34;menu_5&#34; style=&#34;DISPLAY: none&#34;  class=&#34;list_a5&#34;>5货币转换，下图显示了这个程序子只进行简单的 把元素放在下面的目录下，在创币转换应用程序这个例 所需的界面，包括一些UI组件实例（Button, ComboB 货币转换，下图显示了这个程序组件实例（Button, ComboB 货币转换，下图显示了这个程序子只进行简单的 把元素放在下面的目录下，在创币转换应用程序这个例 所需的界面，包括一些UI组件实例（Button, ComboBox, Label, TextArea, and TextInput）。在这个应用程序中，用户必须输入一个加拿大元的数目子只进行简单的 把元素放在下面的目录下，在创币转换应用程序这个例组件实例（Button, ComboB 货币转换，下图显示了这个程序子只进行简单的 把元素放在下面的目录下，在创币转换应用程序这个例 所需的界面，包括一些UI组件实例（Button, ComboBox, Label, TextArea, and TextInput）。在这个应用程序中，用户必须输入一个加拿大元的数（Button, ComboBox, Label, TextArea, and TextInput）。在这个应用程序中，用户必须输入一个加拿大元的数目， 
</div>
</div></TEXTAREA><br/><INPUT onclick="runEx('temp89342')"  type="button" value="运行此代码"/> <INPUT onclick="doCopy('temp89342')"  type="button" value="复制此代码"/><br/> [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</div></div>]]></description>
		</item>
		
			<item>
			<link>http://www.xa148.cn/default.asp?id=589</link>
			<title><![CDATA[用来武装Firefox的24款Web开发插件]]></title>
			<author>ctxlxm@163.com(edream)</author>
			<category><![CDATA[网页设计]]></category>
			<pubDate>Mon,01 Mar 2010 13:12:42 +0800</pubDate>
			<guid>http://www.xa148.cn/default.asp?id=589</guid>	
		<description><![CDATA[俗话说，“工欲善其事，必先利其器”。对于前端开发工程师来说，基于Firefox丰富的Web开发辅助插件无疑就是最好的利器。下面就与大家分享24款武装Firefox的Web开发插件。<br/><br/>开发工具<br/><br/>1.&nbsp;&nbsp;Web Developer 1.1.8<br/><br/><a href="https://addons.mozilla.org/en-US/firefox/addon/60" target="_blank">https://addons.mozilla.org/en-US/firefox/addon/60</a><br/>以工具栏的形式对网页的(X)HTML、脚本、多媒体、CSS、缓存、图象等多方面的实用工具。使我们能轻易的获得网页的更多信息，使我们进一步的了解当 前所浏览的网页。<br/>说明：超强的web分析工具，开发人员必装。<br/><br/>2.&nbsp;&nbsp;Firebug 1.5.0<br/><br/><a href="https://addons.mozilla.org/en-US/firefox/addon/1843" target="_blank">https://addons.mozilla.org/en-US/firefox/addon/1843</a><br/>Firebug是firefox下的一个插件,能够调试所有网站语言,如Html,Css等，但FireBug最吸引我的就是javascript调试 功能，使用起来非常方便，而且在各种浏览器下都能使用（IE,Firefox,Opera, Safari），简直难以置信。除此之外，其他功能还很强大。比如html,css,dom的察看与调试，网站整体分析等等。总之就是一整套完整而强大的 WEB开发工具。<br/>说明：查看，编辑，Debug页面的CSS,HTML,JavaScript。超强的开发调试的工具，开发人员必装。<br/><br/>3.&nbsp;&nbsp;LinrLightWeb 0.2.1<br/><br/><a href="https://addons.mozilla.org/en-US/firefox/addon/14068" target="_blank">https://addons.mozilla.org/en-US/firefox/addon/14068</a><br/>安装前，请确认您已安装Firebug插件，获取Firebug请访问:<a href="http://getfirebug.com/" target="_blank">http://getfirebug.com/</a><br/>1. 开启网页编辑模式，随意编辑网页——Fiddler的好搭档;<br/>2. 超强Sel&#101;ctor，查找操作标记;<br/>3. 刷新CSS，无需刷新整页;<br/>4. 快速设置CSS Sprites背景，鼠标拖移即可得到位置;<br/>5. 保持登录状态，Session不过期;禁用<br/>6. 同步发行IE版，Chrome版。<br/>说明：非常强的web开发工具。<br/><br/>更多基于firebug的插件可以参考这篇文章：用来武装Firebug的十三款Firefox插件<br/><br/>4.&nbsp;&nbsp;View Source Char 2.7<br/><br/><a href="https://addons.mozilla.org/en-US/firefox/addon/655" target="_blank">https://addons.mozilla.org/en-US/firefox/addon/655</a><br/>画一个 Color-Coded 的图表的 Web 页的源代码。<br/>说明：显示非常好看的源码, 分级缩进, 不同颜色区分。<br/><br/>5.&nbsp;&nbsp;Tamper Data 11.0.0<br/><br/><a href="https://addons.mozilla.org/en-US/firefox/addon/966" target="_blank">https://addons.mozilla.org/en-US/firefox/addon/966</a><br/>Tamper Data 的真实含义，即“篡改数据”（或者说定制 HTTP 请求）：截取浏览器发出的每一个 HTTP 请求，提示我们选择是要进行定制，还是不做定制而直接提交请求，还是终止当前被截取的请求，然后根据我们的选择决定是打开定制窗口，还是直接向 WEB 服务器提交请 求，还是终止当前的请求。<br/>说明：查看 firefox 收发请求的 header, 特别是在发出请求前, 可以修改 header。<br/><br/>6.&nbsp;&nbsp;JavaScript Debuger 0.9.87.4<br/><br/><a href="https://addons.mozilla.org/en-US/firefox/addon/216" target="_blank">https://addons.mozilla.org/en-US/firefox/addon/216</a><br/>Venkman 作为Mozilla的调试器，是针对Mozilla(Firefox)的自由工具<br/>说明：firefox 环境下的 JavaScript Debugger, 强大的脚本调试工具。<br/><br/>7.&nbsp;&nbsp;Live Http Headers 0.15<br/><br/><a href="https://addons.mozilla.org/en-US/firefox/addon/3829" target="_blank">https://addons.mozilla.org/en-US/firefox/addon/3829</a><br/>可以用来实时监测发起的http请求和响应，也可以修改请求参数之后重新发起请求。<br/>说明：浏览页面同时记录所有 HTTP headers 。<br/><br/>8.&nbsp;&nbsp;Add N Edit Cookies 0.2.1.3<br/><br/><a href="https://addons.mozilla.org/en-US/firefox/addon/573" target="_blank">https://addons.mozilla.org/en-US/firefox/addon/573</a><br/><br/>查看和修改本地的Cookie，Cookie欺骗必备。<br/>说明：查看并且修改 cookies, 不方便的地方是显示所有浏览器的 cookies 而不仅是当前页。<br/><br/>9.&nbsp;&nbsp;XPath Checker 0.4.1<br/><br/><a href="https://addons.mozilla.org/en-US/firefox/addon/1095" target="_blank">https://addons.mozilla.org/en-US/firefox/addon/1095</a><br/>这个工具没什么好多说的，就是安装后可以直接用，在网上看了使用方法，开始没看明白，后来才知道是在页面上点鼠标右键，下面有个view xpath,点击就可以了。<br/>说明：据说可以调试 XPath。<br/><br/>10. YSlow 2.0.6<br/><br/><a href="https://addons.mozilla.org/zh-cn/firefox/addon/5369" target="_blank">https://addons.mozilla.org/zh-cn/firefox/addon/5369</a><br/>YSlow分析网页,并提出如何提高其性能的基础上一套规则,高性能的网页。<br/>说明：能够帮我们分析web页面比较慢的原因，它是基于 Firebug的，也能分开浏览web页面的元素，比如js,css.<br/><br/>HTML验证<br/><br/>11.&nbsp;&nbsp;HTML Validator(based on CSE HTML Validator)1.2.3<br/><br/><a href="https://addons.mozilla.org/en-US/firefox/addon/887" target="_blank">https://addons.mozilla.org/en-US/firefox/addon/887</a><br/>HTML Validator是一个Firefox扩展，它能查找并标志出HTML页面上的错误。HTML Validator以Tidy为基础，Tidy最初是W3C为验证HTML代码开发的一个工具。<br/>说明：著名的 CSE HTML Validator 引擎。<br/><br/>12.&nbsp;&nbsp;Relaxed the HTML Validator 0.9.5<br/><br/><a href="https://addons.mozilla.org/en-US/firefox/addon/3939" target="_blank">https://addons.mozilla.org/en-US/firefox/addon/3939</a><br/>Relaxed the HTML Validator 0.9.5 这是一个做html验证的小插件，可以很容易的检测出页面的错误的html代码。<br/>说明：直接在当前页面上进行 HTML validation, 界面清晰直观。<br/><br/>13.&nbsp;&nbsp;Total Validator 6.2.0<br/><br/><a href="https://addons.mozilla.org/en-US/firefox/addon/2318" target="_blank">https://addons.mozilla.org/en-US/firefox/addon/2318</a><br/>这软件帮 助你检查你的网页是否符合标准,结果将帮助你迅速地解决问题。<br/>说明：把当前页面在 <a href="http://www.totalvalidator.com" target="_blank">http://www.totalvalidator.com</a> 做HTML Validation,输出结果用红字进行了语法修正, 比较友好。不过由于通过其他网站验证, 速度有点慢, 并且结果不易保存。<br/><br/>页面设计<br/><br/>14.&nbsp;&nbsp;MeasureIt 0.3.92<br/><br/><a href="https://addons.mozilla.org/en-US/firefox/addon/539" target="_blank">https://addons.mozilla.org/en-US/firefox/addon/539</a><br/>通过可以绘制在页面任何地方的刻度尺来显示以像素(px)计算的宽度、高度、元素缩进量。<br/>说明：可以测量页面上任何选择区域的长宽, 对界面设计人员非常有帮助。<br/><br/>15.&nbsp;&nbsp;ColorZilla 2.0.2<br/><br/><a href="https://addons.mozilla.org/en-US/firefox/addon/271" target="_blank">https://addons.mozilla.org/en-US/firefox/addon/271</a><br/>利用ColorZilla 您可以从浏览器中的任一点读取色彩值，快速调节颜色并粘贴到其他应用程序。您可以缩放正在查看的页面或测量页面任意两点之间的距离。<br/>说明：从 页面, 或者调色板上取色, 同时可以缩放页面。<br/><br/>SEO广告<br/><br/>16.&nbsp;&nbsp;RankQuest SEO Toolbar 3.9.2<br/><br/><a href="https://addons.mozilla.org/en-US/firefox/addon/1471" target="_blank">https://addons.mozilla.org/en-US/firefox/addon/1471</a><br/>检查网站在搜索引擎和alexa的状态<br/>说明：SEO 工具插件, 访问一个页面时, 显示此页面的各种排名及 SEO 信息。<br/><br/>17.&nbsp;&nbsp;Adsense Preview 1.5<br/><br/><a href="https://addons.mozilla.org/en-US/firefox/addon/2132" target="_blank">https://addons.mozilla.org/en-US/firefox/addon/2132</a><br/>将谷歌广告放到你的网页上<br/>说明：在当前页面上显示 Google ADs 帮助确定广告位置。<br/><br/>其他工具<br/><br/>18.&nbsp;&nbsp;HackBar 1.4.2<br/><br/><a href="https://addons.mozilla.org/en-US/firefox/addon/3899" target="_blank">https://addons.mozilla.org/en-US/firefox/addon/3899</a><br/>包含一些常用的工具。(SQL injection,XSS,加密等)<br/>说明：快速对字符串进行各种编码的工具, MD5, Base64, URLencode, URLDecode。<br/><br/>19.&nbsp;&nbsp;Document Map 0.6.1<br/><br/><a href="https://addons.mozilla.org/en-US/firefox/addon/475" target="_blank">https://addons.mozilla.org/en-US/firefox/addon/475</a><br/>显示当前页的标题结构中侧栏让之间快速导航…<br/>说明：提供页面资源结构信息.。<br/><br/>20.&nbsp;&nbsp;IE View Lite 1.3.5<br/><br/><a href="https://addons.mozilla.org/en-US/firefox/addon/1429" target="_blank">https://addons.mozilla.org/en-US/firefox/addon/1429</a><br/>IE View 简装版，将选项集成到了右键关联菜单中，同时增加了一个工具栏按钮。<br/>说明：点右键可以选择在 IE 中打开页面, 有助于跨浏览器调试。<br/><br/>21.&nbsp;&nbsp;TimeStamp Converter 2.0.0<br/><br/><a href="https://addons.mozilla.org/en-US/firefox/addon/2063" target="_blank"><a href="https://addons.mozilla.org/en-US/firefox/addon/2063" target="_blank">https://addons.mozilla.org/en-US/firefox/addon/2063</a></a><br/>将转换日期和 timestamps.Context 菜单选项将所选的时间戳转换为日期。<br/>说明：除去从上下文中转换, 还可以手动将 timestamp 时间戳与 date/time 转换。<br/><br/>22.&nbsp;&nbsp;TimestampDecode 0.1.8<br/><br/><a href="https://addons.mozilla.org/en-US/firefox/addon/3208" target="_blank">https://addons.mozilla.org/en-US/firefox/addon/3208</a><br/>将所选的编号视为一个时间戳并显示一个已解码的日期/时间。<br/>说明：将选中的数字作为 timestamp 时间戳转换为 date/time。<br/><br/>23.&nbsp;&nbsp;Fire Encrypter 4.0<br/><br/><a href="https://addons.mozilla.org/en-US/firefox/addon/2063" target="_blank"><a href="https://addons.mozilla.org/en-US/firefox/addon/2063" target="_blank">https://addons.mozilla.org/en-US/firefox/addon/2063</a></a><br/>说明：将文字加密成各种算法的密文, 甚至包括摩尔斯码。<br/><br/>24.&nbsp;&nbsp;Add-in-one Sidebar<br/><br/><a href="https://addons.mozilla.org/en-US/firefox/addon/1027" target="_blank">https://addons.mozilla.org/en-US/firefox/addon/1027</a><br/>全方位多功能侧边栏。<br/>说明：在浏览器左侧增加打开书签, 历史, 插件等的工具条。<br/><br/>转自：<a href="http://www.cnblogs.com/psunny/archive/2010/02/04/1663481.html" target="_blank">http://www.cnblogs.com/psunny/archive/2010/02/04/1663481.html</a><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.xa148.cn/default.asp?id=584</link>
			<title><![CDATA[Web前端开发工程师必备技术列表]]></title>
			<author>ctxlxm@163.com(edream)</author>
			<category><![CDATA[网页设计]]></category>
			<pubDate>Wed,27 Jan 2010 09:40:16 +0800</pubDate>
			<guid>http://www.xa148.cn/default.asp?id=584</guid>	
		<description><![CDATA[想要打造并拥有一流的Web产品开发团队，在团队成员基础能力上一定要下功夫。对于Web前端产品开发来说，仅仅掌握Web1.0时代简单的&#34;网页套接&#34;是完全不够的。我结合自己的团队配备，特此罗列了Web前端产品工程师所涉及的技能列表如下：<br/><br/>　　通过许多实际项目，个人认为一个完备的前端产品开发团队，必须拥有如下的人才配备，也希望大家补充：<br/><br/>　　◎ 团队全体成员达到所有技能中的a级标准 <br/>　　◎ 团队全体成员必须掌握两项技能中的b级标准，并保证所有的b级标准在该团队中有50%以上成员能达到 <br/>　　◎ 团队全体成员必须掌握一项技能中的c级标准，并保证所有的c级标准在该团队中有25%以上成员能达到 <br/><br/>具体技能描述：<br/><br/>【必备】UserInterface <br/><br/>◎ PhotoShop/Fireworks Design<br/>　　a - 配合美工将草图形成具体的符合WebPage的设计<br/>　　b - 有快速制作分层高品质PSD、PNG的能力<br/>　　c - 能迅速将PSD、PNG的内容构思成div+css或者table等HTML代码 <br/><br/>◎ Flash Design<br/>　　a - 基本动画效果<br/>　　b - 复杂的交互体系设计，了解第三方swf辅助设计软件<br/>　　c - 复杂的交互体系设计以及较强的对各类外埠资源（PNG、JPG、MP3、WAV等）的整合能力。精通部分第三方辅助设计软件（AE、SwishMax、Swift3D等）<br/><br/>【必备】Browser-side (Web Application) <br/><br/>◎ XHTML/CSS<br/>　　a - 基本的layout实现<br/>　　b - 严格跨平台的layout实现以<br/>　　c - 优雅的HTML code，尽可能符合标准并有SEO的考虑因素。在任何平台、浏览器下基本保持一致。不要求了解各种CSS的hacks，但要求知道遇到问题应该如何查阅资料以在第一时间内解决。能够为JavaScript开发人员提供最好操作的DOM结构，让JS开发人员在开发的时候认为&#34;一切都已经准备就绪了&#34;，而不是&#34;捉襟见肘&#34;。 <br/><br/>◎ JavaScript/Ajax/DOM<br/>　　a - 基本的DOM操作，了解AJAX，可以实现数据通信<br/>　　b - 基本的DOM操作，能写高效率的OOP代码，以降低维护成本<br/>　　c - 基于需求，进行不同的开发，选择合适的框架，做到代码效率最高，用户体验最好，代码下载量最小，并且可以在单独甚至更多产品线中最大限度重用代码 <br/><br/>◎ Flash Developement<br/>　　a - 基于Timeline的ActionScript操作，能实现简单交互<br/>　　b - 掌握a外，能实现数据层通信（与服务器以及本地SharedObject）<br/>　　c - 精通AS1-3，能根据需求进行各类RIA开发。无论是要求支持FlashPlayer8的，还是FlashPlayer9的，都能做到开发效率最高、灵活性最大（比如对HTML层的接口设计，等等）。<br/><br/>【必备】Client-side (Desktop Application) <br/><br/>◎ Apollo<br/>　　a - 产品级的封装，基本技术了解（如何打包、如何加入HTML和JavaScript等）<br/>　　b - 掌握a的同时，能利用Apollo的API独立设计、开发OS的文件I/O功能。<br/>　　c - 掌握基本技能的同时，对&#34;3D概念体系&#34;有所认知。这里&#34;3D&#34;即：Design（设计）、Development（开发）、Deploy（产品部署）。能用Apollo <br/><br/>◎ Windows Presentation Foundation、WPF/E（Silverlight）<br/>　　（待定，欢迎补充）<br/><br/>【增补】Server-side （修改：经考虑，这个技能不参与评级）<br/><br/>　　本来列举了&#34;1、Server端简单的技术、脚本&#34;和&#34;2、MediaServer（Red5）接口&#34;作为&#34;Web前端工程师技能列表&#34;的一种（服务器、数据逻辑层技能的）评判标准。但似乎很多朋友对于前端工程师是否应该掌握Server端技能的必要性表示怀疑。确实，要掌握好上述的展现层技能不是意见容易的事情，而且前端工程师的确非常辛苦。但是，站在另一方面来说，辛苦的原因是什么，我不知道在你日夜奋战div+CSS的时候思考过没有。就我的经验，前端的辛苦在于以下几个方面： <br/>　　◎ 重复劳动多，大量的div+css都是重复的，即便可以复制粘贴，但几千行的div海洋中去寻找一个入口恐怕都非常痛苦 <br/>　　◎ 需求变更多，往往你折腾几个小时终于把跨平台问题解决好了，而且在IE6、7和Firefox下面都能显示同样的效果了，甚至连JavaScript交互都已经快搞定了。突然上面说需求要变。这无疑是莫大的痛苦。 <br/>　　也许表面上看，这跟Server端技能无关，但我觉得有好的Server端的意识，一定会有所帮助（当然不可能解决所有的问题）。毕竟信息结构和数据库是密切相关的，而Server是连接数据库的唯一渠道（至少大多数B/S应用是如此）。掌握Server端的基本技能，对于同逻辑层开发人员设计接口是非常重要的。而且HTML表现层在开发时与数据的分离，也与Server端的各种模板技术有关。例如PHP中的Smarty模板（我曾经用的）、jsp的model2概念等等。HTML结构如何设计，如何让HTML重用，甚至在HTML层进行OOP的开发（我现在在新产品线中设计的前端开发流程），都需要Server端的支持。最起码，你要告诉php程序员你需要什么。如果你完全对PHP一无所知的话，那也无从谈起了。<br/>　　此外，对于创业团队，往往人手非常有限。为了让运营成本降到最低，所有的技术人员都有义务对Server端技术有所了解。如果为了修改一个网页的标题还要跑去喊PHP程序员连接Remote Server的话，那实在是增加了整个公司的运营成本。<br/>　　总结：我认为，可以不了解技术细节，但应该知道原理，最好能掌握一两套设计思想（毕竟数据逻辑都在这里走，光看HTML和JavaScript，对人的见识还是有局限的，这种局限限制了我自己很久的时间），那将是一比宝贵的财富。<br/><br/>【增补】Mobile-side（不参与评级）<br/><br/>　　看到很多朋友留言说前端工程师没前途，我在想，同时掌握移动设备的技能是否也是拓展前途的一个必要性？这里再多说几句，关于技术人员的前途，目前在国内确实得用&#34;惨淡&#34;来形容。浮躁的氛围让技术人才往往过早放弃了自己的技术生涯，而尔虞我诈的整体道德水平也让单纯的技术人员痛不欲生（我身边太多了，恩，不说具体细节了，呵呵）。<br/>　　作为一个技术人员，开发人员，在保持纯粹地敬业心态（这是前提，这么没有，啥也别谈）外，更要学会如何保护自己，如何壮大自身，社会不会同情你，只有你自己才能保护你自己。<br/><br/><br/>领先的互联网应用服务提供商互联之外(<a href="http://www.ctx99.cn" target="_blank">http://www.ctx99.cn</a>)、北京虚拟主机的最佳选择、提供<a target="_blank" href="http://www.ctx99.cn/">域名注册</a> <a target="_blank" href="http://www.ctx99.cn/">虚拟主机</a> <a target="_blank" href="http://www.ctx99.cn/">网站建设</a> <a target="_blank" href="http://www.ctx99.cn/">企业邮局</a> <a target="_blank" href="http://www.ctx99.cn/">域名</a> <a target="_blank" href="http://www.ctx99.cn/">互联之外</a> <a target="_blank" href="http://www.ctx99.cn/">互联网</a> <a target="_blank" href="http://www.ctx99.cn/">免费空间</a> <a target="_blank" href="http://www.ctx99.cn/">主页空间</a>、网络营销等全方位信息化服务]]></description>
		</item>
		
			<item>
			<link>http://www.xa148.cn/default.asp?id=580</link>
			<title><![CDATA[FLASH风格的按钮]]></title>
			<author>ctxlxm@163.com(edream)</author>
			<category><![CDATA[网页设计]]></category>
			<pubDate>Mon,18 Jan 2010 09:38:03 +0800</pubDate>
			<guid>http://www.xa148.cn/default.asp?id=580</guid>	
		<description><![CDATA[<div class="UBBPanel"><div class="UBBTitle"><img src="http://www.xa148.cn/images/html.gif" style="margin:0px 2px -3px 0px"> HTML代码</div><div class="UBBContent"><TEXTAREA rows="8" id="temp98474"><style>
body{
	background-color:#B8B8A0;
	}
#fbtn{
	display:none;
	overflow:hidden;
	border:3 solid white;
	padding:1 1 1 1;
	margin-bottom:3px;
	width:115px;
	height:30px;
	}
#fbtn_txt{
	position:relative;
	}
#fbtn_txt div{
	height:30px;
	padding-top:13px;
	font-size:9px;
	font-family:small fonts;
	color:chocolate;
	text-align:center;
	cursor:hand;
	}
#fbtn_mask{
	background-color:#ffffff;
	position:relative;
	width:100%;
	height:100%;
	}
</style>
<div id=fbtn>
	<div id=fbtn_mask></div>
	<div id=fbtn_txt>
		<div>G1</div>
		<div>good morning</div>
	</div>
</div>
<div id=fbtn>
	<div id=fbtn_mask></div>
	<div id=fbtn_txt>
		<div>G2</div>
		<div>good evening</div>
	</div>
</div>
<div id=fbtn>
	<div id=fbtn_mask></div>
	<div id=fbtn_txt>
		<div>M1</div>
		<div>my name is mozart0</div>
	</div>
</div>
<div id=fbtn>
	<div id=fbtn_mask></div>
	<div id=fbtn_txt>
		<div>M2</div>
		<div>mm mm i love u</div>
	</div>
</div>
<div id=fbtn>
	<div id=fbtn_mask></div>
	<div id=fbtn_txt>
		<div>G1</div>
		<div>good morning</div>
	</div>
</div>
<div id=fbtn>
	<div id=fbtn_mask></div>
	<div id=fbtn_txt>
		<div>G2</div>
		<div>good evening</div>
	</div>
</div>
<div id=fbtn>
	<div id=fbtn_mask></div>
	<div id=fbtn_txt>
		<div>M1</div>
		<div>my name is mozart0</div>
	</div>
</div>
<div id=fbtn>
	<div id=fbtn_mask></div>
	<div id=fbtn_txt>
		<div>M2</div>
		<div>mm mm i love u</div>
	</div>
</div>
<script>
var current=null;
for(var i=0;i<fbtn.length;i++){
	fbtn_txt[i].style.posTop=-30;
	fbtn_mask[i].style.posTop=-30;
	fbtn[i].index=i;
	fbtn[i].style.display=&#34;block&#34;;
	fbtn[i].onmouseover=function(){
		if(!current){
			current=this;
			domove(this.index);
			}
		else if(current!=this){
			domove(current.index);
			domove(this.index);
			current=this;
			}
		}
	fbtn[i].onmouseout=function(){
		if(event.toElement==this.parentElement&amp;¤t==this){
			domove(this.index);
			current=null;
			}
		}
	}
function domove(num){
	var o=fbtn_txt[num];
	var m=fbtn_mask[num];
	if(o.style.posTop<-60){
		o.style.display=&#34;none&#34;;
		var t=o.children[1].innerHTML;
		o.children[1].innerHTML=o.children[0].innerHTML;
		o.children[0].innerHTML=t;
		o.style.posTop=-30;
		o.style.display=&#34;block&#34;;
		if(m.style.posTop>30)
			m.style.posTop=-30;
		else
			m.style.posTop=0;
		}
	else{
		m.style.posTop+=3;
		o.style.posTop-=3;
		setTimeout('domove('+num+')',15);
		}
	}
</script></TEXTAREA><br/><INPUT onclick="runEx('temp98474')"  type="button" value="运行此代码"/> <INPUT onclick="doCopy('temp98474')"  type="button" value="复制此代码"/><br/> [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</div></div><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.xa148.cn/images/html.gif" style="margin:0px 2px -3px 0px"> HTML代码</div><div class="UBBContent"><TEXTAREA rows="8" id="temp37995"><style>
body{
	background-color:#B8B8A0;
	}
#fbtn{
	display:none;
	overflow:hidden;
	border-style:solid;
	border-width:1px;
	border-color:#e1e1c9 #e1e1c9 #6e6e56 #6e6e56;
	padding:1 1 1 1;
	width:115px;
	height:30px;
	}
#fbtn_txt{
	position:relative;
	}
#fbtn_txt div{
	height:30px;
	padding-top:11px;
	font-size:9px;
	font-family:small fonts;
	color:#800080;
	text-align:center;
	cursor:hand;
	}
#fbtn_mask{
	background-color:#ffffff;
	position:relative;
	width:100%;
	height:100%;
	}
</style>
<div id=fbtn>
	<div id=fbtn_mask></div>
	<div id=fbtn_txt>
		<div>G1</div>
		<div>good morning</div>
	</div>
</div>
<div id=fbtn>
	<div id=fbtn_mask></div>
	<div id=fbtn_txt>
		<div>G2</div>
		<div>good evening</div>
	</div>
</div>
<div id=fbtn>
	<div id=fbtn_mask></div>
	<div id=fbtn_txt>
		<div>M1</div>
		<div>my name is mozart0</div>
	</div>
</div>
<div id=fbtn>
	<div id=fbtn_mask></div>
	<div id=fbtn_txt>
		<div>M2</div>
		<div>mm mm i love u</div>
	</div>
</div>
<div id=fbtn>
	<div id=fbtn_mask></div>
	<div id=fbtn_txt>
		<div>G1</div>
		<div>good morning</div>
	</div>
</div>
<div id=fbtn>
	<div id=fbtn_mask></div>
	<div id=fbtn_txt>
		<div>G2</div>
		<div>good evening</div>
	</div>
</div>
<div id=fbtn>
	<div id=fbtn_mask></div>
	<div id=fbtn_txt>
		<div>M1</div>
		<div>my name is mozart0</div>
	</div>
</div>
<div id=fbtn>
	<div id=fbtn_mask></div>
	<div id=fbtn_txt>
		<div>M2</div>
		<div>mm mm i love u</div>
	</div>
</div>
<script>
var current=null;
for(var i=0;i<fbtn.length;i++){
	fbtn_txt[i].style.posTop=-30;
	fbtn_mask[i].style.posTop=-30;
	fbtn[i].index=i;
	fbtn[i].style.display=&#34;block&#34;;
	fbtn[i].onmouseover=function(){
		if(!current){
			current=this;
			domove(this.index);
			}
		else if(current!=this){
			domove(current.index);
			domove(this.index);
			current=this;
			}
		}
	fbtn[i].onmouseout=function(){
		if(event.toElement==this.parentElement&amp;¤t==this){
			domove(this.index);
			current=null;
			}
		}
	}
function domove(num){
	var o=fbtn_txt[num];
	var m=fbtn_mask[num];
	if(o.style.posTop<-60){
		o.style.display=&#34;none&#34;;
		var t=o.children[1].innerHTML;
		o.children[1].innerHTML=o.children[0].innerHTML;
		o.children[0].innerHTML=t;
		o.style.posTop=-30;
		o.style.display=&#34;block&#34;;
		if(m.style.posTop>30)
			m.style.posTop=-30;
		else
			m.style.posTop=0;
		}
	else{
		m.style.posTop+=3;
		o.style.posTop-=3;
		setTimeout('domove('+num+')',15);
		}
	}
</script></TEXTAREA><br/><INPUT onclick="runEx('temp37995')"  type="button" value="运行此代码"/> <INPUT onclick="doCopy('temp37995')"  type="button" value="复制此代码"/><br/> [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</div></div><br/><br/>IE 8下面可能有点问题，请用其它版本测试！~<br/><br/>领先的互联网应用服务提供商互联之外(<a href="http://www.ctx99.cn" target="_blank">http://www.ctx99.cn</a>)、北京虚拟主机的最佳选择、提供<a target="_blank" href="http://www.ctx99.cn/">域名注册</a> <a target="_blank" href="http://www.ctx99.cn/">虚拟主机</a> <a target="_blank" href="http://www.ctx99.cn/">网站建设</a> <a target="_blank" href="http://www.ctx99.cn/">企业邮局</a> <a target="_blank" href="http://www.ctx99.cn/">域名</a> <a target="_blank" href="http://www.ctx99.cn/">互联之外</a> <a target="_blank" href="http://www.ctx99.cn/">互联网</a> <a target="_blank" href="http://www.ctx99.cn/">免费空间</a> <a target="_blank" href="http://www.ctx99.cn/">主页空间</a>、网络营销等全方位信息化服务]]></description>
		</item>
		
			<item>
			<link>http://www.xa148.cn/default.asp?id=579</link>
			<title><![CDATA[网页中插入可运行代码的代码]]></title>
			<author>ctxlxm@163.com(edream)</author>
			<category><![CDATA[网页设计]]></category>
			<pubDate>Mon,18 Jan 2010 09:35:56 +0800</pubDate>
			<guid>http://www.xa148.cn/default.asp?id=579</guid>	
		<description><![CDATA[<div class="UBBPanel"><div class="UBBTitle"><img src="http://www.xa148.cn/images/html.gif" style="margin:0px 2px -3px 0px"> HTML代码</div><div class="UBBContent"><TEXTAREA rows="8" id="temp13201"><textarea name=&#34;Cont&#34; cols=&#34;50&#34; rows=&#34;10&#34; id=&#34;Cont&#34;><&#47textarea>
<input type=&#34;button&#34; name=&#34;Submit&#34; value=&#34;运行代码&#34; onClick=&#34;runCode()&#34;>
<script language=&#34;javascript&#34;>
function runCode(){
var Code=Cont.value;
var newwin=window.open('','','');
newwin.opener=null
newwin.document.write(Code);
newwin.document.close();
}
</script></TEXTAREA><br/><INPUT onclick="runEx('temp13201')"  type="button" value="运行此代码"/> <INPUT onclick="doCopy('temp13201')"  type="button" value="复制此代码"/><br/> [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</div></div><br/><br/>在&lt;body&gt;....&lt;/body&gt;间插入即可！！<br/><br/><br/>领先的互联网应用服务提供商互联之外(<a href="http://www.ctx99.cn" target="_blank">http://www.ctx99.cn</a>)、北京虚拟主机的最佳选择、提供<a target="_blank" href="http://www.ctx99.cn/">域名注册</a> <a target="_blank" href="http://www.ctx99.cn/">虚拟主机</a> <a target="_blank" href="http://www.ctx99.cn/">网站建设</a> <a target="_blank" href="http://www.ctx99.cn/">企业邮局</a> <a target="_blank" href="http://www.ctx99.cn/">域名</a> <a target="_blank" href="http://www.ctx99.cn/">互联之外</a> <a target="_blank" href="http://www.ctx99.cn/">互联网</a> <a target="_blank" href="http://www.ctx99.cn/">免费空间</a> <a target="_blank" href="http://www.ctx99.cn/">主页空间</a>、网络营销等全方位信息化服务]]></description>
		</item>
		
			<item>
			<link>http://www.xa148.cn/default.asp?id=568</link>
			<title><![CDATA[js日历控件[超酷超漂亮]]></title>
			<author>ctxlxm@163.com(edream)</author>
			<category><![CDATA[网页设计]]></category>
			<pubDate>Thu,07 Jan 2010 09:30:35 +0800</pubDate>
			<guid>http://www.xa148.cn/default.asp?id=568</guid>	
		<description><![CDATA[<span style="color:Red">代码没有错误，请拷贝下来使用！</span><br/><br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.xa148.cn/images/html.gif" style="margin:0px 2px -3px 0px"> HTML代码</div><div class="UBBContent"><TEXTAREA rows="8" id="temp7910"><title> - -选择日期 - -</title><script>
//*************************日历控件***************************
// cody by [STAR].sjz  2003-10-31
// 说明:返回值为 一个字符串
// 格式如下:
// 使用方法  : 
//  var dataString = showModalDialog(&#34;calendar.htm&#34;, &#34;dd日mm月yyyy年&#34; ,&#34;dialogWidth:286px;dialogHeight:221px;status:no;help:no;&#34;);
var userFormatString;
if(window.dialogArguments ==null)
{
 userFormatString = &#34;yyyy-mm--dd&#34;;
}
else
{
 userFormatString = window.dialogArguments;
}
with(new Date()){
 var Nyear = getYear();
 var Nmonth =  getMonth() +1;
 var Ndate =  getDate();
}
window.returnValue = new dataObj(Nyear,Nmonth,Ndate ).getDateString(userFormatString);
window.document.onclick = function(){
 var obj = window.event.srcElement;
 if(obj.tagName.toLowerCase() == &#34;span&#34;   &amp;&amp;   obj.parentNode.className.replace(/Ctable/ig,&#34;star&#34;) == &#34;star&#34; )
 {
  try{
   window.currentActiveItem.runtimeStyle.cssText = &#34;&#34;;
  }
  catch(e){ }
  Nyear = obj.id.split(&#34;-&#34;)[0];
  Nmonth = obj.id.split(&#34;-&#34;)[1];
  Ndate = obj.id.split(&#34;-&#34;)[2];
  window.currentActiveItem = obj;
  window.currentSel&#101;ctDate = window.currentActiveItem.id;
  window.currentActiveItem.runtimeStyle.cssText = &#34;background:url(<a href="http://www.5d.cn/bbs/uploadFiles/2003-10/3120401281018.gif" target="_blank">http://www.5d.cn/bbs/uploadFiles/2003-10/3120401281018.gif</a>) no-repeat 12px 6px;color:#000;padding-top:1px;font-weight:bold&#34;;
 }
}
 function dataObj(year,month,date)  
{
 this.year  = year
 this.month = month
 this.date  =  date
 this.getDateString =
  function(formatString)
  {
   return formatString.replace(/yyyy/ig , this.year).replace(/mm/ig , this.month).replace(/dd/ig , this.date)
  }
}
window.onload = function(){
 window.document.attachEvent(&#34;onclick&#34; , doCmd);
 window.document.attachEvent(&#34;onmouseover&#34; , buttonOver);
 window.document.attachEvent(&#34;onmouseout&#34; , buttonOut);
 window.document.attachEvent(&#34;onmousedown&#34; , buttonDown);
 window.document.attachEvent(&#34;onmouseup&#34; , buttonUp);
 window.document.attachEvent(&#34;ondblclick&#34; ,
   function()
   {
     var obj = window.event.srcElement;
     if(obj.tagName.toLowerCase() == &#34;span&#34;   &amp;&amp;   obj.parentNode.className.replace(/Ctable/ig,&#34;star&#34;) == &#34;star&#34; )
     {
      var mydate = new dataObj(obj.id.split(&#34;-&#34;)[0] ,  obj.id.split(&#34;-&#34;)[1] ,  obj.id.split(&#34;-&#34;)[2] );
      window.returnValue = mydate.getDateString(userFormatString)
      window.close();
     }
   }
 );
 document.all.titleYear.innerHTML=TranYearMonthTitle(Nyear,Nmonth);
 document.all.weekNameBox.ins&#101;rtAdjacentHTML(&#34;afterBegin&#34;,makeWeekNameHtmlStr());
 document.all.calendarBox.innerHTML=makeCalendarHtmlStr(Nyear,Nmonth);
 window.currentSel&#101;ctDate = starCaTran(Nyear,Nmonth,Ndate);
 window.document.all.calendarBox.show = show;
 window.currentActiveItem = window.document.getElementById(currentSel&#101;ctDate);
 if( window.currentActiveItem )
  window.currentActiveItem.click();
 window.document.all.calendarBox.show();
}
function starCalendar(year,month){
 this.year = year;
 this.month = month;
 this.monthTable = function(){
    var aMonth=new Array();
    for(i=1;i<7;i++)aMonth[i]=new Array(i);
    
    var dCalDate=new Date(this.year, this.month-1, 1);
    var iDayOfFirst=dCalDate.getDay();
    var iDaysInMonth=new Date(this.year, this.month, 0).getDate();
    var iOffsetLast=new Date(this.year, this.month-1, 0).getDate()-iDayOfFirst+1;
    var iDate = 1;
    var iNext = 1;
    for (d = 0; d < 7; d++)
    aMonth[1][d] = (d<iDayOfFirst)?(-iDayOfFirst+d+1):iDate++;
    for (w = 2; w < 7; w++)
   for (d = 0; d < 7; d++)
    aMonth[w][d] = iDate++;
    return aMonth;
 }
}
function makeWeekNameHtmlStr(){
 var tmpStr=&#34;&#34;;
 var weekName = [&#34;日&#34;,&#34;一&#34;,&#34;二&#34;,&#34;三&#34;,&#34;四&#34;,&#34;五&#34;,&#34;六&#34;];
 for(var i=0;i<7;i++)tmpStr+=&#34;<span class=weekName>&#34;+weekName[i]+&#34;</span>&#34;;
 return tmpStr;
}
function makeCalendarHtmlStr(year,month){
 window.theCalendar = new starCalendar(year,month);
 var theCaArr = theCalendar.monthTable();
 var theDaysInMonth = new Date(year, month, 0).getDate();
 var theCaHtml = &#34;<div class=Ctable>&#34;;
 for(var i=1;i<7;i++)
  for(var j=0;j<7;j++)
   theCaHtml = theCaHtml+&#34;<span class=&#34;+( (theCaArr[i][j]<1 || theCaArr[i][j]>theDaysInMonth)?&#34;OtherMonthDate&#34;:&#34;Cdate&#34;)+&#34; id=&#34;+starCaTran(year,month,theCaArr[i][j])+&#34;>&#34;+starCaTran(year,month,theCaArr[i][j]).split(&#34;-&#34;)[2]+&#34;</span>&#34;;
 return theCaHtml+&#34;</div>&#34;;
}
function starCaTran(year,month,date){
 with(new Date(year,month-1,date))
  return getYear() + &#34;-&#34; +(getMonth()+1) + &#34;-&#34; + getDate();
}
function TranYearMonthTitle(year,month){
 with(new Date(year,month-1,1))
  return &#34;<span style='text-decoration:underline;cursor:hand;font-weight:bold;padding:1 2 0 1;width:40px;' onclick=showMore(1940,2050,this.innerHTML) onmouseover=\&#34;this.runtimeStyle.cssText='color:#fff;'\&#34; onmouseout=\&#34;this.runtimeStyle.cssText=''\&#34; onpropertychange=showC()>&#34; + getYear() + &#34;</span>&#34; + &#34;年&#34; + &#34;<span style='text-decoration:underline;cursor:hand;font-weight:bold;padding:1 2 0 1;width:20px;' onclick=showMore(1,12,this.innerHTML) onmouseover=\&#34;this.runtimeStyle.cssText='color:#fff;'\&#34; onmouseout=\&#34;this.runtimeStyle.cssText=''\&#34; onpropertychange=showC()>&#34; + (getMonth()+1) + &#34;</span>&#34; + &#34;月&#34; ;
}
function showC(){
   if(event.propertyName != &#34;innerHTML&#34;)return;
   window.theCalendar.year = new Number(document.all.titleYear.getElementsByTagName(&#34;span&#34;)[0].innerHTML);
   window.theCalendar.month =  new Number(document.all.titleYear.getElementsByTagName(&#34;span&#34;)[1].innerHTML);
   window.document.all.calendarBox.innerHTML=makeCalendarHtmlStr(window.theCalendar.year,window.theCalendar.month);
   window.document.all.calendarBox.show = show;window.document.all.calendarBox.show();
}
function showMore(starNum,endNum,sel&#101;ctedValue){
 var obj = window.event.srcElement;
 var sel&#101;ctedIndex = sel&#101;ctedValue - starNum;
 if(obj.sel&#101;ctBox){
  obj.sel&#101;ctBox.sel&#101;ctedIndex = sel&#101;ctedIndex;
  return obj.sel&#101;ctBox.show(document.all.calendarBox.offsetHeight + document.all.weekNameBox.offsetHeight );
 }
 var sel&#101;ctBox = window.document.cr&#101;ateElement(&#34;div&#34;);
 sel&#101;ctBox.className = &#34;sel&#101;ctBox&#34;;
 sel&#101;ctBox.style.height = 0;
 sel&#101;ctBox.style.top = window.event.clientY - window.event.offsetY + window.event.srcElement.offsetHeight;
 sel&#101;ctBox.style.left = window.event.clientX - window.event.offsetX ;
 sel&#101;ctBox.show  = showBox;
 sel&#101;ctBox.sel&#101;ctedIndex = sel&#101;ctedIndex;
 sel&#101;ctBox.onclick = function(){
  var sel&#101;ctedObj = window.event.srcElement;
  if( &#34;nobr&#34; == sel&#101;ctedObj.tagName.toLowerCase()  &amp;&amp;  sel&#101;ctBox.contains(sel&#101;ctedObj))
  {
   if(obj.innerHTML != sel&#101;ctedObj.innerHTML)obj.innerHTML = sel&#101;ctedObj.innerHTML;
  }
 }
 sel&#101;ctBox.onlosecapture = alert
 var iString = &#34;&#34;;
 for(var i=starNum;i<=endNum;i++){
  iString += &#34;<nobr  onmouseover=\&#34;this.parentNode.getElementsByTagName('nobr')[this.parentNode.sel&#101;ctedIndex].style.cssText='';this.style.cssText='background-color:#00006C;color:#fff;'\&#34;  onmouseout=this.style.cssText=''>&#34;+i+&#34;</nobr><br>&#34; 
 }
 sel&#101;ctBox.ins&#101;rtAdjacentHTML (&#34;afterBegin&#34;,iString);
 window.document.body.appendChild(sel&#101;ctBox);
 obj.sel&#101;ctBox = sel&#101;ctBox;
 obj.sel&#101;ctBox.show(document.all.calendarBox.offsetHeight + document.all.weekNameBox.offsetHeight );
 
}
function showBox(iHeight)
{
 var box = this;
 box.style.height =1;
 box.style.display = &#34;block&#34;;
 window.clearInterval(box.timeHandle);
 box.timeHandle = window.setInterval(interValHandle,1);
 var s = 0,t =1 ;
 function interValHandle()
 {
  box.scrollTop=1000000;
  s = s + t*t;
  t += 0.5;
  box.style.height = parseInt(box.style.height) + Math.floor(s);
  box.style.width = 65 / iHeight * box.offsetHeight;
  if( box.offsetHeight > iHeight )
  {
    window.clearInterval(box.timeHandle);
    box.style.height = iHeight;
    box.scrollTop = box.childNodes[0].offsetHeight*box.sel&#101;ctedIndex;
    box.getElementsByTagName(&#34;nobr&#34;)[box.sel&#101;ctedIndex].style.cssText='background-color:#00006C;color:#fff;';
    window.document.attachEvent(&#34;onclick&#34;,
       box.hide=function()
       {
        box.style.display = &#34;none&#34;;
        window.document.detachEvent(&#34;onclick&#34;,box.hide)
       }
    );
  }
 }
}
</script>
<script>
function buttonOver(){
 var obj = window.event.srcElement;
 if(obj.tagName.toLowerCase() == &#34;span&#34;   &amp;&amp;   obj.className.replace(/controlButton/ig,&#34;star&#34;) == &#34;star&#34; )
 {
  obj.runtimeStyle.cssText=&#34;border-color:#fff #606060 #808080 #fff;padding:3 0 0 0 &#34;;
 }
 if(obj.tagName.toLowerCase() == &#34;span&#34;   &amp;&amp;   obj.parentNode.className.replace(/Ctable/ig,&#34;star&#34;) == &#34;star&#34; )
 {
  obj.style.backgroundColor = &#34;#fff&#34;;
 }
}
function buttonOut(){
 var obj = window.event.srcElement;
 if(obj.tagName.toLowerCase() == &#34;span&#34;   &amp;&amp;   obj.className.replace(/controlButton/ig,&#34;star&#34;) == &#34;star&#34; )
 {
  obj.runtimeStyle.cssText = &#34;&#34;;
 }
 if(obj.tagName.toLowerCase() == &#34;span&#34;   &amp;&amp;   obj.parentNode.className.replace(/Ctable/ig,&#34;star&#34;) == &#34;star&#34; )
 {
  window.setTimeout(function(){obj.style.backgroundColor = &#34;&#34;; },300);
 }
}
function buttonDown(){
 var obj = window.event.srcElement;
 if(obj.tagName.toLowerCase() == &#34;span&#34;   &amp;&amp;   obj.className.replace(/controlButton/ig,&#34;star&#34;) == &#34;star&#34; )
 {
  obj.setCapture();
  obj.runtimeStyle.borderColor=&#34;#808080 #fefefe #fefefe #808080&#34;;
 }
}
function buttonUp(){
 var obj = window.event.srcElement;
 if(obj.tagName.toLowerCase() == &#34;span&#34;   &amp;&amp;  obj.className.replace(/controlButton/ig,&#34;star&#34;) == &#34;star&#34; )
 {
  obj.releaseCapture();
  obj.runtimeStyle.cssText =&#34;&#34;;
 }
}
function doCmd(){
 var obj = window.event.srcElement;
 if(obj.tagName.toLowerCase() == &#34;span&#34;   &amp;&amp;  obj.className.replace(/controlButton/ig,&#34;star&#34;) == &#34;star&#34; )
 {
   switch(obj.getAttribute(&#34;cmd&#34;))
   {
    case &#34;py&#34;:
     window.document.all.titleYear.innerHTML=window.TranYearMonthTitle(window.theCalendar.year-1,window.theCalendar.month);
     window.document.all.calendarBox.innerHTML=makeCalendarHtmlStr(window.theCalendar.year-1,window.theCalendar.month);
     break;
    case &#34;pm&#34;:
     window.document.all.titleYear.innerHTML=window.TranYearMonthTitle(window.theCalendar.year,window.theCalendar.month-1);
     window.document.all.calendarBox.innerHTML=makeCalendarHtmlStr(window.theCalendar.year,window.theCalendar.month-1);
     break;
    case &#34;nm&#34;:
     window.document.all.titleYear.innerHTML=window.TranYearMonthTitle(window.theCalendar.year,window.theCalendar.month+1);
     window.document.all.calendarBox.innerHTML=makeCalendarHtmlStr(window.theCalendar.year,window.theCalendar.month+1);
     break;
    case &#34;ny&#34;:
     window.document.all.titleYear.innerHTML=window.TranYearMonthTitle(window.theCalendar.year+1,window.theCalendar.month);
     window.document.all.calendarBox.innerHTML=makeCalendarHtmlStr(window.theCalendar.year+1,window.theCalendar.month);
     break;
   }
   window.document.all.calendarBox.show();
   window.currentSel&#101;ctDate = starCaTran(Nyear,Nmonth,Ndate);
   window.currentActiveItem = window.document.getElementById(currentSel&#101;ctDate);
   if( window.currentActiveItem )window.currentActiveItem.runtimeStyle.cssText = &#34;background:url(choiceit.gif) no-repeat 12px 6px;color:#000;padding-top:1px;font-weight:bold&#34;;
 }
}
function show()
{
 var box = this;
 window.clearTimeout(box.timeHandle);
 var CdateBoxs = this.getElementsByTagName(&#34;span&#34;);
 for(var i=0;i<CdateBoxs.length;i++)
 {
  CdateBoxs[i].defaultValue = new Number( CdateBoxs[i].innerHTML );
  CdateBoxs[i].innerHTML = 0;
 }
 showDate();
 function showDate(){
  for(var i=0;i<CdateBoxs.length;i++){
   if( new Number( CdateBoxs[i].innerHTML ) + 1 <= new Number( CdateBoxs[i].defaultValue ) )
    CdateBoxs[i].innerHTML = new Number( CdateBoxs[i].innerHTML ) + 1 
  }
  box.timeHandle = window.setTimeout(showDate,1);
 }
this.show = show1
}
function show1()
{
 var box = this;
 window.clearTimeout(box.timeHandle);
 var CdateBoxs = this.getElementsByTagName(&#34;span&#34;);
 for(var i=0;i<CdateBoxs.length;i++)CdateBoxs[i].style.display = &#34;none&#34;;
 showDate(CdateBoxs[0]);
 function showDate(obj){
  if( !obj )return;
  obj.style.display = &#34;inline&#34;;
  box.timeHandle = window.setTimeout(function(){showDate(obj.nextSibling);},1);
 }
this.show = show
}
/*
function show()
{
}
*/
</script>
<style>
*{
 font:12px;
 letter-spacing:0px;
}
body{
 background-color:#E5E9F2;
 overflow:hidden;
 margin:0;
 border:0px;
}
#titleYear{
 text-align:center;
 padding-top:3px;
 width:120px;
 height:20px;
 border:solid #E5E9F2;
 border-width:0px 1px 1px 0px;
 background-color:#A4B9D7;
 color:#000;
 cursor:default;
}
#weekNameBox{
 width:282px;
 border-bottom:0;
}
.weekName{
 text-align:center;
 padding-top:4px;
 width:40px;
 height:20px;
 border:solid #E5E9F2;
 border-width:0px 1px 1px 0px;
 background-color:#C0D0E8;
 color:#243F65;
 cursor:default;
}
.controlButton{
 font-family: Webdings;
 font:9px;
 text-align:center;
 padding-top:2px;
 width:40px;
 height:20px;
 border:solid #E5E9F2;
 border-width:0px 1px 1px 0px;
 background-color:#A4B9D7;
 color:#243F65;
 cursor:default;
}
.Ctable{
 width:282px;
 margin-bottom:20px;
}
.Ctable span{
 font:9px verdana;
 font-weight:bold;
 color:#243F65;
 text-align:center;
 padding-top:4px;
 width:40px;
 height:26px;
 border:solid #C0D0E8;
 border-width:0px 1px 1px 0px;
 cursor:default;
}
.Cdate{
 background-color:#E5E9F2;
}
.Ctable span.OtherMonthDate{
 color:#999;
 background-color:#f6f6f6;
}
.sel&#101;ctBox{
 cursor:hand;
 font:9px verdana;
 width:80px;
 position:absolute;
 border:1px solid #425E87;
 overflow-y:scroll;
 overflow-x:hidden;
 background-color:#fff;
 FILTER:progid:DXImageTransform.Microsoft.Shadow(Color=#999999,offX=10,offY=10,direction=120,Strength=5);
 SCROLLBAR-FACE-COLOR: #E5E9F2;
 SCROLLBAR-HIGHLIGHT-COLOR: #E5E9F2;
 SCROLLBAR-SHADOW-COLOR: #A4B9D7; 
 SCROLLBAR-3DLIGHT-COLOR: #A4B9D7; 
 SCROLLBAR-ARROW-COLOR:  #000000; 
 SCROLLBAR-TRACK-COLOR: #eeeee6; 
 SCROLLBAR-DARKSHADOW-COLOR: #ffffff;
}
.sel&#101;ctBox nobr{
 padding:0px 0px 2px 5px;
 width:100%;
 color:#000;
 letter-spacing:2px;
 text-decoration:none;
}
</style>
<body onsel&#101;ctstart=&#34;return false&#34;>
<div style=&#34;margin:0 0 0 0&#34;>
<div id=controlBar><span class=controlButton cmd=py title=上一年>33</span><span class=controlButton cmd=pm title=上一月>3</span><span id=titleYear></span><span class=controlButton  cmd=nm title=下一月>4</span><span class=controlButton cmd=ny title=下一年>44</span></div>
<div id=weekNameBox></div>
<div id=calendarBox></div>
</div>
</body></TEXTAREA><br/><INPUT onclick="runEx('temp7910')"  type="button" value="运行此代码"/> <INPUT onclick="doCopy('temp7910')"  type="button" value="复制此代码"/><br/> [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</div></div><br/><br/>领先的互联网应用服务提供商互联之外(<a href="http://www.ctx99.cn" target="_blank">http://www.ctx99.cn</a>)、北京虚拟主机的最佳选择、提供<a target="_blank" href="http://www.ctx99.cn/">域名注册</a> <a target="_blank" href="http://www.ctx99.cn/">虚拟主机</a> <a target="_blank" href="http://www.ctx99.cn/">网站建设</a> <a target="_blank" href="http://www.ctx99.cn/">企业邮局</a> <a target="_blank" href="http://www.ctx99.cn/">域名</a> <a target="_blank" href="http://www.ctx99.cn/">互联之外</a> <a target="_blank" href="http://www.ctx99.cn/">互联网</a> <a target="_blank" href="http://www.ctx99.cn/">免费空间</a> <a target="_blank" href="http://www.ctx99.cn/">主页空间</a>、网络营销等全方位信息化服务<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.xa148.cn/default.asp?id=567</link>
			<title><![CDATA[ jQuery白痴级入门教程（高手绕行）]]></title>
			<author>ctxlxm@163.com(edream)</author>
			<category><![CDATA[网页设计]]></category>
			<pubDate>Wed,06 Jan 2010 09:46:40 +0800</pubDate>
			<guid>http://www.xa148.cn/default.asp?id=567</guid>	
		<description><![CDATA[本文写给那些完全不懂JS，只会一些HTML和CSS的同学！<br/>[url=http://xiaoqiang.me/?p=539]<u>本站</u>[/url]<br/>就是范例<br/>会JS的请绕行，本文对你太白痴；不会HTML和CSS的请绕行，你可能会看不懂下面的内容。（英文最好也会一点，不然会很麻烦）<br/>什么是jQuery？<br/>jQuery是一个JavaScript库，白痴解释就是一个JavaScript工具箱，很多现成的工具，想用什么就拿什么。省去了自己重新编写代码的烦恼，对于像我一样的JS白痴，更是容易上手。<br/>jQuery能做什么？<br/>他能让你的页面产生很多让人惊喜的动态效果，简单的说就是让你的网站更加漂亮，这里有很多不同的效果，<br/>[url=http://flowplayer.org/tools/demos/index.html]<u>点击查看&gt;&gt;&gt;</u>[/url]<br/>怎么用jQuery？<br/>简单的说：在页面中调用jQuery库（一个js文件），就可以方便的使用其中的工具了（使用时需要另一个js调用jQuery中的工具），从而实现想要的效果。<br/>第一步：寻找想要的效果<br/>本站的效果都出自两个地方：<br/>[url=http://www.sonichtml.com/blog/]<u>sonicHTML</u>[/url]<br/>，<br/>[url=http://flowplayer.org/tools/index.html]<u>jQuery tools</u>[/url]<br/>。网络上有更多的效果，如果愿意花时间，可以去其他地方找找。<br/>第二步：扒代码<br/>首先推荐扒代码利器<br/>[url=http://www.mozillaonline.com/]<u>Firefox</u>[/url]<br/>+<br/>[url=https://addons.mozilla.org/zh-CN/firefox/addon/1843]<u>firebug</u>[/url]<br/>。如果没有，赶快去下！在扒代码是要十分小心两个地方！<br/>1.静态页中的html和css<br/>用firebug扒取页面中你想要部分的HTML和CSS代码，该部分的id和class千万不要动，保持原状！<br/>同时，在你想要的HTML元素前，可能会有一个空的<br/>[url=http://flowplayer.org/tools/demos/tooltip/index.html]<u>例如这个效果&gt;&gt;&gt;</u>[/url]<br/>，千万不要遗漏！<br/>2.中的js<br/>⑴在调用的js中，肯定会有一个js的文件名中带有“jQuery”，直接把这个文件的代码复制，变成你自己的文件。<br/>⑵在中一定还有另一个js，这个js中会有以下代码：<br/>$(document).ready(function() { <br/>&nbsp;&nbsp;&nbsp;&nbsp;// 中间为其他代码<br/>});<br/>这个js可能是调用的外部文件，也可能就在head（body中也有可能，不过可能性低）中以形式出现。这个部分一定会出现之前HTML中的id或者class。一定要保持一致，如果想用其他的名字，一定要记得HTML中和js中同步，不一样就功亏一篑了<br/>第三步：本地测试并修改错误<br/>本地新建HTML，CSS，JS，把扒到的代码都放进去，该调用的文件都调用好。激动人心的时刻到了！用浏览器打开静态页，看是否出效果。如果出了，恭喜你！进入下一步，改造成你自己的东西！如果没出就开始仔细检查吧：<br/>⑴HTML中可能出错的地方：<br/>①你修改了HTML中的id或class【解决方法：改回原来的】<br/>②遗漏了空的【解决方法：检查你扒下的HTML，看看前后有没有空的，有了就加上再试试】<br/>⑵JS中可能出错的地方：<br/>①调用路径出错【解决方法：修改为有效的调用路径，把js和HTML放一起最方便】<br/>②遗漏了ready（上面有详细代码）这个js（可能是外部文件，可能是head中的代码）【解决方法：在原静态页中寻找有ready的这段代码，copy并加上】<br/>③ready中的id或者class和HTML中的不一致【解决方法：在原HTML和js中找到对应关系，并修改为一致】<br/>第四步：修改HTML和css，变成你自己的东西<br/>这步就没有固定的方法了，你想怎么修改就怎么修改，不过千万注意HTML中的id何class要和js对应！<br/>第五步：加入到你自己的页面中<br/>这个基本没什么说的，不过还是想给wp的用户说一句：外部文件调用都在主题文件夹中的header.php中（我就找了半天~~~~）<br/>附：<br/>1.<br/><a target="_blank" href="http://docs.jquery.com/Main_Page">jQuery官网中十分完整的教程（很详细，想学习的推荐仔细看）&gt;&gt;&gt;</a><br/>2.<br/><a target="_blank" href="http://flowplayer.org/tools/using.html">jQuery tools 中的入门手册（短小精悍,想快速入门的强烈推荐）&gt;&gt;&gt;</a><br/>3.<br/><a target="_blank" href="http://www.sonichtml.com/blog/">sonicHTML（greader中订阅的博客，经常有案例和Demo，很实用）&gt;&gt;&gt;</a><br/><strong>本文原址：<br/><a target="_blank" href="http://xiaoqiang.me/?p=539">http://xiaoqiang.me/?p=539</a><br/></strong><br/><br/><br/><br/><br/>领先的互联网应用服务提供商互联之外(<a href="http://www.ctx99.cn" target="_blank">http://www.ctx99.cn</a>)、北京虚拟主机的最佳选择、提供<a target="_blank" href="http://www.ctx99.cn/">域名注册</a> <a target="_blank" href="http://www.ctx99.cn/">虚拟主机</a> <a target="_blank" href="http://www.ctx99.cn/">网站建设</a> <a target="_blank" href="http://www.ctx99.cn/">企业邮局</a> <a target="_blank" href="http://www.ctx99.cn/">域名</a> <a target="_blank" href="http://www.ctx99.cn/">互联之外</a> <a target="_blank" href="http://www.ctx99.cn/">互联网</a> <a target="_blank" href="http://www.ctx99.cn/">免费空间</a> <a target="_blank" href="http://www.ctx99.cn/">主页空间</a>、网络营销等全方位信息化服务]]></description>
		</item>
		
</channel>
</rss>