<?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>Orite Blog</title>
	<atom:link href="http://blog.orite.com.au/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.orite.com.au</link>
	<description>Think Work Learn Share</description>
	<lastBuildDate>Fri, 24 Jul 2009 00:08:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>FREE Instant Email Standard Test Tool</title>
		<link>http://blog.orite.com.au/web_development/2009-07-08/free-instant-email-standard-testing-tool/</link>
		<comments>http://blog.orite.com.au/web_development/2009-07-08/free-instant-email-standard-testing-tool/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 12:46:57 +0000</pubDate>
		<dc:creator>Frank Liu</dc:creator>
				<category><![CDATA[Open Source Releases]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://blog.orite.com.au/?p=117</guid>
		<description><![CDATA[Orite has created an online tool to emulate HTML/CSS rendering capacity of various Email clients. It references the Email CSS support Guide from Campaign Monitor, and utilizing the email-standards.org Email ACID test page as the example. You may paste in your own email template to test in.
Please note, this tool only provides a brief demonstration, [...]]]></description>
			<content:encoded><![CDATA[<p>Orite has created an online tool to emulate HTML/CSS rendering capacity of various Email clients. It references the <a href="http://www.campaignmonitor.com/css/" target="_blank">Email CSS support Guide</a> from Campaign Monitor, and utilizing the <a href="http://www.email-standards.org/acid-test/" target="_blank">email-standards.org Email ACID test</a> page as the example. You may paste in your own email template to test in.</p>
<p>Please note, this tool only provides a brief demonstration, by no means to be the exact reflection of how email clients show emails. Please remember this tool highly relies on the browsers capability as well, so be sure to use a standard compliant browsers. For more solid tests please try <a href="http://litmusapp.com/email-testing" target="_blank">Litmus Email Testing</a> or the <a href="http://www.campaignmonitor.com/testing/" target="_blank">Campaign Monitor Email Testing tool</a>. If you want to convert any external CSS to inline style, <a href="http://inlinestyler.torchboxapps.com/" target="_blank">Inline Styler</a> and <a href="http://www.pelagodesign.com/sidecar/emogrifier/" target="_blank">Emogrifier</a> may come to help. Here goes the FREE tool, post your comments.</p>
<style type="text/css">
#mbody h2{
	font-size: 16px;
	padding: 2px;
	margin: 0;
}
#mbody div{
	margin-bottom:10px;
	text-align: left;
}
#mbody label{
	margin-right: 5px;
	white-space: nowrap;
	cursor: pointer;
	line-height: 20px;
	padding: 2px;
}
#mbody label.hi{
	font-weight: bold;
	background-color: #ffc;
	color: #f60;
}
#mbody input[type=button]{
	padding: 3px;
}
#mbody .show_input{
	display: none;
}
#mbody .longbox{
	width:650px;
	height:800px;
	border: 1px solid #ccc;
}
</style>

<div id="mbody">
<div style="border: 1px solid #f60; padding: 10px; background-color: #d7d7ff;">
<h2>Email Client:</h2>
<div id="email_clients"></div>
<h2 style="float:left;padding-right:10px;">Images:</h2>
<div>
  <label class="hi"><input type="radio" name="show_image" id="show_image" value="1" checked="checked" />Show</label>
  <label><input type="radio" name="show_image" id="hide_image" value="0" />Hide</label>
</div>
</div>
<div style="clear:both"><input type="button" class="show_email" id="input_email_btn" value="View/Change Source" /><input type="button" id="load_email_btn" class="show_input" value="Test Again" /></div>
<iframe id="email" class="show_email longbox" name="email"></iframe>
<textarea id="email_acid" name="email_acid" class="show_input longbox">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="en-us" />
<style type="text/css" media="screen">
	
	/* common
	--------------------------------------------------*/
	
	body {
		margin: 0px;
		padding: 0px;
		color: #fff;
		background: #930;
	}
	#BodyImposter {
		color: #fff;
		background: #930 url("http://www.email-standards.org/acid/img/bgBody.gif") repeat-x;
		background-color: #930;
		font-family: Arial, Helvetica, sans-serif;
		width: 100%;
		margin: 0px;
		padding: 0px;
		text-align: center;
	}
	#BodyImposter dt {
		font-size: 14px;
		line-height: 1.5em;
		font-weight: bold;
	}
	#BodyImposter dd,
	#BodyImposter li,
	#BodyImposter p,
	#WidthHeight span {
		font-size: 12px;
		line-height: 1.5em;
	}
	#BodyImposter dd,
	#BodyImposter dt {
		margin: 0px;
		padding: 0px;
	}
	#BodyImposter dl,
	#BodyImposter ol,
	#BodyImposter p,
	#BodyImposter ul {
		margin: 0px 0px 4px 0px;
		padding: 10px;
		color: #fff;
		background: #ad5c33;
	}
	#BodyImposter small {
		font-size: 11px;
		font-style: italic;
	}
	#BodyImposter ol li {
		margin: 0px 0px 0px 20px;
		padding: 0px;
	}
	#BodyImposter ul#BulletBg li {
		background: url("http://www.email-standards.org/acid/img/bullet.gif") no-repeat 0em 0.2em;
		padding: 0px 0px 0px 20px;
		margin: 0px;
		list-style: none;
	}
	#BodyImposter ul#BulletListStyle li {
		margin: 0px 0px 0px 22px;
		padding: 0px;
		list-style: url("http://www.email-standards.org/acid/img/bullet.gif");
	}
	
	/* links
	--------------------------------------------------*/
	
	#BodyImposter a {
		text-decoration: underline;
	}
	#BodyImposter a:link,
	#BodyImposter a:visited {
		color: #dfb8a4;
		background: #ad5c33;
	}
	#ButtonBorders a:link,
	#ButtonBorders a:visited {
		color: #fff;
		background: #892e00;
	}
	#BodyImposter a:hover {
		text-decoration: none;
	}
	#BodyImposter a:active {
		color: #000;
		background: #ad5c33;
		text-decoration: none;
	}
	
	/* heads
	--------------------------------------------------*/
	
	#BodyImposter h1,
	#BodyImposter h2,
	#BodyImposter h3 {
		color: #fff;
		background: #ad5c33;
		font-weight: bold;
		line-height: 1em;
		margin: 0px 0px 4px 0px;
		padding: 10px;
	}
	#BodyImposter h1 {
		font-size: 34px;
	}
	#BodyImposter h2 {
		font-size: 22px;
	}
	#BodyImposter h3 {
		font-size: 16px;
	}
	#BodyImposter h1:hover,
	#BodyImposter h2:hover,
	#BodyImposter h3:hover,
	#BodyImposter dl:hover,
	#BodyImposter ol:hover,
	#BodyImposter p:hover,
	#BodyImposter ul:hover {
		color: #fff;
		background: #892e00;
	}
	
	/* boxes
	--------------------------------------------------*/
	
	#Box {
		width: 470px;
		margin: 0px auto;
		padding: 40px 20px;
		text-align: left;
	}
	p#ButtonBorders {
		clear: both;
		color: #fff;
		background: #892e00;
		border-top: 10px solid #ad5c33;
		border-right: 1px dotted #ad5c33;
		border-bottom: 1px dashed #ad5c33;
		border-left: 1px dotted #ad5c33;
	}
	p#ButtonBorders a#Arrow {
		padding-right: 20px;
		background: url("http://www.email-standards.org/acid/img/arrow.gif") no-repeat right 2px;
	}
	p#ButtonBorders a {
		color: #fff;
		background-color: #892e00;
	}
	p#ButtonBorders a#Arrow:hover {
		background-position: right -38px;
	}
	#Floater {
		width: 470px;
	}
	#Floater #Left {
		float: left;
		width: 279px;
		height: 280px;
		color: #fff;
		background: #892e00;
		margin-bottom: 4px;
	}
	#Floater #Right {
		float: right;
		width: 187px;
		height: 280px;
		color: #fff;
		background: #892e00 url("http://www.email-standards.org/acid/img/ornament.gif") no-repeat right bottom;
		margin-bottom: 4px;
	}
	#Floater #Right p {
		color: #fff;
		background: transparent;
	}
	#FontInheritance {
		font-family: Georgia, Times, serif;
	}
	#MarginPaddingOut {
		padding: 20px;
	}
	#MarginPaddingOut #MarginPaddingIn {
		padding: 15px;
		color: #fff;
		background: #ad5c33;
	}
	#MarginPaddingOut #MarginPaddingIn img {
		background: url("http://www.email-standards.org/acid/img/bgPhoto.gif") no-repeat;
		padding: 15px;
	}
	span#SerifFont {
		font-family: Georgia, Times, serif;
	}
	p#QuotedFontFamily {
		font-family: "Trebuchet MS", serif;
	}
	#WidthHeight {
		width: 470px;
		height: 200px;
		color: #fff;
		background: #892e00;
	}
	#WidthHeight span {
		display: block;
		padding: 10px;
	}
	
</style>
</head>

<body>
<div id="BodyImposter">
	<div id="Box">
		<div id="FontInheritance">
			<h1>H1 headline (34px/1em)</h1>
			<h2>H2 headline (22px/1em)</h2>
			<h3>H3 headline (16px/1em)</h3>
		</div>
		<p>Paragraph (12px/1.5em) Lorem ipsum dolor sit amet, <a href="http://www.email-standards.org/" target="_blank">consectetuer adipiscing</a> elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. <span id="SerifFont">(This is a serif font inside of a paragraph styled with a sans-serif font.)</span> <small>(This is <code>small</code> text.)</small></p>
		<p id="QuotedFontFamily">This is a font (Trebuchet MS) which needs quotes because its label comprises two words.</p>
		<ul id="BulletBg">
			<li>background bullet eum iriure dolor in hendrerit in</li>
			<li>vulputate velit esse molestie consequat, vel illum dolore eu</li>
			<li>feugiat nulla facilisis at vero eros et accumsan et iusto odio</li>
		</ul>
		<ul id="BulletListStyle">
			<li>list-style bullet eum iriure dolor in hendrerit in</li>
			<li>vulputate velit esse molestie consequat, vel illum dolore eu</li>
			<li>feugiat nulla facilisis at vero eros et accumsan et iusto odio</li>
		</ul>
		<ol>
			<li>ordered list sit amet, consectetuer adipiscing elit</li>
			<li>sed diam nonummy nibh euismod tincidunt ut laoreet</li>

			<li>dolore magna aliquam erat volutpat. Ut wisi enim ad minim</li>
		</ol>
		<dl>
			<dt>Definition list</dt>
			<dd>lorem ipsum dolor sit amet, consectetuer adipiscing elit</dd>
			<dd>sed diam nonummy nibh euismod tincidunt ut laoreet</dd>
			<dd>dolore magna aliquam erat volutpat. Ut wisi enim ad minim</dd>
		</dl>
		<div id="Floater">
			<div id="Left">
				<div id="MarginPaddingOut">
					<div id="MarginPaddingIn">
						<img src="http://www.email-standards.org/acid/img/photo.jpg" width="180" height="180" alt="[photo: root canal]" />
					</div>
				</div>
			</div>
			<div id="Right">
				<p>Right float with a positioned background</p>
			</div>
		</div>
		<p id="ButtonBorders"><a href="http://www.email-standards.org/" target="_blank" id="Arrow">Borders and an a:hover background image</a></p>
		<div id="WidthHeight">
			<span>Width = 470, height = 200</span>
		</div>
	</div>
</div>
</body>
</html>
</textarea>
<p><i>Currently tested under FF3/3.5, Safari4, Chrome2/3, IE7/8, Opera9.6</i></p>
</div>
<script type="text/javascript" src="http://blog.orite.com.au/email_test.min.js"></script>


]]></content:encoded>
			<wfw:commentRss>http://blog.orite.com.au/web_development/2009-07-08/free-instant-email-standard-testing-tool/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>jQuery IE detection issue workaround</title>
		<link>http://blog.orite.com.au/web_development/2009-06-30/jquery-ie-detection-issue-workaround/</link>
		<comments>http://blog.orite.com.au/web_development/2009-06-30/jquery-ie-detection-issue-workaround/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 02:00:34 +0000</pubDate>
		<dc:creator>Frank Liu</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[IE7]]></category>
		<category><![CDATA[IE8]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://blog.orite.com.au/?p=110</guid>
		<description><![CDATA[We recently discovered an issue with jQuery.browser.version detection, it reports wrong Internet Explorer versions on some corrupted IE userAgent strings. A corrupted IE8 userAgent string may look like,


Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; WOW64; Trident/4.0; GTB6; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR [...]]]></description>
			<content:encoded><![CDATA[<p>We recently discovered an issue with <a href="http://docs.jquery.com/Utilities/jQuery.browser.version">jQuery.browser.version</a> detection, it reports wrong Internet Explorer versions on some corrupted <a href="http://msdn.microsoft.com/en-us/library/ms537503%28VS.85%29.aspx">IE userAgent strings</a>. A corrupted IE8 userAgent string may look like,</p>

<p style="font-size:10px">
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; WOW64; Trident/4.0; GTB6; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30618; .NET CLR 1.1.4322; InfoPath.2)
</p>

<p>In this case jQuery.browser.version will report browser version 6.0 instead of 8.0, this will result some jQuery plugins to show a 'not implemented' error in IE8. So far we know <a href="http://dev.iceburg.net/jquery/jqModal/">jqModal</a> and <a href="http://fancy.klade.lv/">FancyBox</a> are affected. Because they rely on jQuery.browser.version to detect IE6, and run some IE6 specific codes, which caused IE8 to fail, another sad story from MS.</p>

<p>Although we believe it's not the problem with jQuery or IE (Microsoft) alone, the best fix will be patching the plugins to detect IE6. i.e. to detect IE6 properly with jQuery, you will need the following code, which has an extra check by using window.XMLHttpRequest.</p>


<div class="wp_codebox_msgheader"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p110code2'); return false;">View Code</a> JS</span><div class="codebox_clear"></div></div><div class="wp_codebox" id="p1102"><div class="line_numbers"><pre>1

</pre></div><div class="code" id="p110code2"><pre class="js" style="font-family:monospace;">ie6=$.browser.msie&amp;&amp;($.browser.version == &quot;6.0&quot;)&amp;&amp;!window.XMLHttpRequest;</pre></div></div>




<p>If you curious about how userAgnet string got corrupted, we don't have much clue about it, some say it's due to an earlier release of IE8 (however as we aware, some IE7 has got the same issue), but in our office 3 out of 10 PCs has got the corrupted string. To fix it, you need to look for the following registry keys,</p>
<pre style="font-size:10px">
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent\Post Platform
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\User Agent\Post Platform
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent\Post Platform
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\User Agent\Post Platform
</pre>

<p>Or if you want to do more then just differentiate IEs, you may find a good <a href="http://www.quirksmode.org/js/detect.html">browser detection Javascript here</a>.</p>

<p>Some side note, you might notice jQuery has marked jQuery.browser deprecated since 1.3 in the favour of jQuery.support. We understand why jQuery would want to take this approach, and it's a good step forward. However jQuery.support would only be good if it tells all the feature differences among browsers, rendering engines, and standard modes. As web develops we don't learn the differences first then start developing a site, we only come across the differences and try to figure out what feature difference cause the different final result will be really time consuming. Until the time all the browsers come to the same standard and feature set, patching and hacking may be the only way for web developers, no one-stop solution would be available at any moment before that epoch. May God blessing all the web developers please.</p>

]]></content:encoded>
			<wfw:commentRss>http://blog.orite.com.au/web_development/2009-06-30/jquery-ie-detection-issue-workaround/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Yii Framework controller and view path convention</title>
		<link>http://blog.orite.com.au/web_development/2009-05-13/yii-framework-controller-and-view-path-convention/</link>
		<comments>http://blog.orite.com.au/web_development/2009-05-13/yii-framework-controller-and-view-path-convention/#comments</comments>
		<pubDate>Wed, 13 May 2009 11:06:56 +0000</pubDate>
		<dc:creator>Frank Liu</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[PHP Framework]]></category>
		<category><![CDATA[Yii Framework]]></category>

		<guid isPermaLink="false">http://blog.orite.com.au/?p=152</guid>
		<description><![CDATA[Yii Framework has just upgraded to 1.0.5, really glad  that Qiang could keep up the momentum to release an update every month. We strongly believe with this level of activity, this open source project will soon becoming the most popular and comprehensive PHP framework. However the only problem this brings is the question "To [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.yiiframework.com/" target="_blank">Yii Framework</a> has just upgraded to 1.0.5, really glad  that <a href="http://code.google.com/u/qiang.xue/">Qiang </a>could keep up the momentum to release an update every month. We strongly believe with this level of activity, this open source project will soon becoming the most popular and comprehensive PHP framework. However the only problem this brings is the question "To upgrade or NOT to upgrade?". For a real life project, it's bit hard to keep up with the monthly upgrade, especially when things are constantly changing and improving. Some upgrade really brings the benefit of stability and versatility to the framework, but there are bad times...</p>

<p>Yesterday as usual, we have upgraded our Yii version to 1.0.5, and one of the project we are working on suddenly stopped working almost completely. That was because of a little change in the view path naming convention. To read more about the issue please refer to <a href="http://code.google.com/p/yii/issues/detail?id=307">Issue 307</a>.</p>

<p>To avoid this, please keep this naming convention in mind:<br/>
<ul>
	<li>Name controller ID in lowercase only with the very first letter/word capitalized.</li>
	<li>If a controller ID has multiple words try to separate them using underscore '_' or hyphen '-' to concatenate them, NOT capitalize any following words</li>
	<li>All view path/directory should be all in lowercase and with underscore '_' or hyphen '-' for concatenation.</li>
</ul>
This directory naming convention should prevent any problem on both Windows or *nix platform.</p>

<p>The only last thing we didn't really agree with Qiang is that a controller would only be accessible by only one URL, not both capitalized or lowercased word(s), simply because an URL should be unified and universal. We would like to leave this discussion to all the Yii enthusiast.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.orite.com.au/web_development/2009-05-13/yii-framework-controller-and-view-path-convention/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS Implementation Chart for IE6,IE7 and IE8</title>
		<link>http://blog.orite.com.au/web_development/2009-04-09/css-implementation-chart-ie6-ie7-ie8/</link>
		<comments>http://blog.orite.com.au/web_development/2009-04-09/css-implementation-chart-ie6-ie7-ie8/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 09:00:31 +0000</pubDate>
		<dc:creator>Frank Liu</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Comparison]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Internet Explorer]]></category>

		<guid isPermaLink="false">http://blog.orite.com.au/?p=80</guid>
		<description><![CDATA[
#ie_css h2{
	margin:0;
	margin-top: 30px;
}
#ie_css table{
	border-collapse: collapse;
}
#ie_css thead th{
	border: none;
	border-bottom: 1px #666 solid;
}
#ie_css tbody tr:hover{
	background-color: #D7D7FF;
}
#ie_css tbody td{
	border: none;
	padding: 2px;
}
#ie_css .csstag{
	font-size: 14px;
}
#ie_css .imp_no{
	text-align:center;
	background-color:#FCC;
	opacity: 0.8;
	filter: alpha(opacity=80);
	-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";
}
#ie_css .imp_yes{
	text-align:center;
	background-color:#CFF;
	opacity: 0.8;
	filter: alpha(opacity=80);
	-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";
}
#ie_css .imp_partial{
	text-align:center;
	background-color:#FFC;
	opacity: 0.8;
	filter: alpha(opacity=80);
	-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";
}
#ie_css .csslv3{
	border-left: 2px #F60 solid;
}
#ie_css .csslv3 .csstag{
	color: #F60;
}


Since Internet Explorer8 has just joined the infamous IE family, which added bit of work (chaos) in the compatibility war. [...]]]></description>
			<content:encoded><![CDATA[<style type="text/css">
#ie_css h2{
	margin:0;
	margin-top: 30px;
}
#ie_css table{
	border-collapse: collapse;
}
#ie_css thead th{
	border: none;
	border-bottom: 1px #666 solid;
}
#ie_css tbody tr:hover{
	background-color: #D7D7FF;
}
#ie_css tbody td{
	border: none;
	padding: 2px;
}
#ie_css .csstag{
	font-size: 14px;
}
#ie_css .imp_no{
	text-align:center;
	background-color:#FCC;
	opacity: 0.8;
	filter: alpha(opacity=80);
	-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";
}
#ie_css .imp_yes{
	text-align:center;
	background-color:#CFF;
	opacity: 0.8;
	filter: alpha(opacity=80);
	-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";
}
#ie_css .imp_partial{
	text-align:center;
	background-color:#FFC;
	opacity: 0.8;
	filter: alpha(opacity=80);
	-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";
}
#ie_css .csslv3{
	border-left: 2px #F60 solid;
}
#ie_css .csslv3 .csstag{
	color: #F60;
}
</style>
<script type="text/javascript"><!--//--><![CDATA[//><!--
(function($) {
function resetView(){
	$("#ie_css .e678").show();
	$("#ie_css .e67").show();
	$("#ie_css .e68").show();
	$("#ie_css .e78").show();
}
function diffTog(){
		resetView();
		if($("#diffonly").attr('checked')){
			$("#ie_css .e678").hide();
			switch($("#ie_css input[name='hideie']:checked").val()){
				case "6":
					$("#ie_css .e78").hide();
				break;
				case "7":
					$("#ie_css .e68").hide();
				break;
				case "8":
					$("#ie_css .e67").hide();
				break;
			}
		}
	css3Tog();
}
function css3Tog(){
	if($("#css3tog").attr('checked')){
		$("#ie_css .csslv3").show();
	}else{
		$("#ie_css .csslv3").hide();
	}
}
$(function(){
	$("#ie_css .imp_no").text("No");
	$("#ie_css .imp_partial").text("Partial");
	$("#ie_css .imp_yes").text("Yes");
	$("#css3tog").click(css3Tog);
	$("#diffonly").click(diffTog);
	$("#ie_css input[name='hideie']").click(function(){
		var v = $("#ie_css input[name='hideie']:checked").val();
		$("#ie_css .ie6").show();
		$("#ie_css .ie7").show();
		$("#ie_css .ie8").show();
		if(v > 0) $("#ie_css .ie"+v).hide();
		diffTog();
	});
	$("#ie_css .ie6").hide();
	diffTog();
});
})(jQuery);
//--><!]]&gt;</script>
<p>Since Internet Explorer8 has just joined the infamous IE family, which added bit of work (chaos) in the compatibility war. We have designed the following tool to show the difference between the "recent" IE versions, namely 6,7 and 8. Hope this would help web developers who care about browser compatibility.</p>
<p>Referenced from <a href="http://msdn.microsoft.com/en-us/library/cc351024(VS.85).aspx" target="_blank">MSDN: CSS Compatibility and IE</a></p>
<div id="ie_css">
<div style="border: 1px solid #F60; background-color: #D7D7FF;padding: 10px; width: 400px;">
<label><input type="checkbox" id="css3tog" />Show <span style="color:#f60;text-weight:bold">CSS3</span> Implementations</label><br />
<label><input type="checkbox" id="diffonly" checked="checked" />Show Difference Only</label><br />
<label><input type="radio" name="hideie" id="showall" value="0" />Show All IE versions</label><label><input type="radio" name="hideie" id="hideie6" value="6" checked="checked" />Hide IE6</label><label><input type="radio"  name="hideie" id="hideie7" value="7" />Hide IE7</label><label><input type="radio" name="hideie" id="hideie8" value="8" />Hide IE8</label>
</div>
<h2>@ Rules</h2>
<table>
<thead>
<tr><th></th><th class="ie6">IE6</th><th class="ie7">IE7</th><th class="ie8">IE8</th></tr></thead>
<tbody>
<tr class="csslv2 e678"><td class="csstag">@charset</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">@import</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">@media</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e67"><td class="csstag">@page</td><td class="ie6 imp_partial"></td><td class="ie7 imp_partial"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv3 e678"><td class="csstag">@font-face</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv3 e678"><td class="csstag">@namespace</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
</tbody>
</table>
<h2>Selectors</h2>
<table>
<thead>
<tr><th></th><th class="note">Note</th><th class="ie6">IE6</th><th class="ie7">IE7</th><th class="ie8">IE8</th></tr></thead>
<tbody>
<tr class="csslv2 e78"><td class="csstag">.value { sRules }</td><td class="note">Class</td><td class="ie6 imp_partial"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">#value { sRules }</td><td class="note">ID</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">E { sRules }</td><td class="note">Type</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e78"><td class="csstag">* { sRules }</td><td class="note">Universal</td><td class="ie6 imp_no"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv3 e678"><td class="csstag">ns|E { sRules }</td><td class="note">Namespaced</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv2 e78"><td class="csstag">[att=val] { sRules }</td><td class="note">Equality [=]</td><td class="ie6 imp_no"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e78"><td class="csstag">[att] { sRules }</td><td class="note">Existence []</td><td class="ie6 imp_no"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e78"><td class="csstag">[att|=val] { sRules }</td><td class="note">Hyphen [|=]</td><td class="ie6 imp_no"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e78"><td class="csstag">[att~=val] { sRules }</td><td class="note">Whitespace [~=]</td><td class="ie6 imp_no"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv3 e78"><td class="csstag">[ns|attr] { sRules }</td><td class="note">Namespaced</td><td class="ie6 imp_no"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv3 e78"><td class="csstag">[att^=val] { sRules }</td><td class="note">Prefix [^=]</td><td class="ie6 imp_no"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv3 e78"><td class="csstag">[att*=val] { sRules }</td><td class="note">Substring [*=]</td><td class="ie6 imp_no"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv3 e78"><td class="csstag">[att$=val] { sRules }</td><td class="note">Suffix [$=]</td><td class="ie6 imp_no"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e78"><td class="csstag">E + F { sRules }</td><td class="note">Adjacent Sibling (+)</td><td class="ie6 imp_no"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e78"><td class="csstag">E &gt; F { sRules }</td><td class="note">Child (>)</td><td class="ie6 imp_no"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">E F { sRules }</td><td class="note">Descendant</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv3 e78"><td class="csstag">E ~ F { sRules }</td><td class="note">General Sibling (~)</td><td class="ie6 imp_no"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2"><td class="csstag">:active { sRules }</td><td class="note">:active</td><td class="ie6 imp_no"></td><td class="ie7 imp_partial"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e78"><td class="csstag">:first-child { sRules }</td><td class="note">:first-child</td><td class="ie6 imp_no"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e67"><td class="csstag">:focus { sRules }</td><td class="note">:focus</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e78"><td class="csstag">:hover { sRules }</td><td class="note">:hover</td><td class="ie6 imp_partial"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e67"><td class="csstag">:lang(C) { sRules }</td><td class="note">:lang()</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">:link { sRules }</td><td class="note">:link</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">:visited { sRules }</td><td class="note">:visited</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e67"><td class="csstag">@page :first { sRules }</td><td class="note">@page :first</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e67"><td class="csstag">@page :left { sRules }</td><td class="note">@page :left</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e67"><td class="csstag">@page :right { sRules }</td><td class="note">@page :right</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv3 e678"><td class="csstag">:root { sRules }</td><td class="note">:root</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">:nth-child() { sRules }</td><td class="note">:nth-child()</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">:nth-last-child() { sRules }</td><td class="note">:nth-last-child()</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">:nth-of-type() { sRules }</td><td class="note">:nth-of-type()</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">:nth-last-of-type() { sRules }</td><td class="note">:nth-last-of-type()</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">:last-child { sRules }</td><td class="note">:last-child</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">:first-of-type { sRules }</td><td class="note">:first-of-type</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">:last-of-type { sRules }</td><td class="note">:last-of-type</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag"> <img src='http://blog.orite.com.au/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> nly-child { sRules }</td><td class="note"> <img src='http://blog.orite.com.au/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> nly-child</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag"> <img src='http://blog.orite.com.au/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> nly-of-type { sRules }</td><td class="note"> <img src='http://blog.orite.com.au/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> nly-of-type</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">:empty { sRules }</td><td class="note">:empty</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">:target { sRules }</td><td class="note">:target</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">:not(X) { sRules }</td><td class="note">:not()</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">:enabled { sRules }</td><td class="note">:enabled</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">:disabled { sRules }</td><td class="note">:disabled</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">:checked { sRules }</td><td class="note">:checked</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">:indeterminate { sRules }</td><td class="note">:indeterminate</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">:default { sRules }</td><td class="note">:default</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">:valid { sRules }</td><td class="note">:valid</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">:invalid { sRules }</td><td class="note">:invalid</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">:in-range { sRules }</td><td class="note">:in-range</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag"> <img src='http://blog.orite.com.au/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> ut-of-range { sRules }</td><td class="note"> <img src='http://blog.orite.com.au/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> ut-of-range</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">:required { sRules }</td><td class="note">:required</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag"> <img src='http://blog.orite.com.au/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> ptional { sRules }</td><td class="note"> <img src='http://blog.orite.com.au/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> ptional</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">:read-only { sRules }</td><td class="note">:read-only</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">:read-write { sRules }</td><td class="note">:read-write</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv2 e67"><td class="csstag">:after { sRules }</td><td class="note">:after</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e67"><td class="csstag">:before { sRules }</td><td class="note">:before</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">:first-letter { sRules }</td><td class="note">:first-letter</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">:first-line { sRules }</td><td class="note">:first-line</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv3 e678"><td class="csstag">::before { sRules }</td><td class="note">::before</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">::after { sRules }</td><td class="note">::after</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">::first-letter { sRules }</td><td class="note">::first-letter</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">::first-line { sRules }</td><td class="note">::first-line</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">::selection { sRules }</td><td class="note">::selection</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">::value { sRules }</td><td class="note">::value</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">::choices { sRules }</td><td class="note">::choices</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">::repeat-item { sRules }</td><td class="note">::repeat-item</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">::repeat-index { sRules }</td><td class="note">::repeat-index</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv2 e78"><td class="csstag">{ sRule!important? }</td><td class="note">!important Declaration</td><td class="ie6 imp_partial"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ list-style : sStyle }</td><td class="note">list-style</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ list-style-image : sStyle }</td><td class="note">list-style-image</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ list-style-position : sStyle }</td><td class="note">list-style-position</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2"><td class="csstag">{ list-style-type : sStyle }</td><td class="note">list-style-type</td><td class="ie6 imp_no"></td><td class="ie7 imp_partial"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ color : sColor }</td><td class="note">color</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ background : sBackground }</td><td class="note">background</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e78"><td class="csstag">{ background-attachment : sAttachment }</td><td class="note">background-attachment</td><td class="ie6 imp_partial"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ background-color : sColor }</td><td class="note">background-color</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ background-image : sLocation }</td><td class="note">background-image</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e67"><td class="csstag">{ background-position : sPosition }</td><td class="note">background-position</td><td class="ie6 imp_partial"></td><td class="ie7 imp_partial"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ background-repeat : sRepeat }</td><td class="note">background-repeat</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ color-profile : sProfile }</td><td class="note">color-profile</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ rendering-intent : sIntent }</td><td class="note">rendering-intent</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ background : sBackground1,sBackground2, etc. }</td><td class="note">background (multiple)</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ background-clip : sClip }</td><td class="note">background-clip</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ background-origin : sOrigin }</td><td class="note">background-origin</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ background-break : sBreak }</td><td class="note">background-break</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ background-size : sSize }</td><td class="note">background-size</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ direction : sDirection }</td><td class="note">direction</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ font : sFont }</td><td class="note">font</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ font-family : sFamily }</td><td class="note">font-family</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ font-size : sSize }</td><td class="note">font-size</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ font-style : sStyle }</td><td class="note">font-style</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ font-variant : sVariant }</td><td class="note">font-variant</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e67"><td class="csstag">{ font-weight : sWeight }</td><td class="note">font-weight</td><td class="ie6 imp_partial"></td><td class="ie7 imp_partial"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ letter-spacing : sSpacing }</td><td class="note">letter-spacing</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ line-height : sHeight }</td><td class="note">line-height</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ text-align : sAlign }</td><td class="note">text-align</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ text-decoration : sDecoration }</td><td class="note">text-decoration</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ text-indent : sIndent }</td><td class="note">text-indent</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ text-transform : sTransform }</td><td class="note">text-transform</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ unicode-bidi : sAlign }</td><td class="note">unicode-bidi</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ vertical-align : sAlign }</td><td class="note">vertical-align</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e67"><td class="csstag">{ white-space : sWrap }</td><td class="note">white-space</td><td class="ie6 imp_partial"></td><td class="ie7 imp_partial"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e67"><td class="csstag">{ word-spacing : sSpacing }</td><td class="note">word-spacing</td><td class="ie6 imp_partial"></td><td class="ie7 imp_partial"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ font-effect : sEffect }</td><td class="note">font-effect</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ font-emphasize : sEmphasize }</td><td class="note">font-emphasize</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ font-size-adjust : sSizeAdjust }</td><td class="note">font-size-adjust</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ font-smooth : sSmooth }</td><td class="note">font-smooth</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ font-stretch : sStretch }</td><td class="note">font-stretch</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ hanging-punctuation : sHangingPunctuation }</td><td class="note">hanging-punctuation</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ punctuation-trim : sTrim }</td><td class="note">punctuation-trim</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ ruby-align : sRubyAlign }</td><td class="note">ruby-align</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ ruby-overhang : sRubyOverhang }</td><td class="note">ruby-overhang</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ ruby-position : sRubyPlacement }</td><td class="note">ruby-position</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ ruby-span : sRubySpan }</td><td class="note">ruby-span</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ text-align-last : sAlignLast }</td><td class="note">text-align-last</td><td class="ie6 imp_partial"></td><td class="ie7 imp_partial"></td><td class="ie8 imp_partial"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ text-emphasis : sEmphasis }</td><td class="note">text-emphasis</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ text-justify : sJustify }</td><td class="note">text-justify</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ text-outline : sOutline }</td><td class="note">text-outline</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ text-overflow : sOverflow}</td><td class="note">text-overflow</td><td class="ie6 imp_partial"></td><td class="ie7 imp_partial"></td><td class="ie8 imp_partial"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ text-shadow : sShadow }</td><td class="note">text-shadow</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ text-wrap : sWrap }</td><td class="note">text-wrap</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ word-break : sBreak }</td><td class="note">word-break</td><td class="ie6 imp_partial"></td><td class="ie7 imp_partial"></td><td class="ie8 imp_partial"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ word-wrap : sWrap }</td><td class="note">word-wrap</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ writing-mode : sFlow }</td><td class="note">writing-mode</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e67"><td class="csstag">{ content : sContent }</td><td class="note">content</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e67"><td class="csstag">{ counter-increment : sCounter }</td><td class="note">counter-increment</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e67"><td class="csstag">{ counter-reset : sCounter }</td><td class="note">counter-reset</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e67"><td class="csstag">{ quotes : sQuotes }</td><td class="note">quotes</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ border : sBorder }</td><td class="note">border</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ border-bottom : sBottom }</td><td class="note">border-bottom</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ border-bottom-color : sColor }</td><td class="note">border-bottom-color</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ border-bottom-style : sStyle }</td><td class="note">border-bottom-style</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ border-bottom-width : sWidth }</td><td class="note">border-bottom-width</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e67"><td class="csstag">{ border-collapse : sCollapse }</td><td class="note">border-collapse</td><td class="ie6 imp_partial"></td><td class="ie7 imp_partial"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ border-color : sColor }</td><td class="note">border-color</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ border-left : sLeft }</td><td class="note">border-left</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ border-left-color : sColor }</td><td class="note">border-left-color</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ border-left-style : sStyle }</td><td class="note">border-left-style</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ border-left-width : sWidth }</td><td class="note">border-left-width</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ border-right : sRight}</td><td class="note">border-right</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ border-right-color : sColor }</td><td class="note">border-right-color</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ border-right-style : sStyle }</td><td class="note">border-right-style</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ border-right-width : sWidth }</td><td class="note">border-right-width</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e67"><td class="csstag">{ border-spacing : sSpacing }</td><td class="note">border-spacing</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e67"><td class="csstag">{ border-style : sStyle }</td><td class="note">border-style</td><td class="ie6 imp_partial"></td><td class="ie7 imp_partial"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ border-top : sTop }</td><td class="note">border-top</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ border-top-color : sColor }</td><td class="note">border-top-color</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ border-top-style : sStyle }</td><td class="note">border-top-style</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ border-top-width : sWidth }</td><td class="note">border-top-width</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ border-width : sWidth }</td><td class="note">border-width</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e67"><td class="csstag">{ caption-side : sLocation }</td><td class="note">caption-side</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ clear : sClear }</td><td class="note">clear</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2"><td class="csstag">{ empty-cells : sEmptyCells }</td><td class="note">empty-cells</td><td class="ie6 imp_no"></td><td class="ie7 imp_partial"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ float : sFloat }</td><td class="note">float</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ margin : sMargin }</td><td class="note">margin</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ margin-bottom : sHeight }</td><td class="note">margin-bottom</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ margin-left : sWidth }</td><td class="note">margin-left</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ margin-right : sWidth }</td><td class="note">margin-right</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ margin-top : sHeight }</td><td class="note">margin-top</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ padding : sPadding }</td><td class="note">padding</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ padding-bottom : sPadding }</td><td class="note">padding-bottom</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ padding-left : sPadding }</td><td class="note">padding-left</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ padding-right : sPadding }</td><td class="note">padding-right</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ padding-top : sPadding }</td><td class="note">padding-top</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ table-layout : sLayout }</td><td class="note">table-layout</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ border-break : sBreak }</td><td class="note">border-break</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ border-image : sImage }</td><td class="note">border-image</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ border-radius : sRadius }</td><td class="note">border-radius</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ box-shadow : sShadow }</td><td class="note">box-shadow</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv2 e67"><td class="csstag">{ bottom : sBottom }</td><td class="note">bottom</td><td class="ie6 imp_partial"></td><td class="ie7 imp_partial"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ clip : sClip }</td><td class="note">clip</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e67"><td class="csstag">{ display : sDisplay }</td><td class="note">display</td><td class="ie6 imp_partial"></td><td class="ie7 imp_partial"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ height : sHeight }</td><td class="note">height</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e67"><td class="csstag">{ left : sPosition }</td><td class="note">left</td><td class="ie6 imp_partial"></td><td class="ie7 imp_partial"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e78"><td class="csstag">{ max-height : sMaxHeight }</td><td class="note">max-height</td><td class="ie6 imp_no"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e78"><td class="csstag">{ max-width : sWidth }</td><td class="note">max-width</td><td class="ie6 imp_no"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e78"><td class="csstag">{ min-height : sMinHeight }</td><td class="note">min-height</td><td class="ie6 imp_no"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e78"><td class="csstag">{ min-width : sMinWidth }</td><td class="note">min-width</td><td class="ie6 imp_no"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e78"><td class="csstag">{ overflow : sOverflow }</td><td class="note">overflow</td><td class="ie6 imp_partial"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e78"><td class="csstag">{ position : sPosition }</td><td class="note">position</td><td class="ie6 imp_partial"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e67"><td class="csstag">{ right : sPosition }</td><td class="note">right</td><td class="ie6 imp_partial"></td><td class="ie7 imp_partial"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e67"><td class="csstag">{ top : sTop }</td><td class="note">top</td><td class="ie6 imp_partial"></td><td class="ie7 imp_partial"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ visibility : sVisibility }</td><td class="note">visibility</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ width : sWidth }</td><td class="note">width</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e67"><td class="csstag">{ z-index : vOrder }</td><td class="note">z-index</td><td class="ie6 imp_partial"></td><td class="ie7 imp_partial"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv3 e78"><td class="csstag">{ overflow-x : sOverflow }</td><td class="note">overflow-x</td><td class="ie6 imp_partial"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv3 e78"><td class="csstag">{ overflow-y : sOverflow }</td><td class="note">overflow-y</td><td class="ie6 imp_partial"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e67"><td class="csstag">{ orphans : nLines }</td><td class="note">orphans</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ page-break-after : sBreak }</td><td class="note">page-break-after</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ page-break-before : sBreak }</td><td class="note">page-break-before</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e67"><td class="csstag">{ page-break-inside : sBreak }</td><td class="note">page-break-inside</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e67"><td class="csstag">{ widows : nLines }</td><td class="note">widows</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ fit : sFit }</td><td class="note">fit</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ fit-position : sPosition }</td><td class="note">fit-position</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ image-orientation : sOrientation }</td><td class="note">image-orientation</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ page : sPage }</td><td class="note">page</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ size : sSize }</td><td class="note">size</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv2 e678"><td class="csstag">{ cursor : sCursor }</td><td class="note">cursor</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e67"><td class="csstag">{ outline : sOutline }</td><td class="note">outline</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e67"><td class="csstag">{ outline-color : sColor }</td><td class="note">outline-color</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e67"><td class="csstag">{ outline-style : sStyle }</td><td class="note">outline-style</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e67"><td class="csstag">{ outline-width : sWidth }</td><td class="note">outline-width</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ appearance : sAppearance }</td><td class="note">appearance</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e67"><td class="csstag">{ box-sizing : sSizing }</td><td class="note">box-sizing</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ icon : sIcon }</td><td class="note">icon</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ nav-down : sNavDown }</td><td class="note">nav-down</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ nav-index : sIndex }</td><td class="note">nav-index</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ nav-left : sNavLeft }</td><td class="note">nav-left</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ nav-right : sNavRight }</td><td class="note">nav-right</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ nav-up : sNavUp }</td><td class="note">nav-up</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ outline-offset : sOffset }</td><td class="note">outline-offset</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ outline-radius : sRadius }</td><td class="note">outline-radius</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ resize : sResize }</td><td class="note">resize</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ column-break-after : sSize }</td><td class="note">column-break-after</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ column-break-before : sSize }</td><td class="note">column-break-before</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ column-break-inside : sSize }</td><td class="note">column-break-inside</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ column-count : sCount }</td><td class="note">column-count</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ column-gap : sSize }</td><td class="note">column-gap</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ column-rule : sRule }</td><td class="note">column-rule</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">{ columns : sColumns }</td><td class="note">columns</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
</tbody>
</table>
<h2>Values</h2>
<table>
<thead>
<tr><th></th><th class="ie6">IE6</th><th class="ie7">IE7</th><th class="ie8">IE8</th></tr></thead>
<tbody>
<tr class="csslv2 e678"><td class="csstag">&lt;number&gt;</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">&lt;length&gt;</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">&lt;percentage&gt;</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">&lt;integer&gt;</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv3 e678"><td class="csstag">&lt;angle&gt;</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">&lt;time&gt;</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">&lt;frequency&gt;</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv2 e678"><td class="csstag">&lt;string&gt;</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">\code</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">rect()</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">url()</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e67"><td class="csstag">counter()</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e67"><td class="csstag">attr()</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv3 e678"><td class="csstag">calc()</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv2 e678"><td class="csstag">&lt;color&gt; (names)</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">&lt;color&gt; (#rrggbb or #rgb Notation)</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">&lt;color&gt; (rgb(r,g,b) Notation)</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e678"><td class="csstag">&lt;color&gt; (system colors)</td><td class="ie6 imp_yes"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e78"><td class="csstag">transparent</td><td class="ie6 imp_partial"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv3 e678"><td class="csstag">&lt;color&gt; (rgba(r,g,b,a) Notation)</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">&lt;color&gt; (hsl(h,s,l) Notation)</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv3 e678"><td class="csstag">&lt;color&gt; (hsla(h,s,l,a) Notation)</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
<tr class="csslv2 e78"><td class="csstag">auto</td><td class="ie6 imp_partial"></td><td class="ie7 imp_yes"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv2 e67"><td class="csstag">inherit</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_yes"></td></tr>
<tr class="csslv3 e678"><td class="csstag">initial</td><td class="ie6 imp_no"></td><td class="ie7 imp_no"></td><td class="ie8 imp_no"></td></tr>
</tbody>
</table>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.orite.com.au/web_development/2009-04-09/css-implementation-chart-ie6-ie7-ie8/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Good news or Bad news, IE8 is here</title>
		<link>http://blog.orite.com.au/web_development/2009-03-20/good-news-or-bad-news-ie8-is-here/</link>
		<comments>http://blog.orite.com.au/web_development/2009-03-20/good-news-or-bad-news-ie8-is-here/#comments</comments>
		<pubDate>Fri, 20 Mar 2009 00:36:32 +0000</pubDate>
		<dc:creator>Frank Liu</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[IE8]]></category>
		<category><![CDATA[Internet Explorer]]></category>

		<guid isPermaLink="false">http://blog.orite.com.au/?p=72</guid>
		<description><![CDATA[To those who worked hard on getting IE8 released on schedule, congratulations! In the same time we feel sorry to those who care about website compatibility, this means you have one more IE to hack on. Maybe this is the way how Microsoft helps to create jobs in the crisis, thanks!

Anyway here's some critics from [...]]]></description>
			<content:encoded><![CDATA[To those who worked hard on getting IE8 released on schedule, congratulations! In the same time we feel sorry to those who care about website compatibility, this means you have one more IE to hack on. Maybe this is the way how Microsoft helps to create jobs in the crisis, thanks!

Anyway here's some critics from my own opinion. Firstly it took over 15 minutes to upgrade my IE8 RC1 to IE8 with two restarts. If you haven't noticed IE8 by default is not backward compatible to its predecessors. A good example is the 'opacity' in css, to get your page displayed correctly in IE8 you need to.
Either in the  &lt;head&gt; tag put,


<div class="wp_codebox_msgheader"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p72code5'); return false;">View Code</a> HTML</span><div class="codebox_clear"></div></div><div class="wp_codebox" id="p725"><div class="line_numbers"><pre>1

</pre></div><div class="code" id="p72code5"><pre class="html" style="font-family:monospace;">&lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=EmulateIE7&quot; /&gt;</pre></div></div>



or write something like this in the CSS,


<div class="wp_codebox_msgheader"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p72code6'); return false;">View Code</a> CSS</span><div class="codebox_clear"></div></div><div class="wp_codebox" id="p726"><div class="line_numbers"><pre>1

</pre></div><div class="code" id="p72code6"><pre class="css" style="font-family:monospace;">-ms-filter<span style="color: #00AA00;">:</span> <span style="color: #ff0000;">&quot;progid:DXImageTransform.Microsoft.Alpha(Opacity=0)&quot;</span><span style="color: #00AA00;">;</span></pre></div></div>



However this may break PNG images with alpha channel from displaying properly. Yes, another PNG issue, :-<

Read more on <a href="http://realtech.burningbird.net/graphics/css/opacity-returns-ie8">Bb RealTech</a>

If you want find out more about difference IE8 has to offer, please check out <a href="http://www.css3.info/selectors-test/test.html">CSS3.info</a>

Enjoy hacking another IE!]]></content:encoded>
			<wfw:commentRss>http://blog.orite.com.au/web_development/2009-03-20/good-news-or-bad-news-ie8-is-here/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mwbModelCommand, Yii Framework and MySQL Workbench</title>
		<link>http://blog.orite.com.au/web_development/2009-02-06/mwbmodelcommand-yii-framework-and-mysql-workbench/</link>
		<comments>http://blog.orite.com.au/web_development/2009-02-06/mwbmodelcommand-yii-framework-and-mysql-workbench/#comments</comments>
		<pubDate>Thu, 05 Feb 2009 13:26:32 +0000</pubDate>
		<dc:creator>Frank Liu</dc:creator>
				<category><![CDATA[Open Source Releases]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Yii Framework]]></category>

		<guid isPermaLink="false">http://blog.orite.com.au/?p=61</guid>
		<description><![CDATA[In the past few weeks we have been exploring with Yii Framework, and two of us have started porting some of our project to Yii Framework. One of the first few things that caught our attention is the CActiveRecord model classes, which require relational rules to describe relationships among database tables. We are glad that [...]]]></description>
			<content:encoded><![CDATA[<p>In the past few weeks we have been exploring with <a title="Yii Framework" href="http://www.yiiframework.com" target="_blank">Yii Framework</a>, and two of us have started porting some of our project to Yii Framework. One of the first few things that caught our attention is the <a title="Yii Framework CActiveRecord" href="http://www.yiiframework.com/doc/api/CActiveRecord" target="_blank">CActiveRecord</a> model classes, which require relational rules to describe relationships among database tables. We are glad that Yiic can help to create project scaffolds and create controller, model and CRUD, however it's not very practical to manually add all the relationship if your project has over 10 tables.</p>

<p>Our normal practice prefers to design database with relational diagram, so it not only sets out the table schemas but also visually demonstrates the relationship of database tables.  However in this fast changing world, without the right tool most the relational diagram tends to out of sync with real production database. For most the of our project, we create ERD and generate database from the diagram in the design phase and later on in the development phase, most the developer choose to update the schema on the table directly, since that's quick, and most of them don't have the habit to update the ERD with relavant changes. You will feel lucky if your database design tool comes with reverse engineering, which can help you syn with your database at a later point still, otherwise you'll be purely rely on your bare eye and hand to syn among database table your model classes and the ERD.</p>

<p>So I believe when it comes to database design it should always be diagram driven, therefore if there's any changes need to be made, always update the digram first and carry on to your physical table and model class. Although we are still looking for good database migration tools to manage schema diffs. We have written a little script to help Yii Framework to work with <a title="MySQL Workbench" href="http://dev.mysql.com/workbench/" target="_blank">MySQL Workbench</a> (which we use to model MySQL databases), the purpose of the script is to batch create model classes for Yii Framework (although Yiic can generate models one by one, we want it happen at once and for all), and with the help of mwb file it can create the relational rules for the models, so there's no manual translation needed while you creating the models. Since it's a Yii shell command, we have named it 'mwbModelCommand'.</p>

<p>It's available for download at this <a title="mwbModelCommand" href="http://www.yiiframework.com/extension/mwbmodelcommand/" target="_blank">Yii Extensions page</a>, or <a title="Yii Framework mwbModelCommand" href="../wp-content/uploads/2009/02/mwbmodelcommand_r2402.zip">Yii Framework mwbModelCommand</a> (direct link)</p>

<p>Hope this script will save your time on relational model creation, if anyone have issues or suggestions mwbModelCommand please feel free to post back.</p>

<p>Wish List (Todo),<br />
A tool (set) to stream line the database migration, so it would not only creates the models, but may also update (revert) models as well as database table schema at once, and data safe if possible. Please advice if you know something good out there.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.orite.com.au/web_development/2009-02-06/mwbmodelcommand-yii-framework-and-mysql-workbench/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Useful PHP Tools</title>
		<link>http://blog.orite.com.au/web_development/2009-01-22/useful-php-tools/</link>
		<comments>http://blog.orite.com.au/web_development/2009-01-22/useful-php-tools/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 01:29:40 +0000</pubDate>
		<dc:creator>Frank Liu</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.orite.com.au/?p=55</guid>
		<description><![CDATA[Smashing Magazine did it again, a good collection of php tools,

50 Extremely Useful PHP Tools

Please comment on your faviourate ones.]]></description>
			<content:encoded><![CDATA[Smashing Magazine did it again, a good collection of php tools,

<a title="50 Extremely Useful PHP Tools" rel="bookmark" href="http://www.smashingmagazine.com/2009/01/20/50-extremely-useful-php-tools/">50 Extremely Useful PHP Tools</a>

Please comment on your faviourate ones.]]></content:encoded>
			<wfw:commentRss>http://blog.orite.com.au/web_development/2009-01-22/useful-php-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Setting up wildcard virtual hosts for web development environment</title>
		<link>http://blog.orite.com.au/web_development/2009-01-22/setting-up-wildcard-virtual-hosts-for-web-development-environment/</link>
		<comments>http://blog.orite.com.au/web_development/2009-01-22/setting-up-wildcard-virtual-hosts-for-web-development-environment/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 01:04:21 +0000</pubDate>
		<dc:creator>Frank Liu</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Apache]]></category>

		<guid isPermaLink="false">http://blog.orite.com.au/?p=47</guid>
		<description><![CDATA[We used to have dev site hosted under sub directories of localhost, e.g. http://localhost/project/abc/. When it comes to development and testing, we really want to keep the environment as close as possible to the production environment, so it would lot easier to deploy and maintain. Imagine you have to refer to /images/logo.png from a page [...]]]></description>
			<content:encoded><![CDATA[We used to have dev site hosted under sub directories of localhost, e.g. http://localhost/project/abc/. When it comes to development and testing, we really want to keep the environment as close as possible to the production environment, so it would lot easier to deploy and maintain. Imagine you have to refer to /images/logo.png from a page like /we/have/got/a/test/page/index.html, you really want absolute path in this senario, however in order to work with sub folder based dev environment you either having awful relative links (which would be easily break down when you relate files), or different absolute path as if you would deploy that on the production server. Which is not very practical at all.

To solve the problem, we thought about having separate virtual hosts for each project, ie. abc.localhost for abc project and so forth. There are several ways you could achieve this in apache configuration.
<ol>
	<li>With vhost_alias_module enabled
<pre>&lt;VirtualHost *:80&gt;
    VirtualDocumentRoot c:/projects/%1/
&lt;/VirtualHost&gt;</pre>
take abc.localhost for example, where %1 represents abc, and %2 would represent lcoalhost</li>
	<li>With mod_rewrite enabled
<pre>&lt;VirtualHost *:80&gt;
    ServerAdmin root@localhost
    DocumentRoot "c:/projects/"
    ServerName localhost
    ServerAlias *.localhost
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^([^.]+)\.localhost$ [NC]
    RewriteRule  ^/(.*)$ /%1/$1
&lt;/VirtualHost&gt;</pre>
</li>
	<li>With mod_rewrite and rewritemap
<pre>&lt;VirtualHost *:80&gt;
    ServerAdmin root@localhost
    DocumentRoot "c:/projects/"
    ServerName localhost
    ServerAlias *.localhost
    RewriteEngine on
    RewriteMap   lowercase  int:tolower
    # define the map file
    RewriteMap   vhost      txt:vhosts.map
    # deal with aliases as above
    RewriteCond  ${lowercase:%{SERVER_NAME}}  ^(.+)$
    # this does the file-based remap
    RewriteCond  ${vhost:%1}                  ^(/.*)$
    RewriteRule  ^/(.*)$                      %1/$1
&lt;/VirtualHost&gt;</pre>
Then create the vhosts.map file to contain the hosts to documentroot map, e.g.
abc.localhost    c:/project_08/abc
bcd.localhost    c:/project_09/bcd</li>
</ol>
Both method 1 and 2 would wildcard map *.localhost to c:/projects/*, and method 3 will allow you to specify documentroot of each domain in the vhosts.map file. With extra virtualhost you don't need to alter httpd.conf any more, all you need to do is create the subdomain and create the project folder in appropirate location.

Since the hosts file doesn't support wildcard entry, for each of the subdomain of localhost you may need to create a separate entry, however it should only take few seconds, and nothing needs to be restart to take effect, which is easy and good enough. Alternatively if you have access to your DNS server, you may setup wildcard on the localhost zone, so everyone in the dev team will have access to *.localhost without alter anything in the local hosts file.

Hope whis will in a way help web developers to deliver project faster.]]></content:encoded>
			<wfw:commentRss>http://blog.orite.com.au/web_development/2009-01-22/setting-up-wildcard-virtual-hosts-for-web-development-environment/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>45 Useful and Fancy jQuery Techniques</title>
		<link>http://blog.orite.com.au/web_development/2009-01-20/45-useful-and-fancy-jquery-techniques/</link>
		<comments>http://blog.orite.com.au/web_development/2009-01-20/45-useful-and-fancy-jquery-techniques/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 11:58:05 +0000</pubDate>
		<dc:creator>Frank Liu</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://blog.orite.com.au/?p=44</guid>
		<description><![CDATA[Please check out this post on Smashing Magazine,
45+ New jQuery Techniques For Good User Experience
really good collection of jQuery tricks for web development.]]></description>
			<content:encoded><![CDATA[Please check out this post on Smashing Magazine,
<a title="45+ New jQuery Techniques For Good User Experience" rel="bookmark" href="http://www.smashingmagazine.com/2009/01/15/45-new-jquery-techniques-for-a-good-user-experience/" target="_blank">45+ New jQuery Techniques For Good User Experience</a>
really good collection of jQuery tricks for web development.]]></content:encoded>
			<wfw:commentRss>http://blog.orite.com.au/web_development/2009-01-20/45-useful-and-fancy-jquery-techniques/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Install Ruby on Rails (RoR) on Windows (zlib.dll error)</title>
		<link>http://blog.orite.com.au/web_development/2009-01-20/install-ruby-on-rails-ror-on-windows-zlibdll-error/</link>
		<comments>http://blog.orite.com.au/web_development/2009-01-20/install-ruby-on-rails-ror-on-windows-zlibdll-error/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 11:14:44 +0000</pubDate>
		<dc:creator>Frank Liu</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[RoR]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.orite.com.au/?p=41</guid>
		<description><![CDATA[Although Orite has been focusing on PHP development for quite few years now, we are open to new web technologies and always exploring new tools and learning new skills. I still remember when we first heard Ruby on Rails few years back, we were quite amazed about the raid development framework, and the simplicity of [...]]]></description>
			<content:encoded><![CDATA[Although Orite has been focusing on PHP development for quite few years now, we are open to new web technologies and always exploring new tools and learning new skills. I still remember when we first heard Ruby on Rails few years back, we were quite amazed about the raid development framework, and the simplicity of the Ruby syntax (which is really OO and human readable). After the recent PHP framework research, we still not 100% happy with any framework in the PHP world. So we decide to take a look at RoR again and try to get some inspiration, and if someday when RoR rules the world we would not be too far behind hopefully.

After digging the net, there's no one RoR package that's up to date and easy to install for windows, I guess that's because most the developers are on Macs and Linux. Although we have Linux as testing servers and Mac as graphic stations, all our web developer are happy windows users.

We were trying to follow the instructions on <a title="RailsOnWindows in Ruby on Rails" href="http://wiki.rubyonrails.org/rails/pages/RailsOnWindows" target="_blank">RoR wiki</a>, however the <a title="RoR One Click Installer Windows" href="http://rubyforge.org/projects/rubyinstaller/" target="_blank">One-Click Installer</a> is bit out dated (since official <a title="Ruby on Rails Download" href="http://rubyonrails.org/download" target="_blank">RoR website</a> recommends Ruby 1.8.7). So here's our own instruction of getting RoR on Windows,
<ol>
	<li>Download the binary package from <a title="Ruby download" href="http://www.ruby-lang.org/en/downloads/" target="_blank">official Ruby download page
</a></li>
	<li>Unzip and put in to a folder, say c:\ruby</li>
	<li>Add c:\ruby\bin into the environment path (if you don't know how, here's the <a title="How To Manage Environment Variables" href="http://support.microsoft.com/kb/310519" target="_blank">official Microsoft How To Manage Environment Variables help</a>)</li>
	<li>Get the latest RubyGems from <a title="RubyForge RubyGems Download" href="http://rubyforge.org/projects/rubygems/" target="_blank">RubyForge</a>, and unzip it into a folder</li>
	<li>Now launch CMD and goto the RubyGems folder, then type
&gt;ruby setup.rb
to setup RubyGems</li>
	<li>Here comes the problem, when we try to install rails by issuing the command
&gt;gem install rails
Window alerts an error about missing zlib.dll, and ruby only comes with the zlib.so file under the lib\i386-mswin32 directory.
To fix it you need the zlib.dll file under ruby\bin\ folder, if you have apache for windows installed, simply grab the zlib.dll from apache\bin folder, which should work. Otherwise you need to download zlib.dll from any of the dll hosts by search on Google.</li>
	<li>The the &gt;gem install rails command should work</li>
	<li>And you may install mongrel, the http server for RoR application by
&gt;gem install mongrel</li>
</ol>
Then the RoR is ready to go, you may follow instructions on http://rubyonrails.org to start coding in Ruby for web development.

If we don't get too busy with PHP dev work or too bored with RoR, we will post back any interesting findings in RoR from the perspective of PHP developers.]]></content:encoded>
			<wfw:commentRss>http://blog.orite.com.au/web_development/2009-01-20/install-ruby-on-rails-ror-on-windows-zlibdll-error/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
