<?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>Query7 &#187; Design</title>
	<atom:link href="http://query7.com/category/design/feed" rel="self" type="application/rss+xml" />
	<link>http://query7.com</link>
	<description>PHP, Javascript, Python and Web Development</description>
	<lastBuildDate>Sat, 25 Jun 2011 21:29:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Blogger Template Wizardry</title>
		<link>http://query7.com/blogger-template-wizardry</link>
		<comments>http://query7.com/blogger-template-wizardry#comments</comments>
		<pubDate>Fri, 04 Jun 2010 03:46:49 +0000</pubDate>
		<dc:creator>Chinmay Chiranjeeb</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[blogger]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[customizing]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[template]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.webdevelopmentbits.com/?p=599</guid>
		<description><![CDATA[Google’s Blogger is the eighth most popular site on the entire Web today, and by far the most popular free blogging site.  According to Google, Blogger now hosts over 300 million blogs and publishes 388 million words per day – simply staggering figures.  Let’s look at some of the more compelling reasons for Blogger’s popularity.]]></description>
			<content:encoded><![CDATA[<p>Google’s Blogger is the eighth most popular site on the entire Web today, and by far the most popular free blogging site.  According to Google, Blogger now hosts over 300 million blogs and publishes 388 million words per day – simply staggering figures.  Let’s look at some of the more compelling reasons for Blogger’s popularity.</p>
<ul>
<li>Google’s services are ubiquitous, and you’ve probably already got an account for say, Gmail, Docs, YouTube or Calendar.  So when you land on the Blogger homepage, all you need to do is enter your login info and off you go!  No registration required.</li>
<li>It’s powered by Google, so there’s a better chance of placing high on search engine rankings.  From an SEO/SEM (search engine optimization / search engine marketing) point of view, that’s quite the big deal.</li>
<li>Users can create multiple blogs.  For Web developers or designers with diverse portfolios it’s easier than ever to start your own blogging network.</li>
<li>Blogger has a limited but respectable directory of templates with plenty of options for customization.  Inveterate tweakers should clear the afternoon.</li>
<li>Users can create and configure their own templates for upload, or download an existing template, customize it, then re-upload and use it.</li>
<li>Rather than keeping the off-the-shelf yourname.blogspot.com domain, users can register their own custom domain and point their Blogger page to that.</li>
</ul>
<p>Sure enough, there are plenty of good reasons Blogger’s gained traction the past few years, but it’s become a hell of a crowded field and for anyone looking to grow their audience it’s increasingly hard to stand out.</p>
<p>The fact is, even if you’re posting killer, must-read content you’ve lost the lion’s share of readers before their first click with a page designed from a yawn-inducing Blogger template.</p>
<p>So besides great content, you’re going to want a template with distinctive design. Read on to follow this basic tutorial and create your own fresh Blogger template.</p>
<h2>Create an HTML Template for Your Blog</h2>
<p>Go to the <a href="http://www.blogger.com/">Blogger homepage</a> and log in with your Google info to create a new blog.  With or without a Google account the signup is pretty painless.</p>
<p><a href="http://query7.com/wp-content/uploads/1.png"><img class="aligncenter size-full wp-image-602" title="1" src="http://query7.com/wp-content/uploads/1.png" alt="" width="531" height="178" /></a></p>
<p>If you&#8217;re an existing user, you&#8217;ll also get the status of your current blogs.</p>
<p><a href="http://query7.com/wp-content/uploads/22.png"><img class="aligncenter size-full wp-image-618" title="2" src="http://query7.com/wp-content/uploads/22.png" alt="" width="531" height="115" /></a></p>
<h2>Head to Layout and then Edit HTML</h2>
<p><a href="http://query7.com/wp-content/uploads/3.png"><img class="aligncenter size-full wp-image-604" title="3" src="http://query7.com/wp-content/uploads/3.png" alt="" width="531" height="115" /></a></p>
<p>Developers love code, but sometimes even laymen want a peek under the hood.  If you&#8217;re up for it, just scroll down and click View Classic Template.</p>
<p>Keep in mind that Blogger can only use XML-formatted templates, so you’ll need to create a blank XML file on your hard drive as &lt;Your Template name&gt;.xml.</p>
<p>Now add the following code to your XML document:</p>
<pre>&lt;?xml version="1.0" encoding="UTF-8" ?&gt;
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//ES" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</a>"&gt;
&lt;html xmlns='<a href="http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</a>' xmlns:b='<a href="http://www.google.com/2005/gml/b">http://www.google.com/2005/gml/b</a>' xmlns:data='<a href="http://www.google.com/2005/gml/data">http://www.google.com/2005/gml/data</a>' xmlns:expr='<a href="http://www.google.com/2005/gml/expr">http://www.google.com/2005/gml/expr</a>'&gt;
&lt;head&gt;</pre>
<h2>Let’s start with the Blogger code to add a header element.</h2>
<p>Generally, Blogger code starts with &lt;b:</p>
<pre>&lt;b:include data='blog' name='all-head-content'/&gt;</pre>
<h2>Now we’ll add the title of the blog and post:</h2>
<pre>&lt;title&gt;&lt;data:blog.pageTitle/&gt;&lt;/title&gt;</pre>
<h2>Referencing the blog skin:</h2>
<pre>&lt;b:skin&gt;</pre>
<h2>And template details:</h2>
<pre>&lt;![CDATA[/*
/* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Name: MacDevelopmentBits
Blogger template by Sourcebits Technologies
Author: Sourcebits Technologies
Author URL: <a href="http://www.sourcebits.com/">http://www.sourcebits.com</a>
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- */</pre>
<h2>Now let’s hide the default navigation bar.</h2>
<p><a href="http://query7.com/wp-content/uploads/5.png"><img class="aligncenter size-full wp-image-606" title="5" src="http://query7.com/wp-content/uploads/5.png" alt="" width="531" height="31" /></a></p>
<pre>/*-- (Hiding the navbar) --*/
#navbar-iframe {
height:0px;
visibility:hidden;
display:none;
}</pre>
<h2>And add some custom CSS to stylize the blog.</h2>
<pre>/*-- (CSS for Blog ) --*/
body{
font-family:Georgia, "Times New Roman", Times, serif;
font-size:12px;
color:#000000;
margin:0px;
padding:0px;
background:#dedede;
}

:focus {
outline: 0;
}

.clr{
clear:both;
}

.wrap{
margin:0 auto;
padding:0px;
min-width:1200px;
}

.head{
background:#cde3e4 url(your path to header image) repeat-x;
margin-top:-1px;
}

]]&gt;&lt;/b:skin&gt;</pre>
<p>If you don&#8217;t have a domain to host images then you can use Picasa, Flickr or any other image hosting services.  Just make sure that image viewing permissions are set to public.</p>
<h2>To generate feeds and archives for your blog:</h2>
<pre>&lt;script type='text/javascript'&gt;

function rp(json){ document.write(&amp;#39;&amp;lt;ul&amp;gt;&amp;#39;);for(var i=0;i&amp;lt;numposts;i++){document.write(&amp;#39;&amp;lt;li&amp;gt;&amp;#39;);var entry=json.feed.entry[i];var posttitle=entry.title.$t;var posturl;if(i==json.feed.entry.length)break;for(var k=0;k&amp;lt;entry.link.length;k++){if(entry.link[k].rel==&amp;#39;alternate&amp;#39;){posturl=entry.link[k].href;break}}posttitle=posttitle.link(posturl);var readmorelink=&amp;quot;(more)&amp;quot;;readmorelink=readmorelink.link(posturl);var postdate=entry.published.$t;var cdyear=postdate.substring(0,4);var cdmonth=postdate.substring(5,7);var cdday=postdate.substring(8,10);var monthnames=new Array();monthnames[1]=&amp;quot;Jan&amp;quot;;monthnames[2]=&amp;quot;Feb&amp;quot;;monthnames[3]=&amp;quot;Mar&amp;quot;;monthnames[4]=&amp;quot;Apr&amp;quot;;monthnames[5]=&amp;quot;May&amp;quot;;monthnames[6]=&amp;quot;Jun&amp;quot;;monthnames[7]=&amp;quot;Jul&amp;quot;;monthnames[8]=&amp;quot;Aug&amp;quot;;monthnames[9]=&amp;quot;Sep&amp;quot;;monthnames[10]=&amp;quot;Oct&amp;quot;;monthnames[11]=&amp;quot;Nov&amp;quot;;monthnames[12]=&amp;quot;Dec&amp;quot;;if(&amp;quot;content&amp;quot;in entry){var postcontent=entry.content.$t}else if(&amp;quot;summary&amp;quot;in entry){var postcontent=entry.summary.$t}else var postcontent=&amp;quot;&amp;quot;;var re=/&amp;lt;\S[^&amp;gt;]*&amp;gt;/g;postcontent=postcontent.replace(re,&amp;quot;&amp;quot;);document.write(posttitle);if(showpostdate==true)document.write(&amp;#39; - &amp;#39;+monthnames[parseInt(cdmonth,10)]+&amp;#39; &amp;#39;+cdday);if(showpostsummary==true){if(postcontent.length&amp;lt;numchars){document.write(postcontent)}else{postcontent=postcontent.substring(0,numchars);var quoteEnd=postcontent.lastIndexOf(&amp;quot; &amp;quot;);postcontent=postcontent.substring(0,quoteEnd);document.write(postcontent+&amp;#39;...&amp;#39;+readmorelink)}}document.write(&amp;#39;&amp;lt;/li&amp;gt;&amp;#39;)}document.write(&amp;#39;&amp;lt;/ul&amp;gt;&amp;#39;)}

var numposts = 5;
var showpostdate = false;
var showpostsummary = false;
var numchars = 40;

&lt;/script&gt;</pre>
<h2>You can also insert external JavaScript files:</h2>
<pre>&lt;script language='javascript' src='<a href="http://code.jquery.com/jquery-1.4.2.min.js">http://code.jquery.com/jquery-1.4.2.min.js</a>' type='text/javascript'/&gt;
&lt;script type='text/javascript'&gt;
//your code here
&lt;/script&gt;</pre>
<h2>Now let’s replace the default Blogger favicon with a custom jobbie that suits our taste.</h2>
<pre>&lt;link href='path to favicon' rel='shortcut icon' type='favicon'/&gt;
&lt;/head&gt;
&lt;body&gt;</pre>
<h2>Include your HTML code from the blog template created earlier and let’s add a widget to your header.</h2>
<pre>&lt;b:section id='top35' maxwidgets='1' showaddelement='no'&gt;
&lt;b:widget id='Header1' locked='true' title='MacDevelopmentBits (Header)' type='Header'&gt;

&lt;b:includable id='title'&gt;
&lt;A expr:href='data:blog.homepageUrl'&gt;&lt;div class='logo'&gt;&lt;data:title/&gt;&lt;/div&gt;&lt;/A&gt;
&lt;/b:includable&gt;

&lt;b:includable id='description'&gt;
&lt;h1 class='slogan'&gt;&lt;data:description/&gt;&lt;/h1&gt; &lt;!-- It fetches the description from basic settings page. --&gt;
&lt;/b:includable&gt;

&lt;b:includable id='main'&gt;
&lt;div class='slogan1'&gt;
&lt;b:include name='title'/&gt;
&lt;/div&gt;
&lt;b:include name='description'/&gt;
&lt;/b:includable&gt;

&lt;/b:widget&gt;
&lt;/b:section&gt;</pre>
<p>Note that you can use multiple widgets in the template but they should have unique id= &#8216;Your Unique ID&#8217; and maxwidgets=&#8217;No of widgets&#8217;</p>
<h2>Now add navigation:</h2>
<pre>&lt;b:include name='nextprev'/&gt;</pre>
<p>And the conditional statement to show/hide navigation is:</p>
<pre>&lt;b:if cond='data:newerPageUrl'&gt;

&lt;span id='blog-pager-newer-link'&gt;
&lt;a class='blog-pager-newer-link' expr:href='data:newerPageUrl' expr:id='data:widget.instanceId + &amp;quot;_blog-pager-newer-link&amp;quot;' expr:title='data:newerPageTitle'&gt;&lt;data:newerPageTitle/&gt;&lt;/a&gt;
&lt;/span&gt;

&lt;/b:if&gt;
&lt;b:if cond='data:olderPageUrl'&gt;
&lt;span id='blog-pager-older-link'&gt;
&lt;a class='blog-pager-older-link' expr:href='data:olderPageUrl' expr:id='data:widget.instanceId + &amp;quot;_blog-pager-older-link&amp;quot;' expr:title='data:olderPageTitle'&gt;&lt;data:olderPageTitle/&gt;&lt;/a&gt;
&lt;/span&gt;

&lt;/b:if&gt;</pre>
<h2>And include feed links:</h2>
<pre>&lt;b:include name='feedLinks'/&gt;</pre>
<h2>To display content only on the main and archive pages, include this tag with your content:</h2>
<pre>&lt;MainOrArchivePage&gt;
&lt;1-- Your Content for Home and Archive Page--&gt;
&lt;/MainOrArchivePage&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<h2>Phew!  Almost there.  Now after saving the XML file, it’s time to upload to Blogger.</h2>
<p>Back on the Layout tab, under Edit HTML, you’ll find:</p>
<p><a href="http://query7.com/wp-content/uploads/6.png"><img class="aligncenter size-full wp-image-607" title="6" src="http://query7.com/wp-content/uploads/6.png" alt="" width="533" height="33" /></a></p>
<p>After uploading, save the template so now you can edit the file online and preview changes as you go.</p>
<p><a href="http://query7.com/wp-content/uploads/7.png"><img class="aligncenter size-full wp-image-608" title="7" src="http://query7.com/wp-content/uploads/7.png" alt="" width="533" height="45" /></a></p>
<p>And feel free to experiment!  You can always hit the <strong>Clear Edits</strong> button to revert to the last saved version.</p>
<p>Let&#8217;s take a look at an outline of the page elements used in the template:</p>
<p><a href="http://query7.com/wp-content/uploads/8.png"><img class="aligncenter size-full wp-image-609" title="8" src="http://query7.com/wp-content/uploads/8.png" alt="" width="531" height="115" /></a></p>
<p>We can also place widgets with just a few clicks.</p>
<p><a href="http://query7.com/wp-content/uploads/4.png"><img class="aligncenter size-full wp-image-605" title="4" src="http://query7.com/wp-content/uploads/4.png" alt="" width="531" height="178" /></a></p>
<p>Clicking one of the Add a Gadget links drops you into a vast pool of Blogger and third party gadgets. Pick a gadget and add it by clicking the +, however many suit your needs.</p>
<p><a href="http://query7.com/wp-content/uploads/9.png"><img class="aligncenter size-full wp-image-610" title="9" src="http://query7.com/wp-content/uploads/9.png" alt="" width="533" height="180" /></a></p>
<p>And&#8230; VOILA!</p>
<p>Here’s a sample template we did up awhile ago with a basic but unique design, just FYI.</p>
<p style="text-align: center;"><a href="http://macdevelopmentbits.blogspot.com/"><img class="aligncenter size-full wp-image-611" title="10" src="http://query7.com/wp-content/uploads/10.png" alt="" width="531" height="178" /></a></p>
<p><a href="http://macdevelopmentbits.blogspot.com/">http://macdevelopmentbits.blogspot.com/</a></p>
<p>Feel free to drop us a line with any of your Blogger templating issues.  We&#8217;re happy to lend a hand. For that matter, we&#8217;re keen to discuss any Web development projects you&#8217;re interested in.  <a href="http://www.webdevelopmentbits.com/contact">Get in touch</a> any time!</p>
]]></content:encoded>
			<wfw:commentRss>http://query7.com/blogger-template-wizardry/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML Email Compatibility Across Mail Clients</title>
		<link>http://query7.com/html-email-compatibility-across-mail-clients</link>
		<comments>http://query7.com/html-email-compatibility-across-mail-clients#comments</comments>
		<pubDate>Mon, 17 May 2010 00:29:25 +0000</pubDate>
		<dc:creator>Prakash Mohanty</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Mail]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS Table]]></category>
		<category><![CDATA[HTML mail]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://www.webdevelopmentbits.com/?p=573</guid>
		<description><![CDATA[<p style="text-align: center;"><a href="http://query7.com/wp-content/uploads/Screen-shot-2010-05-17-at-9.20.44-PM.png"><img class="size-full wp-image-578  aligncenter" title="Screen shot 2010-05-17 at 9.20.44 PM" src="http://query7.com/wp-content/uploads/Screen-shot-2010-05-17-at-9.20.44-PM.png" alt="" width="530" height="181" /></a></p>
<p>Lots of compatibility issues occur when HTML developers deal with HTML-formatted emails generated using server side languages like PHP, PERL, JAVA, etc. in their projects.</p>
<p>From time to time you’ll find the odd gobbledygooked message in your Web-based email app, but generally speaking HTML-formatted messages render flawlessly on the Web.  On the other hand, desktop mail clients such as Outlook on Windows, Mail.app on OS X, and the rainbow flavors of desktop Linux (Ubuntu, Centos, and so on) routinely have rendering issues with HTML-based email.</p>
<p>Despite the incredible advances in modern software, why does this continue to happen?</p>
<p>The answer is quite simple: certain mail clients ignore certain HTML tags.  Now there’s no universal rule as to which ignores what, but the more you code the more you’ll learn, so for now let’s take a look at one case with Outlook.</p>
<p>For many users, email ‘stationery’ conjures up late 90s memories of <a href="http://www.incredimail.com/english/splash.aspx">Incredimail</a> and a general, unsavory n00bishness.  But for marketing purposes a well-designed mail template, consisting of a stylish background image, thoughtful font selection, layout and copy equates to sales.  Perhaps thousands of people – from prospective clients to the media – will view mail&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://query7.com/wp-content/uploads/Screen-shot-2010-05-17-at-9.20.44-PM.png"><img class="size-full wp-image-578  aligncenter" title="Screen shot 2010-05-17 at 9.20.44 PM" src="http://query7.com/wp-content/uploads/Screen-shot-2010-05-17-at-9.20.44-PM.png" alt="" width="530" height="181" /></a></p>
<p>Lots of compatibility issues occur when HTML developers deal with HTML-formatted emails generated using server side languages like PHP, PERL, JAVA, etc. in their projects.</p>
<p>From time to time you’ll find the odd gobbledygooked message in your Web-based email app, but generally speaking HTML-formatted messages render flawlessly on the Web.  On the other hand, desktop mail clients such as Outlook on Windows, Mail.app on OS X, and the rainbow flavors of desktop Linux (Ubuntu, Centos, and so on) routinely have rendering issues with HTML-based email.</p>
<p>Despite the incredible advances in modern software, why does this continue to happen?</p>
<p>The answer is quite simple: certain mail clients ignore certain HTML tags.  Now there’s no universal rule as to which ignores what, but the more you code the more you’ll learn, so for now let’s take a look at one case with Outlook.</p>
<p>For many users, email ‘stationery’ conjures up late 90s memories of <a href="http://www.incredimail.com/english/splash.aspx">Incredimail</a> and a general, unsavory n00bishness.  But for marketing purposes a well-designed mail template, consisting of a stylish background image, thoughtful font selection, layout and copy equates to sales.  Perhaps thousands of people – from prospective clients to the media – will view mail on this template and associate it with your corporate brand, so perfection is key.</p>
<p style="text-align: center;"><img class="size-medium wp-image-579   aligncenter" title="Ye Gods!!  Incredimail!!! " src="http://www.webdevelopmentbits.com/wp-content/uploads/2010/05/back1-300x240.gif" alt="" width="248" height="199" /></p>
<p style="text-align: left;">Now let’s focus on the background image.  Many HTML developers will begin by putting CSS styles in the header of the HTML email directly, or when that fails try working around the problem using div tags and inline CSS.  But either way the results are borked.  Why?  Because Outlook ignores the CSS property “background-image”.</p>
<p style="text-align: left;">After so much trial and error, the solution we finally decided on was a pure table-based layout with inline CSS – with the CSS being restricted to each individual table cell since Outlook does not ignore those.  We’ve found this not only renders properly in Outlook, but all the other major desktop and Web clients, too.</p>
<p>And here&#8217;s how good it can look.</p>
<p style="text-align: center;"><a href="http://query7.com/wp-content/uploads/Image-xbox.png"><img class="size-full wp-image-580  aligncenter" title="Image-xbox" src="http://query7.com/wp-content/uploads/Image-xbox.png" alt="" width="539" height="746" /></a></p>
<p>For your reference, here are few examples of HTML tags that are compatible with almost all desktop and Web-based mail clients.</p>
<pre>&lt;table cellspacing="0" cellpadding="0" bgcolor="#6b6f7a"&gt;
    &lt;tr&gt;
        &lt;td width="55" height="53" valign="top"&gt;
            &lt;img src="http://domainname/media/mail/header_01.jpg" alt="" width="78" height="53" /&gt;
        &lt;/td&gt;
        &lt;td style="font-family: Arial,sans-serif;" width="546" bgcolor="#ffffff"&gt;&lt;/td&gt;
        &lt;td style="border-bottom: 1px solid #ffffff; padding: 0pt 15px; background-color: #b6d354; color: #ffffff; text-transform: uppercase; height: 43px; vertical-align: middle; font-size: 12px;"&gt;&lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;</pre>
<p>CSS style property -</p>
<pre>word-wrap: break-all;</pre>
<p>With the absence of a background tag, images can be used inside the</p>
<pre>&lt;table&gt;</pre>
<p>and</p>
<pre>&lt;td&gt;</pre>
<p>tags.</p>
<p>Happy HTML email  coding!!</p>
]]></content:encoded>
			<wfw:commentRss>http://query7.com/html-email-compatibility-across-mail-clients/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>See, Yes! Yes! – GO</title>
		<link>http://query7.com/see-yes-yes-go</link>
		<comments>http://query7.com/see-yes-yes-go#comments</comments>
		<pubDate>Tue, 09 Dec 2008 21:35:10 +0000</pubDate>
		<dc:creator>Dilip Shukla</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Web Standard]]></category>

		<guid isPermaLink="false">http://www.webdevelopmentbits.com/?p=326</guid>
		<description><![CDATA[Modular CSS needs to be developed and all inherited properties needs to commented within CSS declaration so one don't repeat same CSS again and selectors needs to named by some naming convention (e.g. prefixing every declaration by module).

Modules needs to be devised in such way so it remain plug and play if plugged in different application.]]></description>
			<content:encoded><![CDATA[<h3>ID vs Class Vs Tag Vs Pseudo selectors</h3>
<p>:</p>
<p>All CSS developers know this fact there are verity of CSS selectors, CSS rules can be applied by using any one or combination of available selectors. We can apply CSS rules by inline CSS as value of style attribute of HTML tags or internal CSS by using style tag, or we can go for external style sheet. Inline CSS is bad and must be avoided. Inline style declarations should be limited to for some run time CSS manipulation only.</p>
<p>In summery using external CSS is preferred way, Its success depends on use of inline or internal CSS, since in effectiveness of application of CSS rules hierarchy, inline CSS is topmost level after that comes internal CSS and external CSS comes bellow them.</p>
<p>Same way &#8216;id&#8217; is above &#8216;class&#8217; in hierarchy of effectiveness of CSS selectors. Id can&#8217;t be used more than once in a page (its preferred to use one id for same element throughout application not only withing page).</p>
<p>Rigid element&#8217;s CSS should be served by using &#8216;id&#8217; CSS selectors, which will be used only once e.g. header, footer etc. Elements with dynamic nature having shared or inherited property with possible multiple occurrence need fetch CSS rules by &#8216;class&#8217; selectors.</p>
<p>Use of &#8216;tag&#8217; selectors can be decided by doing some research on default look and feel of elements of application. psudo CSS selectors can be used if backward compatibility with older browsers not needed.</p>
<p>Inheritance playes a great role in  in this that&#8217;s why planning is uttermost important. we should always keep in mind we are just contributing in development of some application which might have multiple developers hence coding must stick to requirements and standards of application so any one can understand and edit code of each other.</p>
<p>Modular CSS needs to be developed and all inherited properties needs to commented within CSS declaration so one don&#8217;t repeat same CSS again and selectors needs to named by some naming convention (e.g. prefixing every declaration by module).</p>
<p>Modules needs to be devised in such way so it remain plug and play if plugged in different application.</p>
<h3>Resources</h3>
<p>:</p>
<ul>
<li><a href="http://www.smashingmagazine.com/2008/11/12/12-principles-for-keeping-your-code-clean/">Make your markup clean</a></li>
<li><a href="http://www.jquery.com">Don&#8217;t fear to java script RIA is future. Jquery might be good place to start (and possibly end of search).</a></li>
<li><a href="http://www.smashingmagazine.com">Keep a tab on latest, fresh and trust worthy tips, tricks, trends, news etc related to web development.</a></li>
<li><a href="http://code.google.com/p/doctype/">Get benefit and give benefit by being active part of revolution in web development. Join the wiki maintained by web developers for web developer from Google. </a></li>
<li><a href="http://www.alistapart.com/">Know more about standards, stick to them and force them upon you, make web development your passion and web standards your religion. </a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://query7.com/see-yes-yes-go/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>See, Yes! Yes! – STEADY</title>
		<link>http://query7.com/see-yes-yes-steady</link>
		<comments>http://query7.com/see-yes-yes-steady#comments</comments>
		<pubDate>Wed, 12 Nov 2008 10:27:58 +0000</pubDate>
		<dc:creator>Dilip Shukla</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Best Practice]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.webdevelopmentbits.com/?p=260</guid>
		<description><![CDATA[Not every validated webpage is accessible or ideal but every invalid web page is bad. So always try to validate. First by validating from validators and then by common sense, because technically a page with thousands of nested DIVs are valid. button stimulated out of div is valid. But question is... Is it really?]]></description>
			<content:encoded><![CDATA[<p>Hello Readers,</p>
<p>Here I am with second part of 3-part CSS primer.</p>
<p>In my previous <a href="http://www.webdevelopmentbits.com/see-yes-yes-ready/">post</a>, I briefly described importance of planning and resetting CSS, some possible &#8216;Do&#8217;s and &#8216;Don&#8217;t&#8217; s. I believe in outlining thing and let your mind fly in free space. My outline for CSS primer can be visualized by connecting following dots.</p>
<p><strong>Object Oriented approach</strong>:</p>
<p>Adopting <a href="http://www.webdevelopmentbits.com/philosophy-of-object-oriented-programming-and-software-design/">object-oriented philosophy</a> is always beneficial for development&#8230;and CSS is no exception. How? I tell you. Object oriented approach in terms of CSS translates as knowing and taking advantage of parent-child relation in DOM and inheriting CSS rules, by designing CSS optimized way, less repeated and multiple times used code indicates more object oriented CSS.</p>
<p><strong>Progressive Enhancement AKA Graceful degradation</strong>:</p>
<p>There is a term <a href="http://www.alistapart.com/articles/understandingprogressiveenhancement">progressive enhancement</a>, that is &#8220;incremental addition of elements&#8221;. Which means we should categorize content and content containers, parametrized by accessibility of content, covering target audience.</p>
<p>We should first care about, any content should not be missing which our target audience must get, by keeping in mind what would be possible access terminal for navigating the web page. e.g. PC, PDA etc. It includes low configured and not up to date browsers. Afterward one can enhance page by adding CSS and Javascript cylinders.</p>
<p><strong>Categorization, flexibility and re-usability</strong>:</p>
<p>By thinking this way we can get mostly auto categorized content. From here we can start implementing re-usability. We can aaply <a href="http://www.alistapart.com/articles/progressiveenhancementwithcss">progressive enhancement with CSS</a> by dividing one big-fat-utf8 CSS into multiple CSS files. e.g. IE specific CSS and print CSS and also CSS responsible for particulars like color and typography css.<strong></strong></p>
<p>If project demands we can keep &#8216;themes&#8217; too in mind. <a href="http://www.csszengarden.com/">CSSZenGarden</a> is extreme example of this. To implement this we should deeply think about DOM structure, basic skeleton X/HTML and naming of class/ids. naming of class/id should be content dependent, not on how its going to render or where its going to positioned.</p>
<p>Always try to minimize the unnecessary  tags. e.g. wrapping everything in a div or adding extra wrappers for display purpose only. I suggest to add extra divs to stylize things by Javascript in run time, e.g. rounded corners, or multiple background images, or its not always required to wrap ul and set of inks or img tags into any box level container like div&#8230;since CSS rules can be applied on any X/HTML element.</p>
<p>Use multiple class and loosely coupled classes massively.  Multiple classes help to increase re-usability.</p>
<p><strong>example:</strong><br />
<code>&lt;span class="block fs20"&gt;Multiple class&lt;/span&gt;</code></p>
<p>use of &#8216;!important&#8217; keyword is very useful in case of using multiple class, where we might need to override few css rules. but &#8216;!important&#8217; should be used carefully. Personally I prefer to use &#8216;!important&#8217; with loosely coupled classes declared against inherited property.<br />
e.g.: following will always work disregarding its position in CSS file against inherited bold property of font.</p>
<p><code>font-weight:normal !important;</code></p>
<p><strong>Code Management:</strong></p>
<p>Organize your code in properly commented grouped sections&#8230;e.g. header, body, navigation, footer etc.</p>
<p>here we know the importance of neutral class names. If naming of CSS classes will be accoring common template not according page wise us its easy to group related CSS.</p>
<p><strong>example:</strong></p>
<p>What if we name common right panel of web page &#8216;homecol&#8217; without thinking too much? either we have to rename it on every page its appearing and duplicating same css to render it identicaly, or we have to use &#8216;homecol&#8217; even in contact page.</p>
<p><strong>After all&#8230;</strong></p>
<p>Always try to understand any rendering issue, before throwing some random code to increase vertical length of your CSS file. Every browser supports CSS (If I am not wrong 90% identically) if application of CSS is pure and CSS rules are plugged in right socket. So think twice before re-searching on Google for some hacks to override something which might fill dirt on your accessible web page. Ya of course there are many of known bugs (e.g. IE6 PNG) but id doesn&#8217;t mean every issue, you are facing is a bug and you can&#8217;t overcome them until import some hack from Venus.</p>
<p>The last word before I end this second post from 3 part series on CSS, I want to say is&#8230;</p>
<p>Not every validated web page is accessible or ideal but every invalid web page is bad. So always try to validate. First by validating from validators and then by common sense, because technically a page with thousands of nested DIVs are valid. button stimulated out of div is valid. But question is&#8230; Is it really?</p>
<p>Think on it, till I am cooking third post <a href="http://www.webdevelopmentbits.com/see-yes-yes-go/">CSS Go</a></p>
]]></content:encoded>
			<wfw:commentRss>http://query7.com/see-yes-yes-steady/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Philosophy of Object Oriented Programming and Software Design</title>
		<link>http://query7.com/philosophy-of-object-oriented-programming-and-software-design</link>
		<comments>http://query7.com/philosophy-of-object-oriented-programming-and-software-design#comments</comments>
		<pubDate>Sat, 01 Nov 2008 14:33:25 +0000</pubDate>
		<dc:creator>yaapa</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Zend]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Object-Oriented Programming]]></category>
		<category><![CDATA[philosophy]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.webdevelopmentbits.com/?p=241</guid>
		<description><![CDATA[Now, I am no expert in OOP or software design, but here's a philosophy which might help you make the most of what you know about OOP and software design.]]></description>
			<content:encoded><![CDATA[<p>Now, I am no expert in OOP or software design, but here&#8217;s a philosophy which might help you make the most of what you know about OOP and software design. I have observed and have read reports that people absorb most information when it&#8217;s presented in lists, preferably bulleted. So without any further ramling, I present you my bulleted philosophy of OOP and Software Design.</p>
<ul>
<li>It&#8217;s not how much and what you know; but what you can do with what you know, which&#8217;s important.</li>
</ul>
<ul>
<li>Ability to implement Polymorphism, Inheritance, private, public namespaces, static methods etc is no guarantee you are a good OO developer.</li>
</ul>
<ul>
<li>OOP is useless if you don&#8217;t use it to create good software design (architecture).</li>
</ul>
<ul>
<li>Using packages, classes, etc does not guarantee good software design.</li>
</ul>
<ul>
<li>When designing your software, think of it as an electronic device you are designing.</li>
</ul>
<ul>
<li>Sketch out the &#8216;electronic device&#8217;. Label the different components, list their functionalities.</li>
</ul>
<ul>
<li>Stay hungry, stay foolish.</li>
</ul>
<p>That&#8217;s it for today. I hope you are blessed with more knowledge, and the ability to make the best use of them.  Adios!</p>
]]></content:encoded>
			<wfw:commentRss>http://query7.com/philosophy-of-object-oriented-programming-and-software-design/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>See, Yes! Yes! – READY</title>
		<link>http://query7.com/see-yes-yes-ready</link>
		<comments>http://query7.com/see-yes-yes-ready#comments</comments>
		<pubDate>Tue, 28 Oct 2008 15:58:08 +0000</pubDate>
		<dc:creator>Dilip Shukla</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Novice]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://www.webdevelopmentbits.com/?p=184</guid>
		<description><![CDATA[<p><span>In today&#8217;s web arena, CSS has proved its importance in rigid way. Web content is no more targeted to web browsers only, Web content is been served for a verity of media now days. To efficiently handle such situation CSS plays a very crucial role.</span></p>
<p><span>In order to extract maximum pulp from CSS fruit there are few things needs to keep in mind. Although rule of thumb is efficiency is directly proportional to experience but I&#8217;ll point out few options 3-part post series <a title="See Yes! Yes! -READY" href="http://www.webdevelopmentbits.com/see-yes-yes-ready/">See, Yes! Yes! &#8211; READY</a>,  <a href="http://www.webdevelopmentbits.com/see-yes-yes-steady/">See, Yes! Yes! &#8211; STEADY</a> and </span><a href="http://www.webdevelopmentbits.com/see-yes-yes-go/"><span>See, Yes! Yes! &#8211; GO</span></a>.<span> which can help novice CSS developers to take right diversions. </span></p>
<p><span>All of following points are optional and one can modify them according to needs and/or simply drop the idea.</span></p>
<h3>Big Picture:</h3>
<p>Planning is a must for mid or big projects&#8230;for small projects one can instantly start coding.</p>
<p>While coding for new design, web designer must analyze the design mock-up and slice the design by keeping in mind the facts which are resultant of observation and guideline of website/blog/web application.</p>
<p><strong>e.g.</strong></p>
<ul>
<li>What portion of design mock can be translated by using CSS rules instead</li></ul><p>&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p><span>In today&#8217;s web arena, CSS has proved its importance in rigid way. Web content is no more targeted to web browsers only, Web content is been served for a verity of media now days. To efficiently handle such situation CSS plays a very crucial role.</span></p>
<p><span>In order to extract maximum pulp from CSS fruit there are few things needs to keep in mind. Although rule of thumb is efficiency is directly proportional to experience but I&#8217;ll point out few options 3-part post series <a title="See Yes! Yes! -READY" href="http://www.webdevelopmentbits.com/see-yes-yes-ready/">See, Yes! Yes! &#8211; READY</a>,  <a href="http://www.webdevelopmentbits.com/see-yes-yes-steady/">See, Yes! Yes! &#8211; STEADY</a> and </span><a href="http://www.webdevelopmentbits.com/see-yes-yes-go/"><span>See, Yes! Yes! &#8211; GO</span></a>.<span> which can help novice CSS developers to take right diversions. </span></p>
<p><span>All of following points are optional and one can modify them according to needs and/or simply drop the idea.</span></p>
<h3>Big Picture:</h3>
<p>Planning is a must for mid or big projects&#8230;for small projects one can instantly start coding.</p>
<p>While coding for new design, web designer must analyze the design mock-up and slice the design by keeping in mind the facts which are resultant of observation and guideline of website/blog/web application.</p>
<p><strong>e.g.</strong></p>
<ul>
<li>What portion of design mock can be translated by using CSS rules instead of image?</li>
<li>Whether background is repeating? Design is fixed width or liquid?</li>
<li>What element of design is going to change dimension dynamically?</li>
<li>Re-usability issues needs to be addressed so back-end developer (if any) don&#8217;t face any difficulty to plug reusable components.</li>
<li>Sliced images need to save as optimized for  web, as PNG if element is using alpha transparency and if it uses square shape without tranparency JPG images work better in most cases.</li>
</ul>
<h3>CSS Reset:</h3>
<p>Purpose of using <a title="CSS Reset" href="http://perishablepress.com/press/2007/10/23/a-killer-collection-of-global-css-reset-styles/">CSS Reset</a> is to neutralize default rendering of browser, in order to equalize rendering of web page across different browsers.</p>
<p>Its entirly optional for web developers whether to use one or not. Even if Web Designer is very keen to use one, s/he must consider the big picture where the CSS is going to be used (including some future prediction).</p>
<p>In few cases i prefer not to use CSS reset as in Blogs where content is generated by user and web designer don&#8217;t have exact control over X/HTML tags.<br />
Following is my reset.css. I have cooked this starter dish by borrowing some spices from <a id="yla6" title="here" href="http://perishablepress.com/press/2007/10/23/a-killer-collection-of-global-css-reset-styles/">here</a> and few from experience.</p>
<p><code>/* Common CSS and CSS reset Start */<br />
html, body, div, span, applet, object, iframe, table, caption, tbody, tfoot, thead, tr, th, td,<br />
del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var,<br />
h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code,<br />
dl, dt, dd, ol, ul, li, fieldset, form, label, legend {<br />
vertical-align: baseline;<br />
font-family: inherit;<br />
font-weight: inherit;<br />
font-style: inherit;<br />
font-size: 100%;<br />
outline: 0;<br />
padding: 0;<br />
margin: 0;<br />
border: 0;<br />
}<br />
/* remember to define focus styles! */<br />
:focus {<br />
outline: 0;<br />
}<br />
/*links*/<br />
a{<br />
text-decoration:none;<br />
}<br />
a:hover{<br />
text-decoration:none;<br />
}<br />
/*List*/<br />
ol, ul {<br />
list-style: none;<br />
}<br />
/* tables still need cellspacing="0" in the markup */<br />
table {<br />
border-collapse: separate;<br />
border-spacing: 0;<br />
}<br />
caption, th, td {<br />
font-weight: normal;<br />
text-align: left;<br />
}<br />
/* Common Display Rules*/<br />
.block{<br />
display:block;<br />
}<br />
.none{<br />
display:none;<br />
}<br />
.inline{<br />
display:inline;<br />
}<br />
.clear{<br />
clear:both;<br />
}<br />
.relative{<br />
position:relative;<br />
}<br />
.absolute{<br />
position:absolute;<br />
}<br />
.floatleft{<br />
float:left;<br />
}<br />
.floatright{<br />
float:right;<br />
}<br />
.center_div{<br />
margin:0 auto;<br />
}<br />
.bold{<br />
font-weight:700;<br />
}<br />
.normal{<br />
font-weight:normal !important;<br />
}<br />
.underline, .underline:hover{<br />
text-decoration:underline;<br />
}<br />
/* Headings*/<br />
h1, h2, h3, h4, h5, h6{<br />
font-family:Arial, HelveticaNeue, Helvetica, sans-serif;<br />
font-weight:700;<br />
}<br />
h1{<br />
font-size:18px;<br />
}<br />
h2{<br />
font-size:17px;<br />
}<br />
h3{<br />
font-size:16px;<br />
}<br />
h4{<br />
font-size:14px;<br />
}<br />
h5{<br />
font-size:15px;<br />
}<br />
h6{<br />
font-size:13px;<br />
}<br />
/* Font Size */<br />
.fs8{<br />
font-size:8px;<br />
}<br />
.fs9{<br />
font-size:9px;<br />
}<br />
.fs10{<br />
font-size:10px;<br />
}<br />
.fs11{<br />
font-size:11px;<br />
}<br />
.fs12{<br />
font-size:12px;<br />
}<br />
.fs13{<br />
font-size:13px;<br />
}<br />
.fs14{<br />
font-size:14px;<br />
}<br />
.fs15{<br />
font-size:15px;<br />
}<br />
.fs16{<br />
font-size:16px;<br />
}<br />
.fs17{<br />
font-size:17px;<br />
}<br />
.fs18{<br />
font-size:18px;<br />
}<br />
.fs19{<br />
font-size:19px;<br />
}<br />
.fs20{<br />
font-size:20px;<br />
}<br />
.fs21{<br />
font-size:21px;<br />
}<br />
.fs22{<br />
font-size:22px;<br />
}<br />
.fs23{<br />
font-size:23px;<br />
}<br />
.fs24{<br />
font-size:24px;<br />
}<br />
.fs25{<br />
font-size:25px;<br />
}<br />
.fs26{<br />
font-size:26px;<br />
}<br />
.fs27{<br />
font-size:27px;<br />
}<br />
.fs28{<br />
font-size:28px;<br />
}<br />
.fs29{<br />
font-size:29px;<br />
}<br />
.fs30{<br />
font-size:30px;<br />
}<br />
/* Remove Inherited Style*/<br />
.no_margin{<br />
margin:0 !important;<br />
}<br />
.no_padding{<br />
padding:0 !important;<br />
}<br />
.no_border{<br />
border:none !important;<br />
}<br />
.no_dec{<br />
text-decoration:none !important;<br />
}<br />
/* Common CSS and CSS reset End */</code></p>
<p>Hmm&#8230;I think its a good breakfast.</p>
<p>So guys allow me to take a break&#8230;I&#8217;ll be digging further into CSS mine very soon on my next post <a href="http://www.webdevelopmentbits.com/see-yes-yes-steady/">See, Yes! Yes! &#8211; STEADY</a> .</p>
]]></content:encoded>
			<wfw:commentRss>http://query7.com/see-yes-yes-ready/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>A Tableless Table – Exploring the power of CSS3</title>
		<link>http://query7.com/exploring-the-power-of-css3</link>
		<comments>http://query7.com/exploring-the-power-of-css3#comments</comments>
		<pubDate>Mon, 27 Oct 2008 11:26:55 +0000</pubDate>
		<dc:creator>Chinmay Chiranjeeb</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Beauty of CSS]]></category>
		<category><![CDATA[CSS Table]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[Tableless table]]></category>

		<guid isPermaLink="false">http://www.webdevelopmentbits.com/?p=138</guid>
		<description><![CDATA[<p>The recent browser versions like Firefox 3, Google Chrome, Internet Explorer 8, Opera 9.5 and Safari 3 are now coming with a great and brand new support: CSS3. Some of the new properties are introduced and here I am going to describe the <code>table</code> value for the <code>display</code> property.</p>
<p>To align data in a tabular structure we can use a common table using the HTML tags &#60;table&#62;, &#60;tr&#62;, &#60;td&#62; nonetheless we all know that by using that we are violating the latest web standards, right?But hold on for a second. I&#8217;m just going to introduce you a hot new way to code it using nothing else than div tags with the great CSS3 and the data will appear just like a table. Believe, that&#8217;s true!</p>
<p><strong>Here is an example:</strong></p>
<p><code><br />
&#60;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&#62;<br />
&#60;html xmlns="http://www.w3.org/1999/xhtml"&#62;<br />
&#60;head&#62;<br />
&#60;meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /&#62;<br />
&#60;title&#62;Some Page&#60;/title&#62;<br />
&#60;style type="text/css"&#62;<br />
.table {<br />
display: table;<br />
width:100%;<br />
}<br />
.row {<br />
display: table-row;<br />
width:100%;<br />
}<br />
.cell {<br />
display: table-cell;<br />
border: 1px solid blue;<br />
padding: 1em;<br />
width: 33%;<br />
}<br />
.element1 {<br />
background:#0099FF;<br /></code>&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>The recent browser versions like Firefox 3, Google Chrome, Internet Explorer 8, Opera 9.5 and Safari 3 are now coming with a great and brand new support: CSS3. Some of the new properties are introduced and here I am going to describe the <code>table</code> value for the <code>display</code> property.</p>
<p>To align data in a tabular structure we can use a common table using the HTML tags &lt;table&gt;, &lt;tr&gt;, &lt;td&gt; nonetheless we all know that by using that we are violating the latest web standards, right?But hold on for a second. I&#8217;m just going to introduce you a hot new way to code it using nothing else than div tags with the great CSS3 and the data will appear just like a table. Believe, that&#8217;s true!</p>
<p><strong>Here is an example:</strong></p>
<p><code><br />
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;<br />
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;<br />
&lt;head&gt;<br />
&lt;meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /&gt;<br />
&lt;title&gt;Some Page&lt;/title&gt;<br />
&lt;style type="text/css"&gt;<br />
.table {<br />
display: table;<br />
width:100%;<br />
}<br />
.row {<br />
display: table-row;<br />
width:100%;<br />
}<br />
.cell {<br />
display: table-cell;<br />
border: 1px solid blue;<br />
padding: 1em;<br />
width: 33%;<br />
}<br />
.element1 {<br />
background:#0099FF;<br />
}<br />
.element2 {<br />
background:#00FF99;<br />
}<br />
.element3 {<br />
background:#FFFF99;<br />
}<br />
&lt;/style&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;div class="table"&gt;<br />
&lt;div class="row"&gt;<br />
&lt;div class="cell element1"&gt;<br />
&lt;p&gt;&lt;strong&gt;Web Development &lt;/strong&gt;&lt;/p&gt;<br />
&lt;p&gt;PHP &amp;amp; MySQL&lt;br /&gt;<br />
Ruby on Rails&lt;br /&gt;<br />
ActionScript 3.0 / Flash / Flex / Adobe Integrated Runtime&lt;br /&gt;<br />
Amazon Web Services&lt;br /&gt;<br />
Zend Framework&lt;br /&gt;<br />
JavaScript / AJAX&lt;br /&gt;<br />
XHTML &amp;amp; CSS Scripting&lt;br /&gt;<br />
Content Management System&lt;/p&gt;<br />
&lt;/div&gt;<br />
&lt;div class="cell element2"&gt;</code><code>&lt;p&gt;&lt;strong&gt;Windows Development&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;<br />
&lt;div class="cell element3"&gt;&lt;p&gt;&lt;strong&gt;Mac &amp;amp; iPhone Development&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</code></p>
<p><strong>Screen shots:</strong></p>
<p>Firefox 3</p>
<p style="text-align: center;"><a href="http://query7.com/wp-content/uploads/ff.png"><img class="alignnone size-medium wp-image-165" title="Firefox3" src="http://www.webdevelopmentbits.com/wp-content/uploads/2008/10/ff-300x181.png" alt="" width="300" height="181" /></a></p>
<p>Google Chrome</p>
<p style="text-align: center;"><a href="http://query7.com/wp-content/uploads/google.png"><img class="alignnone size-medium wp-image-166" title="Google Chrome" src="http://www.webdevelopmentbits.com/wp-content/uploads/2008/10/google-300x182.png" alt="" width="300" height="182" /></a></p>
<p>Internet Explorer 8</p>
<p style="text-align: center;"><a href="http://query7.com/wp-content/uploads/ie8.png"><img class="alignnone size-medium wp-image-168" title="Internet Explorer 8" src="http://www.webdevelopmentbits.com/wp-content/uploads/2008/10/ie8-300x157.png" alt="" width="300" height="157" /></a></p>
<p>Opera 9.5</p>
<p style="text-align: center;"><a href="http://query7.com/wp-content/uploads/opera.png"><img class="alignnone size-medium wp-image-169" title="Opera 9.5" src="http://www.webdevelopmentbits.com/wp-content/uploads/2008/10/opera-300x149.png" alt="" width="300" height="149" /></a></p>
<p>Safari 3</p>
<p style="text-align: center;"><a href="http://query7.com/wp-content/uploads/safari.png"><img class="alignnone size-medium wp-image-170" title="Safari 3" src="http://www.webdevelopmentbits.com/wp-content/uploads/2008/10/safari-300x207.png" alt="" width="300" height="207" /></a></p>
<p>Internet Explorer7</p>
<p style="text-align: center;"><a href="http://query7.com/wp-content/uploads/ie7.png"><img class="alignnone size-medium wp-image-167" title="Internet Explorer 7" src="http://www.webdevelopmentbits.com/wp-content/uploads/2008/10/ie7-300x204.png" alt="" width="300" height="204" /></a></p>
<p><strong>Working Principle:</strong><br />
The display property specifies a range of table-related values to make elements display and behave as they were table elements.</p>
<p>The new available display values for drawing tables are:<br />
<code>table</code> to make the element behave like a table element<br />
<code>table-row</code> to make the element behave like a table row (tr) element<br />
<code>table-cell</code> to make the element behave like a table cell (td) element<br />
<code>table-row-group</code> to make the element behave like a table body row group (tbody) element<br />
<code>table-header-group</code> to make the element behave like a table header row group (thead) element<br />
<code>table-footer-group</code> to make the element behave like a table footer row group (tfoot) element<br />
<code>table-caption</code> to make the element behave like a table caption element<br />
<code>table-column</code> to make the element behave like a table column (col) element<br />
<code>table-column-group</code> to make the element behave like a table column group (colgroup) element</p>
<p>The table element in HTML is a semantic structure: it describes what data is. Therefore, you should only use the table element if the data you are marking up is tabular &#8211; for example, a table of financial information.</p>
<p>On the other hand, table value of the display property is simply an indication of how something should look in the browser &#8211; it has no semantic meaning. Using a table element for your layout tells the browser, “This data is tabular.”</p>
<p>Also we have to take care of, not to use display: table; property on a bunch of div elements when the data needs to be present in tabular format. Else simply avoid to use this property.</p>
<p><strong>The main advantages on using this new structure are:</strong></p>
<ul>
<li> Place the data in tabular manner without violating the latest web standards.</li>
<li> No need of specify the <code>cellpadding="0" cellspacing="0"</code>.</li>
<li> No need to make the <code>border="0"</code>.</li>
<li> No need to make the <code>margin</code> and <code>padding</code> 0 of table, tr, td.</li>
<li> Print the page in tabular format without wired.</li>
<li>No need to specify the <code>height</code>, as the content added it will automatically adjust the height of the row and columns with specified background.</li>
</ul>
<p><strong>As we&#8217;re not living in Wonderland, we also have some disadvantages, as follow:</strong></p>
<ul>
<li> Only latest browsers support this property.</li>
<li> Mainly IE 7, IE6 are not supporting this property. They show the data in wired manner.</li>
</ul>
<p>The solution would be to use this property only when we are going to develop a website for latest browsers and just ignoring the older versions. But as the statistics shows, most of the users still using IE6 and IE7.</p>
<p>To implement this in realistic world won’t be feasible to use CSS3’s advanced layout features for at least 4 or 5 years, once users need to upgrade themselves from the stone age of Internet to our beautiful high-tech development world.</p>
]]></content:encoded>
			<wfw:commentRss>http://query7.com/exploring-the-power-of-css3/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

