<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[tell's - Life]]></title>
<link>http://localhost/boe/</link>
<description><![CDATA[多想、多看、多画、多听、多用心]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[tengmaike@163.com(小毅)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>tell&#39;s</title>
	<url>http://localhost/boe/images/logos.gif</url>
	<link>http://localhost/boe/</link>
	<description>tell&#39;s</description>
</image>

			<item>
			<link>http://localhost/boe/article/13.htm</link>
			<title><![CDATA[笔刷]]></title>
			<author>tengmaike@163.com(tengmaike)</author>
			<category><![CDATA[Life]]></category>
			<pubDate>Mon,12 Jul 2010 15:52:49 +0800</pubDate>
			<guid>http://localhost/boe/default.asp?id=13</guid>
		<description><![CDATA[<a href="http://www.cx-cason.com/blog/trackback.asp?tbID=48" target="_blank" rel="external">http://www.cx-cason.com/blog/trackback.asp?tbID=48</a>&amp;action=addtb&amp;tbKey=eec690c548ee2f48f9f40b0138cf4a30bb6fe2c4]]></description>
		</item>
		
			<item>
			<link>http://localhost/boe/article/11.htm</link>
			<title><![CDATA[网页重构+设计=前端]]></title>
			<author>tengmaike@163.com(tengmaike)</author>
			<category><![CDATA[Life]]></category>
			<pubDate>Wed,07 Jul 2010 09:17:25 +0800</pubDate>
			<guid>http://localhost/boe/default.asp?id=11</guid>
		<description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;做为一个专职的页面重构者，我们从事的工作简单的说就是“将设计稿转换成WEB页面”，这一过程可以很简单到直接把PSD从PS里导出成网页；也可复杂到需要考虑页面中每个标签的使用，考虑“页面性能”。“页面重构”虽然也是“前端工程师”的一个范畴，在职业化中，对专职的页面重构者，要求当然也更高。不单是做出页面，而是做出好页面。又引出另一个话题，“何为好页面？”，一般包括下面几点：<br/>结构完整，可通过标准验证 <br/>标签语义化，结构合理 <br/>充分考虑到页面在站点中的“作用和重要性”，并对其进行有针对性的优化 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 很多同学多少都遇到过方向不明，不知道自己应该提高些什么，我们可以从“分析设计稿=&gt;切图=&gt;写HTML和CSS”这个工作内容，针对每一点提出一些要求，以方便我们分析自己的能力水平，为继续提高确定个方向：<br/>设计稿的分析<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;设计稿的分析是指对设计稿如何制作成页面的分析，即哪一块的内容可以做为公共的部分、哪一块的内容结构可以如何实现等。对设计稿的分析能力可以划分成下面的几个阶段：<br/>能分清设计稿中的公共与私有的部分 <br/>在1的基础上对各部分的实现方式有一个初步的方案（包括如何切图、写结构、写样式） <br/>在1的基础上，准确的给出各部分的实现方案（包括如何切图、写结构、写样式） <br/>在3的基础上，能同时考虑方案的扩展性、复用性及页面性能（包括如何切图、写结构、写样式） <br/>在4的基础上，考虑整站的结构分布（包括文件分布、目录结构） <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;上面这些都是在还没开始动手制作之前所要做的。<br/>切图<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 切图是指将设计稿切成便于制作成页面的图片。都有个误区，觉得切图就是把图片切出来，其实并不完全是这样，还包括把切出来的图片合并到一起，怎么切、从哪切才能将性能最大化，说“切图是一门艺术”完全不为过。切图也可以划分成几个阶段：<br/>切成所需要的图片（如何将需要的部分切出来） <br/>在1的基础上，对切出来的图片进行一些优化（包括压缩文件大小、选择图片类型） <br/>在2的基础上，规划切出来的图片（包括文件分布） <br/>在3的基础上，考虑整体的性能（包括合并图片、压缩文件大小） <br/>HTML和CSS的编写<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HTML和CSS的编写是指将上面完成的内容，通过HTML和CSS的编写，将设计稿转换成WEB页面最重要的一块，也是我们所要重点掌握的内容，把它们 放在一起，是因为它们相互的关联性太强，HTML的写法会影响到CSS的写法，它又可以划分成下面几个阶段：<br/>还原设计稿视觉效果，并通过标准验证（HTML） <br/>在1的基础上，实现多浏览器的兼容（HTML） <br/>在2的基础上，标签语义化（HTML） <br/>在3的基础上，选择较优的实现方式（包括模块化结构，方便程序脚本使用，HTML和CSS） <br/>在4的基础上，考虑到扩展性、复用性和可维护性（HTML和CSS） <br/>在5的基础上，考虑到整站的样式分布（包括如何实现分布） <br/>在6的基础上，样式写法的优化（包括技巧的应用） <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 是对所遇到问题的解决能力，这一点在不同的阶段都可能会遇到，所以没有写到上面。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果你已经达到或超过3、4、5，恭喜你，你已经是一个职业的“页面重构工作者”了。为了我们自身的发展，关注新技术、技术创新、提高用户体验、审美观、程序脚本的实现方式等，也是十分必要的。大家一起进步吧。<br/>&nbsp;&nbsp;如果你能做好这些，那你也就是高低前端了]]></description>
		</item>
		
			<item>
			<link>http://localhost/boe/article/10.htm</link>
			<title><![CDATA[浏览器兼容手册]]></title>
			<author>tengmaike@163.com(tengmaike)</author>
			<category><![CDATA[Life]]></category>
			<pubDate>Tue,06 Jul 2010 14:26:45 +0800</pubDate>
			<guid>http://localhost/boe/default.asp?id=10</guid>
		<description><![CDATA[1. document.form.item 问题<br/>问题：<br/>代码中存在 document.formName.item(&#34;itemName&#34;) 这样的语句，不能在FF下运行<br/>解决方法：<br/>改用 document.formName.elements[&#34;elementName&#34;]<br/><br/>2. 集合类对象问题<br/>问题：<br/>代码中许多集合类对象取用时使用()，IE能接受，FF不能<br/>解决方法：<br/>改用 [] 作为下标运算，例：<br/>document.getElementsByName(&#34;inputName&#34;)(1) 改为 document.getElementsByName(&#34;inputName&#34;)[1]<br/><br/>3. window.event<br/>问题：<br/>使用 window.event 无法在FF上运行<br/>解决方法：<br/>FF的 event 只能在事件发生的现场使用，此问题暂无法解决。可以把 event 传到函数里变通解决：<br/>onMouseMove = &#34;functionName(event)&#34;<br/>function functionName (e) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;e = e || window.event;<br/>&nbsp;&nbsp;&nbsp;&nbsp;......<br/>}<br/><br/>4. HTML对象的 id 作为对象名的问题<br/>问题：<br/>在IE中，HTML对象的 ID 可以作为 document 的下属对象变量名直接使用，在FF中不能<br/>解决方法：<br/>使用对象变量时全部用标准的 getElementById(&#34;idName&#34;)<br/><br/>5. 用 idName 字符串取得对象的问题<br/>问题：<br/>在IE中，利用 eval(&#34;idName&#34;) 可以取得 id 为 idName 的HTML对象，在FF中不能<br/>解决方法：<br/>用 getElementById(&#34;idName&#34;) 代替 eval(&#34;idName&#34;)<br/><br/>6. 变量名与某HTML对象 id 相同的问题<br/>问题：<br/>在FF中，因为对象 id 不作为HTML对象的名称，所以可以使用与HTML对象 id 相同的变量名，IE中不能<br/>解决方法：<br/>在声明变量时，一律加上 var ，以避免歧义，这样在IE中亦可正常运行<br/>最好不要取与HTML对象 id 相同的变量名，以减少错误<br/><br/>7. event.x 与 event.y 问题<br/>问题：<br/>在IE中，event 对象有x,y属性，FF中没有<br/>解决方法：<br/>在FF中，与 event.x 等效的是 event.pageX ，但event.pageX IE中没有<br/>故采用 event.clientX 代替 event.x ，在IE中也有这个变量<br/>event.clientX 与 event.pageX 有微妙的差别，就是滚动条<br/>要完全一样，可以这样：<br/>mX = event.x ? event.x : event.pageX;<br/>然后用 mX 代替 event.x<br/><br/>8. 关于frame<br/>问题：<br/>在IE中可以用 window.testFrame 取得该frame，FF中不行<br/>解决方法：<br/>window.top.document.getElementById(&#34;testFrame&#34;).src = &#39;xx.htm&#39;<br/>window.top.frameName.location = &#39;xx.htm&#39;<br/><br/>9. 取得元素的属性<br/>在FF中，自己定义的属性必须 getAttribute() 取得<br/><br/>10. 在FF中没有 parentElement，parement.children 而用 parentNode，parentNode.childNodes<br/>问题：<br/>childNodes 的下标的含义在IE和FF中不同，FF的 childNodes 中会插入空白文本节点<br/>解决方法：<br/>可以通过 node.getElementsByTagName() 来回避这个问题<br/>问题：<br/>当html中节点缺失时，IE和FF对 parentNode 的解释不同，例如：<br/>&lt;form&gt;<br/>&lt;table&gt;<br/>&lt;input/&gt;<br/>&lt;/table&gt;<br/>&lt;/form&gt;<br/>FF中 input.parentNode 的值为form，而IE中 input.parentNode 的值为空节点<br/>问题：<br/>FF中节点自己没有 removeNode 方法<br/>解决方法：<br/>必须使用如下方法 node.parentNode.removeChild(node)<br/><br/>11. const 问题<br/>问题：<br/>在IE中不能使用 const 关键字<br/>解决方法：<br/>以 var 代替<br/><br/>12. body 对象<br/>FF的 body 在 body 标签没有被浏览器完全读入之前就存在，而IE则必须在 body 完全被读入之后才存在<br/>这会产生在IE下，文档没有载入完时，在body上appendChild会出现空白页面的问题<br/>解决方法：<br/>一切在body上插入节点的动作，全部在onload后进行<br/><br/>13. url encoding<br/>问题：<br/>一般FF无法识别js中的&amp;<br/>解决方法：<br/>在js中如果书写url就直接写&amp;不要写&amp;<br/><br/>14. nodeName 和 tagName 问题<br/>问题：<br/>在FF中，所有节点均有 nodeName 值，但 textNode 没有 tagName 值，在IE中，nodeName 的使用有问题<br/>解决方法：<br/>使用 tagName，但应检测其是否为空<br/><br/>15. 元素属性<br/>IE下 input.type 属性为只读，但是FF下可以修改<br/><br/>16. document.getElementsByName() 和 document.all[name] 的问题<br/>问题：<br/>在IE中，getElementsByName()、document.all[name] 均不能用来取得 div 元素<br/>是否还有其它不能取的元素还不知道（这个问题还有争议，还在研究中）<br/><br/>17. 调用子框架或者其它框架中的元素的问题<br/>在IE中，可以用如下方法来取得子元素中的值<br/>document.getElementById(&#34;frameName&#34;).(document.)elementName<br/>window.frames[&#34;frameName&#34;].elementName<br/>在FF中则需要改成如下形式来执行，与IE兼容：<br/>window.frames[&#34;frameName&#34;].contentWindow.document.elementName<br/>window.frames[&#34;frameName&#34;].document.elementName<br/><br/>18. 对象宽高赋值问题<br/>问题：<br/>FireFox中类似 obj.style.height = imgObj.height 的语句无效<br/>解决方法：<br/>统一使用 obj.style.height = imgObj.height + &#34;px&#34;;<br/><br/>19. innerText的问题<br/>问题：<br/>innerText 在IE中能正常工作，但是 innerText 在FireFox中却不行<br/>解决方法：<br/>在非IE浏览器中使用textContent代替innerText<br/><br/>20. event.srcElement和event.toElement问题<br/>问题：<br/>IE下，even对象有srcElement属性，但是没有target属性；Firefox下，even对象有target属性，但是没有srcElement属性<br/>解决方法：<br/>var source = e.target || e.srcElement;<br/>var target = e.relatedTarget || e.toElement;<br/><br/>21. 禁止选取网页内容<br/>问题：<br/>FF需要用CSS禁止，IE用JS禁止<br/>解决方法：<br/>IE: obj.onsel&#101;ctstart = function() {return false;}<br/>FF: -moz-user-sel&#101;ct:none;<br/><br/>22. 捕获事件<br/>问题：<br/>FF没有setCapture()、releaseCapture()方法<br/>解决方法：<br/>IE:<br/>obj.setCapture(); <br/>obj.releaseCapture();<br/>FF:<br/>window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);<br/>window.releaseEvents(Event.MOUSEMOVE|Event.MOUSEUP);<br/>if (!window.captureEvents) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; o.setCapture();<br/>}else {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);<br/>}<br/>if (!window.captureEvents) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; o.releaseCapture();<br/>}else {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; window.releaseEvents(Event.MOUSEMOVE|Event.MOUSEUP);<br/>}<br/><br/><br/>CSS部分<br/><br/>div类<br/><br/>1. 居中问题<br/>div里的内容，IE默认为居中，而FF默认为左对齐<br/>可以尝试增加代码margin:auto<br/><br/>2. 高度问题<br/>两上下排列或嵌套的div，上面的div设置高度(height)，如果div里的实际内容大于所设高度，在FF中会出现两个div重叠的现象；但在IE中，下面的div会自动给上面的div让出空间<br/>所以为避免出现层的重叠，高度一定要控制恰当，或者干脆不写高度，让他自动调节，比较好的方法是 height:100%;<br/>但当这个div里面一级的元素都float了的时候，则需要在div块的最后，闭和前加一个沉底的空div，对应CSS是：<br/>.float_bottom {clear:both;height:0px;font-size:0px;padding:0;margin:0;border:0;line-height:0px;overflow:hidden;}<br/><br/>3. clear:both;<br/>不想受到float浮动的，就在div中写入clear:both;<br/><br/>4. IE浮动 margin 产生的双倍距离<br/>#box {<br/>float:left;<br/>width:100px;<br/>margin:0 0 0 100px; //这种情况之下IE会产生200px的距离<br/>display:inline; //使浮动忽略<br/>}<br/><br/>5. padding 问题<br/>FF设置 padding 后，div会增加 height 和 width，但IE不会 （* 标准的 XHTML1.0 定义 dtd 好像一致了）<br/>高度控制恰当，或尝试使用 height:100%;<br/>宽度减少使用 padding<br/>但根据实际经验，一般FF和IE的 padding 不会有太大区别，div 的实际宽 = width + padding ，所以div写全 width 和 padding，width 用实际想要的宽减去 padding 定义<br/><br/>6. div嵌套时 y 轴上 padding 和 marign 的问题<br/>FF里 y 轴上 子div 到 父div 的距离为 父padding + 子marign<br/>IE里 y 轴上 子div 到 父div 的距离为 父padding 和 子marign 里大的一个<br/>FF里 y 轴上 父padding=0 且 border=0 时，子div 到 父div 的距离为0，子marign 作用到 父div 外面<br/><br/>7. padding，marign，height，width 的傻瓜式解决技巧<br/>注意是技巧，不是方法：<br/>写好标准头<br/>&lt;!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML 1.0 Transitional//EN&#34; &#34;<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" target="_blank" rel="external">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</a>&#34;&gt;<br/>&lt;html xmlns=&#34;<a href="http://www.w3.org/1999/xhtml" target="_blank" rel="external">http://www.w3.org/1999/xhtml</a>&#34;&gt;<br/>高尽量用padding，慎用margin，height尽量补上100%，父级height有定值子级height不用100%，子级全为浮动时底部补个空clear:both的div<br/>宽尽量用margin，慎用padding，width算准实际要的减去padding<br/><br/>列表类<br/><br/>1. ul 标签在FF中默认是有 padding 值的，而在IE中只有margin有值<br/>先定义 ul {margin:0;padding:0;}<br/><br/>2. ul和ol列表缩进问题<br/>消除ul、ol等列表的缩进时，样式应写成: {list-style:none;margin:0px;padding:0px;}<br/><br/>显示类<br/><br/>1. display:block,inline 两个元素<br/>display:block; //可以为内嵌元素模拟为块元素<br/>display:inline; //实现同一行排列的的效果<br/>display:table; //for FF,模拟table的效果<br/>display:block 块元素，元素的特点是：<br/>总是在新行上开始；<br/>高度，行高以及顶和底边距都可控制；<br/>宽度缺省是它的容器的100%，除非设定一个宽度<br/>&lt;div&gt;，&lt;p&gt;，&lt;h1&gt;，&lt;form&gt;，&lt;ul&gt; 和 &lt;li&gt; 是块元素的例子<br/>display:inline 就是将元素显示为行内元素，元素的特点是：<br/>和其他元素都在一行上；<br/>高，行高及顶和底边距不可改变；<br/>宽度就是它的文字或图片的宽度，不可改变。<br/>&lt;span&gt;，&lt;a&gt;，&lt;label&gt;，&lt;input&gt;，&lt;img&gt;，&lt;strong&gt; 和 &lt;em&gt; 是 inline 元素的例子<br/><br/>2. 鼠标手指状显示<br/>全部用标准的写法 cursor: pointer; <br/><br/>背景、图片类<br/><br/>1. background 显示问题<br/>全部注意补齐 width，height 属性<br/><br/>2. 背景透明问题<br/>IE: filter: progid: DXImageTransform.Microsoft.Alpha(style=0,opacity=60);<br/>IE: filter: alpha(opacity=10);<br/>FF: opacity:0.6;<br/>FF: -moz-opacity:0.10;<br/>最好两个都写，并将opacity属性放在下面<br/><br/>]]></description>
		</item>
		
</channel>
</rss>
