<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.feedsky.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feed.feedsky.com/LiveasMale" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feed.feedsky.com/LiveasMale" type="application/rss+xml"></fs:self_link><lastBuildDate>Wed, 29 Jul 2009 14:06:50 GMT</lastBuildDate><title>Live as Male</title><description>不曾放弃。</description><link>http://www.liveasmale.com/</link><language>zh-cn</language><copyright>Copyright 2005 PBlog3 v2.8</copyright><image><title>Live as Male</title><url>http://www.liveasmale.com/images/logos.gif</url><link>http://www.liveasmale.com/</link><description>Live as Male</description></image><item><title>舍弃与取消</title><link>http://www.liveasmale.com/article.asp?id=482</link><description>关于按钮“舍弃”与“取消”，舍弃是完全放弃目前这篇正在操作的事项内容，是取消和删除的结合体；而取消，仅仅是放弃自己刚刚对这个事项内容做的所有操作，它将恢复到原样，这次修改不造成影响；&lt;br/&gt;&lt;br/&gt;Gmail的处理方案，所有邮件的编辑模式都存在“发送”“立即保存”“舍弃”，&lt;br/&gt;“发送”表示编辑已经完成，而且以后也不会编辑，应该将其流入到下一个环节了，点击发送之后便不属于自己的操作范围了；&lt;br/&gt;“立即保存”表示将目前的编辑结果进行暂时保存进草稿，以避免断网等其它意外情况造成编辑内容丢失，之所以是立即保存，是因为系统有定时自动保存的功能；&lt;br/&gt;“舍弃”表示将目前正在编辑的表单（邮件）删除，丢弃的意思，这个表单将不属于我，也不属于其他人，而且销毁了，不存在了；&lt;br/&gt;那如果我不想要目前最新编辑的这部分内容，但原表单（邮件）也不想舍弃，怎么办？Gmail好像没有提供“取消”功能，但Gmail可以直接点击其它的功能菜单，进行其他的功能操作时，便自动取消了目前正在处理的表单；同时，系统会自动提示是否放弃新修改的内容，用户确认之后才跳转，这样也就避免了用户误操作而导致的新修改内容丢失；&lt;br/&gt;&lt;br/&gt;网易邮箱的解决方案，所有邮件的编辑模式都存在“发送”“存为草稿”“取消”，与Gmail不同的是没有舍弃这个按钮，舍弃功能单独放在邮件列表页面中，并用“删除”命令表示；代替“舍弃”的是“取消”按钮，即放弃目前所作的修改或者编辑信息，回到该页面的初始状态。&lt;br/&gt;&lt;br/&gt;两者不同的地方关键在于“新建邮件”和“修改草稿邮件”的页面中“舍弃”和“取消”究竟代表什么意思，而用户也最容易在这两者之间产生疑惑。&lt;br/&gt;舍弃的意思是放弃，不要，有种斩草除根的意思；而取消的意思是反悔，并回到初始状态，有种浪子回头的感觉。&lt;br/&gt;在“新建邮件”中舍弃和取消两者虽然意思不同，但最后的结果都一样，都代表删除这个新建的邮件；在修改草稿中，舍弃表示删除草稿，而取消代表删除所作的修改，而草稿保持原状态不变。&lt;br/&gt;&lt;br/&gt;为了提高用户的体验，提高产品的易用度，似乎网易的解决方案更好一些，统一用取消，表示刚才做的操作都无效；至于草稿的文件需要删除的，让用户自己去草稿箱用“删除”命令好了。&lt;br/&gt;&lt;br/&gt;虽然Gmail在草稿编辑区域的左下角有个“返回草稿箱”的链接，但难以想象有多少用户会在第一眼中就看见这个链接，而不用认真寻找就可以发现；同时，有多少用户会在这个“舍弃”按钮上纠结，不知道该点不该点，无法想象点击这个按钮到底有什么影响。&lt;br/&gt;&lt;br/&gt;一个新发明操作动作，如果能让用户更准确简洁地了解它所代表的意思、并能给操作带来简便快捷的话，是值得肯定和推荐的；但如果这个发明使得用户在使用过程中跟传统习惯产生混淆，造成模棱两可的理解，并且一旦用户按照传统习惯进行操作的话，将产生不可逆的误操作，比如Gmail的草稿编辑时，用户将舍弃当成了取消使用，造成草稿删除（没有确认提示框，直接删除），那么这个新发明在用户眼中就真的就不那么可爱了。不过还好，gmail的很多功能都有“撤销”功能，包括删除、转移、舍弃等操作，可以为用户提供挽救的方法，但这个AJAX功能似乎在一分钟之内就会消失，或者一旦用户跳转到其他页面后，这根救命稻草也许就永远消失了。&lt;img src=&quot;http://www1.feedsky.com/t1/269939989/LiveasMale/feedsky/s.gif?r=http://www.liveasmale.com/article.asp?id=482&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/LiveasMale/269939989/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/LiveasMale/269939989/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>· 体验</category><pubDate>Wed, 29 Jul 2009 22:06:50 +0800</pubDate><author>19bus@163.com(19bus)</author><guid isPermaLink="false">http://www.liveasmale.com/default.asp?id=482</guid><dc:creator>19bus@163.com(19bus)</dc:creator><fs:srclink>http://www.liveasmale.com/article.asp?id=482</fs:srclink><fs:srcfeed>http://www.liveasmale.com/feed.asp</fs:srcfeed><fs:itemid>feedsky/LiveasMale/~7040630/269939989/5148594</fs:itemid></item><item><title>JS控制DIV自适应浏览器高度和宽度</title><link>http://www.liveasmale.com/article.asp?id=481</link><description>1\先来实现获得当前浏览器的高度和宽度&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;form action=&amp;#34;#&amp;#34; method=&amp;#34;get&amp;#34; name=&amp;#34;form1&amp;#34; id=&amp;#34;form1&amp;#34;&amp;gt;&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;浏览器窗口 的 实际高度:&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;input type=&amp;#34;text&amp;#34; name=&amp;#34;availHeight&amp;#34; size=&amp;#34;4&amp;#34;&amp;gt;&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;br&amp;gt;&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;浏览器窗口 的 实际宽度:&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;input type=&amp;#34;text&amp;#34; name=&amp;#34;availWidth&amp;#34; size=&amp;#34;4&amp;#34;&amp;gt;&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;br&amp;gt;&lt;br/&gt;&amp;lt;/form&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;script type=&amp;#34;text/javascript&amp;#34;&amp;gt;&lt;br/&gt;var winWidth = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;var winHeight = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;function findDimensions() &lt;br/&gt;{&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;if (window.innerWidth)&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;winWidth = window.innerWidth;&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;else if ((document.body) &amp;amp;&amp;amp; (document.body.clientWidth))&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;winWidth = document.body.clientWidth;&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;if (window.innerHeight)&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;winHeight = window.innerHeight;&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;else if ((document.body) &amp;amp;&amp;amp; (document.body.clientHeight))&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;winHeight = document.body.clientHeight;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;if (document.documentElement&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp; document.documentElement.clientHeight &amp;amp;&amp;amp; document.documentElement.clientWidth){&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;winHeight = document.documentElement.clientHeight;&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;winWidth = document.documentElement.clientWidth;&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;document.form1.availHeight.value= winHeight;&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;document.form1.availWidth.value= winWidth;&lt;br/&gt;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;findDimensions();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;window.onresize=findDimensions;&lt;br/&gt;&amp;lt;/script&amp;gt;&lt;br/&gt;&lt;br/&gt;通过这样便将浏览器当前高度和宽度分别传递给winHeight和winWidth了.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;2\下一步将获得的这两个值传递给需要控制的层,&lt;br/&gt;&lt;br/&gt;&amp;lt;script type=&amp;#34;text/javascript&amp;#34;&amp;gt;&lt;br/&gt;function heightresize(leftheight){&lt;br/&gt;var left_height = typeof leftheight == &amp;#34;string&amp;#34; ? document.getElementById(leftheight) : leftheight;//先获得需要控制的那个层&lt;br/&gt;if (window.innerHeight) winHeight = window.innerHeight;&lt;br/&gt;else if ((document.body) &amp;amp;&amp;amp; (document.body.clientHeight)) winHeight = document.body.clientHeight;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;if (document.documentElement&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp; document.documentElement.clientHeight)&amp;#160;&amp;#160;&amp;#160;&amp;#160;winHeight = document.documentElement.clientHeight;&lt;br/&gt;//以上就是上一步中的代码&lt;br/&gt;left_height.style.height=(winHeight)+&amp;#34;px&amp;#34;;//将得到的浏览器高度值传递给指定层的css高度属性，注意=(winHeight)+&amp;#34;px&amp;#34;，如果不加“PX”的话，FF和chromium不会正常显示的，但IE可以。&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;&amp;lt;/script&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;div id=&amp;#34;divdiv&amp;#34; style=&amp;#34;display:block; color:#FFF; width:100%;&amp;#34; onclick=&amp;#34;heightresize(&amp;#39;divdiv&amp;#39;)&amp;#34;&amp;gt; 点击这个层，就可以让层的高度和浏览器窗口保持一致。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class=&quot;UBBPanel&quot;&gt;&lt;div class=&quot;UBBTitle&quot;&gt;&lt;img src=&quot;http://www.liveasmale.com/images/html.gif&quot; style=&quot;margin:0px 2px -3px 0px&quot;&gt; HTML代码&lt;/div&gt;&lt;div class=&quot;UBBContent&quot;&gt;&lt;TEXTAREA rows=&quot;8&quot; id=&quot;temp92553&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&amp;#34;Content-Type&amp;#34; content=&amp;#34;text/html; charset=utf-8&amp;#34; /&gt;
&lt;title&gt;无标题文档&lt;/title&gt;
&lt;/head&gt;

&lt;body style=&amp;#34;border:0; margin:0; padding:0&amp;#34;&gt;
&lt;script type=&amp;#34;text/javascript&amp;#34;&gt;
function heightresize(cooldiv){
var thediv = typeof cooldiv == &amp;#34;string&amp;#34; ? document.getElementById(cooldiv) : cooldiv;

if (window.innerHeight) winHeight = window.innerHeight;
else if ((document.body) &amp;amp;&amp;amp; (document.body.clientHeight)) winHeight = document.body.clientHeight;      
if (document.documentElement  &amp;amp;&amp;amp; document.documentElement.clientHeight)	winHeight = document.documentElement.clientHeight;

if (window.innerWidth) winWidth = window.innerWidth;
else if ((document.body) &amp;amp;&amp;amp; (document.body.clientWidth)) winWidth = document.body.clientWidth;      
if (document.documentElement  &amp;amp;&amp;amp; document.documentElement.clientWidth)	winWidth = document.documentElement.clientWidth;

thediv.style.height=(winHeight)+&amp;#34;px&amp;#34;;
thediv.style.width=(winWidth)+&amp;#34;px&amp;#34;;
}

&lt;/script&gt;
&lt;script&gt;
function autoresize() {
heightresize('divdiv');
ID=setTimeout('autoresize()', 1000);
}
&lt;/script&gt;
&lt;div style=&amp;#34;position:absolute; top:10px; left:20px; &amp;#34;&gt;
&lt;a href=&amp;#34;#&amp;#34; onclick=&amp;#34;autoresize()&amp;#34; style=&amp;#34;color:#FFF&amp;#34;&gt;点击这里将使得层随着浏览器窗口大小的变化而自动变化&lt;/a&gt;&lt;br&gt;
&lt;a href=&amp;#34;javascript: clearTimeout(ID);&amp;#34; style=&amp;#34;color:#FFF&amp;#34;&gt;取消自动变化&lt;/a&gt;&lt;/div&gt;
&lt;div id=&amp;#34;divdiv&amp;#34; style=&amp;#34;display:block; color:#FFF; background-color:#36F; height:50px; width:50%;&amp;#34; onclick=&amp;#34;heightresize('divdiv')&amp;#34; title=&amp;#34;点击层将自适应高度和宽度&amp;#34;&gt;&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
&lt;/TEXTAREA&gt;&lt;br/&gt;&lt;INPUT onclick=&quot;runEx('temp92553')&quot;  type=&quot;button&quot; class=&quot;userbutton&quot; value=&quot;运行此代码&quot;/&gt; &lt;INPUT onclick=&quot;doCopy('temp92553')&quot;  type=&quot;button&quot; class=&quot;userbutton&quot; value=&quot;复制此代码&quot;/&gt; &lt;INPUT onclick=&quot;saveCode('temp92553')&quot; type=&quot;button&quot; class=&quot;userbutton&quot; value=&quot;保存此代码&quot;&gt;&lt;br/&gt; [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]&lt;/div&gt;&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/269940030/LiveasMale/feedsky/s.gif?r=http://www.liveasmale.com/article.asp?id=481&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/LiveasMale/269940030/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/LiveasMale/269940030/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>· 前端</category><pubDate>Fri, 03 Jul 2009 22:11:02 +0800</pubDate><author>19bus@163.com(19bus)</author><guid isPermaLink="false">http://www.liveasmale.com/default.asp?id=481</guid><dc:creator>19bus@163.com(19bus)</dc:creator><fs:srclink>http://www.liveasmale.com/article.asp?id=481</fs:srclink><fs:srcfeed>http://www.liveasmale.com/feed.asp</fs:srcfeed><fs:itemid>feedsky/LiveasMale/~7040630/269940030/5148594</fs:itemid></item><item><title>浏览器兼容高级篇：通杀浏览器兼容</title><link>http://www.liveasmale.com/article.asp?id=480</link><description>&lt;u&gt;&lt;strong&gt;一、CSS HACK &lt;/strong&gt;&lt;/u&gt;&lt;br/&gt;&lt;br/&gt;以下两种方法几乎能解决现今所有HACK. &lt;br/&gt;&lt;br/&gt;1, !important &lt;br/&gt;&lt;br/&gt;随着IE7对!important的支持, !important 方法现在只针对IE6的HACK.(注意写法.记得该声明位置需要提前.) &lt;br/&gt;&amp;lt;style&amp;gt; &lt;br/&gt;#wrapper &lt;br/&gt;{ &lt;br/&gt;width: 100px!important; /* IE7+FF */ &lt;br/&gt;width: 80px; /* IE6 */ &lt;br/&gt;} &lt;br/&gt;&amp;lt;/style&amp;gt; &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;2, IE6/IE77对FireFox &lt;br/&gt;&lt;br/&gt;*+html 与 *html 是IE特有的标签, firefox 暂不支持.而*+html 又为 IE7特有标签. &lt;br/&gt;&amp;lt;style&amp;gt; &lt;br/&gt;#wrapper &lt;br/&gt;{ &lt;br/&gt;#wrapper { width: 120px; } /* FireFox */ &lt;br/&gt;*html #wrapper { width: 80px;} /* ie6 fixed */ &lt;br/&gt;*+html #wrapper { width: 60px;} /* ie7 fixed, 注意顺序 */ &lt;br/&gt;} &lt;br/&gt;&amp;lt;/style&amp;gt; &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;注意: &lt;br/&gt;*+html 对IE7的HACK 必须保证HTML顶部有如下声明： &lt;br/&gt;&amp;lt;!DOCTYPE HTML PUBLIC &amp;#34;-//W3C//DTD HTML 4.01 Transitional//EN&amp;#34; &amp;#34;&lt;a href=&quot;http://www.w3.org/TR/html4/loose.dtd&quot; target=&quot;_blank&quot; rel=&quot;external&quot;&gt;http://www.w3.org/TR/html4/loose.dtd&lt;/a&gt;&amp;#34;&amp;gt; &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;&lt;u&gt;二、万能 float 闭合 &lt;/u&gt;&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;关于 clear float 的原理可参见 [How To Clear Floats Without Structural Markup] &lt;br/&gt;将以下代码加入Global CSS 中,给需要闭合的div加上 class=&amp;#34;clearfix&amp;#34; 即可,屡试不爽. &lt;br/&gt;&amp;lt;style&amp;gt; &lt;br/&gt;/* Clear Fix */ &lt;br/&gt;&lt;br/&gt;.clearfix:after &lt;br/&gt;{ &lt;br/&gt;content:&amp;#34;.&amp;#34;; &lt;br/&gt;display:block; &lt;br/&gt;height:0; &lt;br/&gt;clear:both; &lt;br/&gt;visibility:hidden; &lt;br/&gt;} &lt;br/&gt;.clearfix &lt;br/&gt;{ &lt;br/&gt;display:inline-block; &lt;br/&gt;} &lt;br/&gt;/* Hide from IE Mac */ &lt;br/&gt;.clearfix {display:block;} &lt;br/&gt;/* End hide from IE Mac */ &lt;br/&gt;/* end of clearfix */ &lt;br/&gt;&amp;lt;/style&amp;gt; &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;u&gt;&lt;strong&gt;三、其他兼容技巧 &lt;/strong&gt;&lt;/u&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;1, FF下给 div 设置 padding 后会导致 width 和 height 增加, 但IE不会.(可用!important解决) &lt;br/&gt;2, 居中问题. &lt;br/&gt;1).垂直居中.将 line-height 设置为 当前 div 相同的高度, 再通过 vertical-align: middle.( 注意内容不要换行.) &lt;br/&gt;2).水平居中. margin: 0 auto;(当然不是万能) &lt;br/&gt;3, 若需给 a 标签内内容加上 样式, 需要设置 display: block;(常见于导航标签) &lt;br/&gt;4, FF 和 IE 对 BOX 理解的差异导致相差 2px 的还有设为 float的div在ie下 margin加倍等问题. &lt;br/&gt;5, ul 标签在 FF 下面默认有 list-style 和 padding . 最好事先声明, 以避免不必要的麻烦. (常见于导航标签和内容列表) &lt;br/&gt;6, 作为外部 wrapper 的 div 不要定死高度, 最好还加上 overflow: hidden.以达到高度自适应. &lt;br/&gt;7, 关于手形光标. cursor: pointer. 而hand 只适用于 IE. &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;u&gt;&lt;strong&gt;四、常见hack&lt;/strong&gt;&lt;/u&gt;&lt;br/&gt;&lt;br/&gt;1 针对firefox ie6 ie7的css样式 &lt;br/&gt;现在大部分都是用!important来hack，对于ie6和firefox测试可以正常显示， &lt;br/&gt;但是ie7对!important可以正确解释，会导致页面没按要求显示！找到一个针 &lt;br/&gt;对IE7不错的hack方式就是使用“*+html”，现在用IE7浏览一下，应该没有问题了。 &lt;br/&gt;现在写一个CSS可以这样： &lt;br/&gt;&lt;br/&gt;#1 { color: #333; } /* Moz */ &lt;br/&gt;* html #1 { color: #666; } /* IE6 */ &lt;br/&gt;*+html #1 { color: #999; } /* IE7 */ &lt;br/&gt;那么在firefox下字体颜色显示为#333，IE6下字体颜色显示为#666，IE7下字体颜色显示为#999。 &lt;br/&gt;&lt;br/&gt;2 css布局中的居中问题 &lt;br/&gt;主要的样式定义如下： &lt;br/&gt;&lt;br/&gt;body {TEXT-ALIGN: center;} &lt;br/&gt;#center { MARGIN-RIGHT: auto; MARGIN-LEFT: auto; } &lt;br/&gt;说明： &lt;br/&gt;首先在父级元素定义TEXT-ALIGN: center;这个的意思就是在父级元素内的内容居中；对于IE这样设定就已经可以了。 &lt;br/&gt;但在mozilla中不能居中。解决办法就是在子元素定义时候设定时再加上“MARGIN-RIGHT: auto;MARGIN-LEFT: auto; ” &lt;br/&gt;需要说明的是，如果你想用这个方法使整个页面要居中，建议不要套在一个DIV里，你可以依次拆出多个div， &lt;br/&gt;只要在每个拆出的div里定义MARGIN-RIGHT: auto;MARGIN-LEFT: auto; 就可以了。 &lt;br/&gt;&lt;br/&gt;3 盒模型不同解释 &lt;br/&gt;&lt;br/&gt;#box{ width:600px; //for ie6.0- w\idth:500px; //for ff+ie6.0} &lt;br/&gt;#box{ width:600px!important //for ff width:600px; //for ff+ie6.0 width /**/:500px; //for ie6.0-} &lt;br/&gt;&lt;br/&gt;4 浮动ie产生的双倍距离 &lt;br/&gt;&lt;br/&gt;#box{ float:left; width:100px; margin:0 0 0 100px; //这种情况之下IE会产生200px的距离 display:inline; //使浮动忽略} &lt;br/&gt;这里细说一下block,inline两个元素,Block元素的特点是:总是在新行上开始,高度,宽度,行高,边距都可以控制(块元素);Inline元素的特点是:和其他元素在同一行上,...不可控制(内嵌元素); &lt;br/&gt;&lt;br/&gt;#box{ display:block; //可以为内嵌元素模拟为块元素 display:inline; //实现同一行排列的的效果 diplay:table; &lt;br/&gt;&lt;br/&gt;IE不认得min-这个定义，但实际上它把正常的width和height当作有min的情况来使。这样问题就大了，如果只用宽度和高度， &lt;br/&gt;正常的浏览器里这两个值就不会变，如果只用min-width和min-height的话，IE下面根本等于没有设置宽度和高度。 &lt;br/&gt;比如要设置背景图片，这个宽度是比较重要的。要解决这个问题，可以这样： &lt;br/&gt;#box{ width: 80px; height: 35px;}html&amp;gt;body #box{ width: auto; height: auto; min-width: 80px; min-height: 35px;} &lt;br/&gt;&lt;br/&gt;6 页面的最小宽度 &lt;br/&gt;&lt;br/&gt;min-width是个非常方便的CSS命令，它可以指定元素最小也不能小于某个宽度，这样就能保证排版一直正确。但IE不认得这个， &lt;br/&gt;而它实际上把width当做最小宽度来使。为了让这一命令在IE上也能用，可以把一个&amp;lt;div&amp;gt; 放到 &amp;lt;body&amp;gt; 标签下，然后为div指定一个类： &lt;br/&gt;然后CSS这样设计： &lt;br/&gt;#container{ min-width: 600px; width:e­xpression(document.body.clientWidth &amp;lt; 600? &amp;#34;600px&amp;#34;: &amp;#34;auto&amp;#34; );} &lt;br/&gt;第一个min-width是正常的；但第2行的width使用了Javascript，这只有IE才认得，这也会让你的HTML文档不太正规。它实际上通过Javascript的判断来实现最小宽度。 &lt;br/&gt;&lt;br/&gt;7 清除浮动 &lt;br/&gt;&lt;br/&gt;.hackbox{ display:table; //将对象作为块元素级的表格显示}或者.hackbox{ clear:both;} &lt;br/&gt;或者加入:after（伪对象）,设置在对象后发生的内容，通常和content配合使用，IE不支持此伪对象，非Ie 浏览器支持， &lt;br/&gt;所 以并不影响到IE/WIN浏览器。这种的最麻烦的......#box:after{ content: &amp;#34;.&amp;#34;; display: block; height: 0; clear: both; visibility: hidden;} &lt;br/&gt;&lt;br/&gt;8 DIV浮动IE文本产生3象素的bug &lt;br/&gt;&lt;br/&gt;左边对象浮动，右边采用外补丁的左边距来定位，右边对象内的文本会离左边有3px的间距. &lt;br/&gt;&lt;br/&gt;#box{ float:left; width:800px;}#left{ float:left; width:50%;}#right{ width:50%;}*html #left{ margin-right:-3px; //这句是关键} &lt;br/&gt;HTML代码&amp;lt;div id=&amp;#34;box&amp;#34;&amp;gt; &amp;lt;div id=&amp;#34;left&amp;#34;&amp;gt;&amp;lt;/div&amp;gt; &amp;lt;div id=&amp;#34;right&amp;#34;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt; &lt;br/&gt;&lt;br/&gt;9 属性选择器(这个不能算是兼容,是隐藏css的一个bug) &lt;br/&gt;&lt;br/&gt;p[id]{}div[id]{} &lt;br/&gt;这个对于IE6.0和IE6.0以下的版本都隐藏,FF和OPera作用 &lt;br/&gt;属性选择器和子选择器还是有区别的,子选择器的范围从形式来说缩小了,属性选择器的范围比较大,如p[id]中,所有p标签中有id的都是同样式的. &lt;br/&gt;&lt;br/&gt;10 IE捉迷藏的问题 &lt;br/&gt;&lt;br/&gt;当div应用复杂的时候每个栏中又有一些链接，DIV等这个时候容易发生捉迷藏的问题。 &lt;br/&gt;有些内容显示不出来，当鼠标选择这个区域是发现内容确实在页面。 &lt;br/&gt;解决办法：对#layout使用line-height属性 或者给#layout使用固定高和宽。页面结构尽量简单。 &lt;br/&gt;&lt;br/&gt;11 高度不适应 &lt;br/&gt;&lt;br/&gt;高度不适应是当内层对象的高度发生变化时外层高度不能自动进行调节，特别是当内层对象使用 &lt;br/&gt;margin 或paddign 时。 &lt;br/&gt;例： &lt;br/&gt;&amp;lt;div id=&amp;#34;box&amp;#34;&amp;gt; &lt;br/&gt;&amp;lt;p&amp;gt;p对象中的内容&amp;lt;/p&amp;gt; &lt;br/&gt;&amp;lt;/div&amp;gt; &lt;br/&gt;CSS：#box {background-color:#eee; } &lt;br/&gt;#box p {margin-top: 20px;margin-bottom: 20px; text-align:center; } &lt;br/&gt;解决方法：在P对象上下各加2个空的div对象CSS代码：.1{height:0px;overflow:hidden;}或者为DIV加上border属性。 &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;u&gt;&lt;strong&gt;六、CSS兼容要点分析IE vs FF &lt;/strong&gt;&lt;/u&gt;&lt;br/&gt;&lt;br/&gt;CSS 兼容要点： &lt;br/&gt;&lt;br/&gt;DOCTYPE 影响 CSS 处理 &lt;br/&gt;&lt;br/&gt;FF: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行 &lt;br/&gt;&lt;br/&gt;FF: body 设置 text-align 时, div 需要设置 margin: auto(主要是 margin-left,margin-right) 方可居中 &lt;br/&gt;&lt;br/&gt;FF: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 height 和 width &lt;br/&gt;&lt;br/&gt;FF: 支持 !important, IE 则忽略, 可用 !important 为 FF 特别设置样式 &lt;br/&gt;&lt;br/&gt;div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字，就垂直居中了。缺点是要控制内容不要换行 &lt;br/&gt;&lt;br/&gt;cursor: pointer 可以同时在 IE FF 中显示游标手指状， hand 仅 IE 可以 &lt;br/&gt;&lt;br/&gt;FF: 链接加边框和背景色，需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为了避免底边显示错位, 若不设 height, 可以在 menubar 中插入一个空格XHTML+CSS兼容性解决方案小集 &lt;br/&gt;&lt;br/&gt;使用XHTML＋CSS构架好处不少，但也确实存在一些问题，不论是因为使用不熟练还是思路不清晰，我就先把一些我遇到的问题写在下面，省的大家四处找^^ &lt;br/&gt;&lt;br/&gt;1、在mozilla firefox和IE中的BOX模型解释不一致导致相差2px解决方法： &lt;br/&gt;&lt;br/&gt;div{margin:30px!important;margin:28px;} &lt;br/&gt;&lt;br/&gt;注意这两个margin的顺序一定不能写反，据阿捷的说法!important这个属性IE不能识别，但别的浏览器可以识别。所以在IE下其实解释成这样： &lt;br/&gt;&lt;br/&gt;div{maring:30px;margin:28px} &lt;br/&gt;&lt;br/&gt;重复定义的话按照最后一个来执行，所以不可以只写margin:XXpx!important; &lt;br/&gt;&lt;br/&gt;2、IE5 和IE6的BOX解释不一致IE5下div{width:300px;margin:0 10px 0 10px;}div的宽度会被解释为300px-10px(右填充)-10px(左填充)最终div的宽度为280px，而在IE6和其他浏览器上宽度则 是以300px+10px(右填充)+10px(左填充)=320px来计算的。这时我们可以做如下修改 &lt;br/&gt;&lt;br/&gt;div{width:300px!important;width /**/:340px;margin:0 10px 0 10px} &lt;br/&gt;&lt;br/&gt;，关于这个/**/是什么我也不太明白，只知道IE5和firefox都支持但IE6不支持，如果有人理解的话，请告诉我一声，谢了！：） &lt;br/&gt;&lt;br/&gt;3、ul标签在Mozilla中默认是有padding值的,而在IE中只有margin有值所以先定义 &lt;br/&gt;&lt;br/&gt;ul{margin:0;padding:0;} &lt;br/&gt;&lt;br/&gt;就能解决大部分问题 &lt;br/&gt;&lt;br/&gt;4、关于脚本，在xhtml1.1中不支持language属性，只需要把代码改为 &lt;br/&gt;&lt;br/&gt;&amp;lt; type=&amp;#34;text/java&amp;#34;&amp;gt; &lt;br/&gt;&lt;br/&gt;就可以了 &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;u&gt;&lt;strong&gt;七、10个你未必知道的CSS技巧 &lt;/strong&gt;&lt;/u&gt;&lt;br/&gt;&lt;br/&gt;1、CSS字体属性简写规则 &lt;br/&gt;&lt;br/&gt;一般用CSS设定字体属性是这样做的： &lt;br/&gt;&lt;br/&gt;font-weight:bold; &lt;br/&gt;&lt;br/&gt;font-style:italic; &lt;br/&gt;&lt;br/&gt;font-varient:small-caps; &lt;br/&gt;&lt;br/&gt;font-size:1em; &lt;br/&gt;&lt;br/&gt;line-height:1.5em; &lt;br/&gt;&lt;br/&gt;font-family:verdana,sans-serif; &lt;br/&gt;&lt;br/&gt;但也可以把它们全部写到一行上去： &lt;br/&gt;&lt;br/&gt;font: bold italic small-caps 1em/1.5em verdana,sans-serif; &lt;br/&gt;&lt;br/&gt;真不错！只有一点要提醒的：这种简写方法只有在同时指定font-size和font-family属性时才起作用。而且，如果你没有设定font-weight, font-style, 以及 font-varient ，他们会使用缺省值，这点要记上。 &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;2、同时使用两个类 &lt;br/&gt;&lt;br/&gt;一般只能给一个元素设定一个类（Class），但这并不意味着不能用两个。事实上，你可以这样： &lt;br/&gt;&lt;br/&gt;&amp;lt;p class=&amp;#34;text side&amp;#34;&amp;gt;...&amp;lt;/p&amp;gt; &lt;br/&gt;&lt;br/&gt;同时给P元素两个类，中间用空格格开，这样所有text和side两个类的属性都会加到P元素上来。如果它们两个类中的属性有冲突的话，后设置的起作用，即在CSS文件中放在后面的类的属性起作用。 &lt;br/&gt;&lt;br/&gt;补充：对于一个ID，不能这样写&amp;lt;p id=&amp;#34;text side&amp;#34;&amp;gt;...&amp;lt;/p&amp;gt;也不能这样写 &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;3、CSS border的缺省值 &lt;br/&gt;&lt;br/&gt;通常可以设定边界的颜色，宽度和风格，如： &lt;br/&gt;&lt;br/&gt;border: 3px solid #000 &lt;br/&gt;&lt;br/&gt;这位把边界显示成3像素宽，黑色，实线。但实际上这里只需要指定风格即可。 &lt;br/&gt;&lt;br/&gt;如果只指定了风格，其他属性就会使用缺省值。一般地，Border的宽度缺省是medium，一般等于3到4个像素；缺省的颜色是其中文字的颜色。如果这个值正好合适的话，就不用设那么多了。&lt;br/&gt;&lt;br/&gt; &lt;br/&gt;&lt;br/&gt;4、CSS用于文档打印 &lt;br/&gt;&lt;br/&gt;许多网站上都有一个针对打印的版本，但实际上这并不需要，因为可以用CSS来设定打印风格。 &lt;br/&gt;&lt;br/&gt;也就是说，可以为页面指定两个CSS文件，一个用于屏幕显示，一个用于打印： &lt;br/&gt;&lt;br/&gt;&amp;lt;link type=&amp;#34;text/css&amp;#34; rel=&amp;#34;stylesheet&amp;#34; href=&amp;#34;/blog/stylesheet.css&amp;#34; media=&amp;#34;screen&amp;#34; /&amp;gt; &amp;lt;link type=&amp;#34;text/css&amp;#34; rel=&amp;#34;stylesheet&amp;#34; href=&amp;#34;printstyle.css&amp;#34; media=&amp;#34;print&amp;#34; /&amp;gt; &lt;br/&gt;&lt;br/&gt;第1行就是显示，第2行是打印，注意其中的media属性。 &lt;br/&gt;&lt;br/&gt;但应该在打印CSS中写什么东西呢？你可以按设计普通CSS的方法来设定它。设计的同时就可以把这个CSS设成显示CSS来检查它的效果。也许你会使用 display: none 这个命令来关掉一些装饰图片，再关掉一些导航按钮。要想了解更多，可以看“打印差异”这一篇。 &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;5、图片替换技巧 &lt;br/&gt;&lt;br/&gt;一般都建议用标准的HTML来显示文字，而不要使用图片，这样不但快，也更具可读性。但如果你想用一些特殊字体时，就只能用图片了。 &lt;br/&gt;&lt;br/&gt;比如你想整个卖东西的图标，你就用了这个图片： &lt;br/&gt;&lt;br/&gt;&amp;lt;h1&amp;gt;&amp;lt;img src=&amp;#34;/blog/widget-image.gif&amp;#34; alt=&amp;#34;Buy widgets&amp;#34; /&amp;gt;&amp;lt;/h1&amp;gt; &lt;br/&gt;&lt;br/&gt;这当然可以，但对搜索引擎来说，和正常文字相比，它们对alt里面的替换文字几乎没有兴趣这是因为许多设计者在这里放许多关键词来骗搜索引擎。所以方法应该是这样的： &lt;br/&gt;&lt;br/&gt;&amp;lt;h1&amp;gt;Buy widgets&amp;lt;/h1&amp;gt; &lt;br/&gt;&lt;br/&gt;但这样就没有特殊字体了。要想达到同样效果，可以这样设计CSS： &lt;br/&gt;&lt;br/&gt;h1 { background: url(/blog/widget-image.gif) no-repeat; height: image height text-indent: -2000px } &lt;br/&gt;&lt;br/&gt;注意把image height换成真的图片的高度。这里，图片会当作背景显示出来，而真正的文字由于设定了-2000像素这个缩进，它们会出现在屏幕左边2000点的地方，就看不见了。但这对于关闭图片的人来说，可能全部看不到了，这点要注意。 &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;6、CSS box模型的另一种调整技巧 &lt;br/&gt;&lt;br/&gt;这个Box模型的调整主要是针对IE6之前的IE浏览器的，它们把边界宽度和空白都算在元素宽度上。比如： &lt;br/&gt;&lt;br/&gt;#box { width: 100px; border: 5px; padding: 20px } &lt;br/&gt;&lt;br/&gt;这样调用它： &lt;br/&gt;&lt;br/&gt;&amp;lt;div id=&amp;#34;box&amp;#34;&amp;gt;...&amp;lt;/div&amp;gt; &lt;br/&gt;&lt;br/&gt;这时盒子的全宽应该是150点，这在除IE6之前的IE浏览器之外的所有浏览器上都是正确的。但在IE5这样的浏览器上，它的全宽仍是100点。可以用以前人发明的Box调整方法来处理这种差异。 &lt;br/&gt;&lt;br/&gt;但用CSS也可以达到同样的目的，让它们显示效果一致。 &lt;br/&gt;&lt;br/&gt;#box { width: 150px } #box div { border: 5px; padding: 20px } &lt;br/&gt;&lt;br/&gt;这样调用： &lt;br/&gt;&lt;br/&gt;&amp;lt;div id=&amp;#34;box&amp;#34;&amp;gt;&amp;lt;div&amp;gt;...&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt; &lt;br/&gt;&lt;br/&gt;这样，不管什么浏览器，宽度都是150点了。 &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;7、块元素居中对齐 &lt;br/&gt;&lt;br/&gt;如果想做个固定宽度的网页并且想让网页水平居中的话，通常是这样： &lt;br/&gt;&lt;br/&gt;#content { width: 700px; margin: 0 auto } &lt;br/&gt;&lt;br/&gt;你会使用 &amp;lt;div id=&amp;#34;content&amp;#34;&amp;gt; 来围上所有元素。这很简单，但不够好，IE6之前版本会显示不出这种效果。改CSS如下： &lt;br/&gt;&lt;br/&gt;body { text-align: center } #content { text-align: left; width: 700px; margin: 0 auto } &lt;br/&gt;&lt;br/&gt;这会把网页内容都居中，所以在Content中又加入了 &lt;br/&gt;&lt;br/&gt;text-align: left 。 &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;8、用CSS来处理垂直对齐 &lt;br/&gt;&lt;br/&gt;垂直对齐用表格可以很方便地实现，设定表格单元 vertical-align: middle 就可以了。但对CSS来说这没用。如果你想设定一个导航条是2em高，而想让导航文字垂直居中的话，设定这个属性是没用的。 &lt;br/&gt;&lt;br/&gt;CSS方法是什么呢？对了，把这些文字的行高设为 2em：line-height: 2em ，这就可以了。 &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;9、CSS在容器内定位 &lt;br/&gt;&lt;br/&gt;CSS的一个好处是可以把一个元素任意定位，在一个容器内也可以。比如对这个容器： &lt;br/&gt;&lt;br/&gt;#container { position: relative } &lt;br/&gt;&lt;br/&gt;这样容器内所有的元素都会相对定位，可以这样用： &lt;br/&gt;&lt;br/&gt;&amp;lt;div id=&amp;#34;container&amp;#34;&amp;gt;&amp;lt;div id=&amp;#34;navigation&amp;#34;&amp;gt;...&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt; &lt;br/&gt;&lt;br/&gt;如果想定位到距左30点，距上5点，可以这样： &lt;br/&gt;&lt;br/&gt;#navigation { position: absolute; left: 30px; top: 5px } &lt;br/&gt;&lt;br/&gt;当然，你还可以这样： &lt;br/&gt;&lt;br/&gt;margin: 5px 0 0 30px &lt;br/&gt;&lt;br/&gt;注意4个数字的顺序是：上、右、下、左。当然，有时候定位的方法而不是边距的方法更好些。 &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;10、直通到屏幕底部的背景色 &lt;br/&gt;&lt;br/&gt;在垂直方向是进行控制是CSS所不能的。如果你想让导航栏和内容栏一样直通到页面底部，用表格是很方便的，但如果只用这样的CSS： &lt;br/&gt;&lt;br/&gt;#navigation { background: blue; width: 150px } &lt;br/&gt;&lt;br/&gt;较短的导航条是不会直通到底部的，半路内容结束时它就结束了。该怎么办呢？ &lt;br/&gt;&lt;br/&gt;不幸的是，只能采用欺骗的手段了，给这较短的一栏加上个背景图，宽度和栏宽一样，并让它的颜色和设定的背景色一样。 &lt;br/&gt;&lt;br/&gt;body { background: url(/blog/blue-image.gif) 0 0 repeat-y } &lt;br/&gt;&lt;br/&gt;此时不能用em做单位，因为那样的话，一旦读者改变了字体大小，这个花招就会露馅，只能使用px&lt;br/&gt;&lt;br/&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/269940061/LiveasMale/feedsky/s.gif?r=http://www.liveasmale.com/article.asp?id=480&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/LiveasMale/269940061/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/LiveasMale/269940061/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>· 前端</category><pubDate>Sun, 07 Jun 2009 09:53:38 +0800</pubDate><author>19bus@163.com(19bus)</author><guid isPermaLink="false">http://www.liveasmale.com/default.asp?id=480</guid><dc:creator>19bus@163.com(19bus)</dc:creator><fs:srclink>http://www.liveasmale.com/article.asp?id=480</fs:srclink><fs:srcfeed>http://www.liveasmale.com/feed.asp</fs:srcfeed><fs:itemid>feedsky/LiveasMale/~7040630/269940061/5148594</fs:itemid></item><item><title>经典书籍的笔记</title><link>http://www.liveasmale.com/article.asp?id=479</link><description>读了大师的《22条商规》，很有启发，一切只待实践的检验，列出一些总结笔记：&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;　　【战略层】： &lt;br/&gt;&lt;br/&gt;　　1、××领域的第一厂家（有时需要创新，开天辟地一块新领域） &lt;br/&gt;　　2、本产品应集中解决一个问题； &lt;br/&gt;　　3、给产品建立与竞争对手对立的、满足客户需求的、最重要的、独一无二的一个特征属性，并进行宣传，深入人心； &lt;br/&gt;　　4、牺牲放弃一些资源，使得自己的“产品系列”、“目标市场”“不断变化”得以集中优势力量并进行突击； &lt;br/&gt;　　5、短期计划（具体）转化为长期发展方向（宏观、重要）； &lt;br/&gt;　　6、驾驭趋势，而非时尚，保持市场对产品的长久需求，不要完全满足需求； &lt;br/&gt;　　7、关于品牌，一定要专而精；可以新建品牌，用一个新的观念来阐述自己的集中领域，并且作为业界领先产品的对立面而存在，但不能期望庇护的商标扩展，短期可能成功，但长期看来却是逐渐消亡。 &lt;br/&gt;　　 &lt;br/&gt;　　【执行层】： &lt;br/&gt;&lt;br/&gt;　　1、通过各种手段宣传，使独一无二的属性深入人心，观念策略； &lt;br/&gt;　　2、竞争对手的缺点，毫不手软地抨击或者射影； &lt;br/&gt;　　3、坦诚面对自己的缺点，得到客户的关注，得到支持理解，发现并支持我们的长处； &lt;br/&gt;　　4、如果出现不理想局面，及时分析调整，发扬集体主义，承认错误，不要一味坚持； &lt;br/&gt;　　5、最后的局面总是两强相争； &lt;br/&gt;　　6、集中优势兵力，各个突击，而不是全线出击； &lt;br/&gt;　　7、取得成功后，只能激励，不能自负，不能主观地来评判客户需求； &lt;br/&gt;　　8、需要一定的财力支持，宁愿选择三流的点子加一流的执行；&lt;br/&gt;&lt;br/&gt;--------附网络另一位读者笔记--------------------------------------------------------------&lt;br/&gt;&lt;br/&gt;　　第一，营销的最高原则是one word in consumer’s brain，one brand(观念法则+认知法则+聚焦法则)，聚焦法则是22条商规的灵魂和统领。实现这个法则的方法有： &lt;br/&gt;&lt;br/&gt;　　1.领先，你率先进入一个类别(这个领先不等于说在时间顺序上进入市场，而是要进入消费者的头脑——市场，在更本质上，就是消费者认知的集合，即让消费者认识到你是领先的——如何做到呢？首先进入市场是一个方法)； &lt;br/&gt;&lt;br/&gt;　　2.如果1不能实现，你就创造一个新的类别，使得自己成为第一。 &lt;br/&gt;&lt;br/&gt;　　3.如何创造这个类别呢？牺牲法则。 &lt;br/&gt;&lt;br/&gt;　　4.有两个过程体现了牺牲法则：第一，就是从细分市场中选择目标市场，你必须先放弃一些细分市场，又舍才有得；第二，在目标市场，从众多的words中选择一个word(属性)——你必须寻找一个(专有)，你肯定能找得到(属性)。 &lt;br/&gt;&lt;br/&gt;　　5.既然你选择了某个词语，那么就要坦诚你在其他词语里的并非第一，即坦诚法则。 &lt;br/&gt;&lt;br/&gt;　　第二，你的营销行为要充分考虑自己的能力与策略和竞争对手的能力与策略。 &lt;br/&gt;&lt;br/&gt;　　首先，你要知道自己的起点(阶梯法则)，有或者愿意付出多少资源(资源法则)； &lt;br/&gt;&lt;br/&gt;　　其次，你要在分析市场格局的基础上，如果的确做不了领先者，你就要充分研究领先者的战略(这也就是追随者的定位，即对立法则)；如果你已经准备好了，觉得可以挑战老大的地位了，就要找到它的软肋，集中精力，给予致命的一击(独特)。 &lt;br/&gt;&lt;br/&gt;　　再次，就是市场格局很难预测(不可测)，这说明了营销要充满柔性。 &lt;br/&gt;&lt;br/&gt;　　最后，就是二元原则，如果你不能成为二马之一，你就应该退出这个领域。 &lt;br/&gt;&lt;br/&gt;　　第三，就是营销者的心态问题，不要急于求成(长效法则)，为什么呢？因为你的营销计划应该根据趋势而不是时尚来做的，你要占领的是明天的时尚，所以一定要有耐心(加速)。 &lt;br/&gt;&lt;br/&gt;　　其次，就是成功法则(成功之后很容易导致延伸)； &lt;br/&gt;&lt;br/&gt;　　再次，就是失败法则。特劳特在陈述这个法则的时候主要是说内部激励机制的问题，就是要允许犯错误，否则大家畏首畏尾，导致无所作为。&lt;img src=&quot;http://www1.feedsky.com/t1/269940109/LiveasMale/feedsky/s.gif?r=http://www.liveasmale.com/article.asp?id=479&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/LiveasMale/269940109/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/LiveasMale/269940109/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>· 个人</category><pubDate>Mon, 18 May 2009 15:27:57 +0800</pubDate><author>19bus@163.com(19bus)</author><guid isPermaLink="false">http://www.liveasmale.com/default.asp?id=479</guid><dc:creator>19bus@163.com(19bus)</dc:creator><fs:srclink>http://www.liveasmale.com/article.asp?id=479</fs:srclink><fs:srcfeed>http://www.liveasmale.com/feed.asp</fs:srcfeed><fs:itemid>feedsky/LiveasMale/~7040630/269940109/5148594</fs:itemid></item><item><title>盒子模型的总结</title><link>http://www.liveasmale.com/article.asp?id=478</link><description>CSS有四大核心原理：&lt;br/&gt;1、盒子模型&lt;br/&gt;2、标准流&lt;br/&gt;3、浮动&lt;br/&gt;4、定位&lt;br/&gt;&lt;br/&gt;盒子模型和标准流这两点较容易理解，浮动和定位是盒子模型比较重要的性质，且其概念难以理解掌握，容易混淆。现在就浮动和定位进行一些个人归纳总结：&lt;br/&gt;&lt;br/&gt;【浮动】&lt;br/&gt;1、当对一个块级元素进行浮动之后，该元素将脱离文档流；紧接着的另一个元素将取代该元素的位置，但其文字、图片等内容信息将围绕第一个元素进行排布，并且遵循标准流原则；&lt;br/&gt;2、如果同时存在若干个浮动的元素，且有左浮动和右浮动，那么当浏览器的窗口宽度变窄时，谁会被挤下来“流动”到下一行呢？在html中越是排在后面的元素，越应该被挤下来。&lt;br/&gt;3、因为浮动，所以后面的元素必须围绕着浮动的元素进行排列，可以说是浮动的元素影响了其它后面的元素的排版格式，那么如何消除浮动元素对其的影响呢？此时clear横空出世了！它可以消除自己本身的左侧、右侧、两侧同时受到浮动盒子的影响，但要记得，clear是加在不愿受到影响的元素样式内，而不是加在“罪恶之源”浮动元素的样式；&lt;br/&gt;4、如果一个父盒子里的所有子元素都进行了浮动，那么这个父盒子将只剩一条线，没有任何高度，此时需要在所有子元素后面新增一个div，并需要指定其父DIV，对其重新设置margin、border、padding样式，设置其样式如下：&lt;br/&gt;&amp;nbsp;&amp;nbsp;.father .clear { margin:0; padding:0; border:0; clear:both;}&lt;br/&gt;&lt;br/&gt;【定位】：&lt;br/&gt;1、“相对定位”和“绝对定位”两者的研究对象主要有两点：A、以谁为定位基准；B、是否对父盒子和兄弟盒子有影响；&lt;br/&gt;2、“相对定位”继续存在于标准流中，以自己原本的位置为定位基准，并不影响其它盒子的位置，其它盒子视它“没有变化”一样； “绝对定位”脱离标准流，以“最近”的一个“已经定位”的“祖先元素”为定位基准，如果不存在这样的祖先元素，将以浏览器窗口进行定位，其它盒子视它“消失”一样，将填补它的位置；&lt;br/&gt;3、“相对定位”和“绝对定位”都将结合top bottom left right四个属性来进行具体细节的定位；&lt;br/&gt;4、绝对定位时的一个兼容性问题，当一个绝对定位的元素以左边框进行定位时，即比如 left:20px; 那么IE6的实际效果会增加一个父DIV的padding宽度，即20px+padding-left; 此时需要对父DIV新增一个Hack：&amp;nbsp;&amp;nbsp;height：1%；&lt;br/&gt;5、绝对定位的一个特性：如果绝对定位的元素没有设置其偏移量，即没有设置top bottom left right四个属性值，那么将保持原来的位置，该元素仅仅是脱离了文档流而已；&lt;br/&gt;&lt;br/&gt;【display】：&lt;br/&gt;盒子共有两种类型：一种是块级元素，如DIV P；一种是内联元素，如A SPAN。&amp;nbsp;&amp;nbsp;但可以使用dispaly：block 或者 inline 来改变二者状态；更可以使用none来让其消失，这些很有用；&lt;br/&gt;块级元素：1、总是在新行上开始；2、高，行高以及顶和底边距都可控制；3、宽度缺省是它的容器的100%，除非设定一个宽度。 4、其表现的特性是“ 块布局”形式&lt;br/&gt;内联元素：1、和其他元素都在一行上； 2、高，行高及顶和底边距不可改变；3、宽度就是它的文字或图片的宽度，不可改变。4、其表现的特性是“ 行布局”形式&lt;br/&gt;&lt;br/&gt;注意display: inline-block;&lt;br/&gt;&lt;br/&gt;【z-index】：&lt;br/&gt;对盒子设定定位position之后，通过设置z-index来设定其上下层叠的关系，数字越大，越在上层。&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/LiveasMale/269940152/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/LiveasMale/269940152/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>· 前端</category><pubDate>Tue, 05 May 2009 00:55:10 +0800</pubDate><author>19bus@163.com(19bus)</author><guid isPermaLink="false">http://www.liveasmale.com/default.asp?id=478</guid><dc:creator>19bus@163.com(19bus)</dc:creator><fs:srclink>http://www.liveasmale.com/article.asp?id=478</fs:srclink><fs:srcfeed>http://www.liveasmale.com/feed.asp</fs:srcfeed><fs:itemid>feedsky/LiveasMale/~7040630/269940152/5148594</fs:itemid></item><item><title>前段时间做的一些提案页面</title><link>http://www.liveasmale.com/article.asp?id=477</link><description>&lt;img src=&quot;http://www.liveasmale.com/attachments/month_0905/k200952234836.png&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;img src=&quot;http://www.liveasmale.com/attachments/month_0905/o200952234930.png&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;img src=&quot;http://www.liveasmale.com/attachments/month_0905/5200952235450.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt;&lt;br/&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/LiveasMale/269940170/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/LiveasMale/269940170/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>· 设计</category><pubDate>Sat, 02 May 2009 23:55:01 +0800</pubDate><author>19bus@163.com(19bus)</author><guid isPermaLink="false">http://www.liveasmale.com/default.asp?id=477</guid><dc:creator>19bus@163.com(19bus)</dc:creator><fs:srclink>http://www.liveasmale.com/article.asp?id=477</fs:srclink><fs:srcfeed>http://www.liveasmale.com/feed.asp</fs:srcfeed><fs:itemid>feedsky/LiveasMale/~7040630/269940170/5148594</fs:itemid></item><item><title>最简单的css滑动门技术</title><link>http://www.liveasmale.com/article.asp?id=476</link><description>&lt;p&gt;&lt;strong&gt;声明:(通过IE,FireFox测试)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;(1)&lt;/strong&gt;所谓的 滑动门，可以这样理解，菜单的 背景图(圆角，直角，其它等)会根据文字的多少而自动变长(变短)，这好象一个可滑动的门一样&lt;/p&gt;
&lt;p&gt;这样的背景图一般由两部分组成(左图和右图)&lt;/p&gt;
&lt;p&gt;一般，都有其中之一在大，所谓大，就是说，你的导航链接内文字的最长长度,(还有一种方法，可以用无限长的文字，需要三张背景图，左右边框各一张，中间图一张，你们可以想想怎样来实现)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;(2)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A:由于我们只用css来实现，且代码要尽可能的少，那么ul和li标签就是我们的首先了，&lt;/p&gt;
&lt;p&gt;B:ui有默认的标属性，我们要用margin:0px;padding:0px;list-style:none;来通用它&lt;/p&gt;
&lt;p&gt;C:li默认是竖着排列的，我们要用display:inline;来让它在单行中显示&lt;/p&gt;
&lt;p&gt;D:a默认是 行内元素，我们要设置它float:left来让它靠左边&lt;/p&gt;
&lt;p&gt;E:span默认也是 行内元素，我们常用它来调菜单的高度，所以要设置display:block;&lt;/p&gt;
&lt;p&gt;F:由于span在a标签内，如果span高度被拉高了，那么a中的背景图也会自动拉高&lt;/p&gt;
&lt;p&gt;G:由于span背景图在a背景图内，如果不设置a标签的padding-left:4px(&lt;span style=&quot;color: #0000ff&quot;&gt;它恰好为左背景图的宽&lt;/span&gt;);左边(a标签的)的背景图会被右边(span标签内的)的背景图完全覆盖&lt;/p&gt;
&lt;p&gt;H:图片的定位是由&lt;/p&gt;
&lt;p&gt;background:url(tableft.gif) left top no-repeat;和&lt;/p&gt;
&lt;p&gt;background:url(tableft.gif) left -42px no-repeat;&lt;/p&gt;
&lt;p&gt;来实现的，&lt;span style=&quot;color: #0000ff&quot;&gt;一定要设置no-repeat,-42为图片总高的一半&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;实现代码和效果代码如下:&lt;/p&gt;
&lt;p&gt;----------------------------------------------------------------------------------------------------------------------------------&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;DHTML:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;div id=&amp;quot;menu&amp;quot;&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;&amp;lt;span&amp;gt;Home&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;&amp;lt;span&amp;gt;News&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;&amp;lt;span&amp;gt;Downloads&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;&amp;lt;span&amp;gt;Services&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;&amp;lt;span&amp;gt;Support&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;&amp;lt;span&amp;gt;About&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;/ul&amp;gt;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;CSS:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;a{ text-decoration:none; color:#FFFFFF;}&lt;/p&gt;
&lt;p&gt;#menu ul{ margin:0px; padding:0px; list-style:none;}&lt;/p&gt;
&lt;p&gt;#menu li{ &lt;span style=&quot;color: #0000ff&quot;&gt;display:inline&lt;/span&gt;;}&lt;/p&gt;
&lt;p&gt;#menu a{ &lt;span style=&quot;color: #0000ff&quot;&gt;float:left&lt;/span&gt;;&amp;nbsp;background:url(tableft.gif) left top no-repeat; &lt;span style=&quot;color: #ff0000&quot;&gt;&lt;strong&gt;padding-left:4px&lt;/strong&gt;&lt;/span&gt;;}&lt;/p&gt;
&lt;p&gt;#menu span{ &lt;span style=&quot;color: #0000ff&quot;&gt;display:block&lt;/span&gt;; background:url(tabright.gif) right top no-repeat; padding:4px 10px 4px 6px;}&lt;/p&gt;
&lt;p&gt;#menu a:hover{ background:url(tableft.gif) left &lt;span style=&quot;color: #ff0000&quot;&gt;&lt;strong&gt;-42px&lt;/strong&gt;&lt;/span&gt; no-repeat;}&lt;/p&gt;
&lt;p&gt;#menu a:hover span{ background:url(tabright.gif) right -42px no-repeat;}&lt;/p&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/LiveasMale/269940202/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/LiveasMale/269940202/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>· 前端</category><pubDate>Wed, 15 Apr 2009 14:02:31 +0800</pubDate><author>19bus@163.com(19bus)</author><guid isPermaLink="false">http://www.liveasmale.com/default.asp?id=476</guid><dc:creator>19bus@163.com(19bus)</dc:creator><fs:srclink>http://www.liveasmale.com/article.asp?id=476</fs:srclink><fs:srcfeed>http://www.liveasmale.com/feed.asp</fs:srcfeed><fs:itemid>feedsky/LiveasMale/~7040630/269940202/5148594</fs:itemid></item><item><title>往前和往后播放到某一帧停止</title><link>http://www.liveasmale.com/article.asp?id=475</link><description>&lt;br/&gt;往前播放，一直到某一帧时停止：&lt;br/&gt;&lt;br/&gt;function forward(mc, targetFrame)&lt;br/&gt;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (targetFrame == null)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;targetFrame = mc._totalframes;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} // end if&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mc.onEnterFrame = function ()&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (this._currentframe &amp;lt; targetFrame)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.nextFrame();&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.gotoAndStop(targetFrame);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.onEnterFrame = null;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} // end else if&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;} // End of the function&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;往后返回播放，一直到某一帧时停止：&lt;br/&gt;&lt;br/&gt;function reverse(mc, targetFrame)&lt;br/&gt;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (targetFrame == null)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;targetFrame = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} // end if&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mc.onEnterFrame = function ()&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (this._currentframe &amp;gt; targetFrame)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.prevFrame();&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.gotoAndStop(targetFrame);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.onEnterFrame = null;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} // end else if&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;} // End of the function&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/LiveasMale/269940243/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/LiveasMale/269940243/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>· 互动</category><pubDate>Wed, 08 Apr 2009 09:04:15 +0800</pubDate><author>19bus@163.com(19bus)</author><guid isPermaLink="false">http://www.liveasmale.com/default.asp?id=475</guid><dc:creator>19bus@163.com(19bus)</dc:creator><fs:srclink>http://www.liveasmale.com/article.asp?id=475</fs:srclink><fs:srcfeed>http://www.liveasmale.com/feed.asp</fs:srcfeed><fs:itemid>feedsky/LiveasMale/~7040630/269940243/5148594</fs:itemid></item><item><title>一个关于first-child 伪类的易误判的小事情</title><link>http://www.liveasmale.com/article.asp?id=474</link><description>first-child 这个伪类，只有当元素是另一个元素的第一个子元素时才能匹配。例如，p:first-child 会选择作为另外某个元素第一个子元素的所有 p 元素。一般可能认为这会选择作为段落第一个子元素的元素，但事实上并非如此，如果要选择段落的第一个子元素，应当写为 p &amp;gt; *:first-child。&lt;br/&gt;某元素的第一个元素的第一个元素：&lt;br/&gt;#my_menu &amp;gt; div:first-child &amp;gt; span:first-child { background: url(../images/toptitle.gif) no-repeat; }&lt;br/&gt;&lt;br/&gt;也就是说first-child是指元素自己本身是父元素的第一个子元素时，才应用该样式表，而并非是某元素的第一个子元素来应用这个样式。&lt;br/&gt;比如：&lt;br/&gt;&lt;br/&gt;例子 1 - 匹配第一个 &amp;lt;p&amp;gt; 元素&lt;br/&gt;在下面的例子中，选择器匹配属于任意元素的第一个子元素的 &amp;lt;p&amp;gt; 元素：&lt;br/&gt;&lt;div class=&quot;UBBPanel&quot;&gt;&lt;div class=&quot;UBBTitle&quot;&gt;&lt;img src=&quot;http://www.liveasmale.com/images/html.gif&quot; style=&quot;margin:0px 2px -3px 0px&quot;&gt; HTML代码&lt;/div&gt;&lt;div class=&quot;UBBContent&quot;&gt;&lt;TEXTAREA rows=&quot;8&quot; id=&quot;temp16589&quot;&gt;
&lt;!DOCTYPE HTML PUBLIC &amp;#34;-//W3C//DTD HTML 4.01 Transitional//EN&amp;#34; &amp;#34;&lt;a href=&quot;http://www.w3.org/TR/html4/loose.dtd&quot; target=&quot;_blank&quot; rel=&quot;external&quot;&gt;http://www.w3.org/TR/html4/loose.dtd&lt;/a&gt;&amp;#34;&gt; 
&lt;html&gt;
&lt;head&gt;
&lt;style type=&amp;#34;text/css&amp;#34;&gt;
p:first-child
{
font-weight:bold;
color:#ff0000;
} 
&lt;/style&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;p&gt;I am a &lt;em&gt;strong&lt;/em&gt; man. I am a &lt;em&gt;strong&lt;/em&gt; man.&lt;/p&gt;
&lt;p&gt;I am a &lt;em&gt;strong&lt;/em&gt; man. I am a &lt;em&gt;strong&lt;/em&gt; man.&lt;/p&gt;
&lt;/body&gt;

&lt;/html&gt;

&lt;/TEXTAREA&gt;&lt;br/&gt;&lt;INPUT onclick=&quot;runEx('temp16589')&quot;  type=&quot;button&quot; class=&quot;userbutton&quot; value=&quot;运行此代码&quot;/&gt; &lt;INPUT onclick=&quot;doCopy('temp16589')&quot;  type=&quot;button&quot; class=&quot;userbutton&quot; value=&quot;复制此代码&quot;/&gt; &lt;INPUT onclick=&quot;saveCode('temp16589')&quot; type=&quot;button&quot; class=&quot;userbutton&quot; value=&quot;保存此代码&quot;&gt;&lt;br/&gt; [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]&lt;/div&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;例子 2 - 匹配所有 &amp;lt;p&amp;gt; 元素中的第一个 &amp;lt;em&amp;gt; 元素&lt;br/&gt;在本例中，选择器匹配属于 &amp;lt;p&amp;gt; 元素中的第一个子元素的 &amp;lt;em&amp;gt; 元素：&lt;br/&gt;&lt;div class=&quot;UBBPanel&quot;&gt;&lt;div class=&quot;UBBTitle&quot;&gt;&lt;img src=&quot;http://www.liveasmale.com/images/html.gif&quot; style=&quot;margin:0px 2px -3px 0px&quot;&gt; HTML代码&lt;/div&gt;&lt;div class=&quot;UBBContent&quot;&gt;&lt;TEXTAREA rows=&quot;8&quot; id=&quot;temp31284&quot;&gt;
&lt;!DOCTYPE HTML PUBLIC &amp;#34;-//W3C//DTD HTML 4.01 Transitional//EN&amp;#34; &amp;#34;&lt;a href=&quot;http://www.w3.org/TR/html4/loose.dtd&quot; target=&quot;_blank&quot; rel=&quot;external&quot;&gt;http://www.w3.org/TR/html4/loose.dtd&lt;/a&gt;&amp;#34;&gt; 
&lt;html&gt;
&lt;head&gt;
&lt;style type=&amp;#34;text/css&amp;#34;&gt;
p &gt; em:first-child
{
font-weight:bold;
color:#ff0000;
} 
&lt;/style&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;p&gt;I am a &lt;em&gt;strong&lt;/em&gt; man. I am a &lt;em&gt;strong&lt;/em&gt; man.&lt;/p&gt;
&lt;p&gt;I am a &lt;em&gt;strong&lt;/em&gt; man. I am a &lt;em&gt;strong&lt;/em&gt; man.&lt;/p&gt;
&lt;/body&gt;

&lt;/html&gt;
&lt;/TEXTAREA&gt;&lt;br/&gt;&lt;INPUT onclick=&quot;runEx('temp31284')&quot;  type=&quot;button&quot; class=&quot;userbutton&quot; value=&quot;运行此代码&quot;/&gt; &lt;INPUT onclick=&quot;doCopy('temp31284')&quot;  type=&quot;button&quot; class=&quot;userbutton&quot; value=&quot;复制此代码&quot;/&gt; &lt;INPUT onclick=&quot;saveCode('temp31284')&quot; type=&quot;button&quot; class=&quot;userbutton&quot; value=&quot;保存此代码&quot;&gt;&lt;br/&gt; [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]&lt;/div&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;例子 3 - 匹配所有第一个子元素 &amp;lt;p&amp;gt; 元素中的所有 &amp;lt;em&amp;gt; 元素&lt;br/&gt;在下面的例子中，选择器匹配属于其他元素的第一个子元素的 &amp;lt;p&amp;gt; 元素中的所有 &amp;lt;em&amp;gt;：&lt;br/&gt;&lt;div class=&quot;UBBPanel&quot;&gt;&lt;div class=&quot;UBBTitle&quot;&gt;&lt;img src=&quot;http://www.liveasmale.com/images/html.gif&quot; style=&quot;margin:0px 2px -3px 0px&quot;&gt; HTML代码&lt;/div&gt;&lt;div class=&quot;UBBContent&quot;&gt;&lt;TEXTAREA rows=&quot;8&quot; id=&quot;temp34084&quot;&gt;
&lt;!DOCTYPE HTML PUBLIC &amp;#34;-//W3C//DTD HTML 4.01 Transitional//EN&amp;#34; &amp;#34;&lt;a href=&quot;http://www.w3.org/TR/html4/loose.dtd&quot; target=&quot;_blank&quot; rel=&quot;external&quot;&gt;http://www.w3.org/TR/html4/loose.dtd&lt;/a&gt;&amp;#34;&gt; 
&lt;html&gt;
&lt;head&gt;
&lt;style type=&amp;#34;text/css&amp;#34;&gt;
p:first-child em
{
font-weight:bold;
color:#ff0000;
} 
&lt;/style&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;p&gt;I am a &lt;em&gt;strong&lt;/em&gt; man. I am a &lt;em&gt;strong&lt;/em&gt; man.&lt;/p&gt;
&lt;p&gt;I am a &lt;em&gt;strong&lt;/em&gt; man. I am a &lt;em&gt;strong&lt;/em&gt; man.&lt;/p&gt;
&lt;/body&gt;

&lt;/html&gt;
&lt;/TEXTAREA&gt;&lt;br/&gt;&lt;INPUT onclick=&quot;runEx('temp34084')&quot;  type=&quot;button&quot; class=&quot;userbutton&quot; value=&quot;运行此代码&quot;/&gt; &lt;INPUT onclick=&quot;doCopy('temp34084')&quot;  type=&quot;button&quot; class=&quot;userbutton&quot; value=&quot;复制此代码&quot;/&gt; &lt;INPUT onclick=&quot;saveCode('temp34084')&quot; type=&quot;button&quot; class=&quot;userbutton&quot; value=&quot;保存此代码&quot;&gt;&lt;br/&gt; [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]&lt;/div&gt;&lt;/div&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/LiveasMale/269940244/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/LiveasMale/269940244/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>· 前端</category><pubDate>Tue, 07 Apr 2009 10:22:14 +0800</pubDate><author>19bus@163.com(19bus)</author><guid isPermaLink="false">http://www.liveasmale.com/default.asp?id=474</guid><dc:creator>19bus@163.com(19bus)</dc:creator><fs:srclink>http://www.liveasmale.com/article.asp?id=474</fs:srclink><fs:srcfeed>http://www.liveasmale.com/feed.asp</fs:srcfeed><fs:itemid>feedsky/LiveasMale/~7040630/269940244/5148594</fs:itemid></item><item><title>CSS阅读札记</title><link>http://www.liveasmale.com/article.asp?id=473</link><description>1、&lt;br/&gt;rollover {&lt;br/&gt;&amp;nbsp;&amp;nbsp;display:block;&lt;br/&gt;&amp;nbsp;&amp;nbsp;background-image:url(bg.gif) no-repeat;&lt;br/&gt;&amp;nbsp;&amp;nbsp;text-indent:-9999px;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;只要样式表不失效，那么就只显示背景图片，不显示相应的文字；一旦样式表失效，那么text-indent就不作用，文字就可以正常显示出来，类似于img标签的alt替换文字一样的效果；&lt;br/&gt;&lt;br/&gt;2、&lt;br/&gt;outline:none&amp;nbsp;&amp;nbsp; 去除链接的轮廓，特别是一些图片导航的应用&lt;br/&gt;&lt;br/&gt;3、外边距重叠的问题，上下margin的重叠可以为元素添加border或者padding来实现；&lt;br/&gt;&lt;br/&gt;4、display:block&amp;nbsp;&amp;nbsp;整个行都是这个块的；display:inline&amp;nbsp;&amp;nbsp;自己只占领在这一行里属于自己的那一点立锥之地，也就是内联； 因此，浮动时，对于一个内联元素，无需对其设置宽度，但对于块级元素，就必须设置其宽度，以防止它占用父块的全部宽度，如：&lt;br/&gt;text-abc {&lt;br/&gt;&amp;nbsp;&amp;nbsp;display:block;&lt;br/&gt;&amp;nbsp;&amp;nbsp;float:left;&lt;br/&gt;&amp;nbsp;&amp;nbsp;width:30%;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;5、如果一个容器内的所有元素都实行了浮动，那么需要对其容器设置具体大概的高度，以防止容器高度收缩为0；&amp;nbsp;&amp;nbsp;同时，需要考虑如果某一元素变得更大时将会溢出这个高度限定的容器，界线美将会被打破，可设置一个可扩充的高度来适应较大字号的文本，或者将其中某一个元素设置为非浮动，并为其添加一个虚拟元素来clear浮动，并控制容器的边框；&lt;br/&gt;&lt;br/&gt;6、居中某一个内容块，可以将其左右margin都设置为auto；&lt;br/&gt;&lt;br/&gt;7、 主体的text-align设置为center，具体元素设置为left，解决一些浏览器的兼容性，不妨试试看看；&lt;br/&gt;&lt;br/&gt;8、display:block&amp;nbsp;&amp;nbsp;具体说的一个功能就是 强行换行；&lt;br/&gt;&lt;br/&gt;9、margin可以设置为负值；padding则不能；&lt;br/&gt;&lt;br/&gt;10、 定义任何一个元素时，特别是padding和margin时，应该充分考虑下一个元素的位置，并在当前元素中为下一个元素的位置进行事先准备定义，因为下一个元素永远不可预知；&lt;br/&gt;&lt;br/&gt;11、水平线的定义，hr， border:none; background-color与color设置为一样（火狐的兼容），height: 1px; width: 80%;&lt;br/&gt;&lt;br/&gt;12、border-collapse:collapse&amp;nbsp;&amp;nbsp;表格的单元格粘在一起，默认是每个单元格有自己的边框，并且单元格之间有间距；&lt;br/&gt;&lt;br/&gt;13、text-indent: 正负值来控制文本是缩进还是悬挂；&lt;br/&gt;&lt;br/&gt;14、由内向外的盒模型，很强大，可以解决width与border padding margin之间的关系。首先，定义父元素的宽度width=100%，使得整个框架的宽度完全定义固定，子元素无论如何变化都不会改变父元素的大小；然后再定义子元素的border padding margin，但不要定义其width了。&lt;br/&gt;&lt;br/&gt;15、浮动间隔。使用clear:both之后，一些浏览器不能保证被清空浮动之后的元素有上边界（margintop），此时创建一个浮动元素来解决因此造成的上下元素之间间隔过于偏小的问题，因为它使用的是高度而不是上外边距来定义其高度的：&lt;br/&gt;.float-divider{&lt;br/&gt;&amp;nbsp;&amp;nbsp;clear:both;&lt;br/&gt;&amp;nbsp;&amp;nbsp;height:20px;&lt;br/&gt;&amp;nbsp;&amp;nbsp;margin-bottom:20px;&lt;br/&gt;&amp;nbsp;&amp;nbsp;border-bottom:5px solid black;&lt;br/&gt;&amp;nbsp;&amp;nbsp;font-size:1px;&lt;br/&gt;&amp;nbsp;&amp;nbsp;line-height:1px;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;16、用现有元素或者虚拟元素来清理浮动，使之换行显示，同时还可以使得父元素扩容，而不至于忽略浮动元素，将其摒弃在外围，造成界限上的不美观。&lt;br/&gt;&lt;br/&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/LiveasMale/269940246/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/LiveasMale/269940246/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>· 前端</category><pubDate>Sun, 05 Apr 2009 15:47:11 +0800</pubDate><author>19bus@163.com(19bus)</author><guid isPermaLink="false">http://www.liveasmale.com/default.asp?id=473</guid><dc:creator>19bus@163.com(19bus)</dc:creator><fs:srclink>http://www.liveasmale.com/article.asp?id=473</fs:srclink><fs:srcfeed>http://www.liveasmale.com/feed.asp</fs:srcfeed><fs:itemid>feedsky/LiveasMale/~7040630/269940246/5148594</fs:itemid></item></channel></rss>