Skip to content

Commit 67a299c

Browse files
Update README.md
更新样式
1 parent b2ed091 commit 67a299c

File tree

1 file changed

+95
-87
lines changed

1 file changed

+95
-87
lines changed

README.md

Lines changed: 95 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,8 @@
248248
249249
浮动ie产生的双倍距离 #box{ float:left; width:10px; margin:0 0 0 100px;}
250250
251-
这种情况之下IE会产生20px的距离,解决方案是在float的标签样式控制中加入 ——_display:inline;将其转化为行内属性。(_这个符号只有ie6会识别)
251+
这种情况之下IE会产生20px的距离,解决方案是在float的标签样式控制中加入 ——_display:inline;将其转化为行内属性。
252+
(_这个符号只有ie6会识别)
252253

253254
渐进识别的方式,从总体中逐渐排除局部。
254255

@@ -331,12 +332,12 @@ HTML5?
331332

332333
- (写)描述一段语义的html代码吧。
333334

334-
(HTML5中新增加的很多标签(如:<article>、<nav>、<header>和<footer>等)
335-
就是基于语义化设计原则)
336-
< div id="header">
337-
< h1>标题< /h1>
338-
< h2>专注Web前端技术< /h2>
339-
< /div>
335+
(HTML5中新增加的很多标签(如:<article>、<nav>、<header>和<footer>等)
336+
就是基于语义化设计原则)
337+
< div id="header">
338+
< h1>标题< /h1>
339+
< h2>专注Web前端技术< /h2>
340+
< /div>
340341

341342

342343
- iframe有那些缺点?
@@ -476,7 +477,8 @@ HTML5?
476477
*最简单的初始化方法就是: * {padding: 0; margin: 0;} (不建议)
477478

478479
淘宝的样式初始化:
479-
body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, dl, dt, dd, ul, ol, li, pre, form, fieldset, legend, button, input, textarea, th, td { margin:0; padding:0; }
480+
body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, dl, dt,
481+
dd, ul, ol, li, pre, form, fieldset, legend, button, input, textarea, th, td { margin:0; padding:0; }
480482
body, button, input, select, textarea { font:12px/1.5tahoma, arial, \5b8b\4f53; }
481483
h1, h2, h3, h4, h5, h6{ font-size:100%; }
482484
address, cite, dfn, em, var { font-style:normal; }
@@ -551,83 +553,83 @@ HTML5?
551553

552554
- 写一个通用的事件侦听器函数。
553555

554-
// event(事件)工具集,来源:github.com/markyun
555-
markyun.Event = {
556-
// 页面加载完成后
557-
readyEvent : function(fn) {
558-
if (fn==null) {
559-
fn=document;
560-
}
561-
var oldonload = window.onload;
562-
if (typeof window.onload != 'function') {
563-
window.onload = fn;
564-
} else {
565-
window.onload = function() {
566-
oldonload();
567-
fn();
568-
};
569-
}
570-
},
571-
// 视能力分别使用dom0||dom2||IE方式 来绑定事件
572-
// 参数: 操作的元素,事件名称 ,事件处理程序
573-
addEvent : function(element, type, handler) {
574-
if (element.addEventListener) {
575-
//事件类型、需要执行的函数、是否捕捉
576-
element.addEventListener(type, handler, false);
577-
} else if (element.attachEvent) {
578-
element.attachEvent('on' + type, function() {
579-
handler.call(element);
580-
});
581-
} else {
582-
element['on' + type] = handler;
583-
}
584-
},
585-
// 移除事件
586-
removeEvent : function(element, type, handler) {
587-
if (element.removeEnentListener) {
588-
element.removeEnentListener(type, handler, false);
589-
} else if (element.datachEvent) {
590-
element.detachEvent('on' + type, handler);
591-
} else {
592-
element['on' + type] = null;
593-
}
594-
},
595-
// 阻止事件 (主要是事件冒泡,因为IE不支持事件捕获)
596-
stopPropagation : function(ev) {
597-
if (ev.stopPropagation) {
598-
ev.stopPropagation();
599-
} else {
600-
ev.cancelBubble = true;
601-
}
602-
},
603-
// 取消事件的默认行为
604-
preventDefault : function(event) {
605-
if (event.preventDefault) {
606-
event.preventDefault();
607-
} else {
608-
event.returnValue = false;
609-
}
610-
},
611-
// 获取事件目标
612-
getTarget : function(event) {
613-
return event.target || event.srcElement;
614-
},
615-
// 获取event对象的引用,取到事件的所有信息,确保随时能使用event;
616-
getEvent : function(e) {
617-
var ev = e || window.event;
618-
if (!ev) {
619-
var c = this.getEvent.caller;
620-
while (c) {
621-
ev = c.arguments[0];
622-
if (ev && Event == ev.constructor) {
623-
break;
624-
}
625-
c = c.caller;
556+
// event(事件)工具集,来源:github.com/markyun
557+
markyun.Event = {
558+
// 页面加载完成后
559+
readyEvent : function(fn) {
560+
if (fn==null) {
561+
fn=document;
562+
}
563+
var oldonload = window.onload;
564+
if (typeof window.onload != 'function') {
565+
window.onload = fn;
566+
} else {
567+
window.onload = function() {
568+
oldonload();
569+
fn();
570+
};
571+
}
572+
},
573+
// 视能力分别使用dom0||dom2||IE方式 来绑定事件
574+
// 参数: 操作的元素,事件名称 ,事件处理程序
575+
addEvent : function(element, type, handler) {
576+
if (element.addEventListener) {
577+
//事件类型、需要执行的函数、是否捕捉
578+
element.addEventListener(type, handler, false);
579+
} else if (element.attachEvent) {
580+
element.attachEvent('on' + type, function() {
581+
handler.call(element);
582+
});
583+
} else {
584+
element['on' + type] = handler;
585+
}
586+
},
587+
// 移除事件
588+
removeEvent : function(element, type, handler) {
589+
if (element.removeEnentListener) {
590+
element.removeEnentListener(type, handler, false);
591+
} else if (element.datachEvent) {
592+
element.detachEvent('on' + type, handler);
593+
} else {
594+
element['on' + type] = null;
595+
}
596+
},
597+
// 阻止事件 (主要是事件冒泡,因为IE不支持事件捕获)
598+
stopPropagation : function(ev) {
599+
if (ev.stopPropagation) {
600+
ev.stopPropagation();
601+
} else {
602+
ev.cancelBubble = true;
603+
}
604+
},
605+
// 取消事件的默认行为
606+
preventDefault : function(event) {
607+
if (event.preventDefault) {
608+
event.preventDefault();
609+
} else {
610+
event.returnValue = false;
611+
}
612+
},
613+
// 获取事件目标
614+
getTarget : function(event) {
615+
return event.target || event.srcElement;
616+
},
617+
// 获取event对象的引用,取到事件的所有信息,确保随时能使用event;
618+
getEvent : function(e) {
619+
var ev = e || window.event;
620+
if (!ev) {
621+
var c = this.getEvent.caller;
622+
while (c) {
623+
ev = c.arguments[0];
624+
if (ev && Event == ev.constructor) {
625+
break;
626626
}
627+
c = c.caller;
627628
}
628-
return ev;
629629
}
630-
};
630+
return ev;
631+
}
632+
};
631633

632634

633635

@@ -659,10 +661,10 @@ HTML5?
659661
- 谈谈This对象的理解。
660662

661663
this是js的一个关键字,随着函数使用场合不同,this的值会发生变化。
662-
663-
但是有一个总原则,那就是this指的是调用函数的那个对象。
664664
665-
this一般情况下:是全局对象Global。 作为方法调用,那么this就是指这个对象
665+
但是有一个总原则,那就是this指的是调用函数的那个对象。
666+
667+
this一般情况下:是全局对象Global。 作为方法调用,那么this就是指这个对象
666668

667669
- 事件是?IE与火狐的事件机制有什么区别? 如何阻止冒泡?
668670

@@ -673,7 +675,9 @@ HTML5?
673675
- 什么是闭包(closure),为什么要用它?
674676

675677

676-
执行say667()后,say667()闭包内部变量会存在,而闭包内部函数的内部变量不会存在.使得Javascript的垃圾回收机制GC不会收回say667()所占用的资源,因为say667()的内部函数的执行需要依赖say667()中的变量。这是对闭包作用的非常直白的描述.
678+
执行say667()后,say667()闭包内部变量会存在,而闭包内部函数的内部变量不会存在.
679+
使得Javascript的垃圾回收机制GC不会收回say667()所占用的资源,
680+
因为say667()的内部函数的执行需要依赖say667()中的变量。这是对闭包作用的非常直白的描述.
677681

678682
function say667() {
679683
// Local variable that ends up within closure
@@ -836,7 +840,10 @@ jQuery中没有提供这个功能,所以你需要先编写两个jQuery的扩
836840

837841
838842
内存泄漏指任何对象在您不再拥有或需要它之后仍然存在。
839-
垃圾回收器定期扫描对象,并计算引用了每个对象的其他对象的数量。如果一个对象的引用数量为 0(没有其他对象引用过该对象),或对该对象的惟一引用是循环的,那么该对象的内存即可回收。
843+
844+
垃圾回收器定期扫描对象,并计算引用了每个对象的其他对象的数量。
845+
如果一个对象的引用数量为 0(没有其他对象引用过该对象),
846+
或对该对象的惟一引用是循环的,那么该对象的内存即可回收。
840847

841848
setTimeout 的第一个参数使用字符串而非函数的话,会引发内存泄漏。
842849
闭包、控制台日志、循环(在两个对象彼此引用且彼此保留时,就会产生一个循环)
@@ -1034,3 +1041,4 @@ jQuery中没有提供这个功能,所以你需要先编写两个jQuery的扩
10341041

10351042

10361043

1044+
我的个人主页(http://www.wenjie.info)

0 commit comments

Comments
 (0)