2010年9月 的存档
2010九月30

文件读写–日志

C#语法 评论关闭
 public static void WriteLog(string context)
        {
            using (StreamWriter w = File.AppendText("c:\\temp.txt"))
            {
                Log(context, w);
                w.Close();
            }

        }

        public static void Log(String logMessage, TextWriter w)
        {
            w.Write("\r\nLog Entry : ");
            w.WriteLine("{0} {1}", DateTime.Now.ToLongTimeString(),
                DateTime.Now.ToLongDateString());
            w.WriteLine("  :");
            w.WriteLine("  :{0}", logMessage);
            w.WriteLine("-------------------------------");
            // Update the underlying file.
            w.Flush();
        }
2010九月30

线程

C#语法 评论关闭
    Thread mouseThread = new Thread(new ThreadStart(Run));//两个线程共同做一件事情
            mouseThread.Name = "mouneClick";
            mouseThread.Start();

       public void Run()
    {
        int dx = 40;
        int dy = 40;
        while (true)
        {
            if (IsMouseStart)
            {
                //WriteLog(IsMouseStart.ToString());
                mouse_event((int)(MouseEventFlags.LeftDown | MouseEventFlags.Absolute), 0, 0, 0, IntPtr.Zero);
                mouse_event((int)(MouseEventFlags.LeftUp | MouseEventFlags.Absolute), 0, 0, 0, IntPtr.Zero);
                Thread.Sleep(100);

            }

        }
    }

//在最后要去掉线程
 if (mouseThread != null)
            {
                mouseThread.Abort();
            }
2010九月30

反射

C#语法 评论关闭

1,//调用Type类的静态方法GetType,并将Type对象引用返回给tp变量
Type tp = Type.GetType(“ClassA”, false, false);
//tp对象调用GetMethods方法,返回对象中所有公共方法数组,并赋值给ma数组
MethodInfo[] ma = tp.GetMethods();
Console.WriteLine(“\n\t=================ClassA类所含的方法=================”);
//遍历ma数组中的所有MethodInfo类型子项
foreach (MethodInfo s in ma){
//依次输出MethodInfo类型子项的属性值
Console.WriteLine(“\n\t【{0}方法】”, s.Name);
Console.Write(“方法所属类名称:【{0}】”, s.DeclaringType);
Console.WriteLine(“\t方法是否为构造函数:【{0}】”, s.IsConstructor);
Console.Write(“方法是否为public成员:【{0}】”, s.IsPublic);
Console.WriteLine(“\t方法是否为internal成员:【{0}】”, s.IsAssembly);
Console.Write(“方法是否为protected成员:【{0}】”, s.IsFamily);
Console.WriteLine(“\t方法是否为private成员:【{0}】”, s.IsPrivate);
Console.Write(“方法是否为泛型方法:【{0}】”, s.IsGenericMethod);
Console.WriteLine(“\t方法是否为静态方法:【{0}】”, s.IsStatic);
Console.Write(“方法是否为virtual方法:【{0}】”, s.IsVirtual);
Console.WriteLine(“\t方法返回类型为:【{0}】”, s.ReturnType);

//调用s的GetParameters方法,返回ParameterInfo类型数组//遍历数组的ParameterInfo类型子项
foreach (ParameterInfo pms in s.GetParameters()){//输出ParameterInfo类型子项的属性
Console.WriteLine(“\n\t——【{0}参数】——”, pms.Name);
Console.Write(“参数类型:【{0}】”, pms.ParameterType);
Console.WriteLine(“\t参数位置:【{0}】”, pms.Position);
}
}??

注:当跨项目引用dll时要采用如下形式:
Assembly asmb = Assembly.LoadFrom(“EnterpriseServerBase.dll”) ;
Type supType = asmb.GetType(“EnterpriseServerBase.DataAccess.IDBAccesser”) ;
?
或者在当前项目已经引用目标dll的情况下采用:
Type supType = typeof(BNameSpace.SubSpace.Class);

2,得到所有属性
? Type type = typeof(T);???? System.Reflection.PropertyInfo[] properties = type.GetProperties();
//可用 properties[i].SetValue(t, dr[properties[i].Name], null); 赋值

3,创建对象实例
?T t = Activator.CreateInstance<T>();??
或者:Type type = typeof(T);????? T t = Activator.CreateInstance(type);

4,调用方法:
Assembly asmb = Assembly.LoadFrom(“LvShouSecurity.dll”);
//Type supType = asmb.GetType(“LvShouSecurity.SecurityMan”);
MethodInfo m = asmb.GetType(“LvShouSecurity.SecurityMan”).GetMethod(“Encrypto”);
Object ret = m.Invoke(null, new object[]{“hello”});

2010九月30

文件操作

C#语法 评论关闭

1,遍历
C#遍历指定文件夹中的所有文件
DirectoryInfo TheFolder=new DirectoryInfo(folderFullName);
//遍历文件夹
foreach(DirectoryInfo NextFolder in TheFolder.GetDirectories())
this.listBox1.Items.Add(NextFolder.Name);
//遍历文件
foreach(FileInfo NextFile in TheFolder.GetFiles()) //foreach(FileInfo NextFile in TheFolder.GetFiles(“*.cs”)) 找类文件
this.listBox2.Items.Add(NextFile.Name);

FileInfo.Exists:获取指定文件是否存在;
FileInfo.Name,FileInfo.Extensioin:获取文件的名称和扩展名;
FileInfo.FullName:获取文件的全限定名称(完整路径);
FileInfo.Directory:获取文件所在目录,返回类型为DirectoryInfo;
FileInfo.DirectoryName:获取文件所在目录的路径(完整路径);
FileInfo.Length:获取文件的大小(字节数);
FileInfo.IsReadOnly:获取文件是否只读;
FileInfo.Attributes:获取或设置指定文件的属性,返回类型为FileAttributes枚举,可以是多个值的组合
FileInfo.CreationTime、FileInfo.LastAccessTime、FileInfo.LastWriteTime:分别用于获取文件的创建时间、访问时间、修改时间;

2,读写


 //创建并写入(将覆盖已有文件)
      if (!File.Exists(path))
      {
         using (StreamWriter sw = File.CreateText(path))
         {
            sw.WriteLine("Hello");
         }
      }
      //读取文件
      using (StreamReader sr = File.OpenText(path))
      {
        string s = "";
        while ((s = sr.ReadLine()) != null)
        {
           Console.WriteLine(s);
             if (s.IndexOf("aaa") != -1)
                {
                   //.... 搜索文件是否包含某关键字
                }
        }
     }
     //删除/拷贝
     try
     {
        File.Delete(path);
        File.Copy(path, @"f:\tt.txt");
     }
     catch (Exception e)
     {
        Console.WriteLine("The process failed: {0}", e.ToString());
     }
   }

//查找关键字是否存在于指定目标所有文件中的任一
    private void SearchKeyWordListInDirectroyFiles(string DirectoryPath, IList KeyWordsList,string filePattern ) {
        //KeyWordsList,关键字集合,filePattern指定搜索哪些文件,notFile指定不搜索哪个文件
        try
        {
            DirectoryInfo di = new DirectoryInfo(DirectoryPath);
            foreach (FileInfo NextFile in di.GetFiles(filePattern))
            {
                using (StreamReader sr = NextFile.OpenText())
                    {
                        string s = "";
                        while ((s = sr.ReadLine()) != null)
                        {
                            for (int i = 0; i < KeyWordsList.Count; i++)
                            {
                                if (s.IndexOf(KeyWordsList[i].ToString()) != -1)
                                {
                                    KeyWordsList.RemoveAt(i);
                                }
                            }
                        }
                    }

            }

            foreach (DirectoryInfo NextFolder in di.GetDirectories())
            {
                SearchKeyWordListInDirectroyFiles(NextFolder.FullName, KeyWordsList, filePattern);
            }

        }
        catch (Exception e) { 

        }
    }
2010九月30

.NET 中的数字格式化,日期格式化

C#语法 评论关闭

1,基本内容是:可以在 Console.WriteLine(以及 String.Format,它被 Console.WriteLine 调用)中的格式字符串内的括号中放入非索引数字的内容。
格式规范的完整形式如下:
{index [, width][:formatstring]}
其中,index 是此格式程序引用的格式字符串之后的参数,从零开始计数;width(如果有的话)是要设置格式的字段的宽度(以空格计)。width 取正数表示结果右对齐,取负数则意味着数字在字段中左对齐。formatstring 是可选项,其中包含有关设置类型格式的格式说明.
2,数字格式
请注意,数字的格式是区分语言的:分隔符以及分隔符之间的空格,还有货币符号,都是由语言决定的 ? 默认情况下,是您计算机上的默认语言。默认语言与执行线程相关,可以通过 Thread.CurrentThread.CurrentCulture 了解和设置语言。有几种方法,可以不必仅为一种给定的格式操作就立即更改语言。
内置类型的字母格式
有一种格式命令以单个字母开头,表示下列设置:
G?常规,E 或 F 中较短的
F?浮点数,常规表示法
E?用 E 表示法表示的浮点数(其中,E 代表 10 的次幂)
N?带有分隔符的浮点数(在美国为逗号)? 如:N4 代表取四位小数
C?货币,带有货币符号和分隔符(在美国为逗号)
D?十进制数,仅用于整型
X?十六进制数,仅用于整型

double pi = Math.PI;
double p0 = pi * 10000;
int i = 123;

Console.WriteLine(“pi, G4?? {0, 25:G4}”, pi); //???????????????????? 3.142

Console.WriteLine(“pi, G4?? {0, 25:G4}”, pi); //???????????????????? 3.142

Console.WriteLine(“i,? D7?? {0, 25:D7}”, i ); //?????????????????? 0000123

2010九月30

字符串操作

C#语法 评论关闭

1.字符串拼接:

string msg = ” Hello, ” + thisUser.Name + “.Today is ” + DateTime.Now.ToString( ));

更有效率的写法:

string msg = string .Format ( ” Hello, {0}. Today is {1}” , thisUser.Name, DateTime.Now.ToString( ));

2.大量数据拼接则使用StringBuilder。

3.字符串的比较:

(1)判断是否是空串

if ( str != ” ” )与if ( str == ” ” )

更有效率的写法:

if ( str.Length != 0 )与if ( str.Length ==0 )

有效率且可读性更好的写法:

if ( str != string .Empty )与if( str .Equals( string .Empty)

比较是否是NULL或空字串用:string.IsNullOrEmpty

(2) 字符串之间的比较

?if (string.Compare(s,b,true) ==0)?? s<b 小于0,s==b ,0 s>b 大于0 这种比较用true指定忽略大小写,不用再toUpper()之类

4,截取最后一位之前的数据TrimEnd
string s = “1,2,3,4,5,”;
Console.Write(s.ToString().TrimStart(‘,’));
Console.Read();

5,分割字符串:
1)单个字符:string[] args = str.split(‘,’);
2)字符串切分:string[] arrays = Regex.Splits,”##”,RegexOptions.IgnoreCase); //System.Text.RegularExpressions;

6,转换:

int.Parse:用法,将抛出异常

Convert.ToInt32(s): 当s为空时不抛出异常,当为string.Empty或字符串时”sdfsd”则抛出异常

int.TryParse(s,out i) 不抛出异常,若有异常,返回false,

//性能:int.TryParse > int.Parse > Convert.ToInt32

7,求两个整数的商及余数

int yes; double s = Math.DivRem(5,0,out yes);

8, 返回>=指定数字的最小整数 Math.Ceiling(0.5)

2010九月30

正则表达式

1,资料

2,特殊字母
(1)
. 匹配除了换行符(\n)以外的任意一个字符。要匹配小数点本身,请使用 “\.”

^ 匹配输入字符串的开始位置。要匹配 “^” 字符本身,请使用 “\^”

$ 匹配输入字符串的结尾位置。要匹配 “$” 字符本身,请使用 “\$”

( ) 标记一个子表达式的开始和结束位置。要匹配小括号,请使用 “\(” 和 “\)”

[ ] 用来自定义能够匹配 ‘多种字符’ 的表达式。要匹配中括号,请使用 “\[" 和 "\]”

{ } 修饰匹配次数的符号。要匹配大括号,请使用 “\{” 和 “\}”

? 修饰匹配次数为 0 次或 1 次。要匹配 “?” 字符本身,请使用 “\?”

+ 修饰匹配次数为至少 1 次。要匹配 “+” 字符本身,请使用 “\+”

* 修饰匹配次数为 0 次或任意次。要匹配 “*” 字符本身,请使用 “\*”

| 左右两边表达式之间 “或” 关系。匹配 “|” 本身,请使用 “\|”

(2)“\”
\w 可以匹配任何一个字母或者数字或者下划线

\W W大写,可以匹配任何一个字母或者数字或者下划线以外的字符

\s 可以匹配空格、制表符、换页符等空白字符的其中任意一个

\S S大写,可以匹配任何一个空白字符以外的字符

\d 可以匹配任何一个 0~9 数字字符

\D D大写,可以匹配任何一个非数字字符

(3) {}
{n} 表达式固定重复n次,比如:”\w{2}” 相当于 “\w\w”

{m, n} 表达式尽可能重复n次,至少重复m次:”ba{1,3}”可以匹配 “ba”或”baa”或”baaa”

{m, } 表达式尽可能的多匹配,至少重复m次:”\w\d{2,}”可以匹配 “a12″,”x456″…

2010九月30

基本语法2

C#语法 评论关闭

19, C#的数组

C#的数组都是对象,继承自Array类,故都拥有属性及方法,如Rank,数组的维数,equals等。而java中的数组只有一个length属性。 Array intArray1 = Array.CreateInstance(typeof(int), 5); 等同于:int[] intArray1 = new int[5]; int[] intArray2 = (int[])intArray1;

除一般数组外,C#支持不规则数组如: int[][] jagged = new int[3][];
jagged[0] = new int[2] { 1, 2 };
jagged[1] = new int[6] { 3, 4, 5, 6, 7, 8 };
jagged[2] = new int[3] { 9, 10, 11 };
20,操作符:
is 判断左是否是右类型
as 类型转换

21,运算符重载
Vector x = new Vector ( 1,1 ); Vector y = new Vector (2,2)
Vector z = x + y // 或者用point z = x.add( y ); 但显然前者更直观。

实现:方法为public , static 运算符前加operator: public static Vector operator + (Vector lhs, Vector rhs)
{
Vector result = new Vector(lhs);
result.x += rhs.x;
result.y += rhs.y;
result.z += rhs.z;
return result;
} //此时 x + y会执行此方法,实际上,当出现运算符时,c#都先在左,右操作数的方法找是否具有重载此操作符的方法,且此方法参数与给出的操作符左右操作数相同,若相同,执行之。
x = 2 * x public static Vector operator * (int lhs, Vector rhs)
{
Vector result = new Vector(lhs);
result.x = 2 * rhs.x;
result.y += 2 * rhs.y;
return result;
} 若是x = x * 2 则不会执行,因为形参不匹配,此时需要再定义一个 public static Vector operator * (Vector rhs,int lhs )
{
return lhs * rhs;
}
能重载的运算符有: +, *, /, -, %
+, -, ++, –
&, |, ^, <<, >>
!, ~true, false
==, !=,>=, <=>, <, //没有 = 此外: true false;== !=; > <; >= <=; 重载时重载一个,另一个必须重载且返回结果要为boolean ,在重载了 + 之后相当于重载了+= ,+=不能显式重载
22, 委托 --- 类是数据,方法也可当做数据,也能被赋值。
using System;
public partial class AA
{
public delegate string show( string name );

public string list( string name )
{
return "hdello world " + name;
}

public static void Main(){
AA a = new AA();
//show _show = new show(a.list);
show _show = a.list;
Console.Write(_show("123"));
Console.Write(a.go( _show ));

}
public string go( show _show ){
return _show("345");
}
}

委托可当做类来看待,即委托方法就是一个类,可用new来创建,同js,不同js的方法当成类还可以有属性。

委托不要方法体, 前要加关键字 delegate
调用:委托方法 + 括号, 直接用,不用创建对象引用。
方法当做变量来看,在赋值,传参时当然不要用(), 只有在调用时才用()
委托还可以进行 + , - 操作,一次运行多个方法,但方法返回值最好为void,否则后者会将前者覆盖掉

using System;
public partial class AA
{
public delegate void show( string name );

public void list( string name )
{
Console.Write("hdello world " + name);
}

public void list1( string name )
{
Console.Write( "list1 world " + name);
}

public static void Main(){
AA a = new AA();
show _show = a.list;
_show += a.list1;
_show("123");

}

}

23,集合
Hashtable ht = new Hashtable();
foreach (DictionaryEntry de in myHT) {
Console.Write( dr.key + dr.value );
}
取值: ht["name"]
//注意,因为HashTable是按散列排序,不是数据那种位置类的,故它的输出与add的位置不同。
IList接口 List 提供范型 List list = new List(); list[0]
java中接口与范型都是List

2010九月30

基本语法1

C#语法 评论关闭

1,编译类文件:csc Class1.cs ? ? ? ?因编译后直接生成.exe文件,故可直接点击运行??? csc:开始–2008 – tools – 命令行提示

?2,C#的命名空间类似于java中的包的概念

?3,静态成员只能通过类名来访问,不能通过对象实例来访问

?4, 常量定义用const,而不是java中的final,并且const自动为static类型,因java的常量支持构造器初始化故不是自动static类型
?? ? ? 同时常量定义还可以用readonly,它同final一样,在运行时才确定其值,故它的值可以在构造函数中给值,即然如此,那么它就不再自动为
?? ? ? static类型
?? ? ? var : 代表任意类型,在方法内部使用如:var i = 10
?
?5,值类型

  • ??java中的基型在c#称为值类型,如int,并且每个值类型实际上是一个struct,也拥有自己的方法!!! ?
  • ??值类型分为有符号数与无符号数如int?( – 2 31 :2 31 – 1) ?而对应的无符号数uint(0:2 32 – 1)
  • ??int 与 char的转换要强制执行,而不再是默认
  • ??char大小为16位,故可以用来存一个汉字如:char c = ‘中’,同java。从8位上升到16位的原因是ASCII码表示不完所有字符,如汉字,故当出现符号与汉字在一起时,单个截取就不用再担心汉字被一分为二的问题。
  • ??转义字符\ 但字符串中多时如路径就要写很多\\可用@:string filepath = @”C:’ProCSharp\First.cs”; \就会是\而不代表转义。
  • ??switch可以用字符串,而java只能用int以下
6,迭代
?? ? ?迭代多了一个foreach,可以遍历字符串,数组,集合中全部元素,但在遍历时不能改变其值,若想改变用for 如:
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ??String s = “abd雪ad”;?? ? ? ? ?foreach( char d in s ){??Console.WriteLine(d);???}
7,String与string的区别:
?? ??string是c#中的类,String是Framework的类,如果用string,编译器会把它编译成String,所以如果直接用String就可以让编译器少做一点点工作。
类似的还有:

?? ?using?string?=?System.String;?
?? ?using?sbyte?=?System.SByte;?
?? ?using?byte?=?System.Byte;?
?? ?using?short?=?System.Int16;?
?? ?using?ushort?=?System.UInt16;
?? ?using?int?=?System.Int32;?
?? ?using?uint?=?System.UInt32?

7, 输入输出 — Console
????? ?输入:Console.ReadLine();
?? ?? ?输出:Console.WriteLine(s);
?? ? ?格式化输出:Console.WriteLine(“{0} plus {1} equals {2}”, i, j, i + j); (类似于C中的printf)
8, 程序说明文档。java中用javadoc提取,在程序中用@author之类定义
?? ?c#以“///”开头,也要加一些关键字,如:
?? ? ? ?/// <summary>
?? ? ? ?/// The Add method allows us to add two integers.
?? ? ? ?/// </summary>
?? ? ? ?/// <returns> Result of the addition (int) </returns>
?? ? ? ?/// <param name=”x”> First number to add </param>
?? ? ? ?/// <param name=”y”> Second number to add </param>
?? ? ? ?public static int show(int x, int y) {
?? ? ? ? ? ?return 0;
?? ? ? ?}?
?? ? ? 提取时用:csc /doc Test.xml Test.cs ? ? ?生成的是XML文件,而不是HTML文件
9 函数传参
??默认是值传递。同java,不会改变传来的值,但能影响其所指的值,即所指的值改变,原来的实参也会发生相应变化。
  • ?ref :显示指明是引用传递,此时即使传来的基型,在方法中改变,实参也会改变
  • ?out: 也是指明引用传递,不过实参可以不初始化传值,注意的是实参与形参前都要加上out前缀。
10 生成属性:
???public string Account
?? ? ? ?{
?? ? ? ? ? ?get { return _Account; }
?? ? ? ? ? ?set { _Account = value; }
?? ? ? ?}
?或者:?public string Account{ get; set; }
11. 构造函数:与java不同的是多了一个static构造函数,在类第一次创建对象时由系统执行
?? ?static User()
?? ?{
?? ??? ?DateTime now = DateTime.Now;
???? ? ?if (now.DayOfWeek == DayOfWeek.Saturday
?? ?? ??? ??|| now.DayOfWeek == DayOfWeek.Sunday)
?? ?? ??BackColor = Color.Green;
?? ?? ??else
???? ? ?BackColor = Color.Red;
?? ?}
?因由系统调用,故在外部是不能访问的,可以再有一个无参的构造器!

12,结构体与类的区别
struct PhoneCustomerStruct
{
public const string DayOfSendingBill = “Monday”;
public int CustomerID;
public string FirstName;
public string LastName;
public void show(){? }? //方法
}

创建:PhoneCustomerStruct pcs = new PhoneCustomerStruct();
与class相似,不同在于:1,结构体不能被继承,不能定义无参构造器
???????????????????????????????????? 2,结构体是值类型,类是引用类型。结构体存放在栈内,而类存放在堆中。

13,同java一样, C#只能继承自一个类,但可实现多个接口。重载时父类方法前要加virtual, 子类覆盖方法前加override, 而java所有父类方法都是virtual,故可不加此关键字。注:c#中若写上virtual, 子类同名方法前最好加上一个new, 代表这是此类型对象中的一个新的方法。
调用父类方法用base, 类似于java中的super.

14, 抽象类用abstract定义,抽象的类方法自动为virtual类型

15,在java中,final的类不能被继承,final的方法不能被覆盖,c#中用sealed, sealed的类不能被继承,sealed的方法不能被覆盖。其实若不想方法被覆盖的话将方法不声明为virtual即可。 同java一样,c#中的string也是只读的。

16, 修饰符:
? public ? 可以被外部成员调用 ?
? internal ? 可以在当前项目调用 ?
? protected ? 只能在被类的成员和该类的子类调用 ?
? private ? 只能在被类的成员调用
? protected internal ? :程序集及子类中调用都可。

17,c#类文件中可有多个public类,而java只能有一个,且此类的名称要与文件名相同,而C#无此限制。

18, c#的Interface与java的interface相同!接口名称通常以”I“开头, 实现接口但不用implements,而用”:‘, 接口之间继承也是用的号,即类继承,实现接口,接口之间的继承都用冒号。

19, C#的数组

  • C#的数组都是对象,继承自Array类,故都拥有属性及方法,如Rank,数组的维数,equals等。 而java中的数组只有一个length属性。 ? ?? Array intArray1 = Array.CreateInstance(typeof(int), 5);? 等同于:int[] intArray1 = new int[5]; int[] intArray2 = (int[])intArray1; ????????
  • 除一般数组外,C#支持不规则数组如:????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? int[][] jagged = new int[3][];
    jagged[0] = new int[2] { 1, 2 };
    jagged[1] = new int[6] { 3, 4, 5, 6, 7, 8 };
    jagged[2] = new int[3] { 9, 10, 11 };
2010九月30

png图片在IE6下的显示

css 评论关闭

利用过滤器解决:
<pre lang=”css”>#png
{background-image: url(images/logo.png)!important;
background-repeat: no-repeat;
_filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=’http://enjoyasp.net/logo.png’);
_background-image: none;
}</pre>

2010九月30

table 美观例子

css 评论关闭

?<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″utf-8″ />
</head>
<style type=”text/css”>
/* CSS Document */

body {
font: normal 11px auto “Trebuchet MS”, Verdana, Arial, Helvetica, sans-serif;
color: #4f6b72;
background: #E6EAE9;
}

a {
color: #c75f3e;
}

table {
width: 700px;
padding: 0;
margin: 0;
}

caption {
padding: 0 0 5px 0;
width: 700px;
font: italic 11px “Trebuchet MS”, Verdana, Arial, Helvetica, sans-serif;
text-align: right;
}

th {
font: bold 11px “Trebuchet MS”, Verdana, Arial, Helvetica, sans-serif;
color: #4f6b72;
border-right: 1px solid #C1DAD7;
border-bottom: 1px solid #C1DAD7;
border-top: 1px solid #C1DAD7;
letter-spacing: 2px;
text-transform: uppercase;
text-align: left;
padding: 6px 6px 6px 12px;
background: #CAE8EA? no-repeat;
}
th.nobg {
border-top: 0;
border-left: 0;
border-right: 1px solid #C1DAD7;
background: none;
}

td {
border-right: 1px solid #C1DAD7;
border-bottom: 1px solid #C1DAD7;
background: #fff;
font-size:11px;
padding: 6px 6px 6px 12px;
color: #4f6b72;
}

td.alt {
background: #F5FAFA;
color: #797268;
}

th.spec {
border-left: 1px solid #C1DAD7;
border-top: 0;
background: #fff no-repeat;
font: bold 10px “Trebuchet MS”, Verdana, Arial, Helvetica, sans-serif;
}

th.specalt {
border-left: 1px solid #C1DAD7;
border-top: 0;
background: #f5fafa no-repeat;
font: bold 10px “Trebuchet MS”, Verdana, Arial, Helvetica, sans-serif;
color: #797268;
}
/*———for IE 5.x bug*/
html>body td{ font-size:11px;}
body,td,th {
font-family: 宋体, Arial;
font-size: 12px;
}
</style>
<body>
<table cellspacing=”0″>
<caption> </caption>
<tr>
<th>姓名</th>
<th>年龄</th>
<th>电话</th>
<th>居住地点</th>
</tr>
<tr>
<td>badwolf</td>
<td>100</td>
<td>010-110</td>
<td>中国北京</td>
</tr>
<tr>
<td>badwolf</td>
<td>100</td>
<td>010-110</td>
<td>中国北京</td>
</tr>
<tr>
<td>badwolf</td>
<td>100</td>
<td>010-110</td>
<td>中国北京</td>
</tr>
<tr>
<td>badwolf</td>
<td>100</td>
<td>010-110</td>
<td>中国北京</td>
</tr>
<tr>
<td>badwolf</td>
<td>100</td>
<td>010-110</td>
<td>中国北京</td>
</tr>
<tr>
<td>badwolf</td>
<td>100</td>
<td>010-110</td>
<td>中国北京</td>
</tr>
</table>

</body>
</html>

2010九月30

网站变灰色

css 评论关闭

?方法一
1::<head></head>中加入代码:
<style>
html { filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); }
</style>

2:在css文档种加入以下代码
html { filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); }
若 FLASH的颜色不能被CSS滤镜控制,可以在FLASH代码的<object …></object>之间插入:
<param =”false” name=”menu”/>
<param =”opaque” name=”wmode”/>

方法二、给body加个css滤镜(仅限IE)
body {filter:gray;}
flash变灰的方法:object 之间加入
<param value=’false’ name=’menu’/>
<param value=’opaque’ name=’wmode’/

2010九月30

filter滤镜:控制页面的透明度,颜色,灰度,波纹

css 评论关闭

语法:STYLE=”filter:filtername(fparameter1, fparameter2…)”
(Filtername为滤镜的名称,fparameter1、fparameter2等是滤镜的参数)
滤镜说明:
Alpha:设置透明层次 ?
blur:创建高速度移动效果,即模糊效果
Chroma:制作专用颜色透明
DropShadow:创建对象的固定影子
FlipH:创建水平镜像图片
FlipV:创建垂直镜像图片
glow:加光辉在附近对象的边外
gray:把图片灰度化
invert:反色
light:创建光源在对象上
mask:创建透明掩膜在对象上
shadow:创建偏移固定影子
wave:波纹效果
Xray:使对象变得像被x光照射一样

哀悼日期间设置网站页面为灰色:
<style>
body{
? ?? ???filter:gray;
}
</style>

2010九月30

页面中所有的控件形状,位置,大小

css 评论关闭

页面中所有的控件形状,位置,大小都可利用css来改变成所想要的效果。以前只是改td,div, 文字,要意识到input也是html元素,当然也能改变!!!

2010九月30

例子

css 评论关闭

1,<a href=”http://www.w3schools.com/css/tryit.asp?filename=trycss_float5“>导航条</a>

body{
font-family: “宋体”;
font-size: 12px;
//对于页面中出现的文字,如外部没有CSS,就用这个CSS,默认。即最外层的CSS影响它所包含的内部所有元素,若其没有自己的CSS,则外部的应用之,对应应用。因为如td之类没有字体之类的属性,这种对应指的是外部CSS属性与元素含有的属性的交。
如: td
{
font-size:12px;s
}
对页面中td内的文字应用。

background-color: #F8FDF8;
margin: 0px auto;
}

2, 连接:link:正常显示 visited: 点击过后 hover: 鼠标滑过 active: 鼠标按下时
a.link {
font-size: 12px;
line-height: 22px;
color: #333333;
text-decoration: none;
}
a:visited {
font-size: 12px;
line-height: 22px;
color: #333333;
text-decoration: none;
}
a:hover {
font-size: 12px;
line-height: 22px;
color: #009900;
text-decoration: none;
}
a:active {
font-size: 12px;
line-height: 22px;
color: #333333;
text-decoration: none;
}

注: visited要在a:link之后。 active要在hover之后才会有效果。
3, 当控件获得焦点时进行样式操作
&lt;html&gt;
&lt;head&gt;
&lt;style type=”text/css”&gt;
input:focus
{
background-color:yellow;
}
&lt;/style&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;form action=”form_action.asp” method=”get”&gt;
First name: &lt;input type=”text” name=”fname” /&gt;&lt;br /&gt;
Last name: &lt;input type=”text” name=”lname” /&gt;&lt;br /&gt;
&lt;input type=”submit” value=”Submit” /&gt;
&lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;

3, 图片由半透明转为透明

&lt;html&gt;
&lt;head&gt;
&lt;style type=”text/css”&gt;
img
{
opacity:0.4; //firefox的用法,范围从0.0 – 1.0
filter:alpha(opacity=40) //ie的用法,范围从0 – 100
}
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;h1&gt;Image Transparency&lt;/h1&gt;
&lt;img src=”klematis.jpg” width=”150″ height=”113″ alt=”klematis”
onmouseover=”this.style.opacity=1;this.filters.alpha.opacity=100″
onmouseout=”this.style.opacity=0.4;this.filters.alpha.opacity=40″ /&gt;

&lt;/body&gt;
&lt;/html&gt;

4, 改变html的表现形式: 如input text 这个文本框让其只有下线,改变其边框颜色
&lt;!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “<a href=”http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</a>”&gt;
&lt;html xmlns=”<a href=”http://www.w3.org/1999/xhtml”>http://www.w3.org/1999/xhtml</a>”&gt;
&lt;head&gt;
&lt;meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″ /&gt;
&lt;title&gt;无标题文档&lt;/title&gt;
&lt;style&gt;
input {
border-color:red;
border-left-width:0px;
border-right-width:0px;
border-top-width:0px;}
&lt;/style&gt;
&lt;/head&gt;

&lt;body&gt;
sdf
&lt;input name=”" type=”text” /&gt;sfd
&lt;/body&gt;
&lt;/html&gt;

5, 百度输入栏:高度为28px, 而google为21px, 而中文高度比英文字母要繁,高度要高,显然百度的输入栏更符合输入中文。
&lt;input name=”" type=”text” autocomplete=”off”/&gt;
input[type="text"]{font:16px Verdana;height:28px;padding-top:2px} //改变html元素显示形状
注:页面要去掉头部的&lt;!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “<a href=”http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</a>”&gt;

2010九月30

属性高级指定

css 评论关闭

1,Dimension :尺寸,用来控制控件的高与宽

  • img.big {height:120px}
  • p{max-height:100px;}? 最大高度,同样有:max-width; min-heigh; min-width;
  • 左右为left, right

2, Classification: 指定控件的显示方式

  • p {display: inline} 追加到上一行显示,即在同一行显示
  • span{display:block;} 控件已块显示,即分行显示
  • div {display: none} :不显示
  • img {float:right;} 图片浮动在右方
  • h2.pos_left{position:relative;left:-20px;} position:relative相对定位 position:absolute; 绝对定位 fixed; 固定
  • h1.visible {visibility:visible}? h1.hidden {visibility:hidden}? 控制控件是否显示
  • <span style=”cursor:pointer”>pointer</span><br /> 手形鼠标,指定鼠标样式 cursor:wait 等待
  • 定位:relative:相对于原来的位置移动,absolute:相对于页面移动,即相对于(0,0)

2,p

  • p:first-letter {color: #ff0000;font-size:xx-large;}? //首字母特别
  • p:first-line {color:#ff0000;font-variant:small-caps;} //首行特别
  • h1:before {content:”sdf”}? //在文本之前插入文字,或图片h1:before {content:url(smiley.gif)}
  • h1:after {content:url(smiley.gif)} //之后, before, after在IE中没有作用

3,z-index 属性设置元素的堆叠顺序
该属性设置一个定位元素沿 z 轴的位置,z 轴定义为垂直延伸到显示区的轴。如果为正数,则离用户更近,为负数则表示离用户更远。
注:Z-index 仅能在定位元素上奏效(例如 position:absolute;)

2010九月30

属性指定

css 评论关闭

1, background
?? ???? body
?? ??? ?{
?? ??? ??? ?background: #00ff00 url(‘smiley.gif’) no-repeat fixed center;?? //当将css从文件中提取,放入一.css文件中时,图片路径注意调整
?? ??? ?}

  • background-color:yellow; 或者 background-color:#00ff00; 或者 background-color:rgb(255,0,255);
  • background-image:url(‘aaa.gif’) ? //默认:水平,垂直重复. 水平background-repeat:repeat-x; ? 垂直 background-repeat:repeat-y;? 不重复background-repeat:no-repeat;
  • background-attachment:fixed;? //指定背景图片是否固定,取值为scroll, fixed. 当为fixed时,图片永远在当前屏幕中显示,不会随滚动条的滑动而变化。
  • background-position:50% 20%;? 或者:background-position:center;???? 或者:background-position: 50px 100px;
  • 所有放在同一个;background: #00ff00 url(‘smiley.gif’) no-repeat fixed center;

2,text
?? ??? ?h1
?? ??? ?{
?? ??? ??? ?text-align:center;
?? ??? ??? ?text-transform:capitalize;
?? ??? ??? ?color:#800000;
?? ??? ?}

  • color:blue; color:#00ff00; color:rgb(255,0,0)
  • text-align:center
  • text-decoration:none 可用来去掉连接的下划线 , 其值可取:overline; line-through; underline; blink;
  • text-transform:uppercase :文本全部大写, 小写为:lowercase; 每个单词首字母大写为capitalize;
  • text-indent:50px;? 段落中指定首行缩进距离,为负时表示从右边开始缩进
  • letter-spacing:10px; 指定字母,汉字的间距
  • word-spacing:30px;; 指定单词,汉字的间距
  • line-height: 100%; 单倍行距
  • direction:rtl; 文本开始方向,默认从左开始。取值可为ltl, rtl
  • white-space:nowrap;设置如何处理元素内的空白。
    normal 默认。空白会被浏览器忽略。
    pre 空白会被浏览器保留。其行为方式类似 HTML 中的 <pre> 标签。
    nowrap 文本不会换行,文本会在在同一行上继续,直到遇到 <br> 标签为止。
    pre-wrap 保留空白符序列,但是正常地进行换行。
    pre-line 合并空白符序列,但是保留换行符。

3,font

  • font-family:”Times New Roman”,Georgia,Serif? 当第一个浏览器不支持时,会依次尝试后面的字体。
  • font-style:italic;指定字体为斜体,normal为正常
  • font-size:40px;指定字体大小,默认为16px;
  • font-weight:bold; 设置字体精细,也可用font-weight:500; 在为数字时范围从100-900, 其中400相当于normal, 700相当于bold

4, margin, border, padding, content:指示一个控件的显示位置,控件就是content

  • margin: 控件周边的空白,在最外部
  • border: 控件的边框
  • padding: 填充, 边框与控件之间的距离
  • content: 控件
  • 一个元素的宽度由控件内容content + 左右padding + 左右border + 左右margin 组成。 当设置控件的大小时,实际设置的是content的大小。
  • width:220px;? content宽度
    padding:10px;
    border:5px solid gray;
    margin:10px;??????????????????? 实际宽度为:220 + 10 *2 + 5 *2 + 10*2 = 270px
  • 注:在IE中content宽度包含了border, padding即元素的实际宽度= content + 左右margin 若想得到上面的效果,要在头部加入:
  • <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
    http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“>
    <html>……</html>

?
? 5,border

  • border-style:solid, 其值可为:solid 实线;none;dotted 点线;? dashed 虚线; double 双线; groove ridge inset outset hidden
  • 或每个边定义:border-top-style:dotted;
    border-right-style:solid;
    border-bottom-style:dotted;
    border-left-style:solid;
  • border-width:5px; 值为像素,或者: thin, medium, or thick.? border-left-width:15px;
  • border-color:red; border-right-color:#ff0000;

6, margin : 没有背景色,完全透明,填充空白

  • margin-top:100px; margin-top:2cm
    margin-right:50px;????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? margin-bottom:100px; margin-bottom:25%??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? margin-left:50px;
  • margin:25px 50px 75px 100px;? 上,右,下,左
  • margin:25px; 上,右,下,左 都是 25px

7, padding : 边框与控件的距离

  • padding-top:25px;
    padding-bottom:25px;
    padding-right:50px;
    padding-left:50px;
  • padding:25px 50px 75px 100px; 上,右,下,左

8,list : 项目符号列表

  • ul.circle {list-style-type:circle}
    ul.square {list-style-type:square}
  • ul.inside {list-style-position:inside}
    ul.outside {list-style-position:outside}
  • ul
    {
    list-style-image:url(‘arrow.gif’);? //以图片代表序号
    }

9, table

  • table {border-collapse:collapse} 设置border为融合,默认为分开,双线
  • table {border-spacing:10px 50px;}
  • caption {caption-side:bottom} 设置table的caption属性显示的位置
  • table {empty-cells:hide} 设置当表格为空时是否显示,IE不支持。
  • table { table-layout:fixed; } 表格布局, auto, 或 fixed auto:随着内容大小的改变而改变
2010九月30

基本定义

css 评论关闭

1,定义方式:selector {property:value}

? selector可一次应用所有元素,或用class指定,或用ID,前者时selector名字为html自带,后者为自定义。
? (1)定义多个属性用;隔开。p {text-align:center;color:red}
? (2)多个同一样式:
?? ??? ??? ?h1,h2,h3,h4,h5,h6
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?color:green
?? ??? ??? ??? ?}
?(3)应用多个样式:用空格分开 <p>This is a paragraph.</p>
?(4)内部样式,外部样式,在页面中应用:

?????????? <style>
p{ background-color:#006633}background-color:#006633}
</style>
?若有相同的css定义,相同的部分部分优先级为本页最高,其次是外部引用,本页覆盖外页,若不相同,则二者求并集。
优先级也可通过? !important 为调节,带它的优先级会最高,无论是内页还是外页。
.module ul{margin-left:-55px !important; } //直接加在分号前即可。

2,html自带:
??? (1)p {font-family:”sans serif”} ? ?? 页面中所有段落都会自动应用此样式。
??? (2)自带内部定义用 点 :p.right {text-align:right}? 应用于 ? <p>This paragraph will be right-aligned.</p>
??? (3)指定子类自动应用:input[type="text"] {background-color:blue}? 类型为text的所有控件都会被应用。

注:自定义的用. 如p.right, html的以空格隔开如:a:hover img {border: 1px solid #0000ff;width:500px;height:500px;} //以a 内的img应用
?<a target=”_blank” href=”klematis_big.htm”><img src=”klematis_small.jpg” alt=”Klematis” width=”110″ height=”90″ /></a>

3,自定义:以.开头,以class引用
???? .cc {text-align:center}
? ?? <p>This paragraph will also be center-aligned.</p>
????? 注:名称不能以数字开头,firefox不支持。

4,id指定,不用class
??? #username{color:green}? 则页面中ID为username的控件会自动应用此样式。

5,注释:/*This is a comment*/

6,总结:
?? ???? (1)自动应用的,即不用class指定的
?? ????????????? 1)名字以html元素开头,如body, h1, th, td,table
???????????????? 2)? 用[]指定子类型的。如:input[type="text"] {background-color:blue}
???????????????? 3)? 以#开头的ID,页面中有此ID的自动应用。
??????? (2)用class指定应用的。名字以 . 开头
??????????????? (1)页面元素前为元素名后为 .? 如:p.right {text-align:right}? 应用于 ? <p>This paragraph will be right-aligned.</p>
??????????????? (2)自定义,以 . 开头??? .cc {text-align:center} ? ?? <p>This paragraph will also be center-aligned.</p>

注:因一些浏览器不支持css, 要在<style></style>加上<!–????????????????????? –>

2010九月30

js含多个引号单引号时可用转义符

javascript 评论关闭

OnClientClick=’<!–Eval(“name”,”alert(\”{0}\”)”)–>’ &gt;

2010九月30

HTML radio指定相同name,则为互斥关系

javascript 评论关闭

<input name=”sex” type=”radio” />男
<input name=”sex” type=”radio” /> 女