1. 关于浏览器
IE的内核是Trident、Mozilla的内核是Gecko、Chrome的内核是Blink(Webkit的一个分支,谷歌和Opera合作推出)、Opera的内核是Blink(原内核是Presto,现已废弃。)
2. 关于前端兼容性的储备(IE6已被淘汰,可忽略!)
2.1 一句话储备:
- 浏览器默认的margin值和padding值等不统一样式,可以使用重置样式,如
*{margin:0;*padding:0;}
- PNG24位图片在IE6浏览器上出现背景,可使用PNG8位来替代,或使用成熟js滤镜方案。
- IE6元素在浮动后产生双边距问题,在浮动后添加 _display:inline,使该元素转换成行内元素。
2.2 css中的hack代码
.hack { |
2.3 html中的hack代码
<!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]--> |
4. 居中显示的一些方法
4.1 宽高固定的盒子居中
结构:
<div class="sl-hvalign"> |
样式:
/*宽高固定 居中显示核心代码*/ |
也可以使用 transform 偏移,样式:
.sl-hvslign-inner{ |
因为使用百分比值定位,参考点在盒子的中心。
宽高未知的情况下,由此方法可延伸,使用javascript动态获取。
4.2 模板化居中显示:(以下方法可供模板化的CSS class)
结构:
<div class="sl-hvalign"><!--该层需要设定宽度--> |
样式:
.sl-hvalign{ |
来自:饿了么前端工程师 sofish
5. jQuery中this与$(this)的区别是什么?
$("#textbox").hover( |
这里的this其实是一个Html 元素(textbox),textbox有text属性,所以这样写是完全没有什么问题的。
但是如果将this换成$(this)就不是那回事了,Error–报了。this与$(this)的区别在此。
错误代码:
//Error Code: |
这里的$(this)是一个JQuery对象,而jQuery对象沒有title 属性,因此这样写是错误的。
JQuery拥有attr()方法可以get/set DOM对象的属性,所以正确的写法应该是这样:
$("#textbox").hover( |
6. 有关于闭包的理解。
请看下面一段代码:
(function(x){ |
这就是一个典型的闭包
定义匿名函数后立刻执行,并且不会引起window属性的变化,例如:
for (var i=0; i<10; i++) { |
换成匿名函数调用,如下代码:
(function(){ |
这样子就不会引起window属性的增加。
7. 查询字符串参数函数封装
/*************************************** |