filter:progid:DXImageTransform.Microsoft.gradient(enabled='true',startColorstr='#FFAABBCC', endColorstr='#FFAABBCC');
DXImageTransform.Microsoft.gradient滤镜里的startColorstr参数值是#AARRGGBB形式的,其中的AA是代表不透明度的十六进制,00表示完全透明,FF就是全不透明,化成十进制的范围就是0~255,剩下的RRGGBB就是颜色的十六进制代码。例子中background: rgba(125, 0, 0, .3);表示的是30%不透明度的红色背景。如何把30%的不透明度转换成十六制呢?很简单,先计算#AA的的十进制x,x/255 = 3/10,解得x=3*255/10,然后再把x换算成十六进制,约等于4B。
RGBa颜色可以用于border,不过,不同的浏览器对于border的RGBa支持不太一样,不过唯一的不同是,FF在border的拐角处会出现叠加,比如透明度是0.4,那么在FF中,四个角的透明度会变成0.8,而支持RGBa的非FF浏览器不会出现这种情况。
参考:
RGBa色彩的浏览器支持
让IE支持RGBa的背景色
工具:CSS背景颜色属性值转换
Opacity兼容性
.opacity {
/* Required for IE 5, 6, 7 */
/* ...or something to trigger hasLayout, like zoom: 1; */
width:100%;
/* Theoretically for IE 8 & 9 (more valid) */
/* ...but not required as filter works too */
/* should come BEFORE filter */
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
/* This works in IE 8 & 9 too */
/* ... but also 5, 6, 7 */
filter: alpha(opacity=50);
/* Older than Firefox 0.9 */
-moz-opacity:0.5;
/* Safari 1.x (pre WebKit!) */
-khtml-opacity:0.5;
/* Modern!
/* Firefox 0.9+, Safari 2?, Chrome any?
/* Opera 9+, IE 9+ */
opacity:0.5;
}
2010/11/23
常用的JavaScript验证正则表达式
匹配中文字符的正则表达式: [u4e00-u9fa5]
评注:匹配中文还真是个头疼的事,有了这个表达式就好办了
匹配双字节字符(包括汉字在内):[^x00-xff]
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
匹配空白行的正则表达式:ns*r
评注:可以用来删除空白行
匹配HTML标记的正则表达式:< (S*?)[^>]*>.*?|< .*? />
评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力
匹配首尾空白字符的正则表达式:^s*|s*$
评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式
匹配网址URL的正则表达式:[a-zA-z]+://[^s]*
评注:网上流传的版本功能很有限,上面这个基本可以满足需求
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
评注:表单验证时很实用
匹配国内电话号码:d{3}-d{8}|d{4}-d{7}
评注:匹配形式如 0511-4405222 或 021-87888822
匹配腾讯QQ号:[1-9][0-9]{4,}
评注:腾讯QQ号从10000开始
匹配中国邮政编码:[1-9]d{5}(?!d)
评注:中国邮政编码为6位数字
匹配身份证:d{15}|d{18}
评注:中国的身份证为15位或18位
匹配ip地址:d+.d+.d+.d+
评注:提取ip地址时有用
匹配特定数字:
^[1-9]d*$ //匹配正整数
^-[1-9]d*$ //匹配负整数
^-?[1-9]d*$ //匹配整数
^[1-9]d*|0$ //匹配非负整数(正整数 + 0)
^-[1-9]d*|0$ //匹配非正整数(负整数 + 0)
^[1-9]d*.d*|0.d*[1-9]d*$ //匹配正浮点数
^-([1-9]d*.d*|0.d*[1-9]d*)$ //匹配负浮点数
^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$ //匹配浮点数
^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$ //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$ //匹配非正浮点数(负浮点数 + 0)
评注:处理大量数据时有用,具体应用时注意修正
匹配特定字符串:
^[A-Za-z]+$ //匹配由26个英文字母组成的字符串
^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串
^[a-z]+$ //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串
^w+$ //匹配由数字、26个英文字母或者下划线组成的字符串
在使用RegularExpressionValidator验证控件时的验证功能及其验证表达式介绍如下:
只能输入数字:“^[0-9]*$”
只能输入n位的数字:“^d{n}$”
只能输入至少n位数字:“^d{n,}$”
只能输入m-n位的数字:“^d{m,n}$”
只能输入零和非零开头的数字:“^(0|[1-9][0-9]*)$”
只能输入有两位小数的正实数:“^[0-9]+(.[0-9]{2})?$”
只能输入有1-3位小数的正实数:“^[0-9]+(.[0-9]{1,3})?$”
只能输入非零的正整数:“^+?[1-9][0-9]*$”
只能输入非零的负整数:“^-[1-9][0-9]*$”
只能输入长度为3的字符:“^.{3}$”
只能输入由26个英文字母组成的字符串:“^[A-Za-z]+$”
只能输入由26个大写英文字母组成的字符串:“^[A-Z]+$”
只能输入由26个小写英文字母组成的字符串:“^[a-z]+$”
只能输入由数字和26个英文字母组成的字符串:“^[A-Za-z0-9]+$”
只能输入由数字、26个英文字母或者下划线组成的字符串:“^w+$”
验证用户密码:“^[a-zA-Z]w{5,17}$”正确格式为:以字母开头,长度在6-18之间,
只能包含字符、数字和下划线。
验证是否含有^%&’,;=?$”等字符:“[^%&',;=?$x22]+”
只能输入汉字:“^[u4e00-u9fa5],{0,}$”
验证Email地址:“^w+[-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$”
验证InternetURL:“^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$”
验证电话号码:“^((d{3,4})|d{3,4}-)?d{7,8}$”
正确格式为:“XXXX-XXXXXXX”,“XXXX-XXXXXXXX”,“XXX-XXXXXXX”,
“XXX-XXXXXXXX”,“XXXXXXX”,“XXXXXXXX”。
验证身份证号(15位或18位数字):“^d{15}|d{}18$”
验证一年的12个月:“^(0?[1-9]|1[0-2])$”正确格式为:“01”-“09”和“1”“12”
验证一个月的31天:“^((0?[1-9])|((1|2)[0-9])|30|31)$”
正确格式为:“01”“09”和“1”“31”。
匹配中文字符的正则表达式: [u4e00-u9fa5]
匹配双字节字符(包括汉字在内):[^x00-xff]
匹配空行的正则表达式:n[s| ]*r
匹配HTML标记的正则表达式:/< (.*)>.*|< (.*) />/
匹配首尾空格的正则表达式:(^s*)|(s*$)
匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
匹配网址URL的正则表达式:http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?
(1)应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
String.prototype.len=function(){return this.replace([^x00-xff]/g,”aa”).length;}
(2)应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现
String.prototype.trim = function()
{
return this.replace(/(^s*)|(s*$)/g, “”);
}
(3)应用:利用正则表达式分解和转换IP地址
function IP2V(ip) //IP地址转换成对应数值
{
re=/(d+).(d+).(d+).(d+)/g //匹配IP地址的正则表达式
if(re.test(ip))
{
return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
}
else
{
throw new Error(”Not a valid IP address!”)
}
}
(4)应用:从URL地址中提取文件名的javascript程序
s=”http://www.9499.net/page1.htm”;
s=s.replace(/(.*/){0,}([^.]+).*/ig,”$2″) ; //Page1.htm
(5)应用:利用正则表达式限制网页表单里的文本框输入内容
用正则表达式限制只能输入中文:onkeyup=”value=”/blog/value.replace(/["^u4E00-u9FA5]/g,”) ” onbeforepaste=”clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^u4E00-u9FA5]/g,”))”
用正则表达式限制只能输入全角字符: onkeyup=”value=”/blog/value.replace(/["^uFF00-uFFFF]/g,”) ” onbeforepaste=”clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^uFF00-uFFFF]/g,”))”
用正则表达式限制只能输入数字:onkeyup=”value=”/blog/value.replace(/["^d]/g,”) “onbeforepaste= “clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^d]/g,”))”
用正则表达式限制只能输入数字和英文:onkeyup=”value=”/blog/value.replace(/[W]/g,””) “onbeforepaste=”clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^d]/g,”
评注:匹配中文还真是个头疼的事,有了这个表达式就好办了
匹配双字节字符(包括汉字在内):[^x00-xff]
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
匹配空白行的正则表达式:ns*r
评注:可以用来删除空白行
匹配HTML标记的正则表达式:< (S*?)[^>]*>.*?|< .*? />
评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力
匹配首尾空白字符的正则表达式:^s*|s*$
评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式
匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
评注:表单验证时很实用匹配网址URL的正则表达式:[a-zA-z]+://[^s]*
评注:网上流传的版本功能很有限,上面这个基本可以满足需求
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
评注:表单验证时很实用
匹配国内电话号码:d{3}-d{8}|d{4}-d{7}
评注:匹配形式如 0511-4405222 或 021-87888822
匹配腾讯QQ号:[1-9][0-9]{4,}
评注:腾讯QQ号从10000开始
匹配中国邮政编码:[1-9]d{5}(?!d)
评注:中国邮政编码为6位数字
匹配身份证:d{15}|d{18}
评注:中国的身份证为15位或18位
匹配ip地址:d+.d+.d+.d+
评注:提取ip地址时有用
匹配特定数字:
^[1-9]d*$ //匹配正整数
^-[1-9]d*$ //匹配负整数
^-?[1-9]d*$ //匹配整数
^[1-9]d*|0$ //匹配非负整数(正整数 + 0)
^-[1-9]d*|0$ //匹配非正整数(负整数 + 0)
^[1-9]d*.d*|0.d*[1-9]d*$ //匹配正浮点数
^-([1-9]d*.d*|0.d*[1-9]d*)$ //匹配负浮点数
^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$ //匹配浮点数
^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$ //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$ //匹配非正浮点数(负浮点数 + 0)
评注:处理大量数据时有用,具体应用时注意修正
匹配特定字符串:
^[A-Za-z]+$ //匹配由26个英文字母组成的字符串
^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串
^[a-z]+$ //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串
^w+$ //匹配由数字、26个英文字母或者下划线组成的字符串
在使用RegularExpressionValidator验证控件时的验证功能及其验证表达式介绍如下:
只能输入数字:“^[0-9]*$”
只能输入n位的数字:“^d{n}$”
只能输入至少n位数字:“^d{n,}$”
只能输入m-n位的数字:“^d{m,n}$”
只能输入零和非零开头的数字:“^(0|[1-9][0-9]*)$”
只能输入有两位小数的正实数:“^[0-9]+(.[0-9]{2})?$”
只能输入有1-3位小数的正实数:“^[0-9]+(.[0-9]{1,3})?$”
只能输入非零的正整数:“^+?[1-9][0-9]*$”
只能输入非零的负整数:“^-[1-9][0-9]*$”
只能输入长度为3的字符:“^.{3}$”
只能输入由26个英文字母组成的字符串:“^[A-Za-z]+$”
只能输入由26个大写英文字母组成的字符串:“^[A-Z]+$”
只能输入由26个小写英文字母组成的字符串:“^[a-z]+$”
只能输入由数字和26个英文字母组成的字符串:“^[A-Za-z0-9]+$”
只能输入由数字、26个英文字母或者下划线组成的字符串:“^w+$”
验证用户密码:“^[a-zA-Z]w{5,17}$”正确格式为:以字母开头,长度在6-18之间,
只能包含字符、数字和下划线。
验证是否含有^%&’,;=?$”等字符:“[^%&',;=?$x22]+”
只能输入汉字:“^[u4e00-u9fa5],{0,}$”
验证Email地址:“^w+[-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$”
验证InternetURL:“^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$”
验证电话号码:“^((d{3,4})|d{3,4}-)?d{7,8}$”
正确格式为:“XXXX-XXXXXXX”,“XXXX-XXXXXXXX”,“XXX-XXXXXXX”,
“XXX-XXXXXXXX”,“XXXXXXX”,“XXXXXXXX”。
验证身份证号(15位或18位数字):“^d{15}|d{}18$”
验证一年的12个月:“^(0?[1-9]|1[0-2])$”正确格式为:“01”-“09”和“1”“12”
验证一个月的31天:“^((0?[1-9])|((1|2)[0-9])|30|31)$”
正确格式为:“01”“09”和“1”“31”。
匹配中文字符的正则表达式: [u4e00-u9fa5]
匹配双字节字符(包括汉字在内):[^x00-xff]
匹配空行的正则表达式:n[s| ]*r
匹配HTML标记的正则表达式:/< (.*)>.*|< (.*) />/
匹配首尾空格的正则表达式:(^s*)|(s*$)
匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
匹配网址URL的正则表达式:http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?
(1)应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
String.prototype.len=function(){return this.replace([^x00-xff]/g,”aa”).length;}
(2)应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现
String.prototype.trim = function()
{
return this.replace(/(^s*)|(s*$)/g, “”);
}
(3)应用:利用正则表达式分解和转换IP地址
function IP2V(ip) //IP地址转换成对应数值
{
re=/(d+).(d+).(d+).(d+)/g //匹配IP地址的正则表达式
if(re.test(ip))
{
return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
}
else
{
throw new Error(”Not a valid IP address!”)
}
}
(4)应用:从URL地址中提取文件名的javascript程序
s=”http://www.9499.net/page1.htm”;
s=s.replace(/(.*/){0,}([^.]+).*/ig,”$2″) ; //Page1.htm
(5)应用:利用正则表达式限制网页表单里的文本框输入内容
用正则表达式限制只能输入中文:onkeyup=”value=”/blog/value.replace(/["^u4E00-u9FA5]/g,”) ” onbeforepaste=”clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^u4E00-u9FA5]/g,”))”
用正则表达式限制只能输入全角字符: onkeyup=”value=”/blog/value.replace(/["^uFF00-uFFFF]/g,”) ” onbeforepaste=”clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^uFF00-uFFFF]/g,”))”
用正则表达式限制只能输入数字:onkeyup=”value=”/blog/value.replace(/["^d]/g,”) “onbeforepaste= “clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^d]/g,”))”
用正则表达式限制只能输入数字和英文:onkeyup=”value=”/blog/value.replace(/[W]/g,””) “onbeforepaste=”clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^d]/g,”
搞定IE6的最重要CSS技巧
众所周知道,IE向来是我们在制作网页时最难搞定的对手。但又迫于其用户群数量之多,我们不得不想法设法搞定它。下面,将介绍的将是利用其特点而被发现/创造出来的CSS技巧。让你轻松搞定这个难对付的家伙。
IE注释:最安全的HACK IE的途径
这应该是我最常用的方法了,一般情况下,我们现在已经不用考虑IE5或者以下的浏览器了,这个注释让我们可以轻松HACK IE,并且它是最安全的方法,因为别的浏览器不会显示/识别它(这里应该感谢微软的细心,即使他精粗心在先)。至于IE8 beta,以其为主浏览器的用户算起来应该不到K级,也暂时不是我们应该搞定的对象(当然,搞定它是最好不过的事)。或者我们应该把希望放在他正式版对CSS完美的支持,而现在我们把最重要的放在搞定IE6
/IE7,区分它们,我最常用的是下面的代码:#forieothers{...} // 用这个搞定IE7
*html #forie6{…} // 当然,这是写给IE6的而你需要注意的就是,别把它们的顺序写倒了,因为#forieothers这个是会被IE6看到的,而根据CSS书写顺序的优先性,应该把让*html #forie6写在后面,让浏览器最终显示它,但IE7又看不到。
让IE6支持PNG透明图片
#regular_logo{
background:url(‘test.png’); width:150px; height:55px;
}
/* \ */
*html #regular_logo{
background:none;
width:150px;
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=’test.png’, sizingMethod=’scale’);
}
注:"test.png"是相对于html文档的路径。
让IE6支持min-width/max-width
#container
{
min-width: 600px;
max-width: 1200px;
width:expression(document.body.clientWidth < 600? "600px" :
document.body.clientWidth > 1200? "1200px" : "auto");
}这应该是非常重要的技巧,也是比较常用的。就像,你以前可能用了太大的图片,但现在又想用一个栏比较小的主题,这时,这个方法就显得异常重要。抑或是,如果你想创建一个流体布局,这个代码对你来说是必不可少的。
当然,这三个并不能让你搞定所有IE的问题。不过,这应该是最重要的。IE注释通常被CSS新手忽略,而IE6显示透明PNG和IE6支持最小/最大宽度是难点。好吧,我想,看到这里,或许你已经学会了,或者,至少知道这是解决方法。但或许还有一句话你应该记住:少骂IE,完善自己!
link:http://www.happinesz.cn/archives/475/
//ie6 max-width max-height
if( $.browser.msie && $.browser.version == 6.0){
var maxWidth = parseInt($(".hot-album .photo-figure a img").css("max-width"));
var maxHeight = parseInt($(".hot-album .photo-figure a img").css("max-height"));
$(".hot-album .photo-figure a img").each(function(){
if ($(this).width() > maxWidth){$(this).width(maxWidth);}
else if ($(this).height() > maxHeight){$(this).height(maxHeight);}
});
}
//ie6 max-width max-height
if( $.browser.msie && $.browser.version == 6.0){
var maxWidth = parseInt($(".hot-album .photo-figure a img").css("max-width"));
var maxHeight = parseInt($(".hot-album .photo-figure a img").css("max-height"));
$(".hot-album .photo-figure a img").each(function(){
if ($(this).width() > maxWidth){$(this).width(maxWidth);}
else if ($(this).height() > maxHeight){$(this).height(maxHeight);}
});
}
my CSS Reset
/** CSS Reset **/
html, body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, form, input, button, textarea, p, th, td { margin:0; padding:0; vertical-align:baseline; }
body {width:100%; font:normal 12px/18px tahoma, arial, \5b8b\4f53, sans-serif; color:#333; background-color:#F5F5F5; }
h1, h2, h3, h4, h5, h6 { font-size:100%; font-weight:normal; }
table { border-collapse:collapse; border-spacing:0; }
:link, :visited { text-decoration:none; }
a { color:#005eac; text-decoration:none; outline:none; cursor:pointer; }
a:hover { color:#08a5bb; text-decoration:none; }
img { border:0; vertical-align:middle;}
ul, ol { list-style-type:none; }
caption, th { text-align:left; }
html { overflow-y:scroll; }
textarea { resize:none; }
:focus{ outline:0;}
input[type=text]:focus, input[type=password]:focus, textarea:focus { border:1px solid #ccc; }
input[type=text],input[type=password],textarea { border:1px solid #ccc; }
/** CSS Lib **/
.clear { clear:both; height:0; line-height:0; font-size:0; }
.clearfix:after { content:" "; display:block; height:0; line-height:0; font-size:0; clear:both; visibility:hidden; }
.clearfix { zoom:1;}
/* site */
.l { float:left; }
.r { float:right; }
.cl { clear:both; }
.clr { clear:right; }
.dib{ display:inline-block; *display:inline; zoom:1;}
.dib img{ *display:block;}
.dno{ display:none;}
.vat{ vertical-align:top;}
.vam{ vertical-align:middle;}
.b { font-weight:bold; }
.bwn { font-weight:normal; }
.alL{ text-align:left;}
.alC{ text-align:center;}
.alR{ text-align:right;}
.f10{ font-size:10px;}
.f12{ font-size:12px;}
.f14{ font-size:14px;}
.f16{ font-size:16px;}
.lh22{ line-height:22px;}
.lh30{ line-height:30px;}
.cf00{ color:#f00;}
.cfff{ color:#fff;}
.pr{ position:relative; }
.pa { position:absolute; }
.f0 { font-size:0; line-height:0;}
.m0 { margin:0; }
.m1 { margin:1px; }
.ml1 { margin-left:1px; }
.mr1 { margin-right:1px; }
.mt1 { margin-top:1px; }
.mb1 { margin-bottom:1px; }
.m2 { margin:2px; }
.ml2 { margin-left:2px; }
.mr2 { margin-right:2px; }
.mt2 { margin-top:2px; }
.mb2 { margin-bottom:2px; }
.m3 { margin:3px; }
.ml3 { margin-left:3px; }
.mr3 { margin-right:3px; }
.mt3 { margin-top:3px; }
.mb3 { margin-bottom:3px; }
.m5{ margin:5px;}
.mr5 { margin-right:5px; }
.ml5 { margin-left:5px; }
.mt5 { margin-top:5px; }
.mb5 { margin-bottom:5px; }
.m10{ margin:10px;}
.ml10 { margin-left:10px; }
.mr10 { margin-right:10px; }
.mt10 { margin-top:10px; }
.mb10 { margin-bottom:10px; }
.m15{ margin:15px;}
.ml15 { margin-left:15px; }
.mr15 { margin-right:15px; }
.mt15 { margin-top:15px; }
.mb15 { margin-bottom:15px; }
.m20{ margin:20px;}
.ml20 { margin-left:20px; }
.mr20 { margin-right:20px; }
.mt20 { margin-top:20px; }
.mb20 { margin-bottom:20px; }
.m25{ margin:25px;}
.ml25 { margin-left:25px; }
.mr25 { margin-right:25px; }
.mt25 { margin-top:25px; }
.mb25 { margin-bottom:25px; }
.m30 { margin:30px; }
.ml30{ margin-left:30px; }
.mr30 { margin-right:30px; }
.mt30 { margin-top:30px; }
.mb30 { margin-bottom:30px; }
.m35 { margin:35px; }
.ml35{ margin-left:35px; }
.mr35 { margin-right:35px; }
.mt35 { margin-top:35px; }
.mb35 { margin-bottom:35px; }
.m40 { margin:40px; }
.ml40{ margin-left:40px; }
.mr40 { margin-right:40px; }
.mt40 { margin-top:40px; }
.mb40 { margin-bottom:40px; }
.p0 { padding:0; }
.p1 { padding:1px; }
.p2 { padding:2px; }
.p3 { padding:3px; }
.p4 { padding:4px; }
.pl3 { padding-left:3px; }
.pt3 { padding-top:3px; }
.pr3 { padding-right:3px; }
.pb3 { padding-bottom:3px; }
.p5 { padding:5px; }
.pl5 { padding-left:5px; }
.pt5 { padding-top:5px; }
.pr5 { padding-right:5px; }
.pb5 { padding-bottom:5px; }
.p10 { padding:10px; }
.pl10 { padding-left:10px; }
.pt10 { padding-top:10px; }
.pr10 { padding-right:10px; }
.pb10 { padding-bottom:10px; }
.p15 { padding:15px; }
.pl15 { padding-left:15px; }
.pt15 { padding-top:15px; }
.pr15 { padding-right:15px; }
.pb15 { padding-bottom:15px; }
.p20 { padding:20px; }
.pl20 { padding-left:20px; }
.pt20 { padding-top:20px; }
.pr20 { padding-right:20px; }
.pb20 { padding-bottom:20px; }
.p25 { padding:25px; }
.pl25 { padding-left:25px; }
.pt25 { padding-top:25px; }
.pr25 { padding-right:25px; }
.pb25 { padding-bottom:25px; }
.p30 { padding:30px; }
.pl30 { padding-left:30px; }
.pt30 { padding-top:30px; }
.pr30 { padding-right:30px; }
.pb30 { padding-bottom:30px; }
.p35 { padding:35px; }
.pl35 { padding-left:35px; }
.pt35 { padding-top:35px; }
.pr35 { padding-right:35px; }
.pb35 { padding-bottom:35px; }
.p40 { padding:40px; }
.pl40 { padding-left:40px; }
.pt40 { padding-top:40px; }
.pr40 { padding-right:40px; }
.pb40 { padding-bottom:40px; }
html, body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, form, input, button, textarea, p, th, td { margin:0; padding:0; vertical-align:baseline; }
body {width:100%; font:normal 12px/18px tahoma, arial, \5b8b\4f53, sans-serif; color:#333; background-color:#F5F5F5; }
h1, h2, h3, h4, h5, h6 { font-size:100%; font-weight:normal; }
table { border-collapse:collapse; border-spacing:0; }
:link, :visited { text-decoration:none; }
a { color:#005eac; text-decoration:none; outline:none; cursor:pointer; }
a:hover { color:#08a5bb; text-decoration:none; }
img { border:0; vertical-align:middle;}
ul, ol { list-style-type:none; }
caption, th { text-align:left; }
html { overflow-y:scroll; }
textarea { resize:none; }
:focus{ outline:0;}
input[type=text]:focus, input[type=password]:focus, textarea:focus { border:1px solid #ccc; }
input[type=text],input[type=password],textarea { border:1px solid #ccc; }
/** CSS Lib **/
.clear { clear:both; height:0; line-height:0; font-size:0; }
.clearfix:after { content:" "; display:block; height:0; line-height:0; font-size:0; clear:both; visibility:hidden; }
.clearfix { zoom:1;}
/* site */
.l { float:left; }
.r { float:right; }
.cl { clear:both; }
.clr { clear:right; }
.dib{ display:inline-block; *display:inline; zoom:1;}
.dib img{ *display:block;}
.dno{ display:none;}
.vat{ vertical-align:top;}
.vam{ vertical-align:middle;}
.b { font-weight:bold; }
.bwn { font-weight:normal; }
.alL{ text-align:left;}
.alC{ text-align:center;}
.alR{ text-align:right;}
.f10{ font-size:10px;}
.f12{ font-size:12px;}
.f14{ font-size:14px;}
.f16{ font-size:16px;}
.lh22{ line-height:22px;}
.lh30{ line-height:30px;}
.cf00{ color:#f00;}
.cfff{ color:#fff;}
.pr{ position:relative; }
.pa { position:absolute; }
.f0 { font-size:0; line-height:0;}
.m0 { margin:0; }
.m1 { margin:1px; }
.ml1 { margin-left:1px; }
.mr1 { margin-right:1px; }
.mt1 { margin-top:1px; }
.mb1 { margin-bottom:1px; }
.m2 { margin:2px; }
.ml2 { margin-left:2px; }
.mr2 { margin-right:2px; }
.mt2 { margin-top:2px; }
.mb2 { margin-bottom:2px; }
.m3 { margin:3px; }
.ml3 { margin-left:3px; }
.mr3 { margin-right:3px; }
.mt3 { margin-top:3px; }
.mb3 { margin-bottom:3px; }
.m5{ margin:5px;}
.mr5 { margin-right:5px; }
.ml5 { margin-left:5px; }
.mt5 { margin-top:5px; }
.mb5 { margin-bottom:5px; }
.m10{ margin:10px;}
.ml10 { margin-left:10px; }
.mr10 { margin-right:10px; }
.mt10 { margin-top:10px; }
.mb10 { margin-bottom:10px; }
.m15{ margin:15px;}
.ml15 { margin-left:15px; }
.mr15 { margin-right:15px; }
.mt15 { margin-top:15px; }
.mb15 { margin-bottom:15px; }
.m20{ margin:20px;}
.ml20 { margin-left:20px; }
.mr20 { margin-right:20px; }
.mt20 { margin-top:20px; }
.mb20 { margin-bottom:20px; }
.m25{ margin:25px;}
.ml25 { margin-left:25px; }
.mr25 { margin-right:25px; }
.mt25 { margin-top:25px; }
.mb25 { margin-bottom:25px; }
.m30 { margin:30px; }
.ml30{ margin-left:30px; }
.mr30 { margin-right:30px; }
.mt30 { margin-top:30px; }
.mb30 { margin-bottom:30px; }
.m35 { margin:35px; }
.ml35{ margin-left:35px; }
.mr35 { margin-right:35px; }
.mt35 { margin-top:35px; }
.mb35 { margin-bottom:35px; }
.m40 { margin:40px; }
.ml40{ margin-left:40px; }
.mr40 { margin-right:40px; }
.mt40 { margin-top:40px; }
.mb40 { margin-bottom:40px; }
.p0 { padding:0; }
.p1 { padding:1px; }
.p2 { padding:2px; }
.p3 { padding:3px; }
.p4 { padding:4px; }
.pl3 { padding-left:3px; }
.pt3 { padding-top:3px; }
.pr3 { padding-right:3px; }
.pb3 { padding-bottom:3px; }
.p5 { padding:5px; }
.pl5 { padding-left:5px; }
.pt5 { padding-top:5px; }
.pr5 { padding-right:5px; }
.pb5 { padding-bottom:5px; }
.p10 { padding:10px; }
.pl10 { padding-left:10px; }
.pt10 { padding-top:10px; }
.pr10 { padding-right:10px; }
.pb10 { padding-bottom:10px; }
.p15 { padding:15px; }
.pl15 { padding-left:15px; }
.pt15 { padding-top:15px; }
.pr15 { padding-right:15px; }
.pb15 { padding-bottom:15px; }
.p20 { padding:20px; }
.pl20 { padding-left:20px; }
.pt20 { padding-top:20px; }
.pr20 { padding-right:20px; }
.pb20 { padding-bottom:20px; }
.p25 { padding:25px; }
.pl25 { padding-left:25px; }
.pt25 { padding-top:25px; }
.pr25 { padding-right:25px; }
.pb25 { padding-bottom:25px; }
.p30 { padding:30px; }
.pl30 { padding-left:30px; }
.pt30 { padding-top:30px; }
.pr30 { padding-right:30px; }
.pb30 { padding-bottom:30px; }
.p35 { padding:35px; }
.pl35 { padding-left:35px; }
.pt35 { padding-top:35px; }
.pr35 { padding-right:35px; }
.pb35 { padding-bottom:35px; }
.p40 { padding:40px; }
.pl40 { padding-left:40px; }
.pt40 { padding-top:40px; }
.pr40 { padding-right:40px; }
.pb40 { padding-bottom:40px; }
订阅:
博文 (Atom)