2009-727
//构造函数
function myConstructor(message){
this.myMessage = message;
//私有属性
var separator = '-';
var myOwner = this;
//私有方法
function alertMessage(){
alert(myOwner.myMessage)
}
//特权方法(也是共有方法)
this.appendToMessage = function(string){
this.myMessage += separator + string;
alertMessage();
}
}
//公有方法
myConstructor.prototype.clearMessage = function(string){
this.myMessage = ' ';
}
//静态属性
myConstructor.name = 'Jeff';
//静态方法
myConstructor.alertName = function(){
alert(this.name);
}
未完待续……
2009-723

浏览器只有增加,没有减少,无奈!虽然所有人都希望IE6能成为历史,但我们应该还要面对它好几年吧。在我现在的工作中,只需要测试IE6~8, FF,因此我对OP, Sa, CH测试的很少,有时间的话,确实应该测试的全面一些。对CSS Hack的总结的不是很全面,实在很繁琐,列出常用的吧。
selector{
color:red;
[;color:red;]/*Sa, CH*/
color:red\0;/*IE8*/
*color:red;/*IE7-*/
_color:red;/*IE6*/
}
html* selector{
backgrond-color:red;/*Sa IE7 OP*/
}
*+html selector{
backgrond-color:red;/*OP9.6-*/
*backgrond-color:red;/*IE7*/
}
*html selector{
backgrond-color:red;/*IE6*/
}
html*~/**/body selector{
backgrond-color:red;/*IE8*/
}
@media all and(min-width:0){
selector{color:red;}
}/*only Opera */
@media all and (min-width:0){
selector{
color:red; /*Opera,Sa3.2.3- */
html* selector{color:red; /*Sa3.2.3-*/}
}
}
IE的if条件Hack
<!--[if IE]> Only IE <![endif]-->
<!--[if IE 5.0]> Only IE 5.0 <![endif]-->
<!--[if gt IE 5.0]> Only IE 5.0+ <![endif]-->
<!--[if lt IE 6]> Only IE 6- <![endif]-->
<!--[if gte IE 6]> Only IE 6/+ <![endif]-->
<!--[if lte IE 7]> Only IE 7/- <![endif]-->
相关阅读:
- CSS Hack 汇总快查
- [原][更新]最新CSS兼容方案
- Goodbye to CSS Hack
- Ajaxian » CSS Browser Hacks
2009-715
对于用CSS实现垂直居中有很多种方法,对于标准浏览器的实现方法较为简单、统一,即采用单元格垂直居中的特性:
标准浏览器如Mozilla, Opera, Safari等.,可将父级元素显示方式设定为TABLE(display: table;) ,内部子元素定为table-cell (display: table-cell),通过vertical-align特性使其垂直居中,但非标准浏览器是不支持的。
这些方法的不同之处在于对IE的实现。主流的方法有两种:
方法一:
非标准浏览器只能在子元素里设距顶部50%,里面再套个元素距顶部-50% 来抵消。
body {padding: 0; margin: 0;}
body,html{height: 100%;}
#outer {height: 100%; overflow: hidden; position: relative;width: 100%; background:ivory;}
#outer[id] {display: table; position: static;}
#middle {position: absolute; top: 50%;} /* for explorer only*/
#middle[id] {display: table-cell; vertical-align: middle; position: static;}
#inner {position: relative; top: -50%;width: 400px;margin: 0 auto;} /* for explorer only */
div.greenBorder {border: 1px solid green; background-color: ivory;}
优点:无需定义父元素的高度。
缺点:引入较多额外的标签。
方法二:
元素高度/字体大小的比值为1.14左右时IE可实现垂直居中
.box {
display: table-cell;
vertical-align:middle;
width:200px;
height:200px;
text-align:center;
/* hack for ie */
*display: block;
*font-size: 175px;
/* end */
border: 1px solid #eee;
}
.box img {
vertical-align:middle;
}
优点:没有额外的标签。
缺点:计算font-size的值需要知道父元素的高度。
其实都是根据不同的需求来确定解决方案。相关阅读5还有很多奇怪的方法,有一些是是方法一的变种,没读懂……
补充:
方法二中,当.box为浮动时在FF下将失效,原因不知。
相关阅读:
- CSS解决未知高度垂直居中
- 2007淘宝UED招聘题解(前端开发部分)
- CSS实现完美垂直居中
- CSS实现垂直居中的5种方法
- CSS图片垂直居中方法整理集合 !
延伸——水平居中:
Beautiful Horizontally Centered Menus/Tabs/List. No CSS hacks. Full cross-browser.一文中所用到的水平居中的方法和垂直居中方法一的原理类似。在我看来都很有创意,想法很重要。
