前端 tips(2010.5)
本月前端 Tips:
5.4 - 5.744.【JS】element.onclick不管是在前还是在后,都会优于YAHOO.util.Event.on(element,'click',..)解析。(addEventListener/attachEvent,长天)
45.【JS】Firefox 对已存在的事件监听程序(通过传统事件模式注册的)采取的是替换(replace)操作,而非Firefox浏览器采取的是重写(overwrites)操作。(长天)
46.【CSS】如果有需要可以通过设置br { display:none} 来隐藏换行效果,最好的办法是建议在html中移除。(文河)
47.【HTML】在各浏览器下对于HTTP1.1标准的请求支持(同一个域名)的并行下载数为:ie6/7(2)、Firefox3、IE8(6)、Opera10/Chrome3/Safari4(4)(http://www.stevesouders.com/blog/2008/03/20/roundup-on-parallel-connections/)。(圆心)
5.10 - 5.14
48.【CSS】float 元素如果不指定宽度,在 ie6 下一般会有问题,如果出现此问题,可以尝试在 hack ie6,单独为 ie6 指定宽度。
49.【JS】相比其它语言来说,JavaScript 中位运算符的计算效率并不一定比其它计算方法高,有时候还会非常的低,而且不支持浮点数,一般不推荐使用。
50.【JS】link() method:创建一个链接可以通过str.link(“http://www.taobao.com”))来创建。(涵宇)
51.【JS】var m = n = 0;相当于var m = 0; n = 0; 实际上 n 被声明为了全局变量,造成了名称空间污染。(小马)
52.【CSS】IE7中,如果在父级元素和子级元素之间(div > p)有一个HTML注释,子选择器将不会工作。(Google)
5.17 - 5.21
53.【CSS】如果text-decoration属性指定给一个块级元素,它会影响该元素的所有行间级后代。如果它指定给(或影响)一个行内元素,它会影响该元素产生的所有框。text-decoration的underline、overline及line-through仅作用于文本。如果该元素没有内容或没有文本内容(例如HTML中的IMG元素),UA必须忽略该属性。IE与Opera在两种文档模式下均不会将text-decoration作用于IMG元素上,而Firefox、Chrome和Safari在混杂模式下与IE中一致,但是在标准模式下却打破W3C的规范在IMG元素上可以应用该样式。(Google)
54.【CSS】当定位元素的z-index未设置时(默认为auto),IE6/7/8下将会创建一个新的局部层叠上下文,其内的定位元素将受到父级元素的影响,即使子元素z-index设置高于与父元素平级的定位元素,也不会呈现在其上,而其它浏览器则不会。解决的方法就是明确定位元素的z-index。(Google)
55.【CSS】E6/7/8中width或height任意一个或两个都设为0都可以隐藏iframe,但是其它浏览器均隐藏不了,因为iframe的默认样式问题,还需设置border等样式,所以最快捷的方法就是通过visibility和display来进行设置。(Google)
56.【TMS】TMS不允许发布内容为空的页面,举例: 场景:如果有一个条件式的输出,在true的情况下输出一个片段,在false的情况下不输出任何内容。 结果:在true的情况下,是OK的;但是当false的情况时,发现发布始终无法成功。 原因:TMS开发设定的这个规则……没有为什么,就是不让发布内容为空的页面,实在整不动的话,你放个相应的注释来绕过这个规则。(龙刚)
57.【CSS】在使用百分比定义宽高的时候,需要注意小数值的问题,取值都是四舍五入,IE6、IE7、Chrome、Safari的所有模式以及IE8的怪异模式下,百分比计算是基于其包含块的实际使用值来计算的,而Firefox的所有模式以及IE8的标准模式下百分比的计算是根据其包含块的计算值来计算的,也就是说,加入父级使用了百分比80%,子元素使用了百分比60%,那么前者的计算应该是父级取得实际使用值后再乘以60%再四舍五入得到子元素的实际使用值,而后者是80%*60%,最后四舍五入取的子元素的实际使用值。(Google)
5.24 - 5.28 , 5.31
58.【CSS】在IE6对A使用hover伪类之后,如果产生一些莫名其妙的问题,比如背景不显示,抑或是hover离开之后A标签的状态没有恢复。这时候可以在伪类规则中添加:border:none;|zoom:1;或在A元素上添加background来解决问题(IE7 的其它类型hover也可能产生同类问题,解决方法类似)(熊松松)。
59.【HTML】IE6 条件注释引起 IE8 下载阻塞:http://www.phpied.com/conditional-comments-block-downloads/
60.【CSS】IE6、7下button和type为submit的input的默认padding无法去掉,需要加overflow:visible才能消除。(鸣人)
61.【JS】对于小于 1e-6 的数值来说,ToString 时会自动转换为科学计数法,比如 alert((0.0000012).toString()) 得到 0. 0000012 ,而 alert((0.00000012).toString()) 得到 1.2e-7 ,此种情况下使用 parseInt 得到的值可能就不是自己想要的,所以在参数类型不确定的时候,最好封装一层: function parseInt2(a) { if(typeof a === 'number') { return Math.floor(a); } return parseInt(a); } (玉伯:http://lifesinger.org/blog/2010/05/the-trap-of-parseint/)
62.【CSS】IE6/7/8 最多支持32个CSS文件引入。(测试地址:http://john.albin.net/ie-css-limits/link-test.html)
63.【CSS】为长页面添加上 body {overflow-y: scroll},可以减少一次reflow。(云谦)
这篇文章发布于 2010年05月31日,星期一,00:00,归类于 编码。 您可以跟踪这篇文章的评论通过 RSS 2.0 feed。 您可以留下评论,或者从您的站点trackback。
很好的积累!