全面兼容ie6,ie7,ie8,ff的CSS HACK写法

六 29 2010 Published by zdy under 杂七杂八

<style type=”text/css”>
#body {
border:2px solid #00f;     /*ff的属性*/
border:2px solid #090\9;   /* IE6/7/8的属性 */
border:2px solid #F90\0;     /* IE8支持 */
_border:2px solid #f00;     /*IE6的属性*/
}
</style>
<div id=”body”>
<ul>
<li>FF下蓝边</li>
<li>IE6下红边</li>
<li>IE7下绿边</li>
<li>IE8下黄边</li>
</ul>
</div>

全面兼容ie6,ie7,ie8,firfox

No responses yet

php中处理html代码的两个常用函数

五 31 2010 Published by zdy under 编程技巧

1.htmlentities()函数:
说明:将html标签转换成特殊字符。例如将'";

//Lets make it safer before we use it
$userInputEntities = htmlentities($userInput);

//Now we can display it
echo $userInputEntities;
由于最近csdn的控件比较垃圾,请将上面的$apos改成单引号。---呼!

上面的语句执行后,将生成下面的结果

I am going to hax0r your site, hahaha!
'
2.html_entity_decode()函数
说明:将htmlentities()函数转义过的字符串转成html标签。

例子:

$orig = "I'll \"walk\" the dog now";

$a = htmlentities($orig);

$b = html_entity_decode($a);

echo $a; // I will "walk" the dog now

echo $b; // I will "walk" the dog now

No responses yet

100个table样式css,附带下载

五 01 2010 Published by zdy under 杂七杂八

点击左边第一列查预览不同样式

http://icant.co.uk/csstablegallery/index.php

No responses yet

javascript 小测试[转]

三 01 2010 Published by zdy under 互联网, 杂七杂八, 编程技巧

javascript小测试,弄清楚这些题目可以帮助你更好的理解javascript语言的一些特性,比如运算符的优先级、作用于链、强制数据转换、函数表达式等。

点击这里有这些题的运算结果。

先看题:

example 1

    var num1 = 5,
    num2 = 10,
    result = num1+++num2;
    rusult 的值是多少,num1和num2 的值分别是多少?

example 2

    var x = 5,
        o = {
            x: 10,
            doIt: function doIt(){
                var x = 20;
                setTimeout(function(){
                    alert(this.x);
                }, 10);
            }
        };
    o.doIt();

example 3

   var num1 = "10",
    num2 = "9";
    num1 < num2 的值是?
    +num1 < num2 的值是?
    num1 + num2 的值是?
    +num1 + num2 的值是?

example 4

  var message = "Hello world!";
    message.substring(1, 4)值是?
    message.substr(1,4)值是?

example 5

    var o = {
        x: 8,

        valueOf: function(){
            return this.x + 2;
        },
        toString: function(){
            return this.x.toString();
        }
    },
    result = o < "9";
    alert(o);
    result 的结果是?
    alert 打印的结果是?

example 6

      (function(){
          return typeof arguments;
        })();

example 7

        var f = function g(){ return 23; };
        typeof g();

example 8

  (function(x){
        delete x;
        return x;
    })(1);

example 9

    var y = 1, x = y = typeof x;
    x的值是?

example 10

    (function f(f){
        return typeof f();
    })(function(){ return 1; });
解答:

example 1

result 的值是15,num1为6,num2为10
下表按从最高到最低的优先级列出JavaScript运算符。具有相同优先级的运算符按从左至右的顺序求值。

运算符 描述
. [] () 字段访问、数组下标、函数调用以及表达式分组
++ — – ~ ! delete new typeof void 一元运算符、返回数据类型、对象创建、未定义值
* / % 乘法、除法、取模
+ – + 加法、减法、字符串连接
<< >> >>> 移位
< <= > >= instanceof 小于、小于等于、大于、大于等于、instanceof
== != === !== 等于、不等于、严格相等、非严格相等
& 按位与
^ 按位异或
| 按位或
&& 逻辑与
|| 逻辑或
?: 条件
= oP= 赋值、运算赋值
, 多重求值

很明显,”++”为一元运算符,优先级要高于”+”加法运算符。所以,result=num1+++num2 等价于 result = (num1++)+num2,又因为++运算符后置,后缀式运算符是在计算过包含它们的表达式后才进行增量或减量运算的。所以result 的值是15。

example 2

该题的结果是5.涉及到了作用域链(JavaScript scope)的知识,setTimeout 中的函数的的scope会放入global scope, “this”指向window,所以会找到全局变量x。

example 3

字符串比较大小,会把字符转换为ASCII 码来对比,是逐个字符比较,如果相等,这比较下一个字符,否则返回比较结果。“10”的第一个字符‘1’比‘9’的ASCII要小。所以,”10″<”9″会返回 true.

字符串前面的”+”运算符会把字符串转换为数字。当一个是字符串变量,一个是数字比价大小时.这里还包括字符串变量是数字还是字母.当字符串是数字时,ECMAscript规定自动转换为数字类型,当是字母时,转换为数字时会转换为NaN,当NaN和数字比较时不论大小都返回false。

example 4

substring(index1,index2)的第二个参数是截取结束字符的index值。

substr(index1,length) 的第二个参数是截取的字符串的长度。

注:substr() 在ECMA中已建议弃用

example 5

在javascript中,object的prototype中已有两个方法valueOf和toString,前者在获取对象的值时自动调用,后 者在转换为字符串的时候自动调用。该题中对象o重写了这两个方法,所以result=o<”9″ 调用了o的valueOf方法,转换为result =10<”9″,根据第二题,9自动会转换为数字,所以返回为false.而在执行alert(o)时,会自动调用toString方法,打印出来 是8

example 6

标识符arguments本质上是个局部变量,在每个函数中都会被自动声明并被初始化,是一个特殊的数组,继承自object,typeof 打印出来为“object”.

example 7

在IE下返回为number,在FF下报“ReferenceError: g is not defined”的异常。具体情况还未知,有知道的告诉我。

example 8

通过var声明的变量和通过function声明的函数拥有DontDelete特性,无法被删除.详细可参考这篇文章

example 9

x值为undefine(而不是报异常),JavaScript引擎会优先解析var变量和function定义。在预解析完成后,才会执行代码。 详见lifesinger的《JavaScript运行机制浅探

example 10

number,注意f后面那个括号。

One response so far

十一 22 2009 Published by zdy under 杂七杂八

恨死做前台页面了,老是不记得表格的跨行跨列
跨行:rowspan=2
跨列:colspan=2

No responses yet