<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>YY in Limbo 混沌海狂想 &#187; 界面</title>
	<atom:link href="http://www.limboy.com/category/designer/ui/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.limboy.com</link>
	<description>这里既空虚又充实，没有规则，没有约束，创造来自思考，生存依赖想像，现实源自梦想</description>
	<lastBuildDate>Fri, 07 Oct 2011 19:33:20 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>新项目&#8221;YyOPML&#8221;——把OPML转换成web界面——大家一起来晒feed订阅列表吧！</title>
		<link>http://www.limboy.com/2008/05/31/yyopml-release/</link>
		<comments>http://www.limboy.com/2008/05/31/yyopml-release/#comments</comments>
		<pubDate>Fri, 30 May 2008 17:28:30 +0000</pubDate>
		<dc:creator>Dexter.Yy</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Web2.0]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[web服务/应用]]></category>
		<category><![CDATA[界面]]></category>

		<guid isPermaLink="false">http://www.limboy.com/2008/05/31/yyopml-release/</guid>
		<description><![CDATA[首先要说一下目前的矛盾现状：一方面feed订阅和在线阅读器都还不够普及，多数普通网民就算经常访问blog网站，也还没养成订阅的习惯，主要还是通过门户媒体获取资讯，另一个方面，较早开始接触RSS订阅的人——特别是那些blogger和互联网geek们——不但已经对各种在线或离线的阅读器了如指掌，把阅读feed变成了上网的主要活动和习惯，而且很多人收集的feed已经多到让自己烦恼焦虑的程度。后者努力的整理删减自己的订阅列表，前者却经常抱怨不知道怎么寻找可订阅的信息来源…………这种不平衡于是引发了一种禁断的活动——朋友之间交换OPML订阅列表……
OPML是Google Reader乃至所有阅读器都支持导入导出的一种XML规范的“大纲(outline)”数据文件（题头图片里那个蓝色的方块就是OPML的标志，跟feed的著名橙色标志对应，说实话写文前我还不知道OPML也有标志……囧），通常包含用户订阅的所有feed，之所以说是“禁断”……是因为交换这种文件，直接导入到双方的阅读器里之后，很容易使信息爆炸的程度翻倍，而且对于这些导入的feed，不能像原主人那样清楚来历和订阅的理由，于是也不知道该如何看……因此直接交换的下场通常都很惨……
这个项目就是我的解决方案：让导出的OPML源文件支持直接在浏览器里作为网页来展示，而界面上使用完全展开的并排布局，可以像hao123或谷歌网站导航那样一目了然的查找网址，让访问者自己来挑选值得订阅的feed。(不过，你要有使用标签分类feed的习惯，否则显示效果肯定不好…不过那样的话，就算用常规的树状布局，效果也很差的…)
以下是示例页面，这里的“dexteryy.xml”就是我从自己的google reader里导出的OPML文件，包含完整的订阅列表：
http://www.limboy.com/yyopml/dexteryy.xml
还有谁像我一样没什么隐私担心暴露愿意分享OPML的话，可以留下网址或opml文件，我会收集到上面来……
项目主页：http://code.google.com/p/yyopml/
下载程序源码：http://code.google.com/p/yyopml/downloads/list
使用方法是：用文本编辑器打开OPML文件，在第一行后面加上以下内容：
&#60;?xml-stylesheet href=&#34;style/yyopml.xsl&#34; type=&#34;text/xsl&#34;?&#62;
然后跟解压出来的style目录一起传到服务器上，保持在同一个目录里，就可以直接用浏览器看opml文件了。
目前我提供的界面主题有两种，都是如上所说的“网站导航”风格，一个是灰色的面板风格（默认），一个是GOOGLE风格，对应的CSS文件分别是style/ui/yyopml_panel.css和style/ui/yyopml_google.css
支持在页面里切换皮肤，如果要更换默认皮肤，请修改style/ui/yyopml.js里的以下代码：
theme = theme &#124;&#124; &#34;panel&#34;;
把“panel”换成你要改成默认设置的css文件的后缀，比如&#8221;google&#8221;。
也可以在网址里加上参数，直接调用某种皮肤，比如&#8221;http://www.limboy.com/yyopml/dexteryy.xml#theme=google&#8220;，可以用google风格作为默认皮肤打开页面。
==================面向Coder的分界线====================
源码包括一个用来把XML转换成HTML来显示的XSL文件，和界面效果相关的文件。其中yy_core.js是我开发中的一个轻量级/FP风格的javascript库，很多代码都基于jquery，同名的方法接口也尽量跟jquery保持一致，命名空间跟土豆网的js库一样叫“TUI”，提供DOM选择器（我重写的精简功能）和一些常用工具，比jquery小很多(压缩后12k)，这个东西其实年初就想发出来……但是后来懒了，这次考虑到完成度的问题，也懒得在google code里开项目了，源码包里的yy_core.js是一个base64压缩过的版本……
另外，yyopml.js里有一个滚动条插件，是做这个项目的时候心血来潮写的，可以用类似这样的代码：$(&#8220;.list&#8221;).scrollbar(); 给那些外部容器overflow:hidden，内部容器高度超长的元素加上CSS定义的滚动条，支持鼠标滚轮，因为是基于“迷你jquery”来开发，所以应该很容易改成jquery的插件，厌倦了overflow:scroll滚动条的同学可以参考一下。
]]></description>
			<content:encoded><![CDATA[<p><a href='http://www.limboy.com/2008/05/31/yyopml-release/rss-opmljpg-2/' rel='attachment wp-att-194' title='rss-opml.jpg'><img src='http://www.limboy.com/wp-content/uploads/2008/06/rss-opml.jpg' alt='rss-opml.jpg' style="float:left;border:0;margin:0 5px 5px 0;" /></a>首先要说一下目前的矛盾现状：一方面feed订阅和在线阅读器都还不够普及，多数普通网民就算经常访问blog网站，也还没养成订阅的习惯，主要还是通过门户媒体获取资讯，另一个方面，较早开始接触RSS订阅的人——特别是那些blogger和互联网geek们——不但已经对各种在线或离线的阅读器了如指掌，把阅读feed变成了上网的主要活动和习惯，而且很多人收集的feed已经多到让自己烦恼焦虑的程度。后者努力的整理删减自己的订阅列表，前者却经常抱怨不知道怎么寻找可订阅的信息来源…………这种不平衡于是引发了一种禁断的活动——朋友之间交换OPML订阅列表……<span id="more-192"></span></p>
<p>OPML是Google Reader乃至所有阅读器都支持导入导出的一种XML规范的“大纲(outline)”数据文件（题头图片里那个蓝色的方块就是OPML的标志，跟feed的著名橙色标志对应，说实话写文前我还不知道OPML也有标志……囧），通常包含用户订阅的所有feed，之所以说是“禁断”……是因为交换这种文件，直接导入到双方的阅读器里之后，很容易使信息爆炸的程度翻倍，而且对于这些导入的feed，不能像原主人那样清楚来历和订阅的理由，于是也不知道该如何看……因此直接交换的下场通常都很惨……</p>
<p>这个项目就是我的解决方案：让导出的OPML源文件支持直接在浏览器里作为网页来展示，而界面上使用完全展开的并排布局，可以像hao123或谷歌网站导航那样一目了然的查找网址，让访问者自己来挑选值得订阅的feed。(不过，你要有使用标签分类feed的习惯，否则显示效果肯定不好…不过那样的话，就算用常规的树状布局，效果也很差的…)</p>
<p>以下是示例页面，这里的“dexteryy.xml”就是我从自己的google reader里导出的OPML文件，包含完整的订阅列表：</p>
<p><a href="http://www.limboy.com/yyopml/dexteryy.xml" target="_blank">http://www.limboy.com/yyopml/dexteryy.xml</a></p>
<p>还有谁像我一样没什么隐私担心暴露愿意分享OPML的话，可以留下网址或opml文件，我会收集到上面来……</p>
<p>项目主页：<a href="http://code.google.com/p/yyopml/" target="_blank">http://code.google.com/p/yyopml/</a></p>
<p>下载程序源码：<a href="http://code.google.com/p/yyopml/downloads/list" target="_blank" target="_blank">http://code.google.com/p/yyopml/downloads/list</a></p>
<p>使用方法是：用文本编辑器打开OPML文件，在第一行后面加上以下内容：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;?</span><span style="color: Green;">xml-stylesheet</span><span style="color: Gray;"> </span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">style/yyopml.xsl</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/xsl</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">?&gt;</span></li></ol></div>
<p>然后跟解压出来的style目录一起传到服务器上，保持在同一个目录里，就可以直接用浏览器看opml文件了。</p>
<p>目前我提供的界面主题有两种，都是如上所说的“网站导航”风格，一个是灰色的面板风格（默认），一个是GOOGLE风格，对应的CSS文件分别是style/ui/yyopml_panel.css和style/ui/yyopml_google.css</p>
<p>支持在页面里切换皮肤，如果要更换默认皮肤，请修改style/ui/yyopml.js里的以下代码：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">theme</span><span style="color: Gray;"> = </span><span style="color: Blue;">theme</span><span style="color: Gray;"> || </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">panel</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li></ol></div>
<p>把“panel”换成你要改成默认设置的css文件的后缀，比如&#8221;google&#8221;。</p>
<p>也可以在网址里加上参数，直接调用某种皮肤，比如&#8221;<a href="http://www.limboy.com/yyopml/dexteryy.xml#theme=google" target="_blank">http://www.limboy.com/yyopml/dexteryy.xml#theme=google</a>&#8220;，可以用google风格作为默认皮肤打开页面。</p>
<p>==================面向Coder的分界线====================</p>
<p>源码包括一个用来把XML转换成HTML来显示的XSL文件，和界面效果相关的文件。其中yy_core.js是我开发中的一个轻量级/FP风格的javascript库，很多代码都基于jquery，同名的方法接口也尽量跟jquery保持一致，命名空间跟土豆网的js库一样叫“TUI”，提供DOM选择器（我重写的精简功能）和一些常用工具，比jquery小很多(压缩后12k)，这个东西其实年初就想发出来……但是后来懒了，这次考虑到完成度的问题，也懒得在google code里开项目了，源码包里的yy_core.js是一个base64压缩过的版本……</p>
<p>另外，yyopml.js里有一个滚动条插件，是做这个项目的时候心血来潮写的，可以用类似这样的代码：$(&#8220;.list&#8221;).scrollbar(); 给那些外部容器overflow:hidden，内部容器高度超长的元素加上CSS定义的滚动条，支持鼠标滚轮，因为是基于“迷你jquery”来开发，所以应该很容易改成jquery的插件，厌倦了overflow:scroll滚动条的同学可以参考一下。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.limboy.com/2008/05/31/yyopml-release/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>iPhone App开发笔记</title>
		<link>http://www.limboy.com/2008/03/08/iphone-app-develop/</link>
		<comments>http://www.limboy.com/2008/03/08/iphone-app-develop/#comments</comments>
		<pubDate>Fri, 07 Mar 2008 19:04:13 +0000</pubDate>
		<dc:creator>Dexter.Yy</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[web服务/应用]]></category>
		<category><![CDATA[界面]]></category>

		<guid isPermaLink="false">http://www.limboy.com/2008/03/08/iphone-app-develop/</guid>
		<description><![CDATA[第一，标题里的app指的是根正苗红老实本分的Web App，昨天的这个时候，对是在昨天，iPhone Web App就等同于iPhone App，咳咳，虽然现在不是了，但我这笔记是两个星期前的……
第二，不全，主要是我关心的一些细节，以及我自己理解的一些东西……


&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;懒得想小标题的分界线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;

html里可以调用系统接口，比如电话拨号：
&#60;a href=&#34;tel:1-408-555-5555&#34;&#62;1-408-555-5555&#60;/a&#62;
还有mail和google map的接口……

&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;懒得想小标题的分界线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;

在js里嗅探iphone的safari环境，要注意agent字符串里有额外两处：
&#8220;Mobile/1A543&#8243;，这个是iphone OS的操作系统版本（注意不是固件版本）
&#8220;iPhone&#8221;，这个是移动平台的类型，如果是ipod touch的话这里会是“ipod”
此外：
&#8220;version/3.0&#8243;，Safari的市场版本号
&#8220;Safari/419.3&#8243;，这个是build版本，虽然iphone跟osx一样都是safari3.0，但build版本号不同
完整的例子：
Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like
Gecko) Version/3.0 Mobile/1A543 Safari/419.3

&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;懒得想小标题的分界线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;

调用css的时候，media类型支持CSS3，比如可以用“only”来屏蔽旧浏览器，用“(min-device-width: 481px)”屏蔽小屏幕手机。由于iphone里的safari不支持print和handheld的media类型，可以用它们来对iphone屏蔽一些css文件。
示例：
&#60;link media=&#34;only screen and (min-device-width: 481px)&#34; href=&#34;not-small-device.css&#34; type=&#34;text/css&#34; rel=&#34;stylesheet&#34; &#62;
也可以作为css选择器里，比如
@media screen {&#160;
#text&#160;{ color: white; background-color: black; }&#160;
}
由于safari支持css3，你还可以享受到的福利包括在background里放6张图片做圆角，给文本加阴影，使用属性选择器之类……

&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;懒得想小标题的分界线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;

iphone的浏览器里有一个很重要的概念是viewport（视区），系统默认的viewport为980像素，可以用meta标签指定，宽度范围从200到10,000，高度范围从223到10,000，还可以使用user-scalable禁止用户缩放页面（常见的iphone web应用，比如facebook,google reader，因为要仿原生界面，都是这样设置的），minimum-scale和maximum-scale可以设置缩放的限制，initial-scale是默认的缩放程度，范围从>0到10
示例：
&#60;meta name=&#34;viewport&#34; content=&#34;width = 320&#34; /&#62;
&#60;meta&#160;name=&#34;viewport&#34; content=&#34;initial-scale=2.3, user-scalable=no&#34; /&#62;
iphone默认的浏览器窗口尺寸是:  竖向（body[orient="profile"]）为宽320px，高356px，横向（body[orient="landscape"]）为宽208px，高480px，但实际上这是显示了浏览器地址栏之后剩余的空间，往下拖动页面时，地址栏会隐藏，所以实际的viewport（竖向）是宽320px，高416px。
页面加载之后可以用 window.scrollTo(0, 1) 隐藏地址栏，自动使用最大化的viewport。
关于viewport，还有一个很重要的概念是：iphone的safari浏览器完全没有滚动条，而且不是简单的“隐藏滚动条”，是根本没有这个功能。所以不但iframe, [...]]]></description>
			<content:encoded><![CDATA[<p><a href='http://www.limboy.com/2008/03/08/iphone-app-develop/index_steps_2jpg/' rel='attachment wp-att-184' title='index_steps_2.jpg'><img src='http://www.limboy.com/wp-content/uploads/2008/03/index_steps_2.jpg' alt='index_steps_2.jpg' style="width:200px;float:left;margin:0 5px 0 0;border:0;" /></a>第一，标题里的app指的是根正苗红老实本分的<a href="http://www.apple.com/webapps/" target="_blank">Web App</a>，昨天的这个时候，对是在昨天，iPhone Web App就等同于iPhone App，咳咳，虽然现在不是了，但我这笔记是两个星期前的……</p>
<p>第二，不全，主要是我关心的一些细节，以及我自己理解的一些东西……<span id="more-182"></span><br />
<br/><br />
<br/><br />
<em style="color:#999;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;懒得想小标题的分界线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</em><br />
<br/></p>
<p>html里可以调用系统接口，比如电话拨号：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Green;">a</span><span style="color: Gray;"> </span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">tel:1-408-555-5555</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">1-408-555-5555</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">a</span><span style="color: Olive;">&gt;</span></li></ol></div>
<p>还有mail和google map的接口……</p>
<p><br/><br />
<em style="color:#999;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;懒得想小标题的分界线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</em><br />
<br/></p>
<p>在js里嗅探iphone的safari环境，要注意agent字符串里有额外两处：</p>
<p>&#8220;Mobile/1A543&#8243;，这个是iphone OS的操作系统版本（注意不是固件版本）<br />
&#8220;iPhone&#8221;，这个是移动平台的类型，如果是ipod touch的话这里会是“ipod”</p>
<p>此外：</p>
<p>&#8220;version/3.0&#8243;，Safari的市场版本号<br />
&#8220;Safari/419.3&#8243;，这个是build版本，虽然iphone跟osx一样都是safari3.0，但build版本号不同</p>
<p>完整的例子：</p>
<blockquote><p>Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like<br />
Gecko) Version/3.0 Mobile/1A543 Safari/419.3</p></blockquote>
<p><br/><br />
<em style="color:#999;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;懒得想小标题的分界线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</em><br />
<br/></p>
<p>调用css的时候，media类型支持CSS3，比如可以用“only”来屏蔽旧浏览器，用“(min-device-width: 481px)”屏蔽小屏幕手机。由于iphone里的safari不支持print和handheld的media类型，可以用它们来对iphone屏蔽一些css文件。<br />
示例：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Green;">link</span><span style="color: Gray;"> </span><span style="color: #00008b;">media</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">only screen and (min-device-width: 481px)</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">not-small-device.css</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/css</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">rel</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">stylesheet</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">&gt;</span></li></ol></div>
<p>也可以作为css选择器里，比如</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #00008b;">@media</span><span style="color: Gray;"> </span><span style="color: Blue;">screen</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">#text</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span><span style="color: Gray;"> </span><span style="color: Green;">color:</span><span style="color: Gray;"> </span><span style="color: #00008b;">white</span><span style="color: Gray;">; </span><span style="color: Green;">background-color:</span><span style="color: Gray;"> </span><span style="color: #00008b;">black</span><span style="color: Gray;">; </span><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>由于safari支持css3，你还可以享受到的福利包括在background里放6张图片做圆角，给文本加阴影，使用属性选择器之类……</p>
<p><br/><br />
<em style="color:#999;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;懒得想小标题的分界线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</em><br />
<br/></p>
<p>iphone的浏览器里有一个很重要的概念是viewport（视区），系统默认的viewport为980像素，可以用meta标签指定，宽度范围从200到10,000，高度范围从223到10,000，还可以使用user-scalable禁止用户缩放页面（常见的iphone web应用，比如facebook,google reader，因为要仿原生界面，都是这样设置的），minimum-scale和maximum-scale可以设置缩放的限制，initial-scale是默认的缩放程度，范围从>0到10<br />
示例：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Green;">meta</span><span style="color: Gray;"> </span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">viewport</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">content</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">width = 320</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">meta</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">viewport</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">content</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">initial-scale=2.3, user-scalable=no</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li></ol></div>
<p>iphone默认的浏览器窗口尺寸是:  竖向（body[orient="profile"]）为宽320px，高356px，横向（body[orient="landscape"]）为宽208px，高480px，但实际上这是显示了浏览器地址栏之后剩余的空间，往下拖动页面时，地址栏会隐藏，所以实际的viewport（竖向）是宽320px，高416px。<br />
页面加载之后可以用 window.scrollTo(0, 1) 隐藏地址栏，自动使用最大化的viewport。</p>
<p>关于viewport，还有一个很重要的概念是：iphone的safari浏览器完全没有滚动条，而且不是简单的“隐藏滚动条”，是根本没有这个功能。所以不但iframe, overflow:scroll的元素没有滚动条，整个窗口也没有的，iphone的safari浏览器实际上从一开始就完整显示了这个网页，然后用viewport查看其中的一部分。当你用手指拖动时，其实拖的不是页面，而是viewport…………由此引申出的结果很多，比如CSS里的 position:fixed 无效……</p>
<p><br/><br />
<em style="color:#999;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;懒得想小标题的分界线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</em><br />
<br/></p>
<p>浏览器行为的改变不止是滚动条，交互事件也跟普通桌面不一样：</p>
<p>所有hover动作，还有mouseover，都不存在，链接上的title内容，会在你点击链接并按住不动时弹跳出来（如果你不放开手指，继续移动的话，点击事件不会发生，具体原因下面解释）…………而mouseover，直接转换成了mousedown……</p>
<p>点击页面元素之后发生的事情很复杂…………比如当你用单指按住可点击元素（大约就是默认为block的元素），然后放开，首先触发的event居然是mousemove！ 接下来如果元素内容不变（这个条件比较难理解，我知道），会陆续触发mousedown，mouseup，click，如果内容改变，就不会再触发任何事件……</p>
<p>如果你恰好不太走运的给网页上一些inline元素绑过js事件（这比较常见，我也知道），比如span，有一个不用修改标签的方法是给它们都加上onclick=&#8221;void(0)&#8221;，这样iphone就会认为它们是可点击的元素-_____-b</p>
<p>如果按住元素之后移动手指，当然就不要指望会触发mousemove了，啥事情都没有，不过停下的时候，会触发onscroll （因为你刚才移动了viewport嘛……）</p>
<p>如果你用两个手指做缩放的动作，啥事件都不会有啦，但是如果你用两个手指在屏幕上一起移动，而且所在的位置是一个本来有滚动条的页面元素(比如iframe罢)，会触发一个叫mousewheel的事件（但是别指望iframe本身的内容会滚动-___-b）, 停止移动时同样触发onscroll。</p>
<p>OK，你希望像平时那样用onmousedown,onmouseup,onmousemove来做页面元素的拖拽交互把iphone web app的界面做的像原生界面一样活蹦乱跳的梦想已经破灭了，请努力克制骂乔布斯的欲望。</p>
<p>对了，不用我说也应该想得到，onkeyup，e.charCode，e.keyCode这类玩意都不能用罢？</p>
<p><br/><br />
<em style="color:#999;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;懒得想小标题的分界线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</em><br />
<br/></p>
<p>默认的html控件的样式大家都已经知道很cool了，不过也可以自己修改，具体内容请查看《iphone用户界面指南》的第三章：<a href="http://developer.apple.com/documentation/iPhone/Conceptual/iPhoneHIG/MetricsLayout/chapter_5_section_1.html#//apple_ref/doc/uid/TP40006596-CH6-SW1" target="_blank">Metrics, Layout Guidelines, and Tips</a></p>
<p>iphone里的safari调整了默认的文字样式，这些调整被包括在了一个新的css属性“-webkit-text-size-adjust”里面，相当于“-webkit-text-size-adjust:auto;”，你可以覆盖它，根据需要改成none或者200%</p>
<p><br/><br />
<em style="color:#999;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;懒得想小标题的分界线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</em><br />
<br/></p>
<p>web app可以像原生应用一样，在home界面里上添加一个快捷方式图标，方法是增加一个link标签：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Green;">link</span><span style="color: Gray;"> </span><span style="color: #00008b;">rel</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">apple-touch-icon</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">custom_icon.png</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li></ol></div>
<p>这是针对单个页面的，如果你把图片命名为“apple-touch-icon.png”，放在网站的某个目录里面，该目录下所有页面都会获得添加图标的功能……</p>
<p>图标的要求是尺寸57×57，png格式，不用画蛇添足的去做圆角渐变或玻璃反光效果，iphone系统会把图片自动裁剪和渲染成统一的风格……</p>
<p>喔对了……不要高兴太早……这个快捷图标的功能，只有1.1.3或更高的固件版本才支持……考虑到国内那些买旧版本破解机器还被商家反复叮嘱不要升级的用户……呃……</p>
<p><br/><br />
<em style="color:#999;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;懒得想小标题的分界线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</em><br />
<br/></p>
<p>关于网页中的媒体文件，普通图片最大支持200万像素（jpg的话，最大可以显示出3200万的，不过超过200万的jpg都会被压成缩略图），支持的最大尺寸是2 * 1024&#215;1024，gif动画最大支持2m（否则只显示第1帧）</p>
<p>iphone支持的视频格式：</p>
<blockquote><p>H.264 Baseline Profile Level 3.0 video, up to 640 x 480 at 30 fps. Note that B frames are not supported in the Baseline profile.<br />
MPEG-4 Part 2 video (Simple Profile)<br />
AAC-LC audio, up to 48 kHz<br />
.mov, .mp4, .m4v, .3gp file formats</p></blockquote>
<p>需要注意的是这里的“Baseline profile”，由于这种编码的质量跟“Extended Profile”和“main profile”相比效果比较差，目前主流的支持“高清”（h264）的视频网站，比如youtube，土豆，都没有采用Baseline profile压缩h264视频，所以iphone不但不能播放网络上流行的flv视频（因为不支持flash），连刚开始流行的h264也不能直接播放…………提供iphone应用的视频网站无法使用现有资源，不得不压缩iphone专用的视频文件，所以不要指望能立即在iphone上观看视频网站上的所有资源……T__T</p>
<p>由于iphone不支持flash播放器，视频文件只能直接嵌在页面里，用自带的quicktime来全屏播放，示例：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Green;">embed</span><span style="color: Gray;"> </span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">screen.jpg</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">movie.m4v</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">video/x-m4v</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">target</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">myself</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">scale</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">1</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> ...</span><span style="color: Olive;">&gt;</span></li></ol></div>
<p>更多细节请看官方文档：<a href="http://www.apple.com/quicktime/tutorials/embed.html" target="_blank">Including QuickTime In A Web Page</a></p>
<p><br/><br />
<em style="color:#999;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;懒得想小标题的分界线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</em><br />
<br/></p>
<p>如果想全面了解iphone上的web开发，推荐阅读：</p>
<p><a href="http://developer.apple.com/documentation/iPhone/Conceptual/iPhoneHIG/" target="_blank">iPhone Human Interface Guidelines</a>(官方还有一份名字类似的文档，简称OSXHIG，是<a href="http://developer.apple.com/documentation/UserExperience/Conceptual/OSXHIGuidelines/" target="_blank">界面设计者的圣经</a>之一)</p>
<p><a href="http://developer.apple.com/documentation/AppleApplications/Reference/SafariWebContent/" target="_blank">Safari Web Content Guide for iPhone</a> </p>
<p><a href="http://developer.apple.com/internet/webcontent/bestwebdev.html" target="_blank">Web Page Development: Best Practices</a>(这篇可以凑合看看，2月8号刚更新过的)</p>
<p>此外，ADC on iTunes里有好多iphone相关的视频，讨厌翻文档的可以去弄来看看，这可是iTunes store里少有的免费资源喔……</p>
<p><br/><br />
<em style="color:#999;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;懒得想小标题的分界线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</em><br />
<br/></p>
<p>就像开头说的，这是2周前写的，一直懒得修改整齐了往blog上帖，但是昨天半夜（好罢是今天凌晨）在<a href="http://twitter.com/apple4us" target="_blank">twitter</a>上不小心看了iphone SDK发布的实况转播……我发现再拖延的话就只能贴到火星去了……</p>
<p>跟华丽的SDK相比，iphone safari上的开发环境可以说很糟糕，非常限制想象力——对javascript和RIA开发者来说，不过只要看看iphone用户上网的热情和相关数据，可以预见在很长一段时间里，iphone平台仍然会是立志开发web app的勇者们争夺的滩头阵地。</p>
<p>啊啊啊啊啊，2.10G的iphone_sdk.dmg终于下载完了，睡觉去……下周买<a href="http://www.china-pub.com/computers/common/info.asp?id=38686">《Cocoa入门&#8211;使用Objective-C》</a>……<br />
<br/><br />
<br/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.limboy.com/2008/03/08/iphone-app-develop/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>YY流界面之动态图标导航栏</title>
		<link>http://www.limboy.com/2007/03/03/iconbar/</link>
		<comments>http://www.limboy.com/2007/03/03/iconbar/#comments</comments>
		<pubDate>Sat, 03 Mar 2007 06:10:03 +0000</pubDate>
		<dc:creator>Dexter.Yy</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[界面]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/index.php/2007/03/03/iconbar/</guid>
		<description><![CDATA[做这个导航栏的初衷，是想在公司产品的后台界面里，模仿MAC OS X系统的dock效果，所谓dock，就是OS X桌面底部那条显眼的工具栏，我的UBUNTU桌面里也有类似的效果……
实际上我也没用过MAC，所以是凭想象做的，演示页面在此
右上角的导航栏是默认的效果，鼠标滑过时图标变大，会推挤旁边的图标。
下面第一排去掉了推挤效果。
第二排加入了左右移动的功能，图标的数量远远超出页面的宽度，只显示其中一部分，在导航栏上左右移动鼠标时，整个导航栏会向相反方向滑动，显示出隐藏的图标。
第三排把移动的操作改到了左右两侧的箭头，鼠标停留在箭头上时，导航栏就会向对应的方向滑动，鼠标离开箭头时滑动停止，当滑动到最末端的图标时，自动停止。
先实现导航栏的默认效果，HTML如下：
&#60;div class=&#34;iconbarout&#34;&#62;
&#160;
&#60;div&#160;id=&#34;iconbar0&#34; class=&#34;iconbar&#34; &#62;
&#160;
&#160;&#60;ul style=&#34;margin-left:0px;&#34;&#62;
&#160; 
&#160;&#60;li&#62;
&#160; &#60;a&#160;href=&#34;#&#34;&#62;
&#160;
&#160;&#160; &#60;img&#160;src=&#34;images/icon7.png&#34; style=&#34;width:68px;height:68px;&#34; onload=&#34;alphaPNG(this);&#34; onmouseover=&#34;largeIcon(this);&#34; onmouseout=&#34;reIcon(this);&#34; /&#62;
&#160;
&#160;&#160; &#60;span&#62;link7&#60;/span&#62;
&#160; &#60;/a&#62;
&#160;&#60;/li&#62;
&#160;
&#160;
&#160;&#60;li&#62;
&#160; &#60;a&#160;href=&#34;#&#34;&#62;
&#160;
&#160;&#160; &#60;img&#160;src=&#34;images/icon6.png&#34; style=&#34;width:68px;height:68px;&#34; onload=&#34;alphaPNG(this);&#34; onmouseover=&#34;largeIcon(this);&#34; onmouseout=&#34;reIcon(this);&#34; /&#62;
&#160;
&#160;&#160; &#60;span&#62;link6&#60;/span&#62;
&#160; &#60;/a&#62;
&#160;&#60;/li&#62;
&#160;
&#160;
&#160;&#60;/ul&#62;
&#60;/div&#62;
&#160;
&#160;
&#60;/div&#62;
为了追求立体感，图标不能有背景色，所以必须用透明PNG图片，这里用&#60;img&#62;标签插入图片，是因为要实现图标的缩小放大效果（CSS背景里的图片只能控制位置，不能改变大小），图标的长宽要写在元素的style属性里，方便JS程序控制。
由于IE6不支持PNG的透明背景，必须用滤镜来做HACK才能达到一样的效果，而滤镜只能写在CSS的背景属性里…………为了解决这个矛盾，就要依靠JS了：
function alphaPNG(png)
{
var&#160;aVersion=navigator.appVersion.split(&#34;MSIE&#34;);
&#160;
var&#160;version=parseInt(aVersion[1]);
var&#160;pp=png.parentNode;
&#160;
if(&#160;(version&#62;=5.5) &#38;&#38; (version&#60;7) &#38;&#38; (document.body.filters) )
&#160;
{
&#160;var mout=png.onmouseout.toString();
&#160;
&#160;var mover=png.onmouseover.toString();
&#160;
&#160;alphaHTML=&#34;&#60;span style=\&#34;cursor:pointer;filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale, src='&#34;+png.src+&#34;');display:block;width:&#34;+png.style.width+&#34;;height:&#34;+png.style.height+&#34;;\&#34; onmouseover=\&#34;&#34;+mover.substring(mover.indexOf(&#34;{&#34;)+1,mover.lastIndexOf(&#34;}&#34;))+&#34;\&#34; onmouseout=\&#34;&#34;+mout.substring(mout.indexOf(&#34;{&#34;)+1,mout.lastIndexOf(&#34;}&#34;))+&#34;\&#34; &#62;&#60;/span&#62;&#34;;
&#160;
&#160;png.outerHTML=alphaHTML;
}
&#160;
}
这个函数已经写在图片的onload事件里了，会在IMG标签的内容加载完后触发（这个事件虽好，也不能到处乱用，根据伟大的犀牛书V5，onload只支持body, frameset, img），函数先判断浏览器类型和版本（IE7支持透明PNG），先创建一个span元素，IMG标签的所有属性、事件都原样COPY到SPAN上，而PNG图片则放到SPAN的背景里，用滤镜处理成透明，注意滤镜属性里必须要有sizingMethod=scale。最后用outerHTML（只有IE支持）把该IMG替换成span。
导航栏的样式：
.iconbarout
{
width:770px;
&#160;
position:absolute;
top:40px;right:10px;
&#160;
}
&#160;
.iconbar{
overflow:hidden;
float:left;
&#160;
}
&#160;
.iconbar&#160;li{
float:right;
padding:0px;
&#160;
width:auto;
text-align:center;
margin:0&#160;16px 0 0px;
&#160;
}
.iconbar&#160;li span{
color:#333;
font-weight:600;
&#160;
width:auto;
display:block;
float:none;
&#160;
margin:0px&#160;auto;
}
.iconbar&#160;li a img{
margin:0px&#160;auto;
&#160;
float:none;
}
.iconbar&#160;li a{
text-align:center;
&#160;
float:none;
margin:0px&#160;auto;
}
.iconbar&#160;li img{
&#160;
border:0px;
float:left;
}
这样就在IE和Firefox里实现一样的视觉效果了（这里存在一个问题，为了保证图标放大后的清晰度，初始的图标都是缩小的，在IE7和Firefox里都会看到一点锯齿，而IE6由于用了滤镜，缩小的图标边缘仍然是平滑的-_____-b）
接下来做鼠标滑过的放大缩小效果。JS的动画效果一般是利用setTimeout或setInterval的延迟功能，反复循环来实现的。为了避免这些图标在运行函数时发生冲突，我把缩放的动画效果封装到了一个类里：
/* zoom class by Dexter.Yy
********************************************************/
&#160;
function&#160;animeZoom(ico,gWidth,gHeight,nWidth,nHeight)
&#160;
{
this.png=ico;
this.iheight=nHeight;
&#160;
this.iWidth=nWidth;
this.goWidth=gWidth;
this.goHeight=gHeight;
&#160;
this.rico;
}
&#160;
animeZoom.prototype.zoomEvent=function()
&#160;
{
if(this.iWidth&#60;this.goWidth)
{
&#160;this.goEnlarge();
&#160;
}
else&#160;if(this.iWidth&#62;this.goWidth)
{
&#160;
&#160;this.goReduce();
}
&#160;
}
&#160;
animeZoom.prototype.goEnlarge=function()
&#160;
{
this.png.style.width=this.goWidth+&#34;px&#34;;
&#160;
this.png.style.height=this.goWidth+&#34;px&#34;;
&#160;
}
&#160;
animeZoom.prototype.goReduce=function()
{
var&#160;obj=this;
&#160;
var&#160;h=parseInt(this.png.style.height);
&#160;
var&#160;w=parseInt(this.png.style.width);
&#160;
if(w&#62;this.goWidth)
{
&#160;this.png.style.width=w-2+&#34;px&#34;;
&#160;
&#160;this.png.style.height=h-2+&#34;px&#34;;
&#160;
&#160;this.rico=setTimeout(function(){obj.goReduce();},30);
&#160;
}
else
{
&#160;window.clearTimeout(this.rico);
&#160;
}
}
使用时要传5个参数：目标对象、期望达到的宽度、期望达到的高度、原始宽度、原始高度，像这样：
function [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://bp3.blogger.com/_FPgtQV0mSoM/ReiWVwgyOlI/AAAAAAAAACo/MbsEPQcQ5Ro/s1600-h/2.jpg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_FPgtQV0mSoM/ReiWVwgyOlI/AAAAAAAAACo/MbsEPQcQ5Ro/s320/2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5037441483757730386" /></a>做这个导航栏的初衷，是想在公司产品的后台界面里，模仿MAC OS X系统的dock效果，所谓dock，就是OS X桌面底部那条显眼的工具栏，我的<a href="http://www.yupoo.com/photos/view?id=ff80808110e9bc110110f4bcebc43fe2" title="来YUPOO看我的照片">UBUNTU桌面</a>里也有类似的效果……</p>
<p>实际上我也没用过MAC，所以是凭想象做的，<a href="http://demo.limboy.com/iconmenu.htm">演示页面在此</a></p>
<p>右上角的导航栏是默认的效果，鼠标滑过时图标变大，会推挤旁边的图标。<span id="more-83"></span><br />
下面第一排去掉了推挤效果。<br />
第二排加入了左右移动的功能，图标的数量远远超出页面的宽度，只显示其中一部分，在导航栏上左右移动鼠标时，整个导航栏会向相反方向滑动，显示出隐藏的图标。<br />
第三排把移动的操作改到了左右两侧的箭头，鼠标停留在箭头上时，导航栏就会向对应的方向滑动，鼠标离开箭头时滑动停止，当滑动到最末端的图标时，自动停止。</p>
<p>先实现导航栏的默认效果，HTML如下：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Green;">div</span><span style="color: Gray;"> </span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">iconbarout</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">div</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">iconbar0</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">iconbar</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&lt;</span><span style="color: Green;">ul</span><span style="color: Gray;"> </span><span style="color: #00008b;">style</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">margin-left:0px;</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&lt;</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">a</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">#</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">img</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">images/icon7.png</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">style</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">width:68px;height:68px;</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">onload</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">alphaPNG(this);</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">onmouseover</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">largeIcon(this);</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">onmouseout</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">reIcon(this);</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">span</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">link7</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">span</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">a</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&lt;</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">a</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">#</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">img</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">images/icon6.png</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">style</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">width:68px;height:68px;</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">onload</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">alphaPNG(this);</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">onmouseover</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">largeIcon(this);</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">onmouseout</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">reIcon(this);</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">span</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">link6</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">span</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">a</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">ul</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">div</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">div</span><span style="color: Olive;">&gt;</span></li></ol></div>
<p>为了追求立体感，图标不能有背景色，所以必须用透明PNG图片，这里用&lt;img&gt;标签插入图片，是因为要实现图标的缩小放大效果（CSS背景里的图片只能控制位置，不能改变大小），图标的长宽要写在元素的style属性里，方便JS程序控制。</p>
<p>由于IE6不支持PNG的透明背景，必须用滤镜来做HACK才能达到一样的效果，而滤镜只能写在CSS的背景属性里…………为了解决这个矛盾，就要依靠JS了：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">alphaPNG</span><span style="color: Olive;">(</span><span style="color: Blue;">png</span><span style="color: Olive;">)</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">aVersion</span><span style="color: Gray;">=</span><span style="color: Teal;">navigator</span><span style="color: Gray;">.</span><span style="color: Blue;">appVersion</span><span style="color: Gray;">.</span><span style="color: Blue;">split</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">MSIE</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">version</span><span style="color: Gray;">=</span><span style="color: Blue;">parseInt</span><span style="color: Olive;">(</span><span style="color: Blue;">aVersion</span><span style="color: Olive;">[</span><span style="color: Maroon;">1</span><span style="color: Olive;">])</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">pp</span><span style="color: Gray;">=</span><span style="color: Blue;">png</span><span style="color: Gray;">.</span><span style="color: Blue;">parentNode</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Blue;">version</span><span style="color: Gray;">&gt;=</span><span style="color: Maroon;">5.5</span><span style="color: Olive;">)</span><span style="color: Gray;"> &amp;&amp; </span><span style="color: Olive;">(</span><span style="color: Blue;">version</span><span style="color: Gray;">&lt;</span><span style="color: Maroon;">7</span><span style="color: Olive;">)</span><span style="color: Gray;"> &amp;&amp; </span><span style="color: Olive;">(</span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">body</span><span style="color: Gray;">.</span><span style="color: Blue;">filters</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">mout</span><span style="color: Gray;">=</span><span style="color: Blue;">png</span><span style="color: Gray;">.</span><span style="color: Blue;">onmouseout</span><span style="color: Gray;">.</span><span style="color: Blue;">toString</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">mover</span><span style="color: Gray;">=</span><span style="color: Blue;">png</span><span style="color: Gray;">.</span><span style="color: Blue;">onmouseover</span><span style="color: Gray;">.</span><span style="color: Blue;">toString</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">alphaHTML</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">&lt;span style=</span><span style="color: Navy;">\&quot;</span><span style="color: Red;">cursor:pointer;filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale, src='</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">+</span><span style="color: Blue;">png</span><span style="color: Gray;">.</span><span style="color: Blue;">src</span><span style="color: Gray;">+</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">');display:block;width:</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">+</span><span style="color: Blue;">png</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">width</span><span style="color: Gray;">+</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">;height:</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">+</span><span style="color: Blue;">png</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">height</span><span style="color: Gray;">+</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">;</span><span style="color: Navy;">\&quot;</span><span style="color: Red;"> onmouseover=</span><span style="color: Navy;">\&quot;</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">+</span><span style="color: Blue;">mover</span><span style="color: Gray;">.</span><span style="color: Blue;">substring</span><span style="color: Olive;">(</span><span style="color: Blue;">mover</span><span style="color: Gray;">.</span><span style="color: Blue;">indexOf</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">{</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">+</span><span style="color: Maroon;">1</span><span style="color: Gray;">,</span><span style="color: Blue;">mover</span><span style="color: Gray;">.</span><span style="color: Blue;">lastIndexOf</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">}</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">))</span><span style="color: Gray;">+</span><span style="color: #8b0000;">&quot;</span><span style="color: Navy;">\&quot;</span><span style="color: Red;"> onmouseout=</span><span style="color: Navy;">\&quot;</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">+</span><span style="color: Blue;">mout</span><span style="color: Gray;">.</span><span style="color: Blue;">substring</span><span style="color: Olive;">(</span><span style="color: Blue;">mout</span><span style="color: Gray;">.</span><span style="color: Blue;">indexOf</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">{</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">+</span><span style="color: Maroon;">1</span><span style="color: Gray;">,</span><span style="color: Blue;">mout</span><span style="color: Gray;">.</span><span style="color: Blue;">lastIndexOf</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">}</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">))</span><span style="color: Gray;">+</span><span style="color: #8b0000;">&quot;</span><span style="color: Navy;">\&quot;</span><span style="color: Red;"> &gt;&lt;/span&gt;</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">png</span><span style="color: Gray;">.</span><span style="color: Blue;">outerHTML</span><span style="color: Gray;">=</span><span style="color: Blue;">alphaHTML</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>这个函数已经写在图片的onload事件里了，会在IMG标签的内容加载完后触发（这个事件虽好，也不能到处乱用，根据伟大的犀牛书V5，onload只支持body, frameset, img），函数先判断浏览器类型和版本（IE7支持透明PNG），先创建一个span元素，IMG标签的所有属性、事件都原样COPY到SPAN上，而PNG图片则放到SPAN的背景里，用滤镜处理成透明，注意滤镜属性里必须要有sizingMethod=scale。最后用outerHTML（只有IE支持）把该IMG替换成span。</p>
<p>导航栏的样式：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">.iconbarout</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">width:</span><span style="color: Maroon;">770</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">position:</span><span style="color: Red;">absolute</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">top:</span><span style="color: Maroon;">40</span><span style="color: Red;">px</span><span style="color: Gray;">;</span><span style="color: Green;">right:</span><span style="color: Maroon;">10</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">.iconbar</span><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">overflow:</span><span style="color: Red;">hidden</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">float:</span><span style="color: Red;">left</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">.iconbar</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">li</span><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">float:</span><span style="color: Red;">right</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">padding:</span><span style="color: Maroon;">0</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">width:</span><span style="color: Red;">auto</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">text-align:</span><span style="color: Red;">center</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">margin:</span><span style="color: Maroon;">0</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">16</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">.iconbar</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">li</span><span style="color: Gray;"> </span><span style="color: Blue;">span</span><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">color:</span><span style="color: #00008b;">#333</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">font-weight:</span><span style="color: Maroon;">600</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">width:</span><span style="color: Red;">auto</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">display:</span><span style="color: Red;">block</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">float:</span><span style="color: Red;">none</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">margin:</span><span style="color: Maroon;">0</span><span style="color: Red;">px</span><span style="color: Gray;">&nbsp;</span><span style="color: Red;">auto</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">.iconbar</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">li</span><span style="color: Gray;"> </span><span style="color: Blue;">a</span><span style="color: Gray;"> </span><span style="color: Blue;">img</span><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">margin:</span><span style="color: Maroon;">0</span><span style="color: Red;">px</span><span style="color: Gray;">&nbsp;</span><span style="color: Red;">auto</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">float:</span><span style="color: Red;">none</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">.iconbar</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">li</span><span style="color: Gray;"> </span><span style="color: Blue;">a</span><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">text-align:</span><span style="color: Red;">center</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">float:</span><span style="color: Red;">none</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">margin:</span><span style="color: Maroon;">0</span><span style="color: Red;">px</span><span style="color: Gray;">&nbsp;</span><span style="color: Red;">auto</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">.iconbar</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">li</span><span style="color: Gray;"> </span><span style="color: Blue;">img</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">border:</span><span style="color: Maroon;">0</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">float:</span><span style="color: Red;">left</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>这样就在IE和Firefox里实现一样的视觉效果了（这里存在一个问题，为了保证图标放大后的清晰度，初始的图标都是缩小的，在IE7和Firefox里都会看到一点锯齿，而IE6由于用了滤镜，缩小的图标边缘仍然是平滑的-_____-b）</p>
<p>接下来做鼠标滑过的放大缩小效果。JS的动画效果一般是利用setTimeout或setInterval的延迟功能，反复循环来实现的。为了避免这些图标在运行函数时发生冲突，我把缩放的动画效果封装到了一个类里：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">/* zoom class by Dexter.Yy</span></li>
<li><span style="color: #ffa500;">********************************************************/</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">animeZoom</span><span style="color: Olive;">(</span><span style="color: Blue;">ico</span><span style="color: Gray;">,</span><span style="color: Blue;">gWidth</span><span style="color: Gray;">,</span><span style="color: Blue;">gHeight</span><span style="color: Gray;">,</span><span style="color: Blue;">nWidth</span><span style="color: Gray;">,</span><span style="color: Blue;">nHeight</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">png</span><span style="color: Gray;">=</span><span style="color: Blue;">ico</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">iheight</span><span style="color: Gray;">=</span><span style="color: Blue;">nHeight</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">iWidth</span><span style="color: Gray;">=</span><span style="color: Blue;">nWidth</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">goWidth</span><span style="color: Gray;">=</span><span style="color: Blue;">gWidth</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">goHeight</span><span style="color: Gray;">=</span><span style="color: Blue;">gHeight</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">rico</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">animeZoom</span><span style="color: Gray;">.</span><span style="color: Blue;">prototype</span><span style="color: Gray;">.</span><span style="color: Blue;">zoomEvent</span><span style="color: Gray;">=</span><span style="color: Green;">function</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">iWidth</span><span style="color: Gray;">&lt;</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">goWidth</span><span style="color: Olive;">)</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">goEnlarge</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Green;">else</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">iWidth</span><span style="color: Gray;">&gt;</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">goWidth</span><span style="color: Olive;">)</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">goReduce</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">animeZoom</span><span style="color: Gray;">.</span><span style="color: Blue;">prototype</span><span style="color: Gray;">.</span><span style="color: Blue;">goEnlarge</span><span style="color: Gray;">=</span><span style="color: Green;">function</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">png</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">width</span><span style="color: Gray;">=</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">goWidth</span><span style="color: Gray;">+</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">px</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">png</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">height</span><span style="color: Gray;">=</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">goWidth</span><span style="color: Gray;">+</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">px</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">animeZoom</span><span style="color: Gray;">.</span><span style="color: Blue;">prototype</span><span style="color: Gray;">.</span><span style="color: Blue;">goReduce</span><span style="color: Gray;">=</span><span style="color: Green;">function</span><span style="color: Olive;">()</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">obj</span><span style="color: Gray;">=</span><span style="color: Green;">this</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">h</span><span style="color: Gray;">=</span><span style="color: Blue;">parseInt</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">png</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">height</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">w</span><span style="color: Gray;">=</span><span style="color: Blue;">parseInt</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">png</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">width</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Blue;">w</span><span style="color: Gray;">&gt;</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">goWidth</span><span style="color: Olive;">)</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">png</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">width</span><span style="color: Gray;">=</span><span style="color: Blue;">w</span><span style="color: Gray;">-</span><span style="color: Maroon;">2</span><span style="color: Gray;">+</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">px</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">png</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">height</span><span style="color: Gray;">=</span><span style="color: Blue;">h</span><span style="color: Gray;">-</span><span style="color: Maroon;">2</span><span style="color: Gray;">+</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">px</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">rico</span><span style="color: Gray;">=</span><span style="color: Blue;">setTimeout</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span><span style="color: Blue;">obj</span><span style="color: Gray;">.</span><span style="color: Blue;">goReduce</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span><span style="color: Olive;">}</span><span style="color: Gray;">,</span><span style="color: Maroon;">30</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Green;">else</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Teal;">window</span><span style="color: Gray;">.</span><span style="color: Blue;">clearTimeout</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">rico</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>使用时要传5个参数：目标对象、期望达到的宽度、期望达到的高度、原始宽度、原始高度，像这样：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">largeIcon</span><span style="color: Olive;">(</span><span style="color: Blue;">png</span><span style="color: Olive;">)</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">lIco</span><span style="color: Gray;">=</span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">animeZoom</span><span style="color: Olive;">(</span><span style="color: Blue;">png</span><span style="color: Gray;">,</span><span style="color: Maroon;">91</span><span style="color: Gray;">,</span><span style="color: Maroon;">91</span><span style="color: Gray;">,</span><span style="color: Maroon;">68</span><span style="color: Gray;">,</span><span style="color: Maroon;">68</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">lIco</span><span style="color: Gray;">.</span><span style="color: Blue;">zoomEvent</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">reIcon</span><span style="color: Olive;">(</span><span style="color: Blue;">png</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">rIco</span><span style="color: Gray;">=</span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">animeZoom</span><span style="color: Olive;">(</span><span style="color: Blue;">png</span><span style="color: Gray;">,</span><span style="color: Maroon;">68</span><span style="color: Gray;">,</span><span style="color: Maroon;">68</span><span style="color: Gray;">,</span><span style="color: Maroon;">91</span><span style="color: Gray;">,</span><span style="color: Maroon;">91</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">rIco</span><span style="color: Gray;">.</span><span style="color: Blue;">zoomEvent</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>OK完工……如果是在FLASH里做这种推挤效果，可能还要写一大堆AS，但这里有CSS的浮动属性帮忙，就很省事……</p>
]]></content:encoded>
			<wfw:commentRss>http://www.limboy.com/2007/03/03/iconbar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>YY流界面之三栏液态布局 &amp; 圆角边框</title>
		<link>http://www.limboy.com/2007/03/03/3c/</link>
		<comments>http://www.limboy.com/2007/03/03/3c/#comments</comments>
		<pubDate>Sat, 03 Mar 2007 05:15:25 +0000</pubDate>
		<dc:creator>Dexter.Yy</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[界面]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/index.php/2007/03/03/3c/</guid>
		<description><![CDATA[在公司做了好几个项目的WEB前端开发工作，其实很早就想写一些技术心得，类似以前发的《[造车轮计划]今天写了一个右键菜单的JS类》，可惜……好罢这句话我已经重复过无数次了：太累 &#038; 没时间。
今天终于整理了一部分以前写过的代码，我准备以后陆续在BLOG上发一些WEB交互界面方面的文章，并且逐步补充完善，争取凑出一套原创的控件库和JS效果库。如果你觉得这些东西对自己的开发有帮助，我当然非常欢迎你拿去自由使用，不过我也希望能收到反馈信息——比如你在开发中遇到的问题、或是你在这些代码基础上做的修改和补充——嗯，这也算是一种开源协议，比什么BSD什么阿帕契都要厚道罢……XD
那么先帖篇简单的：一种实现“三栏液态布局”和“圆角边框”的方法，所谓“液态布局”，就是网页内容的宽度能随屏幕分辨率/浏览器的大小而改变，自动撑满。
根据我的经验……目前网页设计中最常见的还是采用固定宽度居中对齐的布局，也就是说当用户的分辨率提高时，页面左右会出现空白，强调用户体验的WEB2.0网站们翰注重个性的BLOG们，经常会针对这些空白专门设计BODY背景和边缘。而采用液态布局的网页中，又有很大一部分是采用两栏式结构。这里我要做的，是同时包括正文、左侧栏和右侧栏，始终撑满整个窗口，中栏的宽度会随浏览器窗口的大小而变化，当然了，在IE和Firefox里不能有差别。
这是我做的效果演示：http://demo.limboy.com/3c.htm
注意：在这个页面里，圆角方块的底部已经做成可以上下拖动的了，类似软件窗口的拖动效果，方便大家测试高度的自适应效果。
首先是HTML，建立三个容器，放在一个层里面，作为左、中、右三个竖栏：
&#60;div id=&#34;main&#34;&#62;
&#160;
&#60;!-- 左侧栏 --&#62;
&#60;div&#160;id=&#34;leftColumn&#34;&#62;&#60;/div&#62;
&#160;
&#60;!-- 右侧栏 --&#62;
&#60;div&#160;id=&#34;rightColumn&#34;&#62;&#60;/div&#62;
&#160;
&#60;!-- 中间的正文 --&#62;
&#60;div&#160;id=&#34;centerColumn&#34;&#62;&#60;/div&#62;
&#160;
&#60;/div&#62;
注意：中栏的DIV必须写在左右侧栏的“下面”，否则CSS就达不到效果：
#main{
background:#464646;
width:100%;
margin:0px&#160;auto;&#160; &#160; &#160; 
padding:0;
text-align:left;&#160; &#160; &#160; 
float:left;
&#160;
}
&#160;
#leftColumn{
float:left;
width:200px;
&#160;
}
&#160;
#rightColumn{
float:right;
width:200px;
&#160;
}
&#160;
#centerColumn{
width:auto;
margin:0px&#160;200px 0px 200px;
&#160;
}
左右侧栏分别采用了左浮动和右浮动，限定宽度。中栏采用居中对齐的样式，只是不限定宽度，而且左右的margin设置为侧栏的宽度，而不是auto。
需要注意的是，为了让容器高度随着内容而增加，三栏外面的容器#main也必须设置为浮动，如果它的下面还有容器，也要设置为浮动，比如演示页面中的#foot，而#main上面的容器则不需要浮动，比如演示页面中的#head和#top。
但只是这样还不够，如果在容器里面加入内容，就会发现在该死的IE里出现了一些瑕疵，IE6和IE7一样，凭这一点就可以猜测是属于layout属性BUG，经过一些测试可以证实。所以解决办法是，给#centerColumn层加入某种能触发layout属性的样式，这里我采用的是IE的专有样式zoom：
#leftColumn{
margin-left:0px;
}
&#160;
#rightColumn{
margin-right:0px;
}
&#160;
#centerColumn{
zoom:1;
}
以上代码应该放在一个IE专用的样式表里，这样既不会影响其他浏览器，也能通过W3C校验 :D
用微软的专有技术“条件注释”来实现：
&#60;!--[if IE]&#62;
&#160;
&#60;link href=&#34;css/forie.css&#34; type=&#34;text/css&#34; rel=&#34;stylesheet&#34; /&#62;
&#160;
&#60;![endif]--&#62;
注释内的代码只有符合条件判断的IE浏览器会解释。
接下来在三栏中都加入若干圆角方框，作为基本容器。我的圆角方框是这样的：
&#60;div class=&#34;widgetBox&#34;&#62;
&#160;
&#60;div&#160;class=&#34;widgetTop&#34;&#62;
&#160;
&#160;&#60;div class=&#34;widgetLeftTop&#34;&#62;&#60;/div&#62;&#60;div class=&#34;widgetRightTop&#34;&#62;&#60;/div&#62;
&#160;
&#60;/div&#62;
&#160;
&#60;div&#160;class=&#34;widgetCenter&#34;&#62;
&#160;&#60;div class=&#34;widgetMain&#34; &#62;&#160;&#160; 
&#160;&#60;/div&#62;
&#60;/div&#62;
&#160;
&#60;div&#160;class=&#34;widgetBottom&#34;&#62;
&#160;
&#160;&#60;div class=&#34;widgetLeftBottom&#34;&#62;&#60;/div&#62;&#60;div class=&#34;widgetRightBottom&#34;&#62;&#60;/div&#62;
&#160;
&#60;/div&#62;
&#160;
&#60;/div&#62;
样式：
.widgetBox{
margin:0px;
padding:0px;
&#160;
}
.widgetTop{
background:url(../images/boxtbg.jpg) repeat-x;
&#160;
height:21px;
}
.widgetLeftTop{
background:url(../images/boxlt.jpg) no-repeat;
&#160;
height:21px;width:16px;
float:left;
&#160;
}
.widgetRightTop{
background:url(../images/boxrt.jpg) no-repeat;
&#160;
height:21px;width:16px;
float:right;
&#160;
}
.widgetBottom{
background:url(../images/boxbbg.jpg) repeat-x;
&#160;
height:20px;
}
&#160;
.widgetLeftBottom{
background:url(../images/boxlb.jpg) no-repeat&#160;left;
&#160;
height:20px;width:16px;
float:left;
&#160;
}
.widgetRightBottom{
background:url(../images/boxrb.jpg) no-repeat&#160;right;
&#160;
height:20px;width:16px;
float:right;
&#160;
}
.widgetCenter{
background:#343434;
margin:0&#160;3px 0 3px;
&#160;
}
.widgetMain{
width:auto;
margin:0&#160;3px 0 3px;
&#160;
background:#fff;
border-left:2px&#160;solid #CCCCCC;
border-right:2px&#160;solid #CCCCCC;
&#160;
padding:8px;
}
为了适应各种大小，顶部边缘和底部边缘用了单独的圆角图片和横向重复的背景，而中间没有任何图片，用边框颜色和内外两个层之间的空隙颜色来做出边缘阴影的效果。
当页面里内容不足的时候，这些圆角方框都会显得不够长，可以在样式里加入最小高度来解决这个问题：
.widgetCenter{
min-height:130px;
}
min-height属于CSS2标准，IE6并不支持，但可以利用IE6的一个最常见的overflow BUG：当容器内的东西大小超过容器时，按照W3C标准，超出的内容会“飘”出来显示在容器外面，而在IE6里容器会被撑大，所以只要直接在IE专用样式表里写.widgetCenter{height:130px;}就行了……然则，IE7修正了overflow BUG，而且支持min-height属性-_______-b…………所以，必须写成这样：
*html .widgetCenter{
height:130px;
}
*html是某种只有IE6认识的东西……而IE7不认识……因此以上样式只对IE6及以下的浏览器生效……(随便说一下，也有一种只有IE7能识别的前缀：*+html )-_______-b
这样就做出了一个比较灵活的三栏布局，只改动少量代码和背景图片就可以适应不同的页面设计（代码重用性在网页中同样重要）。更详细的内容请自行查看演示页面的代码。
]]></description>
			<content:encoded><![CDATA[<p><a href="http://bp2.blogger.com/_FPgtQV0mSoM/RehzdggyOjI/AAAAAAAAACQ/dvHh8qEQvRE/s1600-h/1.gif"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_FPgtQV0mSoM/RehzdggyOjI/AAAAAAAAACQ/dvHh8qEQvRE/s320/1.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5037403133994744370" /></a>在公司做了好几个项目的WEB前端开发工作，其实很早就想写一些技术心得，类似以前发的<a href="http://www.limboy.com/index.php/2006/10/22/contentmenu/">《[造车轮计划]今天写了一个右键菜单的JS类》</a>，可惜……好罢这句话我已经重复过无数次了：太累 &#038; 没时间。</p>
<p>今天终于整理了一部分以前写过的代码，我准备以后陆续在BLOG上发一些WEB交互界面方面的文章，并且逐步补充完善，争取凑出一套原创的控件库和JS效果库。如果你觉得这些东西对自己的开发有帮助，我当然非常欢迎你拿去自由使用，不过我也希望能收到反馈信息<span id="more-81"></span>——比如你在开发中遇到的问题、或是你在这些代码基础上做的修改和补充——嗯，这也算是一种开源协议，比什么BSD什么阿帕契都要厚道罢……XD</p>
<p>那么先帖篇简单的：一种实现“三栏液态布局”和“圆角边框”的方法，所谓“液态布局”，就是网页内容的宽度能随屏幕分辨率/浏览器的大小而改变，自动撑满。</p>
<p>根据我的经验……目前网页设计中最常见的还是采用固定宽度居中对齐的布局，也就是说当用户的分辨率提高时，页面左右会<a href="http://www.yesky.com/">出现空白</a>，强调用户体验的WEB2.0网站们翰注重个性的BLOG们，经常会针对这些空白专门设计<a href="http://www.colorschemer.com/">BODY背景</a>和<a href="http://www.joomla.org/">边缘</a>。而采用液态布局的网页中，又有很大一部分是采用<a href="http://drupal.org/">两栏式结构</a>。这里我要做的，是同时包括正文、左侧栏和右侧栏，始终撑满整个窗口，中栏的宽度会随浏览器窗口的大小而变化，当然了，在IE和Firefox里不能有差别。</p>
<p>这是我做的效果演示：<a href="http://demo.limboy.com/3c.htm">http://demo.limboy.com/3c.htm</a></p>
<p>注意：在这个页面里，圆角方块的底部已经做成可以上下拖动的了，类似软件窗口的拖动效果，方便大家测试高度的自适应效果。</p>
<p>首先是HTML，建立三个容器，放在一个层里面，作为左、中、右三个竖栏：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Green;">div</span><span style="color: Gray;"> </span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">main</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">&lt;!-- 左侧栏 --&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">div</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">leftColumn</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">div</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">&lt;!-- 右侧栏 --&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">div</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">rightColumn</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">div</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">&lt;!-- 中间的正文 --&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">div</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">centerColumn</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">div</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">div</span><span style="color: Olive;">&gt;</span></li></ol></div>
<p>注意：中栏的DIV必须写在左右侧栏的“下面”，否则CSS就达不到效果：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">#main</span><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">background:</span><span style="color: #00008b;">#464646</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">width:</span><span style="color: Maroon;">100</span><span style="color: Red;">%</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">margin:</span><span style="color: Maroon;">0</span><span style="color: Red;">px</span><span style="color: Gray;">&nbsp;</span><span style="color: Red;">auto</span><span style="color: Gray;">;&nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Green;">padding:</span><span style="color: Maroon;">0</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">text-align:</span><span style="color: Red;">left</span><span style="color: Gray;">;&nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Green;">float:</span><span style="color: Red;">left</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">#leftColumn</span><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">float:</span><span style="color: Red;">left</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">width:</span><span style="color: Maroon;">200</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">#rightColumn</span><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">float:</span><span style="color: Red;">right</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">width:</span><span style="color: Maroon;">200</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">#centerColumn</span><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">width:</span><span style="color: Red;">auto</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">margin:</span><span style="color: Maroon;">0</span><span style="color: Red;">px</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">200</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Maroon;">200</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>左右侧栏分别采用了左浮动和右浮动，限定宽度。中栏采用居中对齐的样式，只是不限定宽度，而且左右的margin设置为侧栏的宽度，而不是auto。</p>
<p>需要注意的是，为了让容器高度随着内容而增加，三栏外面的容器#main也必须设置为浮动，如果它的下面还有容器，也要设置为浮动，比如演示页面中的#foot，而#main上面的容器则不需要浮动，比如演示页面中的#head和#top。</p>
<p>但只是这样还不够，如果在容器里面加入内容，就会发现在该死的IE里出现了一些瑕疵，IE6和IE7一样，凭这一点就可以猜测是属于<a href="http://old9.blogsome.com/2006/04/11/onhavinglayout/">layout属性BUG</a>，经过一些测试可以证实。所以解决办法是，给#centerColumn层加入某种能触发layout属性的样式，这里我采用的是IE的专有样式zoom：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">#leftColumn</span><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">margin-left:</span><span style="color: Maroon;">0</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">#rightColumn</span><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">margin-right:</span><span style="color: Maroon;">0</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">#centerColumn</span><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">zoom:</span><span style="color: Maroon;">1</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>以上代码应该放在一个IE专用的样式表里，这样既不会影响其他浏览器，也能通过W3C校验 :D</p>
<p>用微软的专有技术<a href="http://msdn.microsoft.com/workshop/author/dhtml/overview/ccomment_ovw.asp">“条件注释”</a>来实现：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">&lt;!--[if IE]&gt;</span></li>
<li><span style="color: #ffa500;">&nbsp;</span></li>
<li><span style="color: #ffa500;">&lt;link href=&quot;css/forie.css&quot; type=&quot;text/css&quot; rel=&quot;stylesheet&quot; /&gt;</span></li>
<li><span style="color: #ffa500;">&nbsp;</span></li>
<li><span style="color: #ffa500;">&lt;![endif]--&gt;</span></li></ol></div>
<p>注释内的代码只有符合条件判断的IE浏览器会解释。</p>
<p>接下来在三栏中都加入若干圆角方框，作为基本容器。我的圆角方框是这样的：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Green;">div</span><span style="color: Gray;"> </span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">widgetBox</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">div</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">widgetTop</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&lt;</span><span style="color: Green;">div</span><span style="color: Gray;"> </span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">widgetLeftTop</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">div</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">div</span><span style="color: Gray;"> </span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">widgetRightTop</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">div</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">div</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">div</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">widgetCenter</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&lt;</span><span style="color: Green;">div</span><span style="color: Gray;"> </span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">widgetMain</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">&gt;</span><span style="color: Gray;">&nbsp;&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">div</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">div</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">div</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">widgetBottom</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&lt;</span><span style="color: Green;">div</span><span style="color: Gray;"> </span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">widgetLeftBottom</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">div</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">div</span><span style="color: Gray;"> </span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">widgetRightBottom</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">div</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">div</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">div</span><span style="color: Olive;">&gt;</span></li></ol></div>
<p>样式：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">.widgetBox</span><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">margin:</span><span style="color: Maroon;">0</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">padding:</span><span style="color: Maroon;">0</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">.widgetTop</span><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">background:</span><span style="color: Gray;">url(../images/boxtbg.jpg) </span><span style="color: Red;">repeat-x</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">height:</span><span style="color: Maroon;">21</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">.widgetLeftTop</span><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">background:</span><span style="color: Gray;">url(../images/boxlt.jpg) </span><span style="color: Red;">no-repeat</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">height:</span><span style="color: Maroon;">21</span><span style="color: Red;">px</span><span style="color: Gray;">;</span><span style="color: Green;">width:</span><span style="color: Maroon;">16</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">float:</span><span style="color: Red;">left</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">.widgetRightTop</span><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">background:</span><span style="color: Gray;">url(../images/boxrt.jpg) </span><span style="color: Red;">no-repeat</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">height:</span><span style="color: Maroon;">21</span><span style="color: Red;">px</span><span style="color: Gray;">;</span><span style="color: Green;">width:</span><span style="color: Maroon;">16</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">float:</span><span style="color: Red;">right</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">.widgetBottom</span><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">background:</span><span style="color: Gray;">url(../images/boxbbg.jpg) </span><span style="color: Red;">repeat-x</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">height:</span><span style="color: Maroon;">20</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">.widgetLeftBottom</span><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">background:</span><span style="color: Gray;">url(../images/boxlb.jpg) </span><span style="color: Red;">no-repeat</span><span style="color: Gray;">&nbsp;</span><span style="color: Red;">left</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">height:</span><span style="color: Maroon;">20</span><span style="color: Red;">px</span><span style="color: Gray;">;</span><span style="color: Green;">width:</span><span style="color: Maroon;">16</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">float:</span><span style="color: Red;">left</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">.widgetRightBottom</span><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">background:</span><span style="color: Gray;">url(../images/boxrb.jpg) </span><span style="color: Red;">no-repeat</span><span style="color: Gray;">&nbsp;</span><span style="color: Red;">right</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">height:</span><span style="color: Maroon;">20</span><span style="color: Red;">px</span><span style="color: Gray;">;</span><span style="color: Green;">width:</span><span style="color: Maroon;">16</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">float:</span><span style="color: Red;">right</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">.widgetCenter</span><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">background:</span><span style="color: #00008b;">#343434</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">margin:</span><span style="color: Maroon;">0</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">3</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span><span style="color: Gray;"> </span><span style="color: Maroon;">3</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">.widgetMain</span><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">width:</span><span style="color: Red;">auto</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">margin:</span><span style="color: Maroon;">0</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">3</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span><span style="color: Gray;"> </span><span style="color: Maroon;">3</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">background:</span><span style="color: #00008b;">#fff</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">border-left:</span><span style="color: Maroon;">2</span><span style="color: Red;">px</span><span style="color: Gray;">&nbsp;</span><span style="color: Red;">solid</span><span style="color: Gray;"> </span><span style="color: #00008b;">#CCCCCC</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">border-right:</span><span style="color: Maroon;">2</span><span style="color: Red;">px</span><span style="color: Gray;">&nbsp;</span><span style="color: Red;">solid</span><span style="color: Gray;"> </span><span style="color: #00008b;">#CCCCCC</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">padding:</span><span style="color: Maroon;">8</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>为了适应各种大小，顶部边缘和底部边缘用了单独的圆角图片和横向重复的背景，而中间没有任何图片，用边框颜色和内外两个层之间的空隙颜色来做出边缘阴影的效果。</p>
<p>当页面里内容不足的时候，这些圆角方框都会显得不够长，可以在样式里加入最小高度来解决这个问题：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">.widgetCenter</span><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">min-height:</span><span style="color: Maroon;">130</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>min-height属于CSS2标准，IE6并不支持，但可以利用IE6的一个最常见的overflow BUG：当容器内的东西大小超过容器时，按照W3C标准，超出的内容会“飘”出来显示在容器外面，而在IE6里容器会被撑大，所以只要直接在IE专用样式表里写.widgetCenter{height:130px;}就行了……然则，IE7修正了overflow BUG，而且支持min-height属性-_______-b…………所以，必须写成这样：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">*html</span><span style="color: Gray;"> </span><span style="color: Blue;">.widgetCenter</span><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">height:</span><span style="color: Maroon;">130</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>*html是某种只有IE6认识的东西……而IE7不认识……因此以上样式只对IE6及以下的浏览器生效……(随便说一下，也有一种只有IE7能识别的前缀：*+html )-_______-b</p>
<p>这样就做出了一个比较灵活的三栏布局，只改动少量代码和背景图片就可以适应不同的页面设计（代码重用性在网页中同样重要）。更详细的内容请自行查看演示页面的代码。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.limboy.com/2007/03/03/3c/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[造车轮计划]今天写了一个右键菜单的JS类</title>
		<link>http://www.limboy.com/2006/10/22/contentmenu/</link>
		<comments>http://www.limboy.com/2006/10/22/contentmenu/#comments</comments>
		<pubDate>Sun, 22 Oct 2006 14:31:28 +0000</pubDate>
		<dc:creator>Dexter.Yy</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[界面]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/index.php/2006/10/22/contentmenu/</guid>
		<description><![CDATA[右键菜单在web交互设计里并不是很常用的东西，因为普通用户在浏览网页时很少会想到能用右键来操作，就像他们很难习惯拖拽一样，但在某些环境中，拖拽会成为很自然的操作——其实都跟桌面软件的操作习惯有关。所以右键菜单在某些情况下也是很有用的，抓虾的feed列表里就可以使用右键菜单，如果网页里调用了google maps，而且占据了很大的客户端面积，用右键菜单也会更方便。最近做的项目里就要用到这个，我写了一个简单的右键菜单，并且学习把它封装成一个类。

以下是html形式的代码：
&#60;div id=&#34;mousemenu&#34; style=&#34;display: none; width: 200px;&#34;&#62;&#160; &#160; &#160; 
&#160;
&#60;div&#160;class=&#34;mousemenumain&#34;&#62;&#160; &#160; &#160;&#160; 
&#160;&#60;ul id=&#34;allitems&#34;&#62;&#160; &#160; &#160; &#160; &#160; 
&#160; &#60;li&#62;&#60;a&#160;href=&#34;&#34;&#62;&#60;span&#62;菜单项目1&#60;/span&#62;&#60;/a&#62;&#60;/li&#62;&#160; &#160; &#160; &#160; &#160; 
&#160; &#60;li&#62;&#60;a&#160;href=&#34;&#34;&#62;&#60;span&#62;菜单项目2&#60;/span&#62;&#60;/a&#62;&#60;/li&#62;&#160; &#160; &#160; &#160;&#160; 
&#160; &#60;li&#62;&#60;a&#160;href=&#34;&#34;&#62;&#60;span&#62;菜单项目3&#60;/span&#62;&#60;/a&#62;&#60;/li&#62;&#160; &#160; &#160; &#160; &#160; 
&#160; &#60;li&#62;&#60;a&#160;href=&#34;&#34;&#62;&#60;span&#62;菜单项目4长度超出长度超出长度超出长度超出长度超出长度超出&#60;/span&#62;&#60;/a&#62;&#60;/li&#62;&#160; &#160; &#160; &#160; &#160; 
&#160; &#60;li&#62;&#60;a&#160;href=&#34;&#34;&#62;&#60;span&#62;菜单项目5&#60;/span&#62;&#60;/a&#62;&#60;/li&#62;&#160; &#160; &#160; &#160; &#160; 
&#160; &#60;li&#62;&#60;a&#160;href=&#34;&#34;&#62;&#60;span&#62;菜单项目6&#60;/span&#62;&#60;/a&#62;&#60;/li&#62;&#160; &#160; &#160; &#160; &#160; 
&#160; &#60;li&#62;&#60;a&#160;href=&#34;&#34;&#62;&#60;span&#62;菜单项目7&#60;/span&#62;&#60;/a&#62;&#60;/li&#62;&#160; [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://photos1.blogger.com/blogger2/264/1045131830741991/1600/applicationsmenu.jpg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width:120px; " src="http://photos1.blogger.com/blogger2/264/1045131830741991/200/applicationsmenu.jpg" border="0" alt="" /></a>右键菜单在web交互设计里并不是很常用的东西，因为普通用户在浏览网页时很少会想到能用右键来操作，就像他们很难习惯拖拽一样，但在某些环境中，拖拽会成为很自然的操作——其实都跟桌面软件的操作习惯有关。所以右键菜单在某些情况下也是很有用的，<a href="http://www.zhuaxia.com/indexFrame.php">抓虾</a>的feed列表里就可以使用右键菜单，如果网页里<a href="http://www.zmap.org/doc/maps/documentation/">调用了google maps</a>，而且占据了很大的客户端面积，用右键菜单也会更方便。最近做的项目里就要用到这个，我写了一个简单的右键菜单，并且学习把它封装成一个类。<br />
<span id="more-63"></span></p>
<p>以下是html形式的代码：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Green;">div</span><span style="color: Gray;"> </span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">mousemenu</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">style</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">display: none; width: 200px;</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">div</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">mousemenumain</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp;&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&lt;</span><span style="color: Green;">ul</span><span style="color: Gray;"> </span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">allitems</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">a</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;&quot;</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">span</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">菜单项目1</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">span</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">a</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">a</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;&quot;</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">span</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">菜单项目2</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">span</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">a</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">a</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;&quot;</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">span</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">菜单项目3</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">span</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">a</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">a</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;&quot;</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">span</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">菜单项目4长度超出长度超出长度超出长度超出长度超出长度超出</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">span</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">a</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">a</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;&quot;</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">span</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">菜单项目5</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">span</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">a</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">a</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;&quot;</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">span</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">菜单项目6</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">span</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">a</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">a</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;&quot;</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">span</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">菜单项目7</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">span</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">a</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">a</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;&quot;</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">span</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">菜单项目8</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">span</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">a</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">ul</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">&nbsp;&nbsp; </span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">div</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">&nbsp;&nbsp; </span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">div</span><span style="color: Olive;">&gt;</span></li></ol></div>
<p>菜单的CSS：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">#mousemenu</span><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">position:</span><span style="color: Red;">absolute</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">background:</span><span style="color: Gray;">url(leftbg.jpg) </span><span style="color: Red;">no-repeat</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">.mousemenumain</span><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">width:</span><span style="color: Maroon;">100</span><span style="color: Red;">%</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">float:</span><span style="color: Red;">left</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">margin:</span><span style="color: Maroon;">0</span><span style="color: Red;">px</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">5</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Maroon;">22</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">background:</span><span style="color: Gray;">url(tempbg.jpg)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">border:</span><span style="color: Maroon;">1</span><span style="color: Red;">px</span><span style="color: Gray;">&nbsp;</span><span style="color: Red;">solid</span><span style="color: Gray;"> </span><span style="color: #00008b;">#999</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">border-left:</span><span style="color: Red;">none</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">*</span><span style="color: Navy;">:first-child</span><span style="color: Gray;">+</span><span style="color: Blue;">html</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">.mousemenumain</span><span style="color: Olive;">{</span><span style="color: Green;">margin:</span><span style="color: Maroon;">0</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Maroon;">5</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Maroon;">11</span><span style="color: Red;">px</span><span style="color: Gray;">;</span><span style="color: Olive;">}</span><span style="color: Gray;"> </span><span style="color: Blue;">*</span><span style="color: Gray;"> </span><span style="color: Blue;">html</span><span style="color: Gray;"> </span><span style="color: Blue;">.mousemenumain</span><span style="color: Olive;">{</span><span style="color: Green;">margin:</span><span style="color: Maroon;">0</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Maroon;">5</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Maroon;">11</span><span style="color: Red;">px</span><span style="color: Gray;">;</span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">.mousemenumain</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">ul</span><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">padding:</span><span style="color: Maroon;">0</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">margin:</span><span style="color: Maroon;">0</span><span style="color: Red;">px</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">0</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">list-style:</span><span style="color: Red;">none</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">width:</span><span style="color: Maroon;">100</span><span style="color: Red;">%</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">.mousemenumain</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">ul</span><span style="color: Gray;"> </span><span style="color: Blue;">li</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">width:</span><span style="color: Maroon;">100</span><span style="color: Red;">%</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">.mousemenumain</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">ul</span><span style="color: Gray;"> </span><span style="color: Blue;">li</span><span style="color: Gray;"> </span><span style="color: Blue;">a</span><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">display:</span><span style="color: Red;">block</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">text-decoration:</span><span style="color: Red;">none</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">color:</span><span style="color: #00008b;">#000000</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">margin:</span><span style="color: Maroon;">0</span><span style="color: Red;">px</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">0</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">height:</span><span style="color: Maroon;">20</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">line-height:</span><span style="color: Maroon;">20</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">overflow-x:</span><span style="color: Red;">hidden</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">width:</span><span style="color: Maroon;">200</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">.mousemenumain</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">ul</span><span style="color: Gray;"> </span><span style="color: Blue;">li</span><span style="color: Gray;"> </span><span style="color: Blue;">a</span><span style="color: Navy;">:hover</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">background:</span><span style="color: #00008b;">#0000ee</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">border:</span><span style="color: Maroon;">0</span><span style="color: Red;">px</span><span style="color: Gray;">&nbsp;</span><span style="color: Red;">solid</span><span style="color: Gray;"> </span><span style="color: #00008b;">#00ccff</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">text-decoration:</span><span style="color: Red;">none</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">color:</span><span style="color: #00008b;">#fff</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">cursor:</span><span style="color: Red;">pointer</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">.mousemenumain</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">ul</span><span style="color: Gray;"> </span><span style="color: Blue;">li</span><span style="color: Gray;"> </span><span style="color: Blue;">span</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">margin:</span><span style="color: Maroon;">0</span><span style="color: Red;">px</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">15</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">display:</span><span style="color: Red;">block</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>控制菜单弹出位置的JS程序：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">oncontextmenu</span><span style="color: Gray;"> = </span><span style="color: Blue;">ShowMenu</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">ShowMenu</span><span style="color: Olive;">(</span><span style="color: Blue;">ev</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">obj</span><span style="color: Gray;">=</span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">getElementById</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">mousemenu</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">obj</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">display</span><span style="color: Gray;">=</span><span style="color: #8b0000;">'</span><span style="color: Red;">none</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">ev</span><span style="color: Gray;"> = </span><span style="color: Blue;">ev</span><span style="color: Gray;"> || </span><span style="color: Teal;">window</span><span style="color: Gray;">.</span><span style="color: Blue;">event</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">showplace</span><span style="color: Gray;">=</span><span style="color: Blue;">GetMousexy</span><span style="color: Olive;">(</span><span style="color: Blue;">ev</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">obj</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">top</span><span style="color: Gray;">=</span><span style="color: Blue;">showplace</span><span style="color: Gray;">.</span><span style="color: Blue;">y</span><span style="color: Gray;">+</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">px</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">obj</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">left</span><span style="color: Gray;">=</span><span style="color: Blue;">showplace</span><span style="color: Gray;">.</span><span style="color: Blue;">x</span><span style="color: Gray;">+</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">px</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">menuplaceX</span><span style="color: Gray;">=</span><span style="color: Blue;">parseInt</span><span style="color: Olive;">(</span><span style="color: Blue;">obj</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">left</span><span style="color: Olive;">)</span><span style="color: Gray;">+</span><span style="color: Blue;">parseInt</span><span style="color: Olive;">(</span><span style="color: Blue;">obj</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">width</span><span style="color: Olive;">)</span><span style="color: Gray;">+</span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">body</span><span style="color: Gray;">.</span><span style="color: Blue;">scrollLeft</span><span style="color: Gray;">; </span><span style="color: #ffa500;">//获得菜单右边缘的坐标</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">j</span><span style="color: Gray;">=</span><span style="color: Maroon;">0</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Green;">for</span><span style="color: Olive;">(</span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">i</span><span style="color: Gray;">=</span><span style="color: Maroon;">0</span><span style="color: Gray;">;</span><span style="color: Blue;">i</span><span style="color: Gray;">&lt;</span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">getElementById</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">allitems</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">childNodes</span><span style="color: Gray;">.</span><span style="color: Blue;">length</span><span style="color: Gray;">;</span><span style="color: Blue;">i</span><span style="color: Gray;">++</span><span style="color: Olive;">){</span><span style="color: Gray;">&nbsp; </span><span style="color: #ffa500;">//获得菜单项的数量</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">getElementById</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">allitems</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">childNodes</span><span style="color: Gray;">.</span><span style="color: Blue;">item</span><span style="color: Olive;">(</span><span style="color: Blue;">i</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">tagName</span><span style="color: Gray;">==</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">LI</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">){</span><span style="color: Blue;">j</span><span style="color: Gray;">++;</span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">menuplaceY</span><span style="color: Gray;">=</span><span style="color: Blue;">parseInt</span><span style="color: Olive;">(</span><span style="color: Blue;">obj</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">top</span><span style="color: Olive;">)</span><span style="color: Gray;">+</span><span style="color: Maroon;">20</span><span style="color: Gray;">*</span><span style="color: Blue;">j</span><span style="color: Gray;">-</span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">body</span><span style="color: Gray;">.</span><span style="color: Blue;">scrollTop</span><span style="color: Gray;">; </span><span style="color: #ffa500;">//获得菜单下边缘的坐标</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Blue;">menuplaceX</span><span style="color: Gray;">&gt;</span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">body</span><span style="color: Gray;">.</span><span style="color: Blue;">clientWidth</span><span style="color: Olive;">){</span><span style="color: Gray;">&nbsp; </span><span style="color: #ffa500;">//如果菜单右边缘超出浏览器边框,则让菜单出现在鼠标左侧</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; </span><span style="color: Blue;">obj</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">left</span><span style="color: Gray;">=</span><span style="color: Olive;">(</span><span style="color: Blue;">showplace</span><span style="color: Gray;">.</span><span style="color: Blue;">x</span><span style="color: Gray;">-</span><span style="color: Blue;">parseInt</span><span style="color: Olive;">(</span><span style="color: Blue;">obj</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">width</span><span style="color: Olive;">)</span><span style="color: Gray;">-</span><span style="color: Maroon;">26</span><span style="color: Olive;">)</span><span style="color: Gray;">+</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">px</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Blue;">menuplaceY</span><span style="color: Gray;">&gt;</span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">documentElement</span><span style="color: Gray;">.</span><span style="color: Blue;">clientHeight</span><span style="color: Olive;">){</span><span style="color: Gray;"> </span><span style="color: #ffa500;">//如果菜单下边缘超出浏览器边框,则让菜单出现在鼠标上侧</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; </span><span style="color: Blue;">obj</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">top</span><span style="color: Gray;">=</span><span style="color: Olive;">(</span><span style="color: Blue;">showplace</span><span style="color: Gray;">.</span><span style="color: Blue;">y</span><span style="color: Gray;">-</span><span style="color: Maroon;">20</span><span style="color: Gray;">*</span><span style="color: Blue;">j</span><span style="color: Olive;">)</span><span style="color: Gray;">+</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">px</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">obj</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">display</span><span style="color: Gray;">=</span><span style="color: #8b0000;">''</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Green;">return</span><span style="color: Gray;"> </span><span style="color: Green;">false</span><span style="color: Gray;">;&nbsp; </span><span style="color: #ffa500;">//阻止原来的右键菜单出现</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">GetMousexy</span><span style="color: Olive;">(</span><span style="color: Blue;">ev</span><span style="color: Olive;">){</span><span style="color: Gray;">&nbsp; </span><span style="color: #ffa500;">//获取鼠标坐标</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Blue;">ev</span><span style="color: Gray;">.</span><span style="color: Blue;">pageX</span><span style="color: Gray;"> || </span><span style="color: Blue;">ev</span><span style="color: Gray;">.</span><span style="color: Blue;">pageY</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span><span style="color: Blue;">x</span><span style="color: Gray;">:</span><span style="color: Blue;">ev</span><span style="color: Gray;">.</span><span style="color: Blue;">pageX</span><span style="color: Gray;">, </span><span style="color: Blue;">y</span><span style="color: Gray;">:</span><span style="color: Blue;">ev</span><span style="color: Gray;">.</span><span style="color: Blue;">pageY</span><span style="color: Olive;">}</span><span style="color: Gray;">;&nbsp; </span><span style="color: #ffa500;">//适用于FIREFOX</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">return</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Blue;">x</span><span style="color: Gray;">:</span><span style="color: Blue;">ev</span><span style="color: Gray;">.</span><span style="color: Blue;">clientX</span><span style="color: Gray;"> + </span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">body</span><span style="color: Gray;">.</span><span style="color: Blue;">scrollLeft</span><span style="color: Gray;"> - </span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">body</span><span style="color: Gray;">.</span><span style="color: Blue;">clientLeft</span><span style="color: Gray;">,&nbsp; </span><span style="color: #ffa500;">//适用于IE</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Blue;">y</span><span style="color: Gray;">:</span><span style="color: Blue;">ev</span><span style="color: Gray;">.</span><span style="color: Blue;">clientY</span><span style="color: Gray;"> + </span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">body</span><span style="color: Gray;">.</span><span style="color: Blue;">scrollTop</span><span style="color: Gray;">&nbsp; - </span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">body</span><span style="color: Gray;">.</span><span style="color: Blue;">clientTop</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>需要注意的就是不能让菜单超出浏览器边缘，产生滚动条。</p>
<p>最后的效果：<a href="http://demo.limboy.com/badmenu.html">点这里</a></p>
<p>但是这样做的话，就必须把菜单的HTML代码写在网页面文件里，不能随时调用，如果一个页面里会出现多个菜单的话，就要每个都写一套HTML代码。如果用JS来创建菜单，并且把CSS和程序都封装到一个类里面，每次要用菜单的时候就只需要写很少的代码创建一个实例，虽然第一次比较麻烦，但以后就很方便了：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">/**********************************************</span></li>
<li><span style="color: #ffa500;"> *&nbsp;&nbsp; Name: context menu class</span></li>
<li><span style="color: #ffa500;"> *&nbsp;&nbsp; Author: Dexter.Yy (</span><span style="color: Blue;">dexter.yy@gmail.com</span><span style="color: #ffa500;">)</span></li>
<li><span style="color: #ffa500;"> *&nbsp;&nbsp; Author URI: </span><span style="color: Blue;">http://www.limboy.com/</span></li>
<li><span style="color: #ffa500;"> *&nbsp;&nbsp; Version: 2006.10.22</span></li>
<li><span style="color: #ffa500;"> **********************************************/</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">RightMenu</span><span style="color: Olive;">()</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">MainMenu</span><span style="color: Gray;">;&nbsp; &nbsp;&nbsp; </span><span style="color: #ffa500;">//主菜单</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">InLineUl</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">MenuItem</span><span style="color: Gray;">;&nbsp;&nbsp; </span><span style="color: #ffa500;">//菜单项</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">MainMenuPosition</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">absolute</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">; </span></li>
<li><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">MainMenuLeftBackground</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">url(leftbg.jpg) no-repeat</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;&nbsp; </span><span style="color: #ffa500;">//主菜单右边文字 </span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">MainMenuWidth</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">200px</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">; </span></li>
<li><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">MainMenuHeight</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">0px</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">; </span></li>
<li><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">MainMenuRightBackground</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">url(tempbg.jpg)</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;&nbsp;&nbsp; </span><span style="color: #ffa500;">//主菜单内容部分的背景</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">createMainMenu</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">RightMenu</span><span style="color: Gray;">.</span><span style="color: Blue;">prototype</span><span style="color: Gray;">.</span><span style="color: Blue;">createMainMenu</span><span style="color: Gray;"> = </span><span style="color: Green;">function</span><span style="color: Olive;">()</span><span style="color: Gray;">&nbsp;&nbsp; </span><span style="color: #ffa500;">//创建主菜单</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">InLineUl</span><span style="color: Gray;"> = </span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">createElement</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">ul</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">InLineUl</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">padding</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">0px</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">InLineUl</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">margin</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">0px 0px 0px 0px</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">InLineUl</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">listStyle</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">none</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">InLineUl</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">width</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">100%</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">InLineUl</span><span style="color: Gray;">.</span><span style="color: Blue;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">allitems</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">InLineDiv</span><span style="color: Gray;"> = </span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">createElement</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">div</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">InLineDiv</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">width</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">100%</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;&nbsp;&nbsp; </span><span style="color: #ffa500;">//整个菜单的样式</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">InLineDiv</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">margin</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">0px 5px 0px 22px</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">InLineDiv</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">background</span><span style="color: Gray;"> = </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">MainMenuRightBackground</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">InLineDiv</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">border</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">2px solid #0033ff</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">InLineDiv</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">borderLeft</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">none</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">InLineDiv</span><span style="color: Gray;">.</span><span style="color: Blue;">appendChild</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">InLineUl</span><span style="color: Gray;">.</span><span style="color: Blue;">cloneNode</span><span style="color: Olive;">(</span><span style="color: Green;">true</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">MainMenu</span><span style="color: Gray;"> = </span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">createElement</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">div</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">MainMenu</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">position</span><span style="color: Gray;"> = </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">MainMenuPosition</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">MainMenu</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">background</span><span style="color: Gray;"> = </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">MainMenuLeftBackground</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">MainMenu</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">width</span><span style="color: Gray;"> = </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">MainMenuWidth</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">MainMenu</span><span style="color: Gray;">.</span><span style="color: Blue;">appendChild</span><span style="color: Olive;">(</span><span style="color: Blue;">InLineDiv</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">MainMenu</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">display</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">none</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">body</span><span style="color: Gray;">.</span><span style="color: Blue;">appendChild</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">MainMenu</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">RightMenu</span><span style="color: Gray;">.</span><span style="color: Blue;">prototype</span><span style="color: Gray;">.</span><span style="color: Blue;">appendMenuItem</span><span style="color: Gray;"> = </span><span style="color: Green;">function</span><span style="color: Olive;">(</span><span style="color: Blue;">MenuItems</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;&nbsp; </span><span style="color: #ffa500;">//添加菜单项</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Blue;">MenuItems</span><span style="color: Gray;">==</span><span style="color: #8b0000;">''</span><span style="color: Olive;">)</span><span style="color: Green;">return</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">MainMenu</span><span style="color: Gray;">.</span><span style="color: Blue;">firstChild</span><span style="color: Gray;">.</span><span style="color: Blue;">firstChild</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">MainMenuHeight</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">0px</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">MainMenu</span><span style="color: Gray;">.</span><span style="color: Blue;">firstChild</span><span style="color: Gray;">.</span><span style="color: Blue;">replaceChild</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">InLineUl</span><span style="color: Gray;">.</span><span style="color: Blue;">cloneNode</span><span style="color: Olive;">(</span><span style="color: Green;">true</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">MainMenu</span><span style="color: Gray;">.</span><span style="color: Blue;">firstChild</span><span style="color: Gray;">.</span><span style="color: Blue;">firstChild</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">for</span><span style="color: Olive;">(</span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">item</span><span style="color: Gray;"> </span><span style="color: Green;">in</span><span style="color: Gray;"> </span><span style="color: Blue;">MenuItems</span><span style="color: Olive;">)</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">MenuItemSpan</span><span style="color: Gray;"> = </span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">createElement</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">span</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">MenuItemSpan</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">margin</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">0px 15px</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">MenuItemSpan</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">height</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">28px</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">MenuItemSpan</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">lineHeight</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">28px</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">MenuItemSpan</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">display</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">block</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Blue;">MenuItemSpan</span><span style="color: Gray;">.</span><span style="color: Blue;">innerHTML</span><span style="color: Gray;"> = </span><span style="color: Blue;">MenuItems</span><span style="color: Olive;">[</span><span style="color: Blue;">item</span><span style="color: Olive;">][</span><span style="color: Maroon;">0</span><span style="color: Olive;">]</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">MenuItemSpan</span><span style="color: Gray;">.</span><span style="color: Blue;">setAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">hasmenu</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span><span style="color: Maroon;">1</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">MenuItemSpan</span><span style="color: Gray;">.</span><span style="color: Blue;">oncontextmenu</span><span style="color: Gray;"> = </span><span style="color: Green;">function</span><span style="color: Olive;">(){</span><span style="color: Green;">return</span><span style="color: Gray;"> </span><span style="color: Green;">false</span><span style="color: Gray;">;</span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">MenuItemA</span><span style="color: Gray;"> = </span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">createElement</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">a</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">MenuItemA</span><span style="color: Gray;">.</span><span style="color: Blue;">setAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">href</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">MenuItems</span><span style="color: Olive;">[</span><span style="color: Blue;">item</span><span style="color: Olive;">][</span><span style="color: Maroon;">2</span><span style="color: Olive;">])</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">MenuItemA</span><span style="color: Gray;">.</span><span style="color: Blue;">target</span><span style="color: Gray;"> = </span><span style="color: Blue;">MenuItems</span><span style="color: Olive;">[</span><span style="color: Blue;">item</span><span style="color: Olive;">][</span><span style="color: Maroon;">1</span><span style="color: Olive;">]</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">MenuItemA</span><span style="color: Gray;">.</span><span style="color: Blue;">onmouseout</span><span style="color: Gray;"> = </span><span style="color: Green;">function</span><span style="color: Olive;">()</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">//每个菜单项的样式</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">background</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">display</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">block</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">textDecoration</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">none</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">color</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">#000000</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">margin</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">0px 0px 0px 0px</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">width</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">200px</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">height</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">28px</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">lineHeight</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">28px</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">fontSize</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">12px</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">overflowX</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">hidden</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">MenuItemA</span><span style="color: Gray;">.</span><span style="color: Blue;">onmouseout</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">MenuItemA</span><span style="color: Gray;">.</span><span style="color: Blue;">onmouseover</span><span style="color: Gray;"> = </span><span style="color: Green;">function</span><span style="color: Olive;">()</span><span style="color: Gray;">&nbsp;&nbsp; </span><span style="color: #ffa500;">//鼠标滑过时菜单项的样式</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">background</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">#0000ee</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">border</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">0px solid #00ccff</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">textDecoration</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">none</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">color</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">#fff</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">cursor</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">pointer</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">MenuItemA</span><span style="color: Gray;">.</span><span style="color: Blue;">appendChild</span><span style="color: Olive;">(</span><span style="color: Blue;">MenuItemSpan</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">MenuItemLi</span><span style="color: Gray;"> = </span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">createElement</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">li</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">MenuItemLi</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">width</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">100%</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">MenuItemLi</span><span style="color: Gray;">.</span><span style="color: Blue;">appendChild</span><span style="color: Olive;">(</span><span style="color: Blue;">MenuItemA</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">MainMenuHeight</span><span style="color: Gray;"> =</span><span style="color: Olive;">(</span><span style="color: Blue;">parseInt</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">MainMenuHeight</span><span style="color: Olive;">)</span><span style="color: Gray;">+</span><span style="color: Blue;">parseInt</span><span style="color: Olive;">(</span><span style="color: Blue;">MenuItemSpan</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">height</span><span style="color: Olive;">))</span><span style="color: Gray;">+</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">px</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">MainMenu</span><span style="color: Gray;">.</span><span style="color: Blue;">firstChild</span><span style="color: Gray;">.</span><span style="color: Blue;">firstChild</span><span style="color: Gray;">.</span><span style="color: Blue;">appendChild</span><span style="color: Olive;">(</span><span style="color: Blue;">MenuItemLi</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">RightMenu</span><span style="color: Gray;">.</span><span style="color: Blue;">prototype</span><span style="color: Gray;">.</span><span style="color: Blue;">GetMousexy</span><span style="color: Gray;"> = </span><span style="color: Green;">function</span><span style="color: Olive;">(</span><span style="color: Blue;">ev</span><span style="color: Olive;">)</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Blue;">ev</span><span style="color: Gray;">.</span><span style="color: Blue;">pageX</span><span style="color: Gray;"> || </span><span style="color: Blue;">ev</span><span style="color: Gray;">.</span><span style="color: Blue;">pageY</span><span style="color: Olive;">)</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span><span style="color: Blue;">x</span><span style="color: Gray;">:</span><span style="color: Blue;">ev</span><span style="color: Gray;">.</span><span style="color: Blue;">pageX</span><span style="color: Gray;">, </span><span style="color: Blue;">y</span><span style="color: Gray;">:</span><span style="color: Blue;">ev</span><span style="color: Gray;">.</span><span style="color: Blue;">pageY</span><span style="color: Olive;">}</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp;&nbsp; </span><span style="color: Blue;">x</span><span style="color: Gray;">:</span><span style="color: Blue;">ev</span><span style="color: Gray;">.</span><span style="color: Blue;">clientX</span><span style="color: Gray;"> + </span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">body</span><span style="color: Gray;">.</span><span style="color: Blue;">scrollLeft</span><span style="color: Gray;"> - </span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">body</span><span style="color: Gray;">.</span><span style="color: Blue;">clientLeft</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp;&nbsp; </span><span style="color: Blue;">y</span><span style="color: Gray;">:</span><span style="color: Blue;">ev</span><span style="color: Gray;">.</span><span style="color: Blue;">clientY</span><span style="color: Gray;"> + </span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">body</span><span style="color: Gray;">.</span><span style="color: Blue;">scrollTop</span><span style="color: Gray;">&nbsp; - </span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">body</span><span style="color: Gray;">.</span><span style="color: Blue;">clientTop</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">RightMenu</span><span style="color: Gray;">.</span><span style="color: Blue;">prototype</span><span style="color: Gray;">.</span><span style="color: Blue;">ShowMenu</span><span style="color: Gray;"> = </span><span style="color: Green;">function</span><span style="color: Olive;">(</span><span style="color: Blue;">ev</span><span style="color: Gray;">,</span><span style="color: Blue;">MenuItems</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">appendMenuItem</span><span style="color: Olive;">(</span><span style="color: Blue;">MenuItems</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">MainMenu</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">display</span><span style="color: Gray;">=</span><span style="color: #8b0000;">'</span><span style="color: Red;">none</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">ev</span><span style="color: Gray;"> = </span><span style="color: Blue;">ev</span><span style="color: Gray;"> || </span><span style="color: Teal;">window</span><span style="color: Gray;">.</span><span style="color: Blue;">event</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">showplace</span><span style="color: Gray;">=</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">GetMousexy</span><span style="color: Olive;">(</span><span style="color: Blue;">ev</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">MainMenu</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">top</span><span style="color: Gray;">=</span><span style="color: Blue;">showplace</span><span style="color: Gray;">.</span><span style="color: Blue;">y</span><span style="color: Gray;">+</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">px</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">MainMenu</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">left</span><span style="color: Gray;">=</span><span style="color: Blue;">showplace</span><span style="color: Gray;">.</span><span style="color: Blue;">x</span><span style="color: Gray;">+</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">px</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">menuplaceX</span><span style="color: Gray;">=</span><span style="color: Blue;">parseInt</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">MainMenu</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">left</span><span style="color: Olive;">)</span><span style="color: Gray;">+</span><span style="color: Blue;">parseInt</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">MainMenu</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">width</span><span style="color: Olive;">)</span><span style="color: Gray;">+</span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">body</span><span style="color: Gray;">.</span><span style="color: Blue;">scrollLeft</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Blue;">menuplaceX</span><span style="color: Gray;">&gt;</span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">body</span><span style="color: Gray;">.</span><span style="color: Blue;">clientWidth</span><span style="color: Olive;">)</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">MainMenu</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">left</span><span style="color: Gray;">=</span><span style="color: Olive;">(</span><span style="color: Blue;">showplace</span><span style="color: Gray;">.</span><span style="color: Blue;">x</span><span style="color: Gray;">-</span><span style="color: Blue;">parseInt</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">MainMenu</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">width</span><span style="color: Olive;">)</span><span style="color: Gray;">-</span><span style="color: Maroon;">26</span><span style="color: Olive;">)</span><span style="color: Gray;">+</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">px</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">menuplaceY</span><span style="color: Gray;">=</span><span style="color: Blue;">parseInt</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">MainMenu</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">top</span><span style="color: Olive;">)</span><span style="color: Gray;">+</span><span style="color: Blue;">parseInt</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">MainMenuHeight</span><span style="color: Olive;">)</span><span style="color: Gray;">-</span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">body</span><span style="color: Gray;">.</span><span style="color: Blue;">scrollTop</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Blue;">menuplaceY</span><span style="color: Gray;">&gt;</span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">documentElement</span><span style="color: Gray;">.</span><span style="color: Blue;">clientHeight</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">MainMenu</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">top</span><span style="color: Gray;">=</span><span style="color: Olive;">(</span><span style="color: Blue;">showplace</span><span style="color: Gray;">.</span><span style="color: Blue;">y</span><span style="color: Gray;">-</span><span style="color: Blue;">parseInt</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">MainMenuHeight</span><span style="color: Olive;">))</span><span style="color: Gray;">+</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">px</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">MainMenu</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">display</span><span style="color: Gray;">=</span><span style="color: #8b0000;">''</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">false</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>调用这个类的方法是……首先创建菜单的对象，在window.onload = function(){}或body onload=&#8221;"里加上：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">YYmenu</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">RightMenu</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li></ol></div>
<p>注意不能写作var YYmenu = new RightMenu();那样YYmenu就不是全局的了……</p>
<p>接下来，根据实际需要，设置菜单的具体项目，写成一个数组：["菜单项的名称","打开方式","点击的事件"]，比如：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">b</span><span style="color: Gray;">=</span><span style="color: Olive;">[</span><span style="color: Gray;">&nbsp; </span><span style="color: #ffa500;">//设置菜单b的具体项目</span></li>
<li><span style="color: Olive;">[</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">菜单b菜单b1</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">_blank</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">javascript:alert('hahahaha')</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">]</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">[</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">菜单b菜单b2</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span><span style="color: #8b0000;">&quot;&quot;</span><span style="color: Gray;">,</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">javascript:alert('xixixixi')</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">]</span><span style="color: Gray;">,</span></li>
<li><span style="color: Olive;">[</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">菜单b菜单b3</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span><span style="color: #8b0000;">&quot;&quot;</span><span style="color: Gray;">,</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">javascript:alert('xixixixi')</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">]</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">[</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">菜单b菜单b4</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span><span style="color: #8b0000;">&quot;&quot;</span><span style="color: Gray;">,</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">javascript:alert('xixixixi')</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">]</span><span style="color: Gray;">,</span></li>
<li><span style="color: Olive;">[</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">菜单b菜单b5</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span><span style="color: #8b0000;">&quot;&quot;</span><span style="color: Gray;">,</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">javascript:alert('xixixixi')</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">]</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">[</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">菜单b菜单b6</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span><span style="color: #8b0000;">&quot;&quot;</span><span style="color: Gray;">,</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">javascript:alert('xixixixi')</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">]</span></li>
<li><span style="color: Olive;">]</span><span style="color: Gray;">;</span></li></ol></div>
<p>需要几种样式的菜单，就建立几个数组。然后，给需要右键弹出菜单的页面元素加上oncontextmenu事件和自定义属性“hasmenu”（如果没有覆盖整个页面的全局右键菜单，就不用加这个属性）， 比如：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Green;">div</span><span style="color: Gray;"> </span><span style="color: #00008b;">oncontextmenu</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">return YYmenu.ShowMenu(event,b)</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">hasmenu</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">1</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">这是需要右键弹出菜单的元素</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">div</span><span style="color: Olive;">&gt;</span></li></ol></div>
<p>参数“b”就是包含菜单项目的那个数组。</p>
<p>如果想要在整个页面任何地方点右键都可以弹出一个通用的菜单，需要像这些调用：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">if</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Teal;">window</span><span style="color: Gray;">.</span><span style="color: Blue;">ActiveXObject</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">oncontextmenu</span><span style="color: Gray;">=</span><span style="color: Green;">function</span><span style="color: Olive;">(</span><span style="color: Blue;">yy</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; </span><span style="color: #ffa500;">//适用于IE</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">{</span><span style="color: Gray;">&nbsp;&nbsp; </span><span style="color: #ffa500;">//alert(event.srcElement.nodeName);</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp;&nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Blue;">event</span><span style="color: Gray;">.</span><span style="color: Blue;">srcElement</span><span style="color: Gray;">.</span><span style="color: Blue;">getAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">hasmenu</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">!=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">1</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">YYmenu</span><span style="color: Gray;">.</span><span style="color: Blue;">ShowMenu</span><span style="color: Olive;">(</span><span style="color: Blue;">yy</span><span style="color: Gray;">,</span><span style="color: Blue;">a</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span><span style="color: Green;">else</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">oncontextmenu</span><span style="color: Gray;">=</span><span style="color: Green;">function</span><span style="color: Olive;">(</span><span style="color: Blue;">event</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; </span><span style="color: #ffa500;">//适用于FIREFOX</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">{</span><span style="color: Gray;">&nbsp;&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp;&nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Blue;">event</span><span style="color: Gray;">.</span><span style="color: Blue;">target</span><span style="color: Gray;">.</span><span style="color: Blue;">getAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">hasmenu</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">!=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">1</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">YYmenu</span><span style="color: Gray;">.</span><span style="color: Blue;">ShowMenu</span><span style="color: Olive;">(</span><span style="color: Blue;">event</span><span style="color: Gray;">,</span><span style="color: Blue;">a</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>这里我处理的不太好，IE和FIREFOX在获取鼠标当前目标时，有一些差异还没完全理解……</p>
<p>最后的效果：<a href="http://demo.limboy.com/yymenu.html">点这里</a></p>
<p>这个javascript类的源文件：<a href="http://demo.limboy.com/js/right_menu.js">点这里</a></p>
<p>菜单的外观我就没时间弄了，如果你想把菜单做成本文左上角那副图里的效果，只要换一张背景图片，并且给每个LI加上背景就行了……</p>
]]></content:encoded>
			<wfw:commentRss>http://www.limboy.com/2006/10/22/contentmenu/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>会员管理界面的交互效果</title>
		<link>http://www.limboy.com/2006/09/27/ria/</link>
		<comments>http://www.limboy.com/2006/09/27/ria/#comments</comments>
		<pubDate>Wed, 27 Sep 2006 14:04:31 +0000</pubDate>
		<dc:creator>Dexter.Yy</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[界面]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/index.php/2006/09/27/ria/</guid>
		<description><![CDATA[做了一个多月的项目总算快结束了。一个网站的开发到了后期总是很无趣的，不仅有视觉疲劳，而且每天都只能做一些修修补补的事情，没有新想法、没有新挑战，从早到晚都要盯着密密麻麻的JS代码/CSS代码——改代码比写代码要痛苦多了……反正，做这类事情让人很容易疲劳……还会让人没力气写BLOG……
最近被经理调出来做下一个项目的前期工作，今天做了一个会员管理的页面，用来给客户做演示，“会员管理”听上去就只是那种无趣的后台页面，不过经理要求加入一些富客户端技术，因为是web2.0网站嘛-___-b ，于是我便正好借此机会练习一下:

这是今天完工的半成品，接下来还要用Ajax在页面里显示会员列表、字母查询等，把添加、删除、编辑、查询、帮助等功能都做在一个页面里，另外，还要连接一个很复杂的数据库……不过目前的页面里已经实现了几种交互功能。在这里记录一下几个问题：
2007.4.1更新：今天我从BLOGGER里转移这篇文章的时候，感觉本文后面写的一些技术问题相当幼稚，还有一些错误理解，为了避免以讹传讹，我就把这些内容删掉了：D 现在想起来，那个时候还是我第一次在开发中大量使用DOM技术。
虽然代码里遗留了很多不合理的地方，不过这个“会员管理”页面最终实现的功能和效果还是很不错的（甚至有点过于花哨了），现在已经应用在ICPS医生数据库的管理界面里，最终的效果在这里可以看到：http://68.236.165.90/index/
]]></description>
			<content:encoded><![CDATA[<p><img src="http://photo9.yupoo.com/20060927/225544_467040800_scuqgtnj.jpg" style="border: 5px solid rgb(0, 204, 255);width:150px;float:left;margin:0px 10px 0px 10px;" />做了一个多月的项目总算快结束了。一个网站的开发到了后期总是很无趣的，不仅有视觉疲劳，而且每天都只能做一些修修补补的事情，没有新想法、没有新挑战，从早到晚都要盯着密密麻麻的JS代码/CSS代码——改代码比写代码要痛苦多了……反正，做这类事情让人很容易疲劳……还会让人没力气写BLOG……</p>
<p>最近被经理调出来做下一个项目的前期工作，今天做了一个会员管理的页面，用来给客户做演示，“会员管理”听上去就只是那种无趣的后台页面，不过经理要求加入一些富客户端技术，因为是web2.0网站嘛-___-b ，于是我便正好借此机会练习一下:<span id="more-55"></span></p>
<p><a href="http://www.ntrpg.org/yy/yy/study/0926/mm.html" title="打开新网页" target="_blank"><img src="http://photo9.yupoo.com/20060927/225544_467040800_scuqgtnj.jpg" style="border: 5px solid rgb(0, 204, 255);" /></a></p>
<p>这是今天完工的半成品，接下来还要用Ajax在页面里显示会员列表、字母查询等，把添加、删除、编辑、查询、帮助等功能都做在一个页面里，另外，还要连接一个很复杂的数据库……不过<a href="http://www.ntrpg.org/yy/yy/study/0926/mm.html">目前的页面</a>里已经实现了几种交互功能。在这里记录一下几个问题：</p>
<p><strong>2007.4.1更新：</strong>今天我从BLOGGER里转移这篇文章的时候，感觉本文后面写的一些技术问题相当幼稚，还有一些错误理解，为了避免以讹传讹，我就把这些内容删掉了：D 现在想起来，那个时候还是我第一次在开发中大量使用DOM技术。</p>
<p>虽然代码里遗留了很多不合理的地方，不过这个“会员管理”页面最终实现的功能和效果还是很不错的（甚至有点过于花哨了），现在已经应用在ICPS医生数据库的管理界面里，最终的效果在这里可以看到：http://68.236.165.90/index/</p>
]]></content:encoded>
			<wfw:commentRss>http://www.limboy.com/2006/09/27/ria/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

