<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>IETester &#187; CSS</title>
	<atom:link href="http://www.ietester.net/index.php/archives/category/css/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ietester.net</link>
	<description>IETester - 多版本IE测试好帮手</description>
	<lastBuildDate>Sun, 20 Jun 2010 04:46:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>兼容IE6的图片圆角边框CSS</title>
		<link>http://www.ietester.net/index.php/archives/145.html</link>
		<comments>http://www.ietester.net/index.php/archives/145.html#comments</comments>
		<pubDate>Tue, 11 May 2010 05:56:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[圆角边框CSS]]></category>

		<guid isPermaLink="false">http://www.ietester.net/?p=145</guid>
		<description><![CDATA[纯CSS实现的图片圆角边框效果,兼容IE6.
实现原理很简单,利用绝对定位,使一个背景为PNG图片的边框覆盖在原始图片上面.而兼容IE6,本文用的是一段JS来让万恶的万万人诅咒的IE6识别 PNG图片的.当然,你还可以用滤镜的方式让IE6实现PNG效果.本文后面我会附上两种解决方案.个人比较推崇用JS来实现IE6PNG,适应性比较强,但如果你只有一两处用到PNG,完全可以用滤镜的方式来实现.
核心CSS代码:
.i_roundimg{ background:url(http://mrthink.net/demo/images/100508.png) no-repeat;cursor:pointer;width:60px;height:60px;position:absolute;}
另外附上两种解决IE6下PNG图片的方案:
JavaScript让IE6识别PNG(适应性强,适应于背景PNG和页面中的PNG):
eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!&#8221;.replace(/^/,String)){while(c&#8211;)r[e(c)]=k[c]&#124;&#124;e(c);k=[function(e){return r[e]}];e=function(){return&#8217;\\w+&#8217;};c=1};while(c&#8211;)if(k[c])p=p.replace(new RegExp(&#8216;\\b&#8217;+e(c)+&#8217;\\b&#8217;,'g&#8217;),k[c]);return p}(&#8216;2 E={J:\&#8217;E\&#8217;,Z:{},1E:7(){4(x.1l&#038;&#038;!x.1l[6.J]){x.1l.23(6.J,\&#8217;24:25-26-27:3\&#8217;)}4(1F.11){1F.11(\&#8217;28\&#8217;,7(){E=29})}},1G:7(){2 a=x.1m(\&#8217;8\&#8217;);x.1H.1b.1n(a,x.1H.1b.1b);2 b=a.1o;b.1c(6.J+\&#8217;\\\\:*\&#8217;,\&#8217;{12:2a(#1I#2b)}\&#8217;);b.1c(6.J+\&#8217;\\\\:9\&#8217;,\&#8217;Q:1p;\&#8217;);b.1c(\&#8217;1J.\&#8217;+6.J+\&#8217;1K\&#8217;,\&#8217;12:y; 1q:y; Q:1p; z-2c:-1; 1d:-1r; 1L:1M;\&#8217;);6.1o=b},1N:7(){2 a=13.2d;4(13.1e.K(\&#8217;2e\&#8217;)!=-1&#124;&#124;13.1e.K(\&#8217;1q\&#8217;)!=-1){E.1f(a)}4(13.1e==\&#8217;8.1s\&#8217;){2 b=(a.F.1s==\&#8217;y\&#8217;)?\&#8217;y\&#8217;:\&#8217;2f\&#8217;;G(2 v M a.3){a.3[v].9.8.1s=b}}4(13.1e.K(\&#8217;14\&#8217;)!=-1){E.1t(a)}},1t:7(a){4(a.F.14.K(\&#8217;2g\&#8217;)!=-1){2 b=a.F.14;b=1u(b.2h(b.1v(\&#8217;=\&#8217;)+1,b.1v(\&#8217;)\&#8217;)),10)/2i;a.3.N.9.8.14=a.F.14;a.3.C.I.2j=b}},15:7(a){2k(7(){E.1f(a)},1)},2l:7(a){2 b=a.1O(\&#8217;,\&#8217;);G(2 i=0;ig.H){c.B=g.H}e.3.C.9.8.1Z=\&#8217;20(\&#8217;+c.T+\&#8217;u \&#8217;+(c.R+i)+\&#8217;u \&#8217;+c.B+\&#8217;u \&#8217;+(c.L+i)+\&#8217;u)\&#8217;}U{e.3.C.9.8.1Z=\&#8217;20(\&#8217;+p.T+\&#8217;u \&#8217;+p.R+\&#8217;u \&#8217;+p.B+\&#8217;u \&#8217;+p.L+\&#8217;u)\&#8217;}},1P:7(a){a.8.12=\&#8217;y\&#8217;;4(a.17==\&#8217;32\&#8217;&#124;&#124;a.17==\&#8217;33\&#8217;&#124;&#124;a.17==\&#8217;34\&#8217;){1g}a.O=V;4(a.17==\&#8217;35\&#8217;){4(a.1h.21().K(/\\.22$/)!=-1){a.O=P;a.8.1L=\&#8217;1M\&#8217;}U{1g}}U 4(a.F.19.21().K(\&#8217;.22\&#8217;)==-1){1g}2 b=E;a.3={N:{},C:{}};2 c={9:{},I:{}};G(2 r M a.3){G(2 e M c){2 d=b.J+\&#8217;:\&#8217;+e;a.3[r][e]=x.1m(d)}a.3[r].9.36=V;a.3[r].9.37(a.3[r].I);a.38.1n(a.3[r].9,a)}a.3.C.9.39=\&#8217;y\&#8217;;a.3.C.I.3a=\&#8217;3b\&#8217;;a.3.N.I.1w=V;b.1T(a);b.1x(a);b.1x(a.3c);b.1f(a)}};3d{x.3e(&#8220;3f&#8221;,V,P)}3g(r){}E.1E();E.1G();&#8217;,62,203,&#8217;&#124;&#124;var&#124;vml&#124;if&#124;&#124;this&#124;function&#124;style&#124;shape&#124;&#124;&#124;&#124;&#124;&#124;&#124;&#124;&#124;&#124;&#124;&#124;&#124;&#124;&#124;&#124;&#124;&#124;&#124;&#124;&#124;px&#124;&#124;&#124;document&#124;none&#124;&#124;&#124;&#124;image&#124;vmlBg&#124;EvPNG&#124;currentStyle&#124;for&#124;&#124;fill&#124;ns&#124;search&#124;&#124;in&#124;color&#124;isImg&#124;true&#124;position&#124;&#124;runtimeStyle&#124;&#124;else&#124;false&#124;&#124;&#124;&#124;imgSize&#124;&#124;attachEvent&#124;behavior&#124;event&#124;filter&#124;handlePseudoHover&#124;vmlOffsets&#124;nodeName&#124;backgroundColor&#124;backgroundImage&#124;case&#124;firstChild&#124;addRule&#124;top&#124;propertyName&#124;applyVML&#124;return&#124;src&#124;width&#124;height&#124;bLW&#124;namespaces&#124;createElement&#124;insertBefore&#124;styleSheet&#124;absolute&#124;border&#124;10000px&#124;display&#124;vmlOpacity&#124;parseInt&#124;lastIndexOf&#124;on&#124;giveLayout&#124;left&#124;bTW&#124;break&#124;b1&#124;b2&#124;repeat&#124;createVmlNameSpace&#124;window&#124;createVmlStyleSheet&#124;documentElement&#124;default&#124;img&#124;_sizeFinder&#124;visibility&#124;hidden&#124;readPropertyChange&#124;split&#124;fixPng&#124;cssText&#124;vmlFill&#124;copyImageBorders&#124;attachHandlers&#124;zIndex&#124;transparent&#124;removeAttribute&#124;body&#124;0l&#124;clip&#124;rect&#124;toLowerCase&#124;png&#124;add&#124;urn&#124;schemas&#124;microsoft&#124;com&#124;onbeforeunload&#124;null&#124;url&#124;VML&#124;index&#124;srcElement&#124;background&#124;block&#124;lpha&#124;substring&#124;100&#124;opacity&#124;setTimeout&#124;fix&#124;length&#124;expression&#124;resize&#124;move&#124;mouseleave&#124;mouseenter&#124;focus&#124;blur&#124;onpropertychange&#124;zoom&#124;static&#124;relative&#124;borderStyle&#124;borderWidth&#124;borderColor&#124;substr&#124;className&#124;onload&#124;offsetWidth&#124;offsetHeight&#124;clientWidth&#124;clientHeight&#124;offsetLeft&#124;offsetTop&#124;clientLeft&#124;clientTop&#124;coordsize&#124;coordorigin&#124;path&#124;m0&#124;l0&#124;xe&#124;switch&#124;center&#124;right&#124;bottom&#124;01&#124;Math&#124;ceil&#124;backgroundPosition&#124;backgroundRepeat&#124;toUpperCase&#124;BODY&#124;TD&#124;TR&#124;IMG&#124;stroked&#124;appendChild&#124;parentNode&#124;fillcolor&#124;type&#124;tile&#124;offsetParent&#124;try&#124;execCommand&#124;BackgroundImageCache&#124;catch&#8217;.split(&#8216;&#124;&#8217;),0,{}))
EvPNG.fix(&#8216;div,span&#8217;);  //EvPNG.fix(&#8216;@Mr.Think提示你:请在此处设置包含透明 PNG图片的标签&#8217;),多个标签之间用英文逗号隔开.
IE滤镜让IE6实现PNG效果(适应性差,一般用于仅一两处用到PNG背景的情况):
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=&#8217;http://mrthink.net/demo/images/100508.png&#8217;,sizingMethod=&#8217;scale&#8217;);
]]></description>
			<content:encoded><![CDATA[<p>纯CSS实现的图片圆角边框效果,兼容IE6.<br />
实现原理很简单,利用绝对定位,使一个背景为PNG图片的边框覆盖在原始图片上面.而兼容IE6,本文用的是一段JS来让万恶的万万人诅咒的IE6识别 PNG图片的.当然,你还可以用滤镜的方式让IE6实现PNG效果.本文后面我会附上两种解决方案.个人比较推崇用JS来实现IE6PNG,适应性比较强,但如果你只有一两处用到PNG,完全可以用滤镜的方式来实现.<br />
核心CSS代码:<br />
.i_roundimg{ background:url(http://mrthink.net/demo/images/100508.png) no-repeat;cursor:pointer;width:60px;height:60px;position:absolute;}</p>
<p>另外附上两种解决IE6下PNG图片的方案:<br />
JavaScript让IE6识别PNG(适应性强,适应于背景PNG和页面中的PNG):</p>
<p>eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!&#8221;.replace(/^/,String)){while(c&#8211;)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return&#8217;\\w+&#8217;};c=1};while(c&#8211;)if(k[c])p=p.replace(new RegExp(&#8216;\\b&#8217;+e(c)+&#8217;\\b&#8217;,'g&#8217;),k[c]);return p}(&#8216;2 E={J:\&#8217;E\&#8217;,Z:{},1E:7(){4(x.1l&#038;&#038;!x.1l[6.J]){x.1l.23(6.J,\&#8217;24:25-26-27:3\&#8217;)}4(1F.11){1F.11(\&#8217;28\&#8217;,7(){E=29})}},1G:7(){2 a=x.1m(\&#8217;8\&#8217;);x.1H.1b.1n(a,x.1H.1b.1b);2 b=a.1o;b.1c(6.J+\&#8217;\\\\:*\&#8217;,\&#8217;{12:2a(#1I#2b)}\&#8217;);b.1c(6.J+\&#8217;\\\\:9\&#8217;,\&#8217;Q:1p;\&#8217;);b.1c(\&#8217;1J.\&#8217;+6.J+\&#8217;1K\&#8217;,\&#8217;12:y; 1q:y; Q:1p; z-2c:-1; 1d:-1r; 1L:1M;\&#8217;);6.1o=b},1N:7(){2 a=13.2d;4(13.1e.K(\&#8217;2e\&#8217;)!=-1||13.1e.K(\&#8217;1q\&#8217;)!=-1){E.1f(a)}4(13.1e==\&#8217;8.1s\&#8217;){2 b=(a.F.1s==\&#8217;y\&#8217;)?\&#8217;y\&#8217;:\&#8217;2f\&#8217;;G(2 v M a.3){a.3[v].9.8.1s=b}}4(13.1e.K(\&#8217;14\&#8217;)!=-1){E.1t(a)}},1t:7(a){4(a.F.14.K(\&#8217;2g\&#8217;)!=-1){2 b=a.F.14;b=1u(b.2h(b.1v(\&#8217;=\&#8217;)+1,b.1v(\&#8217;)\&#8217;)),10)/2i;a.3.N.9.8.14=a.F.14;a.3.C.I.2j=b}},15:7(a){2k(7(){E.1f(a)},1)},2l:7(a){2 b=a.1O(\&#8217;,\&#8217;);G(2 i=0;i<b.2m;i++){6.1o.1c(b[i],\'12:2n(E.1P(6))\')}},1f:7(a){a.S.1Q=\'\';6.1R(a);6.16(a);6.1t(a);4(a.O){6.1S(a)}},1T:7(b){2 c=6;2 d={2o:\'16\',2p:\'16\'};4(b.17==\'A\'){2 e={2q:\'15\',2r:\'15\',2s:\'15\',2t:\'15\'};G(2 a M e){d[a]=e[a]}}G(2 h M d){b.11(\'1w\'+h,7(){c[d[h]](b)})}b.11(\'2u\',6.1N)},1x:7(a){a.8.2v=1;4(a.F.Q==\'2w\'){a.8.Q=\'2x\'}},1S:7(a){2 b={\'2y\':P,\'2z\':P,\'2A\':P};G(2 s M b){a.3.N.9.8[s]=a.F[s]}},1R:7(a){4(!a.F){1g}U{2 b=a.F}G(2 v M a.3){a.3[v].9.8.1U=b.1U}a.S.18=\'\';a.S.19=\'\';2 c=(b.18==\'1V\');2 d=P;4(b.19!=\'y\'||a.O){4(!a.O){a.D=b.19;a.D=a.D.2B(5,a.D.1v(\'")\')-5)}U{a.D=a.1h}2 e=6;4(!e.Z[a.D]){2 f=x.1m(\'1J\');e.Z[a.D]=f;f.2C=e.J+\'1K\';f.S.1Q=\'12:y; Q:1p; 1y:-1r; 1d:-1r; 1q:y;\';f.11(\'2D\',7(){6.1i=6.2E;6.1j=6.2F;e.16(a)});f.1h=a.D;f.1W(\'1i\');f.1W(\'1j\');x.1X.1n(f,x.1X.1b)}a.3.C.I.1h=a.D;d=V}a.3.C.I.1w=!d;a.3.C.I.N=\'y\';a.3.N.9.8.18=b.18;a.S.19=\'y\';a.S.18=\'1V\'},16:7(e){2 f=e.F;2 g={\'W\':e.2G+1,\'H\':e.2H+1,\'w\':6.Z[e.D].1i,\'h\':6.Z[e.D].1j,\'L\':e.2I,\'T\':e.2J,\'1k\':e.2K,\'1z\':e.2L};2 i=(g.L+g.1k==1)?1:0;2 j=7(a,l,t,w,h,o){a.2M=w+\',\'+h;a.2N=o+\',\'+o;a.2O=\'2P,1Y\'+w+\',1Y\'+w+\',\'+h+\'2Q,\'+h+\' 2R\';a.8.1i=w+\'u\';a.8.1j=h+\'u\';a.8.1y=l+\'u\';a.8.1d=t+\'u\'};j(e.3.N.9,(g.L+(e.O?0:g.1k)),(g.T+(e.O?0:g.1z)),(g.W-1),(g.H-1),0);j(e.3.C.9,(g.L+g.1k),(g.T+g.1z),(g.W),(g.H),1);2 k={\'X\':0,\'Y\':0};2 m=7(a,b){2 c=P;2S(b){1a\'1y\':1a\'1d\':k[a]=0;1A;1a\'2T\':k[a]=.5;1A;1a\'2U\':1a\'2V\':k[a]=1;1A;1I:4(b.K(\'%\')!=-1){k[a]=1u(b)*.2W}U{c=V}}2 d=(a==\'X\');k[a]=2X.2Y(c?((g[d?\'W\':\'H\']*k[a])-(g[d?\'w\':\'h\']*k[a])):1u(b));4(k[a]==0){k[a]++}};G(2 b M k){m(b,f[\'2Z\'+b])}e.3.C.I.Q=(k.X/g.W)+\',\'+(k.Y/g.H);2 n=f.30;2 p={\'T\':1,\'R\':g.W+i,\'B\':g.H,\'L\':1+i};2 q={\'X\':{\'1B\':\'L\',\'1C\':\'R\',\'d\':\'W\'},\'Y\':{\'1B\':\'T\',\'1C\':\'B\',\'d\':\'H\'}};4(n!=\'1D\'){2 c={\'T\':(k.Y),\'R\':(k.X+g.w),\'B\':(k.Y+g.h),\'L\':(k.X)};4(n.K(\'1D-\')!=-1){2 v=n.1O(\'1D-\')[1].31();c[q[v].1B]=1;c[q[v].1C]=g[q[v].d]}4(c.B>g.H){c.B=g.H}e.3.C.9.8.1Z=\&#8217;20(\&#8217;+c.T+\&#8217;u \&#8217;+(c.R+i)+\&#8217;u \&#8217;+c.B+\&#8217;u \&#8217;+(c.L+i)+\&#8217;u)\&#8217;}U{e.3.C.9.8.1Z=\&#8217;20(\&#8217;+p.T+\&#8217;u \&#8217;+p.R+\&#8217;u \&#8217;+p.B+\&#8217;u \&#8217;+p.L+\&#8217;u)\&#8217;}},1P:7(a){a.8.12=\&#8217;y\&#8217;;4(a.17==\&#8217;32\&#8217;||a.17==\&#8217;33\&#8217;||a.17==\&#8217;34\&#8217;){1g}a.O=V;4(a.17==\&#8217;35\&#8217;){4(a.1h.21().K(/\\.22$/)!=-1){a.O=P;a.8.1L=\&#8217;1M\&#8217;}U{1g}}U 4(a.F.19.21().K(\&#8217;.22\&#8217;)==-1){1g}2 b=E;a.3={N:{},C:{}};2 c={9:{},I:{}};G(2 r M a.3){G(2 e M c){2 d=b.J+\&#8217;:\&#8217;+e;a.3[r][e]=x.1m(d)}a.3[r].9.36=V;a.3[r].9.37(a.3[r].I);a.38.1n(a.3[r].9,a)}a.3.C.9.39=\&#8217;y\&#8217;;a.3.C.I.3a=\&#8217;3b\&#8217;;a.3.N.I.1w=V;b.1T(a);b.1x(a);b.1x(a.3c);b.1f(a)}};3d{x.3e(&#8220;3f&#8221;,V,P)}3g(r){}E.1E();E.1G();&#8217;,62,203,&#8217;||var|vml|if||this|function|style|shape|||||||||||||||||||||px|||document|none||||image|vmlBg|EvPNG|currentStyle|for||fill|ns|search||in|color|isImg|true|position||runtimeStyle||else|false||||imgSize||attachEvent|behavior|event|filter|handlePseudoHover|vmlOffsets|nodeName|backgroundColor|backgroundImage|case|firstChild|addRule|top|propertyName|applyVML|return|src|width|height|bLW|namespaces|createElement|insertBefore|styleSheet|absolute|border|10000px|display|vmlOpacity|parseInt|lastIndexOf|on|giveLayout|left|bTW|break|b1|b2|repeat|createVmlNameSpace|window|createVmlStyleSheet|documentElement|default|img|_sizeFinder|visibility|hidden|readPropertyChange|split|fixPng|cssText|vmlFill|copyImageBorders|attachHandlers|zIndex|transparent|removeAttribute|body|0l|clip|rect|toLowerCase|png|add|urn|schemas|microsoft|com|onbeforeunload|null|url|VML|index|srcElement|background|block|lpha|substring|100|opacity|setTimeout|fix|length|expression|resize|move|mouseleave|mouseenter|focus|blur|onpropertychange|zoom|static|relative|borderStyle|borderWidth|borderColor|substr|className|onload|offsetWidth|offsetHeight|clientWidth|clientHeight|offsetLeft|offsetTop|clientLeft|clientTop|coordsize|coordorigin|path|m0|l0|xe|switch|center|right|bottom|01|Math|ceil|backgroundPosition|backgroundRepeat|toUpperCase|BODY|TD|TR|IMG|stroked|appendChild|parentNode|fillcolor|type|tile|offsetParent|try|execCommand|BackgroundImageCache|catch&#8217;.split(&#8216;|&#8217;),0,{}))<br />
EvPNG.fix(&#8216;div,span&#8217;);  //EvPNG.fix(&#8216;@Mr.Think提示你:请在此处设置包含透明 PNG图片的标签&#8217;),多个标签之间用英文逗号隔开.<br />
IE滤镜让IE6实现PNG效果(适应性差,一般用于仅一两处用到PNG背景的情况):</p>
<p>filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=&#8217;http://mrthink.net/demo/images/100508.png&#8217;,sizingMethod=&#8217;scale&#8217;);</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ietester.net/index.php/archives/145.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>完美兼容ie6,ie7,ie8以及firefox的css透明滤镜</title>
		<link>http://www.ietester.net/index.php/archives/138.html</link>
		<comments>http://www.ietester.net/index.php/archives/138.html#comments</comments>
		<pubDate>Tue, 30 Mar 2010 07:50:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[css透明滤镜]]></category>

		<guid isPermaLink="false">http://www.ietester.net/?p=138</guid>
		<description><![CDATA[本例是一个兼容IE6/IE7/IE8和火狐浏览器的css实现半透明层效果，之前本人也遇到过这样的问题，就是把一个层设置半透明后，内的文字也跟着半透明了，一直没找到合适的解决办法，今天看到designcss.org有一篇文章解决了这个问题，但有一点，发现在filter前边多加一个星号，多加个星号是为了让IE6和IE7执行，火狐和IE8就不执行了，火狐本身来讲就不支持IE特有的滤镜功能，所以这里没必要再加星号。还有就是不支持IE8浏览器，经过研究，查阅大量资料，终于找到解决办法了，下面分享出来。
css用到的\9是css hack的写法，是为了兼容不同的浏览器而使用的


&#60;!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML 1.0 Transitional//EN&#34; &#34;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#34;&#62;
&#60;html xmlns=&#34;http://www.w3.org/1999/xhtml&#34;&#62;
&#60;head&#62;
&#60;meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=utf-8&#34; /&#62;
&#60;title&#62;兼容ie6,ie7以及firefox的css透明滤镜，文字不继承其透明属性&#60;/title&#62;
&#60;style type=&#34;text/css&#34;&#62;
 #container{ border:1px solid #c00; background-color:rgba(212,0,0,0.5); background:#f00\9; filter:alpha(opacity=50); width:500px; margin:40px auto; line-height:200%; font-size:14px; padding:14px;}
 #container *{ position:relative;}
&#60;/style&#62;
&#60;/head&#62;
&#60;body&#62;
 &#60;div id=&#34;container&#34;&#62;
     &#60;span&#62;我是内容我是内容我是内容我是内容我&#60;/span&#62;
    &#60;/div&#62;
&#60;/body&#62;
&#60;/html&#62;
 

function changeTsize(){document.getElementById("runcode_EOvzxQ").style.height = document.getElementById("runcode_EOvzxQ").scrollHeight + "px";}window.setTimeout(changeTsize,0);   提示：你可以先修改部分代码再运行。

]]></description>
			<content:encoded><![CDATA[<p>本例是一个兼容IE6/IE7/IE8和火狐浏览器的css实现半透明层效果，之前本人也遇到过这样的问题，就是把一个层设置半透明后，内的文字也跟着半透明了，一直没找到合适的解决办法，今天看到designcss.org有一篇文章解决了这个问题，但有一点，发现在filter前边多加一个星号，多加个星号是为了让IE6和IE7执行，火狐和IE8就不执行了，火狐本身来讲就不支持IE特有的滤镜功能，所以这里没必要再加星号。还有就是不支持IE8浏览器，经过研究，查阅大量资料，终于找到解决办法了，下面分享出来。</p>
<p>css用到的\9是css hack的写法，是为了兼容不同的浏览器而使用的</p>
<div class="runcode">
<p><textarea name="runcode" style="overflow-y:visible;width:600px;font-size:12px" class="runcode_text" id="runcode_b1kf8z">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;兼容ie6,ie7以及firefox的css透明滤镜，文字不继承其透明属性&lt;/title&gt;
&lt;style type=&quot;text/css&quot;&gt;
 #container{ border:1px solid #c00; background-color:rgba(212,0,0,0.5); background:#f00\9; filter:alpha(opacity=50); width:500px; margin:40px auto; line-height:200%; font-size:14px; padding:14px;}
 #container *{ position:relative;}
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
 &lt;div id=&quot;container&quot;&gt;
     &lt;span&gt;我是内容我是内容我是内容我是内容我&lt;/span&gt;
    &lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
 
</textarea></p>
<script type="text/javascript">function changeTsize(){document.getElementById("runcode_b1kf8z").style.height = document.getElementById("runcode_b1kf8z").scrollHeight + "px";}window.setTimeout(changeTsize,0);</script><p><input type="button" value="运行" class="runcode_button" onclick="runcode_open_new('runcode_b1kf8z');"/> <input type="button" value="复制" class="runcode_button" onclick="runcode_copy('runcode_b1kf8z');"/> <input type="button" value="另存代码" class="runcode_button" onclick="saveCode('runcode_b1kf8z','runcode_b1kf8z');"/> 提示：你可以先修改部分代码再运行。</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.ietester.net/index.php/archives/138.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2010全面兼容IE6/IE7/IE8/FF的CSS HACK写法</title>
		<link>http://www.ietester.net/index.php/archives/136.html</link>
		<comments>http://www.ietester.net/index.php/archives/136.html#comments</comments>
		<pubDate>Tue, 30 Mar 2010 07:48:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS HACK写法]]></category>
		<category><![CDATA[全面兼容IE6/IE7/IE8/FF]]></category>

		<guid isPermaLink="false">http://www.ietester.net/?p=136</guid>
		<description><![CDATA[浏览器市场的混乱，给设计师造成很大的麻烦，设计的页面兼容完这个浏览器还得兼容那个浏览器，本来ie6跟ff之间的兼容是很容易解决的。加上个ie7会麻烦点，ie8的出现就更头疼了，原来hack ie7的方法又不能用了，怎么办呢？
第一种方法：
还好，微软提供了这样一个代码：
&#60;meta http-equiv=&#8221;x-ua-compatible&#8221; content=&#8221;ie=7&#8243; /&#62;
把这段代码放到&#60;head&#62;里面，在ie8里面的页面解析起来就跟ie7一模一样的了，所以，基本上可以无视ie8，剩下的代码只需要这样写就可以了
background:#ffc; /*  对firefox有效*/
*background:#ccc; /* 对ie7有效 */
_background:#000; /* 只对ie6有效 */
解释一下吧：
firefox能解析第一段，后面的两个因为前面加了特殊符号“*”和“_”,firefox认不了，所以只认background:#ffc，看到的是黄色；
ie7前两短都能认，以最后的为准，所以最后解析是background:#ccc，看到的是灰色；
ie6三段都能认，而且“_”这个只有ie6能认，所以最后解析是_background:#000，看到的是黑色
阿门！已经是最简单和最好理解的写法了，如果你是google进来的，我可以很负责任的告诉你，这种方法是ok的，我测试过。
ie8的那段兼容7的代码我也测试过了，在我现在的windos 7 测试版所带的ie8是没问题的，以后ie8正式版出来还管不管用就不知道了。
ps：如果你发现按我这样写还是有问题的话，请查看一下你的html头，看看&#60;head&#62;之前的内容是不是这样的标准写法
&#60;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8220;&#62;
&#60;html xmlns=&#8221;http://www.w3.org/1999/xhtml&#8220;&#62;
这个是现在比较规范的写法，如果你是用dreamweaver做页面的话，默认也是这种规范的，切记，非这种规范写法的，兼容性不能保证
第二种方法：
要求苛刻的朋友是不愿意在页面头部增加&#60;meta http-equiv=&#8221;x-ua-compatible&#8221; content=&#8221;ie=7&#8243; /&#62;这样一句代码的，因为这样的结果是每个页面都得加。那么要想兼容这几个浏览器还真得想别的办法了。早些天本站发布了一篇《完美兼容ie6,ie7,ie8以及firefox的css透明滤镜》，可能当时测试的疏忽，IE8的兼容性没有解决好，好多朋友回复说用不了。今天抽出些时间，查阅大量资料，终于解决了这个问题了。
以下是兼容IE6/IE7/IE8/FF的写法，注意下面的顺序不可颠倒
margin-bottom:40px;       /*ff的属性*/
margin-bottom:140px\9;    /* IE6/7/8的属性 */
color:red\0;              /* IE8支持 */
*margin-bottom:450px;     /*IE6/7的属性*/
下面以一个实例的形式表现，大家可以运行代码查看一下效果


&#60;!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML 1.0 Transitional//EN&#34; &#34;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#34;&#62;
&#60;html xmlns=&#34;http://www.w3.org/1999/xhtml&#34;&#62;
&#60;head&#62;
&#60;meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=utf-8&#34; /&#62;
&#60;title&#62;2010最新全面兼容ie6,ie7,ie8,ff的CSS HACK写法——www.ietester.net&#60;/title&#62;
&#60;style type=&#34;text/css&#34;&#62;
#abc {
 border:2px solid #00f;    [...]]]></description>
			<content:encoded><![CDATA[<p>浏览器市场的混乱，给设计师造成很大的麻烦，设计的页面兼容完这个浏览器还得兼容那个浏览器，本来ie6跟ff之间的兼容是很容易解决的。加上个ie7会麻烦点，ie8的出现就更头疼了，原来hack ie7的方法又不能用了，怎么办呢？</p>
<p>第一种方法：</p>
<p>还好，微软提供了这样一个代码：</p>
<p>&lt;meta http-equiv=&#8221;x-ua-compatible&#8221; content=&#8221;ie=7&#8243; /&gt;<br />
把这段代码放到&lt;head&gt;里面，在ie8里面的页面解析起来就跟ie7一模一样的了，所以，基本上可以无视ie8，剩下的代码只需要这样写就可以了</p>
<p>background:#ffc; /*  对firefox有效*/<br />
*background:#ccc; /* 对ie7有效 */<br />
_background:#000; /* 只对ie6有效 */<br />
解释一下吧：</p>
<p>firefox能解析第一段，后面的两个因为前面加了特殊符号“*”和“_”,firefox认不了，所以只认background:#ffc，看到的是黄色；</p>
<p>ie7前两短都能认，以最后的为准，所以最后解析是background:#ccc，看到的是灰色；</p>
<p>ie6三段都能认，而且“_”这个只有ie6能认，所以最后解析是_background:#000，看到的是黑色</p>
<p>阿门！已经是最简单和最好理解的写法了，如果你是google进来的，我可以很负责任的告诉你，这种方法是ok的，我测试过。</p>
<p>ie8的那段兼容7的代码我也测试过了，在我现在的windos 7 测试版所带的ie8是没问题的，以后ie8正式版出来还管不管用就不知道了。</p>
<p>ps：如果你发现按我这样写还是有问题的话，请查看一下你的html头，看看&lt;head&gt;之前的内容是不是这样的标准写法</p>
<p>&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8220;<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</a>&#8220;&gt;<br />
&lt;html xmlns=&#8221;<a href="http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</a>&#8220;&gt;</p>
<p>这个是现在比较规范的写法，如果你是用dreamweaver做页面的话，默认也是这种规范的，切记，非这种规范写法的，兼容性不能保证</p>
<p>第二种方法：</p>
<p>要求苛刻的朋友是不愿意在页面头部增加&lt;meta http-equiv=&#8221;x-ua-compatible&#8221; content=&#8221;ie=7&#8243; /&gt;这样一句代码的，因为这样的结果是每个页面都得加。那么要想兼容这几个浏览器还真得想别的办法了。早些天本站发布了一篇《完美兼容ie6,ie7,ie8以及firefox的css透明滤镜》，可能当时测试的疏忽，IE8的兼容性没有解决好，好多朋友回复说用不了。今天抽出些时间，查阅大量资料，终于解决了这个问题了。</p>
<p>以下是兼容IE6/IE7/IE8/FF的写法，注意下面的顺序不可颠倒</p>
<p>margin-bottom:40px;       /*ff的属性*/<br />
margin-bottom:140px\9;    /* IE6/7/8的属性 */<br />
color:red\0;              /* IE8支持 */<br />
*margin-bottom:450px;     /*IE6/7的属性*/<br />
下面以一个实例的形式表现，大家可以运行代码查看一下效果</p>
<div class="runcode">
<p><textarea name="runcode" style="overflow-y:visible;width:600px;font-size:12px" class="runcode_text" id="runcode_b8izOE">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;2010最新全面兼容ie6,ie7,ie8,ff的CSS HACK写法——www.ietester.net&lt;/title&gt;
&lt;style type=&quot;text/css&quot;&gt;
#abc {
 border:2px solid #00f;     /*ff的属性*/
 border:2px solid #090\9;   /* IE6/7/8的属性 */
 border:2px solid #F90\0;     /* IE8支持 */
 _border:2px solid #f00;     /*IE6的属性*/
 }
 /*上下顺序不可以写错*/
 &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div id=&quot;abc&quot;&gt;
  &lt;ul&gt;
    &lt;li&gt;FF下蓝边&lt;/li&gt;
    &lt;li&gt;IE6下红边&lt;/li&gt;
    &lt;li&gt;IE7下绿边&lt;/li&gt;
    &lt;li&gt;IE8下黄边&lt;/li&gt;
    &lt;li&gt;转载请注明来www.ietester.net&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt; 
</textarea></p>
<script type="text/javascript">function changeTsize(){document.getElementById("runcode_b8izOE").style.height = document.getElementById("runcode_b8izOE").scrollHeight + "px";}window.setTimeout(changeTsize,0);</script><p><input type="button" value="运行" class="runcode_button" onclick="runcode_open_new('runcode_b8izOE');"/> <input type="button" value="复制" class="runcode_button" onclick="runcode_copy('runcode_b8izOE');"/> <input type="button" value="另存代码" class="runcode_button" onclick="saveCode('runcode_b8izOE','runcode_b8izOE');"/> 提示：你可以先修改部分代码再运行。</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.ietester.net/index.php/archives/136.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>完美兼容ie6,ie7,ie8以及firefox的css透明滤镜</title>
		<link>http://www.ietester.net/index.php/archives/130.html</link>
		<comments>http://www.ietester.net/index.php/archives/130.html#comments</comments>
		<pubDate>Fri, 19 Mar 2010 05:07:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[css透明滤镜]]></category>

		<guid isPermaLink="false">http://www.ietester.net/?p=130</guid>
		<description><![CDATA[本例是一个兼容IE6/IE7/IE8和火狐浏览器的css实现半透明层效果，之前本人也遇到过这样的问题，就是把一个层设置半透明后，内的文字也跟着半透明了，一直没找到合适的解决办法，今天看到designcss.org有一篇文章解决了这个问题，但有一点，它不支持IE8浏览器，经过研究，发现在filter前边多加一个星号造成的，多加个星号是为了让IE6和IE7执行，火狐和IE8就不执行了，火狐本身来讲就不支持IE特有的滤镜功能，所以这里没必要再加星号，把星号删掉之后，IE8也兼容了，分享出来！
css用到的星号是css hack的写法，是为了兼容不同的浏览器而使用的


&#60;!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML 1.0 Transitional//EN&#34; &#34;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#34;&#62;
&#60;html xmlns=&#34;http://www.w3.org/1999/xhtml&#34;&#62;
&#60;head&#62;
&#60;meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=utf-8&#34; /&#62;
&#60;title&#62;兼容ie6,ie7以及firefox的css透明滤镜，文字不继承其透明属性&#60;/title&#62;
&#60;style type=&#34;text/css&#34;&#62;
 #container{ border:1px solid #c00; background-color:rgba(212,0,0,0.5); *background:#f00; filter:alpha(opacity=50); width:500px; margin:40px auto; line-height:200%; font-size:14px; padding:14px;}
 #container *{ position:relative;}
&#60;/style&#62;
&#60;/head&#62;
&#60;body&#62;
 &#60;div id=&#34;container&#34;&#62;
     &#60;span&#62;我是内容我是内容我是内容我是内容我&#60;/span&#62;
    &#60;/div&#62;
&#60;/body&#62;
&#60;/html&#62;
 

function changeTsize(){document.getElementById("runcode_yCFsDJ").style.height = document.getElementById("runcode_yCFsDJ").scrollHeight + "px";}window.setTimeout(changeTsize,0);   提示：你可以先修改部分代码再运行。

]]></description>
			<content:encoded><![CDATA[<p>本例是一个兼容IE6/IE7/IE8和火狐浏览器的css实现半透明层效果，之前本人也遇到过这样的问题，就是把一个层设置半透明后，内的文字也跟着半透明了，一直没找到合适的解决办法，今天看到designcss.org有一篇文章解决了这个问题，但有一点，它不支持IE8浏览器，经过研究，发现在filter前边多加一个星号造成的，多加个星号是为了让IE6和IE7执行，火狐和IE8就不执行了，火狐本身来讲就不支持IE特有的滤镜功能，所以这里没必要再加星号，把星号删掉之后，IE8也兼容了，分享出来！</p>
<p>css用到的星号是css hack的写法，是为了兼容不同的浏览器而使用的</p>
<div class="runcode">
<p><textarea name="runcode" style="overflow-y:visible;width:600px;font-size:12px" class="runcode_text" id="runcode_F2_BEp">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;兼容ie6,ie7以及firefox的css透明滤镜，文字不继承其透明属性&lt;/title&gt;
&lt;style type=&quot;text/css&quot;&gt;
 #container{ border:1px solid #c00; background-color:rgba(212,0,0,0.5); *background:#f00; filter:alpha(opacity=50); width:500px; margin:40px auto; line-height:200%; font-size:14px; padding:14px;}
 #container *{ position:relative;}
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
 &lt;div id=&quot;container&quot;&gt;
     &lt;span&gt;我是内容我是内容我是内容我是内容我&lt;/span&gt;
    &lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
 
</textarea></p>
<script type="text/javascript">function changeTsize(){document.getElementById("runcode_F2_BEp").style.height = document.getElementById("runcode_F2_BEp").scrollHeight + "px";}window.setTimeout(changeTsize,0);</script><p><input type="button" value="运行" class="runcode_button" onclick="runcode_open_new('runcode_F2_BEp');"/> <input type="button" value="复制" class="runcode_button" onclick="runcode_copy('runcode_F2_BEp');"/> <input type="button" value="另存代码" class="runcode_button" onclick="saveCode('runcode_F2_BEp','runcode_F2_BEp');"/> 提示：你可以先修改部分代码再运行。</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.ietester.net/index.php/archives/130.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>纯CSS实现三列DIV等高布局</title>
		<link>http://www.ietester.net/index.php/archives/125.html</link>
		<comments>http://www.ietester.net/index.php/archives/125.html#comments</comments>
		<pubDate>Fri, 19 Mar 2010 05:02:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[等高布局]]></category>

		<guid isPermaLink="false">http://www.ietester.net/?p=125</guid>
		<description><![CDATA[DIV等高布局，我想很多人都遇见过，我也看过不少的方法，有的是通过背景图片，实现假象的等高效果；
还有的用js实现等等。这些都是方法，但是现在都不用以上的方法，来个真正的纯css实现等高！
现在我们来看看真正的 CSS 实现的等高布局，其方法主要是采用“隐藏容器溢出”、“正内补丁”和“负外补丁”结合的方法实现的。 下面来看看实际的例子（三列等高），以下面的 XHTML 代码为例：


&#60;!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML 1.0 Transitional//EN&#34; &#34;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#34;&#62;
&#60;html xmlns=&#34;http://www.w3.org/1999/xhtml&#34;&#62;
&#60;head&#62;
&#60;meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=utf-8&#34; /&#62;
&#60;title&#62;CSS等高布局&#60;/title&#62;
&#60;style type=&#34;text/css&#34;&#62;
*{
 margin:0;
 padding:0;
}
#wrap{
 overflow:hidden;
 width:1000px;
 margin:0 auto;
}
#left,#center,#right{
 margin-bottom:-10000px;
 padding-bottom:10000px;
}
#left{
 float:left;
 width:250px;
 background:#00FFFF;
 }
#center{
 float:left;
 width:500px;
 background:#FF0000;
 }
#right{
 float:right;
 width:250px;
 background:#00FF00;
 }
&#60;/style&#62;
&#60;/head&#62;
&#60;body&#62;
&#60;div id=&#34;wrap&#34;&#62;
 &#60;div id=&#34;left&#34;&#62;
  &#60;p&#62;&#60;a href=&#34;www.ietester.net&#34; target=&#34;_blank&#34;&#62;www.ietester.net&#60;/a&#62;&#60;/p&#62;
  &#60;p&#62;&#60;a href=&#34;www.ietester.net&#34; target=&#34;_blank&#34;&#62;www.ietester.net&#60;/a&#62;&#60;/p&#62;
  &#60;p&#62;&#60;a href=&#34;www.ietester.net&#34; target=&#34;_blank&#34;&#62;www.ietester.net&#60;/a&#62;&#60;/p&#62;
  [...]]]></description>
			<content:encoded><![CDATA[<p>DIV等高布局，我想很多人都遇见过，我也看过不少的方法，有的是通过背景图片，实现假象的等高效果；<br />
还有的用js实现等等。这些都是方法，但是现在都不用以上的方法，来个真正的纯css实现等高！</p>
<p>现在我们来看看真正的 CSS 实现的等高布局，其方法主要是采用“隐藏容器溢出”、“正内补丁”和“负外补丁”结合的方法实现的。 下面来看看实际的例子（三列等高），以下面的 XHTML 代码为例：</p>
<div class="runcode">
<p><textarea name="runcode" style="overflow-y:visible;width:600px;font-size:12px" class="runcode_text" id="runcode_Z53BXT">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;CSS等高布局&lt;/title&gt;
&lt;style type=&quot;text/css&quot;&gt;
*{
 margin:0;
 padding:0;
}
#wrap{
 overflow:hidden;
 width:1000px;
 margin:0 auto;
}
#left,#center,#right{
 margin-bottom:-10000px;
 padding-bottom:10000px;
}
#left{
 float:left;
 width:250px;
 background:#00FFFF;
 }
#center{
 float:left;
 width:500px;
 background:#FF0000;
 }
#right{
 float:right;
 width:250px;
 background:#00FF00;
 }
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div id=&quot;wrap&quot;&gt;
 &lt;div id=&quot;left&quot;&gt;
  &lt;p&gt;&lt;a href=&quot;www.ietester.net&quot; target=&quot;_blank&quot;&gt;www.ietester.net&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;www.ietester.net&quot; target=&quot;_blank&quot;&gt;www.ietester.net&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;www.ietester.net&quot; target=&quot;_blank&quot;&gt;www.ietester.net&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;www.ietester.net&quot; target=&quot;_blank&quot;&gt;www.ietester.net&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;www.ietester.net&quot; target=&quot;_blank&quot;&gt;www.ietester.net&lt;/a&gt;&lt;/p&gt;
 &lt;/div&gt;
 &lt;div id=&quot;center&quot;&gt;
  &lt;p&gt;&lt;a href=&quot;www.ietester.net&quot; target=&quot;_blank&quot;&gt;www.ietester.net&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;www.ietester.net&quot; target=&quot;_blank&quot;&gt;www.ietester.net&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;www.ietester.net&quot; target=&quot;_blank&quot;&gt;www.ietester.net&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;www.ietester.net&quot; target=&quot;_blank&quot;&gt;www.ietester.net&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;www.ietester.net&quot; target=&quot;_blank&quot;&gt;www.ietester.net&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;www.ietester.net&quot; target=&quot;_blank&quot;&gt;www.ietester.net&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;www.ietester.net&quot; target=&quot;_blank&quot;&gt;www.ietester.net&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;www.ietester.net&quot; target=&quot;_blank&quot;&gt;www.ietester.net&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;www.ietester.net&quot; target=&quot;_blank&quot;&gt;www.ietester.net&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;www.ietester.net&quot; target=&quot;_blank&quot;&gt;www.ietester.net&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;www.ietester.net&quot; target=&quot;_blank&quot;&gt;www.ietester.net&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;www.ietester.net&quot; target=&quot;_blank&quot;&gt;www.ietester.net&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;www.ietester.net&quot; target=&quot;_blank&quot;&gt;www.ietester.net&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;www.ietester.net&quot; target=&quot;_blank&quot;&gt;www.ietester.net&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;www.ietester.net&quot; target=&quot;_blank&quot;&gt;www.ietester.net&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;www.ietester.net&quot; target=&quot;_blank&quot;&gt;www.ietester.net&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;www.ietester.net&quot; target=&quot;_blank&quot;&gt;www.ietester.net&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;www.ietester.net&quot; target=&quot;_blank&quot;&gt;www.ietester.net&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;www.ietester.net&quot; target=&quot;_blank&quot;&gt;www.ietester.net&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;www.ietester.net&quot; target=&quot;_blank&quot;&gt;www.ietester.net&lt;/a&gt;&lt;/p&gt;
 &lt;/div&gt;
 &lt;div id=&quot;right&quot;&gt;
  &lt;p&gt;&lt;a href=&quot;www.ietester.net&quot; target=&quot;_blank&quot;&gt;www.ietester.net&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;www.ietester.net&quot; target=&quot;_blank&quot;&gt;www.ietester.net&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;www.ietester.net&quot; target=&quot;_blank&quot;&gt;www.ietester.net&lt;/a&gt;&lt;/p&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</textarea></p>
<script type="text/javascript">function changeTsize(){document.getElementById("runcode_Z53BXT").style.height = document.getElementById("runcode_Z53BXT").scrollHeight + "px";}window.setTimeout(changeTsize,0);</script><p><input type="button" value="运行" class="runcode_button" onclick="runcode_open_new('runcode_Z53BXT');"/> <input type="button" value="复制" class="runcode_button" onclick="runcode_copy('runcode_Z53BXT');"/> <input type="button" value="另存代码" class="runcode_button" onclick="saveCode('runcode_Z53BXT','runcode_Z53BXT');"/> 提示：你可以先修改部分代码再运行。</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.ietester.net/index.php/archives/125.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>div css模拟表单美化的Select样式,超经典</title>
		<link>http://www.ietester.net/index.php/archives/121.html</link>
		<comments>http://www.ietester.net/index.php/archives/121.html#comments</comments>
		<pubDate>Fri, 19 Mar 2010 04:59:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Select样式]]></category>

		<guid isPermaLink="false">http://www.ietester.net/?p=121</guid>
		<description><![CDATA[效果图:

结构分析图:

 
下载地址：div css模拟美化的Select样式
div css模拟美化的Select样式演示地址
]]></description>
			<content:encoded><![CDATA[<p>效果图:</p>
<p><a href="http://www.ietester.net/wp-content/uploads/2010/03/11.gif"><img class="alignnone size-full wp-image-122" title="11" src="http://www.ietester.net/wp-content/uploads/2010/03/11.gif" alt="" width="250" height="350" /></a></p>
<p>结构分析图:</p>
<p><a href="http://www.ietester.net/wp-content/uploads/2010/03/12.gif"><img class="alignnone size-full wp-image-123" title="12" src="http://www.ietester.net/wp-content/uploads/2010/03/12.gif" alt="" width="500" height="320" /></a><br />
 </p>
<p>下载地址：<a href="http://www.ietester.net/code/201003/select2css.rar" target="_blank">div css模拟美化的Select样式</a></p>
<p>div css模拟美化的Select样式<a href="http://www.ietester.net/code/201003/select2css/" target="_blank">演示地址</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ietester.net/index.php/archives/121.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>动画效果打开层 关闭层</title>
		<link>http://www.ietester.net/index.php/archives/115.html</link>
		<comments>http://www.ietester.net/index.php/archives/115.html#comments</comments>
		<pubDate>Wed, 17 Mar 2010 09:30:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[动画效果打开层]]></category>

		<guid isPermaLink="false">http://www.ietester.net/?p=115</guid>
		<description><![CDATA[
&#60;!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML 1.0 Transitional//EN&#34; &#34;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#34;&#62;
&#60;html xmlns=&#34;http://www.w3.org/1999/xhtml&#34;&#62;
&#60;head&#62;
&#60;meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=gb2312&#34; /&#62;
&#60;title&#62;DOM_text01&#60;/title&#62;
&#60;style type=&#34;text/css&#34;&#62;
body,span,div,td{font-size:12px;line-height:1.5em;color:#849BCA;}
#bodyL{
	float:left;
	width:84px;
	margin-right:2px;
}
a.od{
	width:80px;
	height:25px;
	line-height:25px;
	text-align:center;
	font-weight:bold;
	border: 2px solid #849BCA;	
	display:block;
	color:#547BC9;
	float:left;
	text-decoration:none;
	margin-top:2px;
}
a.od:link{
	background:#EEF1F8;
}
a.od:visited{
	background:#EEF1F8;
}
a.od:hover{
	background:#EEE;
}
a.od:active{
	background:#EEE;
}
#fd{	
	width:500px;
	height:200px;
	background:#EDF1F8;	
	border: 2px solid #849BCA;
	margin-top:2px;
	margin-left:2px;
	float:left;
	overflow:hidden;
	position:absolute;
	left:0px;
	top:0px;
	cursor:move;
	float:left;
	/*filter:alpha(opacity=50);*/
	
}
.content{
	padding:10px;
}
&#60;/style&#62;
&#60;/head&#62;
&#60;body&#62;
&#60;div id=&#34;bodyL&#34;&#62;
	&#60;a href=&#34;#&#34; class=&#34;od&#34; onclick = &#34;show('fd');return false;&#34;&#62;
		[打开层]
	&#60;/a&#62;
	&#60;a href=&#34;#&#34; class=&#34;od&#34; onclick = &#34;closeed('fd');return false;&#34;&#62;
		[关闭层]
	&#60;/a&#62;
&#60;/div&#62;	
&#60;div id=&#34;fd&#34; style=&#34;display:none;filter:alpha(opacity=100);opacity:1;&#34;&#62;
	&#60;div class=&#34;content&#34;&#62;移动层&#60;/div&#62;	
&#60;/div&#62;
	
&#60;script type=&#34;text/javascript&#34;&#62;
	var prox;
	var proy;
	var proxc;
	var proyc;
	function show(id){/*--打开--*/
		clearInterval(prox);
		clearInterval(proy);
		clearInterval(proxc);
		clearInterval(proyc);
		var o = document.getElementById(id);
		o.style.display = &#34;block&#34;;
		o.style.width = &#34;1px&#34;;
		o.style.height = &#34;1px&#34;; 
		prox = setInterval(function(){openx(o,500)},10);
	}	
	function openx(o,x){/*--打开x--*/
		var [...]]]></description>
			<content:encoded><![CDATA[<div class="runcode">
<p><textarea name="runcode" style="overflow-y:visible;width:600px;font-size:12px" class="runcode_text" id="runcode_biiL5q">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=gb2312&quot; /&gt;
&lt;title&gt;DOM_text01&lt;/title&gt;
&lt;style type=&quot;text/css&quot;&gt;
body,span,div,td{font-size:12px;line-height:1.5em;color:#849BCA;}
#bodyL{
	float:left;
	width:84px;
	margin-right:2px;
}
a.od{
	width:80px;
	height:25px;
	line-height:25px;
	text-align:center;
	font-weight:bold;
	border: 2px solid #849BCA;	
	display:block;
	color:#547BC9;
	float:left;
	text-decoration:none;
	margin-top:2px;
}
a.od:link{
	background:#EEF1F8;
}
a.od:visited{
	background:#EEF1F8;
}
a.od:hover{
	background:#EEE;
}
a.od:active{
	background:#EEE;
}
#fd{	
	width:500px;
	height:200px;
	background:#EDF1F8;	
	border: 2px solid #849BCA;
	margin-top:2px;
	margin-left:2px;
	float:left;
	overflow:hidden;
	position:absolute;
	left:0px;
	top:0px;
	cursor:move;
	float:left;
	/*filter:alpha(opacity=50);*/
	
}
.content{
	padding:10px;
}
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div id=&quot;bodyL&quot;&gt;
	&lt;a href=&quot;#&quot; class=&quot;od&quot; onclick = &quot;show('fd');return false;&quot;&gt;
		[打开层]
	&lt;/a&gt;
	&lt;a href=&quot;#&quot; class=&quot;od&quot; onclick = &quot;closeed('fd');return false;&quot;&gt;
		[关闭层]
	&lt;/a&gt;
&lt;/div&gt;	
&lt;div id=&quot;fd&quot; style=&quot;display:none;filter:alpha(opacity=100);opacity:1;&quot;&gt;
	&lt;div class=&quot;content&quot;&gt;移动层&lt;/div&gt;	
&lt;/div&gt;
	
&lt;script type=&quot;text/javascript&quot;&gt;
	var prox;
	var proy;
	var proxc;
	var proyc;
	function show(id){/*--打开--*/
		clearInterval(prox);
		clearInterval(proy);
		clearInterval(proxc);
		clearInterval(proyc);
		var o = document.getElementById(id);
		o.style.display = &quot;block&quot;;
		o.style.width = &quot;1px&quot;;
		o.style.height = &quot;1px&quot;; 
		prox = setInterval(function(){openx(o,500)},10);
	}	
	function openx(o,x){/*--打开x--*/
		var cx = parseInt(o.style.width);
		if(cx &lt; x)
		{
			o.style.width = (cx + Math.ceil((x-cx)/5)) +&quot;px&quot;;
		}
		else
		{
			clearInterval(prox);
			proy = setInterval(function(){openy(o,200)},10);
		}
	}	
	function openy(o,y){/*--打开y--*/	
		var cy = parseInt(o.style.height);
		if(cy &lt; y)
		{
			o.style.height = (cy + Math.ceil((y-cy)/5)) +&quot;px&quot;;
		}
		else
		{
			clearInterval(proy);			
		}
	}	
	function closeed(id){/*--关闭--*/
		clearInterval(prox);
		clearInterval(proy);
		clearInterval(proxc);
		clearInterval(proyc);		
		var o = document.getElementById(id);
		if(o.style.display == &quot;block&quot;)
		{
			proyc = setInterval(function(){closey(o)},10);			
		}		
	}	
	function closey(o){/*--打开y--*/	
		var cy = parseInt(o.style.height);
		if(cy &gt; 0)
		{
			o.style.height = (cy - Math.ceil(cy/5)) +&quot;px&quot;;
		}
		else
		{
			clearInterval(proyc);				
			proxc = setInterval(function(){closex(o)},10);
		}
	}	
	function closex(o){/*--打开x--*/
		var cx = parseInt(o.style.width);
		if(cx &gt; 0)
		{
			o.style.width = (cx - Math.ceil(cx/5)) +&quot;px&quot;;
		}
		else
		{
			clearInterval(proxc);
			o.style.display = &quot;none&quot;;
		}
	}	
	
	
	/*-------------------------鼠标拖动---------------------*/	
	var od = document.getElementById(&quot;fd&quot;);	
	var dx,dy,mx,my,mouseD;
	var odrag;
	var isIE = document.all ? true : false;
	document.onmousedown = function(e){
		var e = e ? e : event;
		if(e.button == (document.all ? 1 : 0))
		{
			mouseD = true;			
		}
	}
	document.onmouseup = function(){
		mouseD = false;
		odrag = &quot;&quot;;
		if(isIE)
		{
			od.releaseCapture();
			od.filters.alpha.opacity = 100;
		}
		else
		{
			window.releaseEvents(od.MOUSEMOVE);
			od.style.opacity = 1;
		}		
	}
	
	
	//function readyMove(e){	
	od.onmousedown = function(e){
		odrag = this;
		var e = e ? e : event;
		if(e.button == (document.all ? 1 : 0))
		{
			mx = e.clientX;
			my = e.clientY;
			od.style.left = od.offsetLeft + &quot;px&quot;;
			od.style.top = od.offsetTop + &quot;px&quot;;
			if(isIE)
			{
				od.setCapture();				
				od.filters.alpha.opacity = 50;
			}
			else
			{
				window.captureEvents(Event.MOUSEMOVE);
				od.style.opacity = 0.5;
			}
			
			//alert(mx);
			//alert(my);
			
		} 
	}
	document.onmousemove = function(e){
		var e = e ? e : event;
		
		//alert(mrx);
		//alert(e.button);		
		if(mouseD==true &amp;&amp; odrag)
		{		
			var mrx = e.clientX - mx;
			var mry = e.clientY - my;	
			od.style.left = parseInt(od.style.left) +mrx + &quot;px&quot;;
			od.style.top = parseInt(od.style.top) + mry + &quot;px&quot;;			
			mx = e.clientX;
			my = e.clientY;
			
		}
	}
	
	
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</textarea></p>
<script type="text/javascript">function changeTsize(){document.getElementById("runcode_biiL5q").style.height = document.getElementById("runcode_biiL5q").scrollHeight + "px";}window.setTimeout(changeTsize,0);</script><p><input type="button" value="运行" class="runcode_button" onclick="runcode_open_new('runcode_biiL5q');"/> <input type="button" value="复制" class="runcode_button" onclick="runcode_copy('runcode_biiL5q');"/> <input type="button" value="另存代码" class="runcode_button" onclick="saveCode('runcode_biiL5q','runcode_biiL5q');"/> 提示：你可以先修改部分代码再运行。</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.ietester.net/index.php/archives/115.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>最全的CSS浏览器兼容问题</title>
		<link>http://www.ietester.net/index.php/archives/106.html</link>
		<comments>http://www.ietester.net/index.php/archives/106.html#comments</comments>
		<pubDate>Wed, 17 Mar 2010 08:57:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS浏览器兼容]]></category>
		<category><![CDATA[最全的CSS浏览器兼容问题]]></category>

		<guid isPermaLink="false">http://www.ietester.net/?p=106</guid>
		<description><![CDATA[CSS对浏览器的兼容性有时让人很头疼,或许当你了解当中的技巧跟原理,就会觉得也不是难事,从网上收集了IE7,6与Fireofx的兼容性处理方法并整理了一下.对于web2.0的过度,请尽量用xhtml格式写代码,而且DOCTYPE 影响 CSS 处理,作为W3C的标准,一定要加 DOCTYPE声名.  
CSS技巧
1.div的垂直居中问题
vertical-align:middle;
将行距增加到和整个DIV一样高 line-height:200px;
然后插入文字，就垂直居中了。缺点是要控制内容不要换行  
2. margin加倍的问题    
设置为float的div在ie下设置的margin会加倍。这是一个ie6都存在的bug。
解决方案是在这个div里面加上display:inline;    
例如：    &#60;#div id=”imfloat”&#62;    相应的css为    #IamFloat{    float:left;    margin:5px;/*IE下理解为10px*/    display:inline;/*IE下再理解为5px*/}  
3.浮动ie产生的双倍距离    
#box{ float:left; width:100px; margin:0 0 0 100px; //这种情况之下IE会产生200px的距离 display:inline; //使浮动忽略}   
这里细说一下block与inline两个元素：block元素的特点是,总是在新行上开始,高度,宽度,行高,边距都可以控制(块元素);Inline元素的特点是,和其他元素在同一行上,不可控制(内嵌元素);   
#box{ display:block; //可以为内嵌元素模拟为块元素 display:inline; //实现同一行排列的效果 diplay:table;   
4 IE与宽度和高度的问题
IE 不认得min-这个定义，但实际上它把正常的width和height当作有min的情况来使。这样问题就大了，如果只用宽度和高度，正常的浏览器里这两个值就不会变，如果只用min-width和min-height的话，IE下面根本等于没有设置宽度和高度。   
比如要设置背景图片，这个宽度是比较重要的。要解决这个问题，可以这样：   
#box{ width: 80px; height: 35px;}html&#62;body #box{ width: auto; height: auto; min-width: 80px; min-height: 35px;}   
5.页面的最小宽度    
min -width是个非常方便的CSS命令，它可以指定元素最小也不能小于某个宽度，这样就能保证排版一直正确。但IE不认得这个，而它实际上把width当做最小宽度来使。为了让这一命令在IE上也能用，可以把一个&#60;div&#62; 放到 &#60;body&#62; 标签下，然后为div指定一个类, 然后CSS这样设计：   
#container{ min-width: [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-family: Arial;">CSS对浏览器的兼容性有时让人很头疼,或许当你了解当中的技巧跟原理,就会觉得也不是难事,从网上收集了IE7,6与Fireofx的兼容性处理方法并整理了一下.对于web2.0的过度,请尽量用xhtml格式写代码,而且DOCTYPE 影响 CSS 处理,作为W3C的标准,一定要加 DOCTYPE声名.  </span></p>
<p><strong><span style="font-family: Arial;">CSS技巧</span></strong></p>
<p><span style="font-family: Arial;">1.div的垂直居中问题<br />
vertical-align:middle;<br />
将行距增加到和整个DIV一样高 line-height:200px;<br />
然后插入文字，就垂直居中了。缺点是要控制内容不要换行  </span></p>
<p><span style="font-family: Arial;">2. margin加倍的问题    <br />
设置为float的div在ie下设置的margin会加倍。这是一个ie6都存在的bug。<br />
解决方案是在这个div里面加上display:inline;    </span></p>
<p><span style="font-family: Arial;">例如：    &lt;#div id=”imfloat”&gt;    相应的css为    #IamFloat{    float:left;    margin:5px;/*IE下理解为10px*/    display:inline;/*IE下再理解为5px*/}  </span></p>
<p><span style="font-family: Arial;">3.浮动ie产生的双倍距离    <br />
#box{ float:left; width:100px; margin:0 0 0 100px; //这种情况之下IE会产生200px的距离 display:inline; //使浮动忽略}   <br />
这里细说一下block与inline两个元素：block元素的特点是,总是在新行上开始,高度,宽度,行高,边距都可以控制(块元素);Inline元素的特点是,和其他元素在同一行上,不可控制(内嵌元素);   <br />
#box{ display:block; //可以为内嵌元素模拟为块元素 display:inline; //实现同一行排列的效果 diplay:table;   </span></p>
<p><span style="font-family: Arial;">4 IE与宽度和高度的问题<br />
IE 不认得min-这个定义，但实际上它把正常的width和height当作有min的情况来使。这样问题就大了，如果只用宽度和高度，正常的浏览器里这两个值就不会变，如果只用min-width和min-height的话，IE下面根本等于没有设置宽度和高度。   <br />
比如要设置背景图片，这个宽度是比较重要的。要解决这个问题，可以这样：   <br />
#box{ width: 80px; height: 35px;}html&gt;body #box{ width: auto; height: auto; min-width: 80px; min-height: 35px;}   </span></p>
<p><span style="font-family: Arial;">5.页面的最小宽度    <br />
min -width是个非常方便的CSS命令，它可以指定元素最小也不能小于某个宽度，这样就能保证排版一直正确。但IE不认得这个，而它实际上把width当做最小宽度来使。为了让这一命令在IE上也能用，可以把一个&lt;div&gt; 放到 &lt;body&gt; 标签下，然后为div指定一个类, 然后CSS这样设计：   <br />
#container{ min-width: 600px; width:expression(document.body.clientWidth &lt; 600? &#8220;600px&#8221;: &#8220;auto&#8221; );}   <br />
第一个min-width是正常的；但第2行的width使用了Javascript，这只有IE才认得，这也会让你的HTML文档不太正规。它实际上通过Javascript的判断来实现最小宽度。</span></p>
<p><span style="font-family: Arial;">6.DIV浮动IE文本产生3象素的bug   <br />
左边对象浮动，右边采用外补丁的左边距来定位，右边对象内的文本会离左边有3px的间距.   <br />
#box{ float:left; width:800px;}  <br />
#left{ float:left; width:50%;}  <br />
#right{ width:50%;}  <br />
*html #left{ margin-right:-3px; //这句是关键}   <br />
&lt;div id=&#8221;box&#8221;&gt;  <br />
&lt;div id=&#8221;left&#8221;&gt;&lt;/div&gt;  <br />
&lt;div id=&#8221;right&#8221;&gt;&lt;/div&gt;  <br />
&lt;/div&gt;  </span></p>
<p><span style="font-family: Arial;">7.IE捉迷藏的问题   <br />
当div应用复杂的时候每个栏中又有一些链接，DIV等这个时候容易发生捉迷藏的问题。   <br />
有些内容显示不出来，当鼠标选择这个区域是发现内容确实在页面。<br />
解决办法：对#layout使用line-height属性 或者给#layout使用固定高和宽。页面结构尽量简单。  </span></p>
<p><span style="font-family: Arial;">8.float的div闭合;清除浮动;自适应高度;   </span></p>
<p><span style="font-family: Arial;">① 例如：<br />
&lt;#div id=”floatA” &gt;&lt;#div id=”floatB” &gt;&lt;#div id=” NOTfloatC” &gt;这里的NOTfloatC并不希望继续平移，而是希望往下排。(其中floatA、floatB的属性已经设置为 float:left;)   这段代码在IE中毫无问题，问题出在FF。原因是NOTfloatC并非float标签，必须将float标签闭合。在 &lt;#div class=”floatB”&gt; &lt;#div class=”NOTfloatC”&gt;之间加上 &lt; #div class=”clear”&gt;这个div一定要注意位置，而且必须与两个具有float属性的div同级，之间不能存在嵌套关系，否则会产生异常。 并且将clear这种样式定义为为如下即可： .clear{ clear:both;}   </span></p>
<p><span style="font-family: Arial;">②作为外部 wrapper 的 div 不要定死高度,为了让高度能自动适应，要在wrapper里面加上overflow:hidden; 当包含float的 box的时候，高度自动适应在IE下无效，这时候应该触发IE的layout私有属性(万恶的IE啊！)用zoom:1;可以做到，这样就达到了兼容。   <br />
例如某一个wrapper如下定义：   <br />
.colwrapper{ overflow:hidden; zoom:1; margin:5px auto;}   </span></p>
<p><span style="font-family: Arial;">③对于排版,我们用得最多的css描述可能就是float:left.有的时候我们需要在n栏的float div后面做一个统一的背景,譬如:  <br />
&lt;div id=”page”&gt;  <br />
&lt;div id=”left”&gt;&lt;/div&gt;  <br />
&lt;div id=”center”&gt;&lt;/div&gt;  <br />
&lt;div id=”right”&gt;&lt;/div&gt;   <br />
&lt;/div&gt;  <br />
比如我们要将page的背景设置成蓝色,以达到所有三栏的背景颜色是蓝色的目的,但是我们会发现随着left center right的向下拉长,而 page居然保存高度不变,问题来了,原因在于page不是float属性,而我们的page由于要居中,不能设置成float,所以我们应该这样解决   <br />
&lt;div id=”page”&gt;  <br />
&lt;div id=”bg” style=”float:left;width:100%”&gt;  <br />
&lt;div id=”left”&gt;&lt;/div&gt;  <br />
&lt;div id=”center”&gt;&lt;/div&gt;  <br />
&lt;div id=”right”&gt;&lt;/div&gt;  <br />
&lt;/div&gt;  <br />
&lt;/div&gt;  <br />
再嵌入一个float left而宽度是100%的DIV解决之  </span></p>
<p><span style="font-family: Arial;">④万能float 闭合(非常重要!)   <br />
关于 clear float 的原理可参见 [How To Clear Floats Without Structural Markup],将以下代码加入Global CSS 中,给需要闭合的div加上 即可,屡试不爽.   <br />
/* Clear Fix */   <br />
.clearfix:after { content:&#8221;.&#8221;; display:block; height:0; clear:both; visibility:hidden; }   <br />
.clearfix { display:inline-block; }   <br />
/* Hide from IE Mac */   <br />
.clearfix {display:block;}   <br />
/* End hide from IE Mac */   <br />
/* end of clearfix */   <br />
或者这样设置：<br />
.hackbox{ display:table; //将对象作为块元素级的表格显示}  </span></p>
<p><span style="font-family: Arial;">11.高度不适应   <br />
高度不适应是当内层对象的高度发生变化时外层高度不能自动进行调节，特别是当内层对象使用margin 或paddign 时。   <br />
例：  <br />
#box {background-color:#eee; }    <br />
#box p {margin-top: 20px;margin-bottom: 20px; text-align:center; }    <br />
&lt;div id=&#8221;box&#8221;&gt;    <br />
&lt;p&gt;p对象中的内容&lt;/p&gt;    <br />
&lt;/div&gt;    <br />
解决方法：在P对象上下各加2个空的div对象CSS代码：<br />
.1{height:0px;overflow:hidden;}或者为DIV加上border属性。</span></p>
<p><span style="font-family: Arial;">12 .IE6下为什么图片下有空隙产生<br />
解决这个BUG的方法也有很多,可以是改变html的排版,或者设置img 为display:block 或者设置vertical-align 属性为 vertical-align:top | bottom |middle |text-bottom 都可以解决.</span></p>
<p><span style="font-family: Arial;">13.如何对齐文本与文本输入框<br />
加上<br />
vertical-align:middle;<br />
&lt;style type=&#8221;text/css&#8221;&gt;<br />
&lt;!&#8211;<br />
input {     <br />
width:200px;     <br />
height:30px;     <br />
border:1px solid red;     <br />
vertical-align:middle; }<br />
&#8211;&gt;<br />
&lt;/style&gt;</span></p>
<p><span style="font-family: Arial;">14.web标准中定义id与class有什么区别吗<br />
一.web标准中是不容许重复ID的,比如 div id=&#8221;aa&#8221;   不容许重复2次,而class 定义的是类,理论上可以无限重复, 这样需要多次引用的定义便可以使用他.<br />
二.属性的优先级问题 ID 的优先级要高于class,看上面的例子<br />
三.方便JS等客户端脚本,如果在页面中要对某个对象进行脚本操作,那么可以给他定义一个ID,否则只能利用遍历页面元素加上指定特定属性来找到它,这是相对浪费时间资源,远远不如一个ID来得简单.</span></p>
<p><span style="font-family: Arial;">15. LI中内容超过长度后以省略号显示的方法<br />
此方法适用与IE与OP浏览器<br />
&lt;style type=&#8221;text/css&#8221;&gt;<br />
&lt;!&#8211; li {     <br />
width:200px;     <br />
</span><span style="font-family: Arial;">white-space:nowrap;     <br />
text-overflow:ellipsis;     <br />
-o-text-overflow:ellipsis;     <br />
overflow: hidden;     <br />
} &#8211;&gt;<br />
&lt;/style&gt;</span></p>
<p><span style="font-family: Arial;">16.为什么web标准中IE无法设置滚动条颜色了<br />
解决办法是将body换成html<br />
&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Strict//EN&#8221; &#8220;</span><a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" target="_blank"><span style="font-family: Arial;">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</span></a><span style="font-family: Arial;">&#8220;&gt;<br />
&lt;meta http-equiv=&#8221;Content-Type&#8221; content=&#8221;text/html; charset=gb2312&#8243; /&gt;<br />
&lt;style type=&#8221;text/css&#8221;&gt;<br />
&lt;!&#8211; html {     <br />
scrollbar-face-color:#f6f6f6;     <br />
scrollbar-highlight-color:#fff;     <br />
scrollbar-shadow-color:#eeeeee;     <br />
scrollbar-3dlight-color:#eeeeee;     <br />
scrollbar-arrow-color:#000;     <br />
scrollbar-track-color:#fff;     <br />
scrollbar-darkshadow-color:#fff;     <br />
} &#8211;&gt; &lt;/style&gt;</span></p>
<p><span style="font-family: Arial;">17.为什么无法定义1px左右高度的容器<br />
IE6下这个问题是因为默认的行高造成的,解决的方法也有很多,例如:overflow:hidden | zoom:0.08 | line-height:1px</span></p>
<p><span style="font-family: Arial;">18.怎么样才能让层显示在FLASH之上呢<br />
解决的办法是给FLASH设置透明 &lt;param name=&#8221;wmode&#8221; value=&#8221;transparent&#8221; /&gt;</span></p>
<p><span style="font-family: Arial;">19.怎样使一个层垂直居中于浏览器中<br />
这里我们使用百分比绝对定位,与外补丁负值的方法,负值的大小为其自身宽度高度除以二<br />
&lt;style type=&#8221;text/css&#8221;&gt;<br />
&lt;!&#8211; div {     <br />
</span><span style="font-family: Arial;"> position:absolute;     <br />
top:50%;     <br />
left:50%;     <br />
margin:-100px 0 0 -100px;     <br />
width:200px;     <br />
height:200px;     <br />
border:1px solid red;     <br />
} &#8211;&gt; &lt;/style&gt;   </span></p>
<p><span style="font-family: Arial;"><strong>FF与IE</strong>  </span></p>
<p><span style="font-family: Arial;">1. Div居中问题  <br />
div设置 margin-left, margin-right 为 auto 时已经居中，IE 不行，IE需要设定body居中，首先在父级元素定义text-algin: center;这个的意思就是在父级元素内的内容居中。   </span></p>
<p><span style="font-family: Arial;">2.链接(a标签)的边框与背景  <br />
a 链接加边框和背景色，需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为了避免底边显示错位, 若不设 height, 可以在 menubar 中插入一个空格。</span></p>
<p><span style="font-family: Arial;">3.超链接访问过后hover样式就不出现的问题<br />
被点击访问过的超链接样式不在具有hover和active了,很多人应该都遇到过这个问题,解决方法是改变CSS属性的排列顺序:<br />
L-V-H-A Code: &lt;style type=&#8221;text/css&#8221;&gt; &lt;!&#8211; a:link {} a:visited {} a:hover {} a:active {} &#8211;&gt; &lt;/style&gt;    </span></p>
<p><span style="font-family: Arial;">4. 游标手指cursor   <br />
cursor: pointer 可以同时在 IE FF 中显示游标手指状， hand 仅 IE 可以  </span></p>
<p><span style="font-family: Arial;">5.UL的padding与margin  <br />
ul标签在FF中默认是有padding值的,而在IE中只有margin默认有值,所以先定义 ul{margin:0;padding:0;}就能解决大部分问题   </span></p>
<p><span style="font-family: Arial;">6. FORM标签  <br />
这个标签在IE中,将会自动margin一些边距,而在FF中margin则是0,因此,如果想显示一致,所以最好在css中指定margin和 padding,针对上面两个问题,我的css中一般首先都使用这样的样式ul,form{margin:0;padding:0;}给定义死了,所以后面就不会为这个头疼了.  </span></p>
<p><span style="font-family: Arial;">7. BOX模型解释不一致问题  <br />
在FF和IE 中的BOX模型解释不一致导致相差2px<br />
解决方法：div{margin:30px!important;margin:28px;}<br />
注意这两个 margin的顺序一定不能写反， important这个属性IE不能识别，但别的浏览器可以识别。<br />
所以在IE下其实解释成这样：<br />
div {maring:30px;margin:28px}重复定义的话按照最后一个来执行，所以不可以只写margin:xx px!important;     #box{ width:600px; //for ie6.0- w\idth:500px; //for ff+ie6.0}    #box{ width:600px!important //for ff width:600px; //for ff+ie6.0 width /**/:500px; //for ie6.0-}  </span></p>
<p><span style="font-family: Arial;">8.属性选择器(这个不能算是兼容,是隐藏css的一个bug)   <br />
p[id]{}div[id]{}    这个对于IE6.0和IE6.0以下的版本都隐藏,FF和OPera作用.属性选择器和子选择器还是有区别的,子选择器的范围从形式来说缩小了,属性选择器的范围比较大,如p[id]中,所有p标签中有id的都是同样式的.  </span></p>
<p><span style="font-family: Arial;">9.最狠的手段 &#8211; !important;   <br />
如果实在没有办法解决一些细节问题,可以用这个方法.FF对于”!important”会自动优先解析,然而IE则会忽略.如下  <br />
.tabd1{    background:url(/res/images/up/tab1.gif) no-repeat 0px 0px !important; /*Style for FF*/    background:url(/res/images/up/tab1.gif) no-repeat 1px 0px; /* Style for IE */}  <br />
值得注意的是，一定要将xxxx !important 这句放置在另一句之上，上面已经提过   </span></p>
<p><span style="font-family: Arial;">10.IE,FF的默认值问题  <br />
或许你一直在抱怨为什么要专门为IE和FF写不同的CSS，为什么IE这样让人头疼，然后一边写css，一边咒骂那个可恶的M$ IE.其实对于css的标准支持方面，IE并没有我们想象的那么可恶，关键在于IE和FF的默认值不一样而已，掌握了这个技巧，你会发现写出兼容FF和IE的css并不是那么困难，或许对于简单的css，你完全可以不用”!important”这个东西了。   <br />
我们都知道，浏览器在显示网页的时候，都会根据网页的 css样式表来决定如何显示，但是我们在样式表中未必会将所有的元素都进行了具体的描述，当然也没有必要那么做，所以对于那些没有描述的属性，浏览器将采用内置默认的方式来进行显示，譬如文字，如果你没有在css中指定颜色，那么浏览器将采用黑色或者系统颜色来显示，div或者其他元素的背景，如果在 css中没有被指定，浏览器则将其设置为白色或者透明，等等其他未定义的样式均如此。所以有很多东西出现FF和IE显示不一样的根本原因在于它们的默认显示不一样，而这个默认样式该如何显示我知道在w3中有没有对应的标准来进行规定，因此对于这点也就别去怪罪IE了。</span></p>
<p><span style="font-family: Arial;">11.为什么FF下文本无法撑开容器的高度<br />
标准浏览器中固定高度值的容器是不会象IE6里那样被撑开的,那我又想固定高度,又想能被撑开需要怎样设置呢？办法就是去掉height设置min-height:200px;   这里为了照顾不认识min-height的IE6 可以这样定义: { height:auto!important; height:200px; min-height:200px; }</span></p>
<p><span style="font-family: Arial;">12.FireFox下如何使连续长字段自动换行<br />
众所周知IE中直接使用 word-wrap:break-word 就可以了, FF中我们使用JS插入&amp;#10;的方法来解决<br />
&lt;style type=&#8221;text/css&#8221;&gt; &lt;!&#8211; div {      width:300px;      word-wrap:break-word;      border:1px solid red; } &#8211;&gt; &lt;/style&gt; &lt;div id=&#8221;ff&#8221;&gt;aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&lt;/div&gt; &lt;scrīpt type=&#8221;text/javascrīpt&#8221;&gt; /* &lt;![CDATA[ */ function toBreakWord(el, intLen){      var ōbj=document.getElementById(el);      var strContent=obj.innerHTML;      var strTemp="";      while(strContent.length&gt;intLen){          strTemp+=strContent.substr(0,intLen)+"&amp;#10;";          strContent=strContent.substr(intLen,strContent.length);      }      strTemp+="&amp;#10;"+strContent;      obj.innerHTML=strTemp; } if(document.getElementById   &amp;&amp;   !document.all)   toBreakWord("ff", 37); /* ]]&gt; */ &lt;/scrīpt&gt;</span></p>
<p><span style="font-family: Arial;">13.为什么IE6下容器的宽度和FF解释不同呢<br />
&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;gb2312&#8243;?&gt;<br />
&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Strict//EN&#8221; &#8220;</span><a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" target="_blank"><span style="font-family: Arial;">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</span></a><span style="font-family: Arial;">&#8220;&gt;<br />
&lt;meta http-equiv=&#8221;Content-Type&#8221; content=&#8221;text/html; charset=gb2312&#8243; /&gt;<br />
&lt;style type=&#8221;text/css&#8221;&gt; &lt;!&#8211; div {      cursor:pointer;      width:200px;      height:200px;      border:10px solid red      } &#8211;&gt; &lt;/style&gt; &lt;div ōnclick=&#8221;alert(this.offsetWidth)&#8221;&gt;<br />
让FireFox与IE兼容&lt;/div&gt; 问题的差别在于容器的整体宽度有没有将边框（border）的宽度算在其内,这里IE6解释为200PX ,而FF则解释为220PX,那究竟是怎么导致的问题呢？大家把容器顶部的xml去掉就会发现原来问题出在这,顶部的申明触发了IE的qurks mode,关于qurks mode、 standards mode的相关知识,请参考:http: //www.microsoft.com/china/msdn/library/webservices/asp.net/ ASPNETusStan.mspx?mfr=true</span></p>
<p><span style="font-family: Arial;">IE6,IE7,FF   IE7.0 出来了，对CSS的支持又有新问题。浏览器多了，网页兼容性更差了，疲于奔命的还是我们 ，为解决IE7.0的兼容问题，找来了下面这篇文章： 现在我大部分都是用!important来hack，对于ie6和firefox测试可以正常显示，但是ie7对!important可以正确解释，会导致页面没按要求显示！下面是三个浏览器的兼容性收集.  </span></p>
<p><span style="font-family: Arial;">第一种，是CSS HACK的方法   <br />
height:20px; /*For Firefox*/    *height:25px; /*For IE7 &amp; IE6*/    _height:20px; /*For IE6*/    注意顺序。    这样也属于CSS HACK，不过没有上面这样简洁。    #example { color: #333; } /* Moz */    * html #example { color: #666; } /* IE6 */    *+html #example { color: #999; } /* IE7 */   </span></p>
<p><span style="font-family: Arial;">    &lt;!&#8211;其他浏览器 &#8211;&gt;    &lt;link rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; href=&#8221;css.css&#8221; /&gt;    &lt;!&#8211;[if IE 7]&gt;    &lt;!&#8211; 适合于IE7 &#8211;&gt;    &lt;link rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; href=&#8221;ie7.css&#8221; /&gt;    &lt;![endif]&#8211;&gt;    &lt;!&#8211;[if lte IE 6]&gt;    &lt;!&#8211; 适合于IE6及一下 &#8211;&gt;    &lt;link rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; href=&#8221;ie.css&#8221; /&gt;    &lt;![endif]&#8211;&gt;   </span></p>
<p><span style="font-family: Arial;">第三种，css filter的办法，以下为经典从国外网站翻译过来的。.   <br />
新建一个css样式如下：    #item {         width: 200px;         height: 200px;         background: red;    }     新建一个div,并使用前面定义的css的样式：    &lt;div id=&#8221;item&#8221;&gt;some text here&lt;/div&gt;     在body表现这里加入lang属性,中文为zh：    &lt;body lang=&#8221;en&#8221;&gt;     现在对div元素再定义一个样式：    *:lang(en) #item{         background:green !important;    }     这样做是为了用!important覆盖原来的css样式,由于:lang选择器ie7.0并不支持,所以对这句话不会有任何作用,于是也达到了ie6.0下同样的效果,但是很不幸地的是,safari同样不支持此属性,所以需要加入以下css样式：    #item:empty {         background: green !important    }     :empty选择器为css3的规范,尽管safari并不支持此规范,但是还是会选择此元素,不管是否此元素存在,现在绿色会现在在除ie各版本以外的浏览器上。    对IE6和FF的兼容可以考虑以前的!important 个人比较喜欢用</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ietester.net/index.php/archives/106.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>浏览器兼容手册</title>
		<link>http://www.ietester.net/index.php/archives/104.html</link>
		<comments>http://www.ietester.net/index.php/archives/104.html#comments</comments>
		<pubDate>Wed, 17 Mar 2010 08:46:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[浏览器兼容手册]]></category>

		<guid isPermaLink="false">http://www.ietester.net/?p=104</guid>
		<description><![CDATA[这是我总结多年的一个小文档，最近看见有人咨询浏览器兼容的问题，就贡献出来。
并不一定全，有的也可能不准确，比如新出的IE8、Chrome等都没有太多涉及，虽然最近做的一些项目也兼容了IE8、Chrome等，但都没来的及总结进去，后来就忘了&#8230;汗。大家一起慢慢完善吧。
javascript部分
1. document.form.item 问题
问题：
代码中存在 document.formName.item(&#8220;itemName&#8221;) 这样的语句，不能在FF下运行
解决方法：
改用 document.formName.elements["elementName"]
2. 集合类对象问题
问题：
代码中许多集合类对象取用时使用()，IE能接受，FF不能
解决方法：
改用 [] 作为下标运算，例：
document.getElementsByName(&#8220;inputName&#8221;)(1) 改为 document.getElementsByName(&#8220;inputName&#8221;)[1]
3. window.event
问题：
使用 window.event 无法在FF上运行
解决方法：
FF的 event 只能在事件发生的现场使用，此问题暂无法解决。可以把 event 传到函数里变通解决：
onMouseMove = &#8220;functionName(event)&#8221;
function functionName (e) {
    e = e &#124;&#124; window.event;
    &#8230;&#8230;
}
4. HTML对象的 id 作为对象名的问题
问题：
在IE中，HTML对象的 ID 可以作为 document 的下属对象变量名直接使用，在FF中不能
解决方法：
使用对象变量时全部用标准的 getElementById(&#8220;idName&#8221;)
5. 用 idName 字符串取得对象的问题
问题：
在IE中，利用 eval(&#8220;idName&#8221;) 可以取得 id 为 idName 的HTML对象，在FF中不能
解决方法：
用 getElementById(&#8220;idName&#8221;) 代替 eval(&#8220;idName&#8221;)
6. 变量名与某HTML对象 id 相同的问题
问题：
在FF中，因为对象 id [...]]]></description>
			<content:encoded><![CDATA[<p>这是我总结多年的一个小文档，最近看见有人咨询浏览器兼容的问题，就贡献出来。</p>
<p>并不一定全，有的也可能不准确，比如新出的IE8、Chrome等都没有太多涉及，虽然最近做的一些项目也兼容了IE8、Chrome等，但都没来的及总结进去，后来就忘了&#8230;汗。大家一起慢慢完善吧。</p>
<p><strong><span style="color: #000080;">javascript部分</span></strong></p>
<p><strong>1. document.form.item 问题</strong><br />
问题：<br />
代码中存在 document.formName.item(&#8220;itemName&#8221;) 这样的语句，不能在FF下运行<br />
解决方法：<br />
改用 document.formName.elements["elementName"]</p>
<p><strong>2. 集合类对象问题</strong><br />
问题：<br />
代码中许多集合类对象取用时使用()，IE能接受，FF不能<br />
解决方法：<br />
改用 [] 作为下标运算，例：<br />
document.getElementsByName(&#8220;inputName&#8221;)(1) 改为 document.getElementsByName(&#8220;inputName&#8221;)[1]</p>
<p><strong>3. window.event</strong><br />
问题：<br />
使用 window.event 无法在FF上运行<br />
解决方法：<br />
FF的 event 只能在事件发生的现场使用，此问题暂无法解决。可以把 event 传到函数里变通解决：<br />
onMouseMove = &#8220;functionName(event)&#8221;<br />
function functionName (e) {<br />
    e = e || window.event;<br />
    &#8230;&#8230;<br />
}</p>
<p><strong>4. HTML对象的 id 作为对象名的问题</strong><br />
问题：<br />
在IE中，HTML对象的 ID 可以作为 document 的下属对象变量名直接使用，在FF中不能<br />
解决方法：<br />
使用对象变量时全部用标准的 getElementById(&#8220;idName&#8221;)</p>
<p><strong>5. 用 idName 字符串取得对象的问题</strong><br />
问题：<br />
在IE中，利用 eval(&#8220;idName&#8221;) 可以取得 id 为 idName 的HTML对象，在FF中不能<br />
解决方法：<br />
用 getElementById(&#8220;idName&#8221;) 代替 eval(&#8220;idName&#8221;)</p>
<p><strong>6. 变量名与某HTML对象 id 相同的问题</strong><br />
问题：<br />
在FF中，因为对象 id 不作为HTML对象的名称，所以可以使用与HTML对象 id 相同的变量名，IE中不能<br />
解决方法：<br />
在声明变量时，一律加上 var ，以避免歧义，这样在IE中亦可正常运行<br />
最好不要取与HTML对象 id 相同的变量名，以减少错误</p>
<p><strong>7. event.x 与 event.y 问题</strong><br />
问题：<br />
在IE中，event 对象有x,y属性，FF中没有<br />
解决方法：<br />
在FF中，与 event.x 等效的是 event.pageX ，但event.pageX IE中没有<br />
故采用 event.clientX 代替 event.x ，在IE中也有这个变量<br />
event.clientX 与 event.pageX 有微妙的差别，就是滚动条<br />
要完全一样，可以这样：<br />
mX = event.x ? event.x : event.pageX;<br />
然后用 mX 代替 event.x</p>
<p><strong>8. 关于frame</strong><br />
问题：<br />
在IE中可以用 window.testFrame 取得该frame，FF中不行<br />
解决方法：<br />
window.top.document.getElementById(&#8220;testFrame&#8221;).src = &#8216;xx.htm&#8217;<br />
window.top.frameName.location = &#8216;xx.htm&#8217;</p>
<p><strong>9. 取得元素的属性</strong><br />
在FF中，自己定义的属性必须 getAttribute() 取得</p>
<p><strong>10. 在FF中没有 parentElement，parement.children 而用 parentNode，parentNode.childNodes</strong><br />
问题：<br />
childNodes 的下标的含义在IE和FF中不同，FF的 childNodes 中会插入空白文本节点<br />
解决方法：<br />
可以通过 node.getElementsByTagName() 来回避这个问题<br />
问题：<br />
当html中节点缺失时，IE和FF对 parentNode 的解释不同，例如：<br />
&lt;form&gt;<br />
&lt;table&gt;<br />
&lt;input/&gt;<br />
&lt;/table&gt;<br />
&lt;/form&gt;<br />
FF中 input.parentNode 的值为form，而IE中 input.parentNode 的值为空节点<br />
问题：<br />
FF中节点自己没有 removeNode 方法<br />
解决方法：<br />
必须使用如下方法 node.parentNode.removeChild(node)</p>
<p><strong>11. const 问题</strong><br />
问题：<br />
在IE中不能使用 const 关键字<br />
解决方法：<br />
以 var 代替</p>
<p><strong>12. body 对象</strong><br />
FF的 body 在 body 标签没有被浏览器完全读入之前就存在，而IE则必须在 body 完全被读入之后才存在<br />
这会产生在IE下，文档没有载入完时，在body上appendChild会出现空白页面的问题<br />
解决方法：<br />
一切在body上插入节点的动作，全部在onload后进行</p>
<p><strong>13. url encoding</strong><br />
问题：<br />
一般FF无法识别js中的&amp;<br />
解决方法：<br />
在js中如果书写url就直接写&amp;不要写&amp;</p>
<p><strong>14. nodeName 和 tagName 问题</strong><br />
问题：<br />
在FF中，所有节点均有 nodeName 值，但 textNode 没有 tagName 值，在IE中，nodeName 的使用有问题<br />
解决方法：<br />
使用 tagName，但应检测其是否为空</p>
<p><strong>15. 元素属性</strong><br />
IE下 input.type 属性为只读，但是FF下可以修改</p>
<p><strong>16. document.getElementsByName() 和 document.all[name] 的问题</strong><br />
问题：<br />
在IE中，getElementsByName()、document.all[name] 均不能用来取得 div 元素<br />
是否还有其它不能取的元素还不知道（这个问题还有争议，还在研究中）</p>
<p><strong>17. 调用子框架或者其它框架中的元素的问题</strong><br />
在IE中，可以用如下方法来取得子元素中的值<br />
document.getElementById(&#8220;frameName&#8221;).(document.)elementName<br />
window.frames["frameName"].elementName<br />
在FF中则需要改成如下形式来执行，与IE兼容：<br />
window.frames["frameName"].contentWindow.document.elementName<br />
window.frames["frameName"].document.elementName</p>
<p><strong>18. 对象宽高赋值问题</strong><br />
问题：<br />
FireFox中类似 obj.style.height = imgObj.height 的语句无效<br />
解决方法：<br />
统一使用 obj.style.height = imgObj.height + &#8220;px&#8221;;</p>
<p><strong>19. innerText的问题</strong><br />
问题：<br />
innerText 在IE中能正常工作，但是 innerText 在FireFox中却不行<br />
解决方法：<br />
在非IE浏览器中使用textContent代替innerText</p>
<p><strong>20. event.srcElement和event.toElement问题</strong><br />
问题：<br />
IE下，even对象有srcElement属性，但是没有target属性；Firefox下，even对象有target属性，但是没有srcElement属性<br />
解决方法：<br />
var source = e.target || e.srcElement;<br />
var target = e.relatedTarget || e.toElement;</p>
<p><strong>21. 禁止选取网页内容</strong><br />
问题：<br />
FF需要用CSS禁止，IE用JS禁止<br />
解决方法：<br />
IE: obj.onselectstart = function() {return false;}<br />
FF: -moz-user-select:none;</p>
<p><strong>22. 捕获事件</strong><br />
问题：<br />
FF没有setCapture()、releaseCapture()方法<br />
解决方法：<br />
IE:<br />
obj.setCapture();<br />
obj.releaseCapture();<br />
FF:<br />
window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);<br />
window.releaseEvents(Event.MOUSEMOVE|Event.MOUSEUP);<br />
if (!window.captureEvents) {<br />
       o.setCapture();<br />
}else {<br />
       window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);<br />
}<br />
if (!window.captureEvents) {<br />
       o.releaseCapture();<br />
}else {<br />
       window.releaseEvents(Event.MOUSEMOVE|Event.MOUSEUP);<br />
}</p>
<p><strong><span style="color: #000080;">CSS部分</span></strong></p>
<p><strong>div类</strong></p>
<p><strong>1. 居中问题</strong><br />
div里的内容，IE默认为居中，而FF默认为左对齐<br />
可以尝试增加代码margin:auto</p>
<p><strong>2. 高度问题</strong><br />
两上下排列或嵌套的div，上面的div设置高度(height)，如果div里的实际内容大于所设高度，在FF中会出现两个div重叠的现象；但在IE中，下面的div会自动给上面的div让出空间<br />
所以为避免出现层的重叠，高度一定要控制恰当，或者干脆不写高度，让他自动调节，比较好的方法是 height:100%;<br />
但当这个div里面一级的元素都float了的时候，则需要在div块的最后，闭和前加一个沉底的空div，对应CSS是：<br />
.float_bottom {clear:both;height:0px;font-size:0px;padding:0;margin:0;border:0;line-height:0px;overflow:hidden;}</p>
<p><strong>3. clear:both;</strong><br />
不想受到float浮动的，就在div中写入clear:both;</p>
<p><strong>4. IE浮动 margin 产生的双倍距离</strong><br />
#box {<br />
float:left;<br />
width:100px;<br />
margin:0 0 0 100px; //这种情况之下IE会产生200px的距离<br />
display:inline; //使浮动忽略<br />
}</p>
<p><strong>5. padding 问题</strong><br />
FF设置 padding 后，div会增加 height 和 width，但IE不会 （* 标准的 XHTML1.0 定义 dtd 好像一致了）<br />
高度控制恰当，或尝试使用 height:100%;<br />
宽度减少使用 padding<br />
但根据实际经验，一般FF和IE的 padding 不会有太大区别，div 的实际宽 = width + padding ，所以div写全 width 和 padding，width 用实际想要的宽减去 padding 定义</p>
<p><strong>6. div嵌套时 y 轴上 padding 和 marign 的问题</strong><br />
FF里 y 轴上 子div 到 父div 的距离为 父padding + 子marign<br />
IE里 y 轴上 子div 到 父div 的距离为 父padding 和 子marign 里大的一个<br />
FF里 y 轴上 父padding=0 且 border=0 时，子div 到 父div 的距离为0，子marign 作用到 父div 外面</p>
<p><strong>7. padding，marign，height，width 的傻瓜式解决技巧</strong><br />
注意是技巧，不是方法：<br />
写好标准头<br />
&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&gt;<br />
&lt;html xmlns=&#8221;http://www.w3.org/1999/xhtml&#8221;&gt;<br />
高尽量用padding，慎用margin，height尽量补上100%，父级height有定值子级height不用100%，子级全为浮动时底部补个空clear:both的div<br />
宽尽量用margin，慎用padding，width算准实际要的减去padding</p>
<p><strong>列表类</strong></p>
<p><strong>1. ul 标签在FF中默认是有 padding 值的，而在IE中只有margin有值</strong><br />
先定义 ul {margin:0;padding:0;}</p>
<p><strong>2. ul和ol列表缩进问题</strong><br />
消除ul、ol等列表的缩进时，样式应写成: {list-style:none;margin:0px;padding:0px;}</p>
<p><strong>显示类</strong></p>
<p><strong>1. display:block,inline 两个元素</strong><br />
display:block; //可以为内嵌元素模拟为块元素<br />
display:inline; //实现同一行排列的的效果<br />
display:table; //for FF,模拟table的效果<br />
display:block 块元素，元素的特点是：<br />
总是在新行上开始；<br />
高度，行高以及顶和底边距都可控制；<br />
宽度缺省是它的容器的100%，除非设定一个宽度<br />
&lt;div&gt;，&lt;p&gt;，&lt;h1&gt;，&lt;form&gt;，&lt;ul&gt; 和 &lt;li&gt; 是块元素的例子<br />
display:inline 就是将元素显示为行内元素，元素的特点是：<br />
和其他元素都在一行上；<br />
高，行高及顶和底边距不可改变；<br />
宽度就是它的文字或图片的宽度，不可改变。<br />
&lt;span&gt;，&lt;a&gt;，&lt;label&gt;，&lt;input&gt;，&lt;img&gt;，&lt;strong&gt; 和 &lt;em&gt; 是 inline 元素的例子</p>
<p><strong>2. 鼠标手指状显示</strong><br />
全部用标准的写法 cursor: pointer;</p>
<p><strong>背景、图片类</strong></p>
<p><strong>1. background 显示问题</strong><br />
全部注意补齐 width，height 属性</p>
<p><strong>2. 背景透明问题</strong><br />
IE: filter: progid: DXImageTransform.Microsoft.Alpha(style=0,opacity=60);<br />
IE: filter: alpha(opacity=10);<br />
FF: opacity:0.6;<br />
FF: -moz-opacity:0.10;<br />
最好两个都写，并将opacity属性放在下面</p>
<p>转自blueidea的zaku同学</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ietester.net/index.php/archives/104.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何编写兼容各主流邮箱的HTML邮件</title>
		<link>http://www.ietester.net/index.php/archives/99.html</link>
		<comments>http://www.ietester.net/index.php/archives/99.html#comments</comments>
		<pubDate>Wed, 17 Mar 2010 08:41:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.ietester.net/?p=99</guid>
		<description><![CDATA[几乎每个会员制网站都需要通过后台发送邮件来与会员进行沟通，如注册确认、营销推广。这些由站方发给会员的信件，往往纯文本格式已不能满足界面和交互的要求，这时候我们就需要发送HTML页面。由于HTML邮件不是独立的HOST在本站的页面，是寄人篱下的。所以编写HTML邮件与编写HTML页面有很大的不同。因为，各面向网民的主流邮箱都或多或少的会对它们接收到的HTML邮件在后台进行过滤。毫无疑问，JS代码是被严格过滤掉的，包括所有的事件监听属性，如onclick、onmouseover，这是基于邮件安全性的考虑。不仅如此，CSS代码也会被部分过滤。本人要讲的就是如何编写不被各大主流邮箱过滤的，能正常显示的HTML邮件。
首先，我们先来看看邮箱是如何展现HTML邮件的。我本人没有做过邮件系统，况且各大邮箱后台的过滤算法也不是那么容易可以让外人知道的。所以，我们只能通过前端展现，来推测哪些是被邮箱接受的写法，而哪些又是会被过滤掉的。通过对gmail、hotmail、163、sohu、sina几个邮箱的分析，我把邮箱分为两类：
第一类包括gmail、hotmail、sohu，这类邮箱，邮件内容是被布局在整个邮箱页面中的某个div中。如图：

第二类，包括163、sina，这类邮箱，邮件内容被布局在独立的iframe中。如图：

熟悉HTML的朋友都知道，iframe内容是作为独立的document，与父页面的元素和CSS是互不相干的，几乎可以作为一个独立的页面来对待。而如果如果邮件内容是在div中，那么邮件内容是作为整个邮箱页面的一个组成部分。显然，以iframe作为展现方式的邮箱，对邮件内容就会宽容许多，因为它给了你一个足够独立的表现空间。而div就不是那么客气了。试想一下，如果你在你的邮件里写上这么一句CSS，是不是整个邮箱的展现页面上字体都变成20px而因此乱了套：
&#60;style type=”text/css”&#62;
body {font-size:20px}
&#60;/style&#62;
我们需要写兼容各邮箱的统一邮件模板，那么必然就要避开以上这种外联CSS写法，另外类似于float、position等成非正常内容流的style也会被过滤，假如你写了，很可能会影响到外部邮箱的表现。
下面我列出一些编写原则：
1、全局规则之一，不要写&#60;style&#62;标签、不要写class，所有CSS都用style属性，什么元素需要什么样式就用style写内联的CSS。
2、全局规则之二，少用图片，邮箱不会过滤你的img标签，但是系统往往会默认不载入陌生来信的图片，如果用了很多图片的邮件，在片没有载入的情况下，丑陋无比甚至看不清内容，没耐心的用户直接就删除了。图片上务必加上alt。
3、不要在style里面写float、position这些style，因为会被过滤。那么如何实现左右布局或者更复杂的布局呢？用table。
4、style内容里面background可以设置color，但是img会被过滤，就是说不能通过CSS来设置背景图片了。但是有一个很有意思的元素属性，也叫background，里面可以定义一个图片路径，这是个不错的替代方案，虽然这样功能有限，比如无法定位背景图片了，有总比没有好。例如要给一个单元格加一个背景，必须这样写：
&#60;td background=”http://image1.koubei.com/images/common/logo_koubei.gif”&#62;&#60;/td&#62;
5、div模式的邮箱不支持flash，iframe模式的有待验证。
最后提一句，sohu的邮箱很怪异，会在每个文本段后面加一个空格，导致原本正常的排版一行放不下而换行，从而使某些布局错乱。所以，如果你要兼容sohu邮箱的话，遇到一些紧凑的布局就要格外小心了，尽量减少文本段的数量，留足宽度。
]]></description>
			<content:encoded><![CDATA[<p>几乎每个会员制网站都需要通过后台发送邮件来与会员进行沟通，如注册确认、营销推广。这些由站方发给会员的信件，往往纯文本格式已不能满足界面和交互的要求，这时候我们就需要发送HTML页面。由于HTML邮件不是独立的HOST在本站的页面，是寄人篱下的。所以编写HTML邮件与编写HTML页面有很大的不同。因为，各面向网民的主流邮箱都或多或少的会对它们接收到的HTML邮件在后台进行过滤。毫无疑问，JS代码是被严格过滤掉的，包括所有的事件监听属性，如onclick、onmouseover，这是基于邮件安全性的考虑。不仅如此，CSS代码也会被部分过滤。本人要讲的就是如何编写不被各大主流邮箱过滤的，能正常显示的HTML邮件。</p>
<p>首先，我们先来看看邮箱是如何展现HTML邮件的。我本人没有做过邮件系统，况且各大邮箱后台的过滤算法也不是那么容易可以让外人知道的。所以，我们只能通过前端展现，来推测哪些是被邮箱接受的写法，而哪些又是会被过滤掉的。通过对gmail、hotmail、163、sohu、sina几个邮箱的分析，我把邮箱分为两类：<br />
第一类包括gmail、hotmail、sohu，这类邮箱，邮件内容是被布局在整个邮箱页面中的某个div中。如图：</p>
<p><a href="http://www.ietester.net/wp-content/uploads/2010/03/1.jpg"><img class="alignnone size-full wp-image-100" title="1" src="http://www.ietester.net/wp-content/uploads/2010/03/1.jpg" alt="" width="600" height="530" /></a><br />
第二类，包括163、sina，这类邮箱，邮件内容被布局在独立的iframe中。如图：</p>
<p><a href="http://www.ietester.net/wp-content/uploads/2010/03/2.jpg"><img class="alignnone size-full wp-image-101" title="2" src="http://www.ietester.net/wp-content/uploads/2010/03/2.jpg" alt="" width="600" height="502" /></a><br />
熟悉HTML的朋友都知道，iframe内容是作为独立的document，与父页面的元素和CSS是互不相干的，几乎可以作为一个独立的页面来对待。而如果如果邮件内容是在div中，那么邮件内容是作为整个邮箱页面的一个组成部分。显然，以iframe作为展现方式的邮箱，对邮件内容就会宽容许多，因为它给了你一个足够独立的表现空间。而div就不是那么客气了。试想一下，如果你在你的邮件里写上这么一句CSS，是不是整个邮箱的展现页面上字体都变成20px而因此乱了套：<br />
&lt;style type=”text/css”&gt;<br />
body {font-size:20px}<br />
&lt;/style&gt;<br />
我们需要写兼容各邮箱的统一邮件模板，那么必然就要避开以上这种外联CSS写法，另外类似于float、position等成非正常内容流的style也会被过滤，假如你写了，很可能会影响到外部邮箱的表现。</p>
<p>下面我列出一些编写原则：<br />
1、全局规则之一，不要写&lt;style&gt;标签、不要写class，所有CSS都用style属性，什么元素需要什么样式就用style写内联的CSS。<br />
2、全局规则之二，少用图片，邮箱不会过滤你的img标签，但是系统往往会默认不载入陌生来信的图片，如果用了很多图片的邮件，在片没有载入的情况下，丑陋无比甚至看不清内容，没耐心的用户直接就删除了。图片上务必加上alt。<br />
3、不要在style里面写float、position这些style，因为会被过滤。那么如何实现左右布局或者更复杂的布局呢？用table。<br />
4、style内容里面background可以设置color，但是img会被过滤，就是说不能通过CSS来设置背景图片了。但是有一个很有意思的元素属性，也叫background，里面可以定义一个图片路径，这是个不错的替代方案，虽然这样功能有限，比如无法定位背景图片了，有总比没有好。例如要给一个单元格加一个背景，必须这样写：<br />
&lt;td background=”http://image1.koubei.com/images/common/logo_koubei.gif”&gt;&lt;/td&gt;<br />
5、div模式的邮箱不支持flash，iframe模式的有待验证。</p>
<p>最后提一句，sohu的邮箱很怪异，会在每个文本段后面加一个空格，导致原本正常的排版一行放不下而换行，从而使某些布局错乱。所以，如果你要兼容sohu邮箱的话，遇到一些紧凑的布局就要格外小心了，尽量减少文本段的数量，留足宽度。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ietester.net/index.php/archives/99.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

