<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6136688997431165820</id><updated>2012-02-17T07:34:16.879+05:30</updated><category term='Usability'/><category term='Browser'/><category term='CSS Tutorials'/><category term='CSS'/><category term='Accessibility'/><category term='Javascript'/><category term='Hacks'/><category term='Article'/><category term='css3'/><category term='IE'/><category term='ActionScript Dictionary'/><category term='xhtml'/><category term='YUI'/><category term='Flash Tutorials'/><title type='text'>UI &amp; Flash</title><subtitle type='html'>Usefull readings in Web standards, Accessibility, Usability, CSS, Xhtml, Javascript, browser compactibility , flash etc..</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>41</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-8696516425543964759</id><published>2008-06-12T10:55:00.001+05:30</published><updated>2008-06-12T10:55:48.993+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='YUI'/><title type='text'>smooth accordion effect with yahoo UI</title><content type='html'>http://dev.notoptimal.net/2008/06/simple-yui-powered-accordion-widget.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-8696516425543964759?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/8696516425543964759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=8696516425543964759' title='37 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/8696516425543964759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/8696516425543964759'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2008/06/smooth-accordion-effect-with-yahoo-ui.html' title='smooth accordion effect with yahoo UI'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>37</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-4707678830722413653</id><published>2008-06-12T09:47:00.001+05:30</published><updated>2008-06-12T11:34:59.954+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='IE'/><title type='text'>Tools for IE</title><content type='html'>Finding Ui bugs in IE was always a problem..&lt;br /&gt;I found some good tools for this&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=e59c3964-672d-4511-bb3e-2d5e1db91038&amp;amp;displaylang=en"&gt;IE Developer Tool bar&lt;/a&gt;&lt;br /&gt;&lt;p class="MsoPlainText"&gt;Dev Toolbar type for IE:&lt;/p&gt;&lt;p class="MsoPlainText"&gt;for multiple IE version in the same machine&lt;br /&gt;&lt;/p&gt;&lt;a href="http://tredosoft.com/Multiple_IE"&gt;http://tredosoft.com/Multiple_IE&lt;/a&gt;&lt;br /&gt; &lt;p class="MsoPlainText"&gt;&lt;a href="http://www.debugbar.com/"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoPlainText"&gt;&lt;a href="http://www.debugbar.com/"&gt;http://www.debugbar.com/&lt;/a&gt;&lt;/p&gt;    &lt;p class="MsoPlainText"&gt;&lt;o:p&gt; &lt;/o:p&gt;And a very interesting concept:&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;a href="http://www.my-debugbar.com/wiki/IETester/HomePage"&gt;http://www.my-debugbar.com/wiki/IETester/HomePage&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-4707678830722413653?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/4707678830722413653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=4707678830722413653' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/4707678830722413653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/4707678830722413653'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2008/06/tools-for-ie.html' title='Tools for IE'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-4221507440924181728</id><published>2008-03-19T10:02:00.001+05:30</published><updated>2008-03-19T10:02:40.193+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS Tutorials'/><title type='text'>rounded corners without images</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;h1&gt;Nifty Corners: rounded corners without images&lt;/h1&gt; &lt;address&gt;&lt;br/&gt;&lt;/address&gt;Stripe it to get it rounded &lt;p&gt;The basic idea of Nifty Corners is to get some coulored lines to get the rounded effect. This is the markup to get a rounded div:&lt;/p&gt; &lt;p class='codehere'&gt;&lt;blockquote&gt;&lt;font color='#cc33cc'&gt; &amp;amp;lt;div id="container"&amp;amp;gt;&amp;amp;lt;b class="rtop"&amp;amp;gt;  &amp;amp;lt;b class="r1"&amp;amp;gt;&amp;amp;lt;/b&amp;amp;gt; &amp;amp;lt;b class="r2"&amp;amp;gt;&amp;amp;lt;/b&amp;amp;gt; &amp;amp;lt;b class="r3"&amp;amp;gt;&amp;amp;lt;/b&amp;amp;gt; &amp;amp;lt;b class="r4"&amp;amp;gt;&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;!--content goes here --&amp;amp;gt;&amp;amp;lt;b class="rbottom"&amp;amp;gt;  &amp;amp;lt;b class="r4"&amp;amp;gt;&amp;amp;lt;/b&amp;amp;gt; &amp;amp;lt;b class="r3"&amp;amp;gt;&amp;amp;lt;/b&amp;amp;gt; &amp;amp;lt;b class="r2"&amp;amp;gt;&amp;amp;lt;/b&amp;amp;gt; &amp;amp;lt;b class="r1"&amp;amp;gt;&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&lt;/font&gt;&lt;/blockquote&gt; &lt;/p&gt; &lt;p&gt;And here's it the basic CSS:&lt;/p&gt;  &lt;p class='codehere'&gt;&lt;font color='#cc33cc'&gt; .rtop, .rbottom{display:block}&lt;br/&gt;.rtop *, .rbottom *{display: block; height: 1px; overflow: hidden}&lt;br/&gt;.r1{margin: 0 5px}&lt;br/&gt;.r2{margin: 0 3px}&lt;br/&gt;.r3{margin: 0 2px}&lt;br/&gt;.r4{margin: 0 1px; height: 2px}&lt;/font&gt; &lt;/p&gt; &lt;p&gt;You can see the final effect on this &lt;a href='http://www.html.it/articoli/nifty/nifty1.html'&gt;simple example&lt;/a&gt;. A few words on the use of the &lt;code&gt;&amp;amp;lt;b&amp;amp;gt;&lt;/code&gt; element. I needed an inline element to obtain the rounded corners, since it could be nested in almost every kind of tag mainting the markup valid. So the choice fell on &lt;code&gt;b&lt;/code&gt; because it doesn't have semantical meaning and it's shorter than &lt;code&gt;span&lt;/code&gt;, like Eric Meyer said.&lt;/p&gt; &lt;p&gt;The technique works even on floated, absolute positioned or percentage-width elements. It fails on element with fixed height, or with padding. Both of the problem could be easily solved with an extra wrapper around the content.&lt;/p&gt; &lt;p&gt;Known bugs are: text-indent won't work on the element that has been rounded in Opera, and IE (both Mac &amp;amp;  version 6 PC) would mess up on floated elements without specific width.&lt;/p&gt; &lt;p&gt;The support should be extended to all modern browsers: the technique has been tested with success in Internet Explorer 6, Opera 7.6, FireFox 1.0, Safari 1.1  Mac IE. It fails on IE 5.x PC.&lt;/p&gt; &lt;p&gt;Easy, isn't it? But we can do much better.&lt;/p&gt;  &lt;h2&gt;Looking forward with DOM&lt;/h2&gt; &lt;p&gt;In the &lt;a href='http://www.html.it/articoli/nifty/nifty1.html'&gt;example&lt;/a&gt; we saw how to get rounded corners without images, sparing about 6-8Kb of page weight. But we love webstandards and semantic markup and we'd like to maintain the HTML clean and light.&lt;/p&gt;  &lt;h2&gt;Nifty Corners with CSS and Javascript&lt;/h2&gt; &lt;p&gt;So, the next step was to provide the unnecessary &lt;code&gt;&amp;amp;lt;b&amp;amp;gt;&lt;/code&gt; elements with javascript and DOM making some functions to get rounded corners on almost every element on the page without adding a single line of extra HTML or CSS apart from the basic rules we saw. Let's have a look at the &lt;a href='http://www.html.it/articoli/nifty/nifty1js.html'&gt;example with Nifty Corners&lt;/a&gt;. As you can see from the source code, no extra markup is in it. The solution is a combination of CSS and Javascript. The technique is made up of four essential parts:&lt;/p&gt; &lt;ol&gt;&lt;li&gt;&lt;a href='http://www.html.it/articoli/nifty/screenCodice.html'&gt;CSS file&lt;/a&gt; for the screen&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.html.it/articoli/nifty/printCodice.html'&gt;CSS file&lt;/a&gt; for the print&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.html.it/articoli/nifty/niftyCodice.html'&gt;Javascript library&lt;/a&gt; to get Nifty Corners&lt;/li&gt;&lt;li&gt;the javascript calls to round the elements you want&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;The first three components just don't need changes, whatever you want to accomplish. They need just to be declared in the &lt;code&gt;head&lt;/code&gt; section of any HTML page like this:&lt;/p&gt; &lt;p class='codehere'&gt; &amp;amp;lt;link rel="stylesheet" type="text/css" href="niftyCorners.css"&amp;amp;gt;&lt;br/&gt;&amp;amp;lt;link rel="stylesheet" type="text/css" href="niftyPrint.css" media="print"&amp;amp;gt;&lt;br/&gt;&amp;amp;lt;script type="text/javascript" src="nifty.js"&amp;amp;gt;&amp;amp;lt;/script&amp;amp;gt; &lt;/p&gt; &lt;p&gt;To understand how to implement the &lt;strong&gt;fourth part&lt;/strong&gt;, you need first to understand how the &lt;a href='http://www.html.it/articoli/nifty/niftyCodice.html'&gt;javascript library for Nifty Corners&lt;/a&gt; is implemented. Don't worry: you aren't requested to know javascript to use Nifty Corners...&lt;/p&gt;   &lt;h2&gt;The javascript functions&lt;/h2&gt; &lt;p&gt;If you see the code of &lt;a href='http://www.html.it/articoli/nifty/nifty1js.html'&gt;the example&lt;/a&gt;, you'll notice that I left embedded the CSS and part of the javascript to show how the page is build. Let's see the embedded javascript code:&lt;/p&gt;  &lt;p class='codehere'&gt; &amp;amp;lt;script type="text/javascript"&amp;amp;gt;&lt;br/&gt;window.onload=function(){&lt;br/&gt;if(!NiftyCheck())&lt;br/&gt;    return;&lt;br/&gt;&lt;strong&gt;Rounded("div#nifty","#377CB1","#9BD1FA");&lt;/strong&gt;&lt;br/&gt;}&lt;br/&gt;&amp;amp;lt;/script&amp;amp;gt; &lt;/p&gt; &lt;p&gt;The function &lt;strong&gt;NiftyCheck&lt;/strong&gt; performs a check for DOM support and excludes IE5.x PC for running the script. If the test has passed, the &lt;strong&gt;Rounded&lt;/strong&gt; function is called. It accepts four parameters:&lt;/p&gt; &lt;ol&gt;&lt;li&gt;A &lt;strong&gt;CSS selector&lt;/strong&gt; that indicates on wich elements apply the function&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Outer color&lt;/strong&gt; of the rounded corners&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Inner color&lt;/strong&gt; of the rounded corners&lt;/li&gt;&lt;li&gt;an &lt;strong&gt;optional fourth parameter&lt;/strong&gt;, that if is setted to &lt;strong&gt;"small"&lt;/strong&gt; would render small Nifty Corners&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;The real strenght of the function is that is capable of accepting a &lt;strong&gt;CSS selector&lt;/strong&gt; to target the elements to round. The accepted parameters are:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;strong&gt;Tag selector&lt;/strong&gt;, i.e. &lt;code&gt;"p"&lt;/code&gt; or &lt;code&gt;"blockquote"&lt;/code&gt; or &lt;code&gt;"h2"&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Id selector&lt;/strong&gt;, with specified tag of the element: for example &lt;code&gt;"div#content"&lt;/code&gt; or &lt;code&gt;"p#news"&lt;/code&gt; or &lt;code&gt;"li#home"&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Class selector&lt;/strong&gt;, with specified tag of the element: for example &lt;code&gt;"div.entry"&lt;/code&gt; or &lt;code&gt;"h2.highlight"&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Descendant selector&lt;/strong&gt;, with some limitation: this has to be composed by an id selector followed by a tag selector. Valid examples are: &lt;code&gt;"div#news div"&lt;/code&gt; or &lt;code&gt;"ul#menu li"&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;About the &lt;strong&gt;colors&lt;/strong&gt;: they should be specified in hex code with &lt;strong&gt;#&lt;/strong&gt; symbol in three or six digits. The outer color could be also set to transparent.&lt;/p&gt; &lt;p&gt;The fourth parameter is optional and must be setted to &lt;strong&gt;"small"&lt;/strong&gt; to get small rounded corners. Let's see an example:&lt;/p&gt; &lt;p class='codehere'&gt; window.onload=function(){&lt;br/&gt;if(!!NiftyCheck())&lt;br/&gt;    return;&lt;br/&gt;&lt;b&gt;Rounded("div#header","transparent","#C3D9FF","small");&lt;/b&gt;&lt;br/&gt;} &lt;/p&gt; &lt;p&gt;I' ve provided also two additional functions that you could find very useful: &lt;strong&gt;RoundedTop&lt;/strong&gt; and &lt;strong&gt;RoundedBottom&lt;/strong&gt; that receive the same parameters of the &lt;strong&gt;Rounded&lt;/strong&gt; function and allow to get rounded corners just on the top or on the bottom of page elements, or all four corners but with upper ones that differ in color from the lower.&lt;/p&gt; &lt;p&gt;Now.. let's see some examples.&lt;/p&gt;  &lt;h2&gt;The examples&lt;/h2&gt; &lt;p&gt;Now the fun part.. I did some examples to show the possibilities of Nifty Corners. For each example will be reported on this page just the javascript calls to &lt;strong&gt;Rounded&lt;/strong&gt;, &lt;strong&gt;RoundedTop&lt;/strong&gt; and &lt;strong&gt;RoundedBottom&lt;/strong&gt; functions, but keep in mind that these calls should be included in the following code:&lt;/p&gt;  &lt;p class='codehere'&gt; window.onload=function(){&lt;br/&gt;if(!NiftyCheck())&lt;br/&gt;    return;&lt;br/&gt;&lt;b&gt;/* here the calls to add Nifty Corners */&lt;/b&gt;&lt;br/&gt;} &lt;/p&gt; &lt;p&gt;Now, let's begin!&lt;/p&gt;  &lt;h2&gt;&lt;a href='http://www.html.it/articoli/nifty/nifty1js.html'&gt;Example one: a single div&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;This is the example we saw in the opening. The javascript call is:&lt;/p&gt; &lt;p class='codehere'&gt; Rounded("div#nifty","#377CB1","#9BD1FA"); &lt;/p&gt;  &lt;h2&gt;&lt;a href='http://www.html.it/articoli/nifty/nifty2js.html'&gt;Example two: 2 divs&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;In this example, two divs were rounded. The js calls are:&lt;/p&gt; &lt;p class='codehere'&gt; Rounded("div#content","#fff","#9DD4FF");&lt;br/&gt;Rounded("div#nav","#fff","#E5FFC4"); &lt;/p&gt;  &lt;h2&gt;&lt;a href='http://www.html.it/articoli/nifty/nifty3js.html'&gt;Example three: small corners&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;In this example the heading has small rounded corners. The code:&lt;/p&gt; &lt;p class='codehere'&gt; Rounded("div#header","transparent","#C3D9FF"&lt;b&gt;,"small"&lt;/b&gt;);&lt;br/&gt;Rounded("div#box","#FFF","#E4E7F2"); &lt;/p&gt;  &lt;h2&gt;&lt;a href='http://www.html.it/articoli/nifty/nifty4js.html'&gt;Example four: newsboxes&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;In this example we'll see how to make 2-colour newsboxes. The code is:&lt;/p&gt; &lt;p class='codehere'&gt; RoundedTop("div.news","#FFF","#91A7E3");&lt;br/&gt;RoundedBottom("div.news","#FFF","#E0D6DF"); &lt;/p&gt;  &lt;h2&gt;&lt;a href='http://www.html.it/articoli/nifty/nifty5js.html'&gt;Example five: transparent, tabbed menu&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;This example show the power of the discendant selector and transparency to get a tabbed menu with a single javascript call:&lt;/p&gt; &lt;p class='codehere'&gt; RoundedTop("div#nav li","transparent","#E8F0FF"); &lt;/p&gt;  &lt;h2&gt;&lt;a href='http://www.html.it/articoli/nifty/nifty6js.html'&gt;Example six: a liquid image gallery&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;I rounded-framed an unordered list used for an image gallery here. The javascript call is:&lt;/p&gt; &lt;p class='codehere'&gt; Rounded("div#minipics li","#DDD","#FFF"); &lt;/p&gt;  &lt;h2&gt;&lt;a href='http://www.html.it/articoli/nifty/nifty7js.html'&gt;Example seven: rounding a form&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;In this example, I rounded a form and its labels with two js calls:&lt;/p&gt; &lt;p class='codehere'&gt; Rounded("form","#FFF","#BBD8FF");&lt;br/&gt;Rounded("label","#BBD8FF","#FFF","small"); &lt;/p&gt;  &lt;h2&gt;&lt;a href='http://www.html.it/articoli/nifty/nifty8js.html'&gt;Example eight: final example&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;This is the final example wich uses some of the techniques we saw in the previous ones. In this case, I did not use embedded css or javascript. The &lt;code&gt;head&lt;/code&gt; section contains the following lines:&lt;/p&gt; &lt;p class='codehere'&gt; &amp;amp;lt;link rel="stylesheet" type="text/css" href="roundedPage.css"&amp;amp;gt;&lt;br/&gt;&amp;amp;lt;link rel="stylesheet" type="text/css" href="niftyCorners.css"&amp;amp;gt;&lt;br/&gt;&amp;amp;lt;link rel="stylesheet" type="text/css" href="niftyPrint.css" media="print"&amp;amp;gt;&lt;br/&gt;&amp;amp;lt;script type="text/javascript" src="nifty.js"&amp;amp;gt;&amp;amp;lt;/script&amp;amp;gt;&lt;br/&gt;&lt;b&gt;&amp;amp;lt;script type="text/javascript" src="final.js"&amp;amp;gt;&amp;amp;lt;/script&amp;amp;gt;&lt;/b&gt; &lt;/p&gt; &lt;p&gt;The &lt;b&gt;final.js&lt;/b&gt; contains all the javascript calls, let's see its content:&lt;/p&gt;  &lt;p class='codehere'&gt; window.onload=function(){&lt;br/&gt;if(!NiftyCheck())&lt;br/&gt;    return;&lt;br/&gt;RoundedTop("div#container","#FFF","#e7e7e7");&lt;br/&gt;RoundedBottom("div#container","#FFF","#E9F398");&lt;br/&gt;RoundedTop("ul#nav li","transparent","#E8F0FF");&lt;br/&gt;Rounded("div#box","#C0CDF2","#E4E7F2");&lt;br/&gt;Rounded("div#minipics li","#C0CDF2","#FFF");&lt;br/&gt;RoundedTop("div.gradient","#C0CDF2","#B8B8B8");&lt;br/&gt;RoundedBottom("div.gradient","#C0CDF2","#ECECF2");&lt;br/&gt;} &lt;/p&gt; &lt;p&gt;A good practice is in fact avoiding using embedded javascript or CSS in the head section.&lt;br/&gt;Quite easy, isn't it? If we'd use one of the css techiques based on background images, probably we'd used 18 images, maybe some extra and non-semantic wrapper and a lot of css declaration. Could you imagine the kilobytes that were spared? Probably, about 18-20Kb or so.&lt;/p&gt;  &lt;h2&gt;Download&lt;/h2&gt; &lt;p&gt;You could download the zip file containting the script, the html and the css of the example that were presented &lt;a href='http://www.html.it/articoli/nifty/nifty.zip'&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-4221507440924181728?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/4221507440924181728/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=4221507440924181728' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/4221507440924181728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/4221507440924181728'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2008/03/rounded-corners-without-images.html' title='rounded corners without images'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-7091248738992445614</id><published>2008-03-19T09:41:00.001+05:30</published><updated>2008-03-19T09:41:24.956+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Usability'/><title type='text'>8 Usability Check-Points You Should Be Aware Of</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;You don’t use pop-ups.&lt;/strong&gt;&lt;br/&gt;&lt;br /&gt;Pop-ups interrupt the browsing session of the visitors and require an instant feedback. Respect your visitors.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;You don’t change users’ window size.&lt;/strong&gt;&lt;br/&gt;&lt;br /&gt;The same argument as the one against pop-ups holds. Some browsers, e.g.&lt;br /&gt;Internet Explorer, saves the browser dimensions and uses them for&lt;br /&gt;further browser sessions.&lt;br /&gt;“it’s just plain inconsiderate to assume that you know better than the&lt;br /&gt;user how their software environment should be configured?”&lt;/li&gt;&lt;li&gt;&lt;strong&gt;You don’t use too small font sizes.&lt;/strong&gt;&lt;br/&gt;&lt;br /&gt;Long passages are harder to read, and to read brief sentences readers&lt;br /&gt;need more time. It holds also for links, buttons, forms, search boxes&lt;br /&gt;and other elements. Good news — in Web 2.0 the opposite is the case.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;You don’t have unclear link text.&lt;/strong&gt;&lt;br/&gt;&lt;br /&gt;Links have to be precise and lead to the destination they describe. Ambiguous link descriptions should be avoided.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;You don’t have dead links.&lt;/strong&gt;&lt;br/&gt;&lt;br /&gt;There are too many of them anyway; why would you want to point your visitors to a dead end?&lt;/li&gt;&lt;li&gt;&lt;strong&gt;You have at most one animation per page.&lt;/strong&gt;&lt;br/&gt;&lt;br /&gt;If blinking images are wide-spread through the site, it’s extremely&lt;br /&gt;hard to focus on one single site element. Give your visitors an&lt;br /&gt;opportunity to perceive your content. Using animated ads, don’t place&lt;br /&gt;them right along your articles.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;You make it easy to contact you.&lt;/strong&gt;&lt;br/&gt;&lt;br /&gt;Maybe because you just don’t want to be contacted, but If visitors do&lt;br /&gt;want to get in touch with you, but can’t find any contact information,&lt;br /&gt;you lose their interest and trust. Disastrous for online-shopping, a&lt;br /&gt;missed opportunity for the rest.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Your links open in the same window.&lt;/strong&gt;&lt;br/&gt;&lt;br /&gt;Visitors want to have control over everything what happens in their&lt;br /&gt;browser. If they’d like to open a link in a new window they will. If&lt;br /&gt;they don’t want to, they won’t. If your links open in a new window you&lt;br /&gt;make the decision which is not your decision to make.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-7091248738992445614?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/7091248738992445614/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=7091248738992445614' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/7091248738992445614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/7091248738992445614'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2008/03/8-usability-check-points-you-should-be.html' title='8 Usability Check-Points You Should Be Aware Of'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-7137089006698034530</id><published>2007-11-06T15:50:00.001+05:30</published><updated>2007-11-06T15:50:46.212+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><title type='text'>toggle visibility for a DIV</title><content type='html'>&lt;p&gt;&amp;lt;script language=&amp;quot;javascript&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;   &lt;br /&gt;function toggleDivOL( elemID )    &lt;br /&gt;{&amp;#xA0;&amp;#xA0;&amp;#xA0; var elem = document.getElementById( elemID );    &lt;br /&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; if( elem.style.display != 'none' )    &lt;br /&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; {&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; elem.style.display = 'none';    &lt;br /&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; }    &lt;br /&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; else    &lt;br /&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; {&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; elem.style.display = 'block';    &lt;br /&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; }    &lt;br /&gt;}    &lt;br /&gt;&amp;lt;/script&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;#xA0;&lt;/p&gt;  &lt;p&gt;you can call this function like this&lt;/p&gt;  &lt;p&gt;onclick=toggleDivOL('elemID')&lt;/p&gt;  &lt;p&gt;replace elemID with the id you want to toggle the visibility&lt;/p&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-7137089006698034530?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/7137089006698034530/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=7137089006698034530' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/7137089006698034530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/7137089006698034530'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/11/toggle-visibility-for-div.html' title='toggle visibility for a DIV'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-420176753488689905</id><published>2007-10-31T12:54:00.000+05:30</published><updated>2007-10-31T12:56:35.957+05:30</updated><title type='text'>Exploring full-screen mode in Flash Player 9</title><content type='html'>I found a very good article on Exploring full-screen mode in Flash Player 9. Hope it will be helpful to you...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.adobe.com/devnet/flashplayer/articles/full_screen_mode.html"&gt;http://www.adobe.com/devnet/flashplayer/articles/full_screen_mode.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-420176753488689905?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/420176753488689905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=420176753488689905' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/420176753488689905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/420176753488689905'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/10/exploring-full-screen-mode-in-flash.html' title='Exploring full-screen mode in Flash Player 9'/><author><name>Devesh</name><uri>http://www.blogger.com/profile/04100998934485785818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-7776677015104834948</id><published>2007-07-02T09:58:00.000+05:30</published><updated>2007-07-02T10:08:24.313+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><title type='text'>print css</title><content type='html'>http://css-discuss.incutio.com/?page=PrintStylesheets&lt;br /&gt;&lt;br /&gt;http://www.w3.org/TR/css-print/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-7776677015104834948?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/7776677015104834948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=7776677015104834948' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/7776677015104834948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/7776677015104834948'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/07/print-css.html' title='print css'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-6078868812465101140</id><published>2007-06-09T12:13:00.000+05:30</published><updated>2007-06-09T12:27:41.151+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hacks'/><title type='text'>Star html Selector Bug</title><content type='html'>The following &lt;a title="CSS2 Specs: Selectors" href="http://www.w3.org/TR/REC-CSS2/selector.html"&gt;Cascading Style Sheet (CSS) selectors&lt;/a&gt; are all incorrectly interpreted by Microsoft Internet Explorer as if the first universal selector (asterisk) does not exist:&lt;br /&gt;&lt;br /&gt;* html                /* basic form */&lt;br /&gt;* * body           /* whitespace between asterisks is significant */&lt;br /&gt;* html body    /* higher specificity than either of above */&lt;br /&gt;&lt;br /&gt;Thus far, this bug has been found in IE5/mac, IE5.15/mac, IE5.21/mac, IE5.0/Win, IE5.5/Win, and IE6/Win. It occurs whether the (X)HTML document is in &lt;a title="A List Apart article on doctypes" href="http://www.alistapart.com/stories/doctype/"&gt;quirks or standards mode&lt;/a&gt;. This bug is not present in Mozilla 0.9.9/Win, Moz1.0/Win, Opera5.02/Win, Opera6.01/Win, NS4.x/Win, Moz1.1/mac.&lt;br /&gt;&lt;br /&gt;In valid HTML and XHMTL documents html is always the root element and body is always a child of the root element, and never a grandchild (or great grandchild). Therefore, the first 3 CSS selectors above should not match any element. Nonetheless, they are valid selectors.&lt;br /&gt;If no other major CSS-aware browser that recognizes the universal selector misinterprets the above selectors this bug can be put to good use. By using any of the above erroneous selectors we can specify CSS rules that are meant only for IE. If necessary we can serve alternate rules to other browsers.&lt;br /&gt;&lt;br /&gt;If this selector truly targets only IE it is a near converse of the &lt;a title="Tantek's explanation of his hack" href="http://www.tantek.com/css/Examples/boxmodelhack.html"&gt;Tantek Çelik Hack&lt;/a&gt;, specifically the "be nice to Opera" rule where the child selector is used to hide CSS declarations from IE, The star html selector shows the rule to IE only rather than hide it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;div#normal, div#msie  {  margin: 1em;  padding: 1em;  background: #def;  }/* the following rule is recognized only by IE */&lt;br /&gt;* html body div#msie   {  background: #009;  color: white;  font-style: italic;  }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-6078868812465101140?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/6078868812465101140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=6078868812465101140' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/6078868812465101140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/6078868812465101140'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/06/star-html-selector-bug.html' title='Star html Selector Bug'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-3181115073612725629</id><published>2007-05-14T11:09:00.000+05:30</published><updated>2007-05-15T10:44:10.315+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS Tutorials'/><title type='text'>CSS layout: 100% height with header and footer</title><content type='html'>&lt;p&gt;Sometimes things that used to be really simple with tables can still appear  pretty hard with CSS. This layout for instance would consist of 3 cells; two  with a fixed height, and a third one in the center filling up the remaining  space. Using CSS, however, you have to take a different approach.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;Min-height&lt;/h2&gt; &lt;p&gt;The #container element of this page has a min-height of 100%. That way, if  the content requires more height than the viewport provides, the height of  #content forces #container to become longer as well. Possible columns in  #content can then be visualised with a background image on #container; divs are  not table cells, and you don't need (or want) the fysical elements to create  such a visual effect. If you're not yet convinced; think wobbly lines and  gradients instead of straight lines and simple color schemes. &lt;/p&gt; &lt;h2&gt;Relative positioning&lt;/h2&gt; &lt;p&gt;Because #container has a relative position, #footer will always remain at its  bottom; since the min-height mentioned above does not prevent #container from  scaling, this will work even if (or rather especially when) #content forces  #container to become longer. &lt;/p&gt; &lt;h2&gt;Padding-bottom&lt;/h2&gt; &lt;p&gt;Since it is no longer in the normal flow, padding-bottom of #content now  provides the space for the absolute #footer. This padding is included in the  scrolled height by default, so that the footer will never overlap the above  content.&lt;/p&gt;here is the  css&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;* 100% height layout with header and footer&lt;br /&gt;* ----------------------------------------------&lt;br /&gt;* Feel free to copy/use/change/improve&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;html,body {&lt;br /&gt;   margin:0;&lt;br /&gt;   padding:0;&lt;br /&gt;   height:100%; /* needed for container min-height */&lt;br /&gt;   background:gray;&lt;br /&gt; &lt;br /&gt;   font-family:arial,sans-serif;&lt;br /&gt;   font-size:small;&lt;br /&gt;   color:#666;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;h1 {&lt;br /&gt;   font:1.5em georgia,serif;&lt;br /&gt;   margin:0.5em 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;h2 {&lt;br /&gt;   font:1.25em georgia,serif;&lt;br /&gt;   margin:0 0 0.5em;&lt;br /&gt;}&lt;br /&gt;   h1, h2, a {&lt;br /&gt;       color:orange;&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;p {&lt;br /&gt;   line-height:1.5;&lt;br /&gt;   margin:0 0 1em;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;div#container {&lt;br /&gt;   position:relative; /* needed for footer positioning*/&lt;br /&gt;   margin:0 auto; /* center, not in IE5 */&lt;br /&gt;   width:750px;&lt;br /&gt;   background:#f0f0f0;&lt;br /&gt; &lt;br /&gt;   height:auto !important; /* real browsers */&lt;br /&gt;   height:100%; /* IE6: treaded as min-height*/&lt;br /&gt;&lt;br /&gt;   min-height:100%; /* real browsers */&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;div#header {&lt;br /&gt;   padding:1em;&lt;br /&gt;   background:#ddd url("../csslayout.gif") 98% 10px no-repeat;&lt;br /&gt;   border-bottom:6px double gray;&lt;br /&gt;}&lt;br /&gt;   div#header p {&lt;br /&gt;       font-style:italic;&lt;br /&gt;       font-size:1.1em;&lt;br /&gt;       margin:0;&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;div#content {&lt;br /&gt;   padding:1em 1em 5em; /* bottom padding for footer */&lt;br /&gt;}&lt;br /&gt;   div#content p {&lt;br /&gt;       text-align:justify;&lt;br /&gt;       padding:0 1em;&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;div#footer {&lt;br /&gt;   position:absolute;&lt;br /&gt;   width:100%;&lt;br /&gt;   bottom:0; /* stick to bottom */&lt;br /&gt;   background:#ddd;&lt;br /&gt;   border-top:6px double gray;&lt;br /&gt;}&lt;br /&gt;   div#footer p {&lt;br /&gt;       padding:1em;&lt;br /&gt;       margin:0;&lt;br /&gt;   }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-3181115073612725629?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/3181115073612725629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=3181115073612725629' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/3181115073612725629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/3181115073612725629'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/05/css-layout-100-height-with-header-and.html' title='CSS layout: 100% height with header and footer'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-2797147307027227658</id><published>2007-05-14T10:39:00.000+05:30</published><updated>2007-05-14T10:44:44.778+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash Tutorials'/><title type='text'>Click to Activate" solution!</title><content type='html'>here is the solution .&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;History of this problem:&lt;/span&gt;&lt;br /&gt;These are a result of Microsoft losing a lawsuit with a company called Eolas. MS decided to not pay for a patent license and instead patched their browser to work in a way that does not infringe on the Eolas patent.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Solution One:&lt;/span&gt;&lt;br /&gt;Visit www.Adobe.com and download the "fix" for Flash called "Active Content Update". This fix adds a publishing option, and also a new "Command". You must use this publishing option and use the Command in order to "add" the fix to your HTML page.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Solution Two:&lt;/span&gt;&lt;br /&gt;http://blog.deconcept.com/swfobject/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Solution three:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;http://www.webreference.com/programming/ie/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-2797147307027227658?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/2797147307027227658/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=2797147307027227658' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/2797147307027227658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/2797147307027227658'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/05/click-to-activate-solution.html' title='Click to Activate&quot; solution!'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-4481051922749714882</id><published>2007-05-14T10:37:00.000+05:30</published><updated>2007-05-14T11:07:09.190+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash Tutorials'/><title type='text'>flash over the div tag problem</title><content type='html'>* By default, Flash is always on top.&lt;br /&gt; * Applying a wmode of opaque (or, in some cases, transparent) is the solution.&lt;br /&gt;&lt;br /&gt;Opaque mode allows your DHTML drop down menus to stay in front of your Flash movie as well as hiding non-essential Flash from screen readers. Yes, transparent mode will also allow your DHTML drop down menus to render properly and will hide non-essential Flash, but due to possible performance issues, that's best left for opaque mode. Use transparent mode to show elements stacked beneath your Flash movie and when actual transparency is needed.&lt;br /&gt;&lt;br /&gt;another solution.. check the link below&lt;br /&gt;&lt;br /&gt;http://nickcowie.com/2006/layering-flash-and-html-tutorial/&lt;br /&gt;&lt;br /&gt;http://www.boldfishclient.co.uk/go/flash&lt;br /&gt;(uses the UFO embedding method with wmode set to transparent)&lt;br /&gt;&lt;br /&gt;Browsercam link to screen grabs to see cross browser efficiency:&lt;br /&gt;http://www.browsercam.com/public.aspx?proj_id=344019&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-4481051922749714882?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/4481051922749714882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=4481051922749714882' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/4481051922749714882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/4481051922749714882'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/05/flash-over-div-tag-problem.html' title='flash over the div tag problem'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-2853795149713394240</id><published>2007-05-10T12:42:00.000+05:30</published><updated>2007-05-10T12:47:42.978+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS Tutorials'/><title type='text'>css layouts</title><content type='html'>http://www.code-sucks.com/css%20layouts/&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;http://blog.html.it/layoutgala/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-2853795149713394240?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/2853795149713394240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=2853795149713394240' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/2853795149713394240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/2853795149713394240'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/05/css-layouts.html' title='css layouts'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-3716716134922710349</id><published>2007-05-09T15:52:00.000+05:30</published><updated>2007-05-09T16:17:29.583+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ActionScript Dictionary'/><title type='text'>Pre-loading sound within a flash animation</title><content type='html'>&lt;span style="font-family:verdana;font-size:78%;"&gt;if you want to display a preloader, load the sound in combination with onEnterFrame. Something like&lt;/span&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:78%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:78%;"&gt;&lt;strong&gt;Code:&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:verdana;font-size:78%;"&gt;&lt;br /&gt;Sound mySound = new Sound();&lt;br /&gt;mySound.loadSound("my.mp3", true); &lt;span style="color:#666666;"&gt;//stream it&lt;br /&gt;&lt;/span&gt;onEnterFrame = function()&lt;br /&gt;{&lt;br /&gt;bTotal = mySound.getBytesTotal();&lt;br /&gt;bLoaded = getBytesLoaded();&lt;br /&gt;if (bLoaded &gt;= bTotal)&lt;br /&gt;delete onEnterFrame;&lt;br /&gt;&lt;span style="color:#666666;"&gt;// do the animation here, based on the percentage represented by bLoaded&lt;/span&gt;&lt;br /&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:78%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:78%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;strong&gt;Sound.loadSound&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;font-size:78%;"&gt;&lt;br /&gt;&lt;strong&gt;Availability&lt;/strong&gt;&lt;br /&gt;Flash Player 6.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Usage&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:verdana;font-size:78%;"&gt;mySound.loadSound(" url ", isStreaming )&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Parameters&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;url&lt;/em&gt; - The location on a server of an MP3 sound file.&lt;br /&gt;&lt;em&gt;isStreaming&lt;/em&gt; - A Boolean value that indicates whether the sound is a streaming or event sound.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:78%;"&gt;&lt;strong&gt;Returns&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;font-size:78%;"&gt;Nothing.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:78%;"&gt;&lt;strong&gt;Description&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:78%;"&gt;Method; loads an MP3 file into an instance of the Sound object. You can use the isSteaming parameter to indicate whether the sound is an event or a streaming sound.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:78%;"&gt;Event sounds are completely loaded before they play. They are managed by the ActionScript Sound object and respond to all methods and properties of this object.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:78%;"&gt;Streaming sounds play while they are downloading. Playback begins when sufficient data has been received to start the decompressor. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:78%;"&gt;All MP3s (event or streaming) loaded with the Sound.loadSound method are saved in the browser's file cache on the user's system.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:78%;"&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;br /&gt;The following example loads an event sound: &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:78%;"&gt;s.loadSound( "http://serverpath:port/mp3filename", false); &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:78%;"&gt;The following example loads a streaming sound: &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:78%;"&gt;s.loadSound( "http://serverpath:port/mp3filename", true);&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-3716716134922710349?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/3716716134922710349/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=3716716134922710349' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/3716716134922710349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/3716716134922710349'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/05/pre-loading-sound-within-flash.html' title='Pre-loading sound within a flash animation'/><author><name>Devesh</name><uri>http://www.blogger.com/profile/04100998934485785818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-1704254821722067475</id><published>2007-05-03T17:25:00.000+05:30</published><updated>2007-05-03T18:17:51.472+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Article'/><title type='text'>Flash CS3 (P)reviewed</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_52hSm33-kTo/RjnOzyGYyoI/AAAAAAAABW4/rU1V8rSjdKo/s1600-h/biCS3_preview.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_52hSm33-kTo/RjnOzyGYyoI/AAAAAAAABW4/rU1V8rSjdKo/s320/biCS3_preview.jpg" alt="" id="BLOGGER_PHOTO_ID_5060303045344676482" border="0" /&gt;&lt;/a&gt;&lt;span style=";font-family:verdana;font-size:78%;"  &gt;&lt;strong&gt;Although this is th&lt;/strong&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:78%;"  &gt;&lt;strong&gt;e third iteration of Adobes Creative Suite, for  many of us, this is the first true test of the acquisition of Macromedia by  Adobe a year and half ago&lt;/strong&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:78%;"  &gt;&lt;strong&gt;. And based on what we have had a chance to see, it  appears the first thing on the agenda was integration. Read our first review  here.&lt;/strong&gt;&lt;/span&gt; &lt;div class="art"&gt;&lt;span style=";font-family:verdana;font-size:78%;" id="intelliTXT" nd="1"  &gt;With the next version of Flash, the  integra&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:78%;" id="intelliTXT" nd="1"  &gt;tion is especiall&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:78%;" id="intelliTXT" nd="1"  &gt;y evident with both P&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:78%;" id="intelliTXT" nd="1"  &gt;hotoShop and Illustrator importers.  And when they decided to finally bridge that gap, the engineers at Adobe did it  ri&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_52hSm33-kTo/RjnX5yGYyvI/AAAAAAAABXw/HlcBx7k2Qho/s1600-h/61507.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_52hSm33-kTo/RjnX5yGYyvI/AAAAAAAABXw/HlcBx7k2Qho/s400/61507.png" alt="" id="BLOGGER_PHOTO_ID_5060313044028541682" border="0" /&gt;&lt;/a&gt;&lt;span style=";font-family:verdana;font-size:78%;" id="intelliTXT" nd="1"  &gt;ght with custom designed panels that give you full control ov&lt;/span&gt;&lt;span id="intelliTXT" nd="1"&gt;&lt;span style=";font-family:verdana;font-size:78%;"  &gt;er importing  layers, assigning instance names and even allowing for individual compression  controls. And as an extra degree of integration, you can also copy an&lt;/span&gt;&lt;/span&gt;&lt;span id="intelliTXT" nd="1"&gt;&lt;span style=";font-family:verdana;font-size:78%;"  &gt;d paste  right from Illustrator into Flash.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_52hSm33-kTo/RjnXrCGYyuI/AAAAAAAABXo/vfp1TqR-8h4/s1600-h/61506.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_52hSm33-kTo/RjnXrCGYyuI/AAAAAAAABXo/vfp1TqR-8h4/s400/61506.png" alt="" id="BLOGGER_PHOTO_ID_5060312790625471202" border="0" /&gt;&lt;/a&gt;&lt;span style=";font-family:verdana;font-size:78%;"  &gt;But the integration was not unilateral. Illustrator now has the ability to have  symbol names, type (movie clip or graphic), registration points and even  enabling it for 9-slice scaling. And all of these options import directly into  Flash as if the symbol were created there.  Continuing the integration  with Illustrator and Flash, users who are used to drawing in Illustrator, the  premiere choice for vector-based artwork, can now find the same level of contr&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:78%;"  &gt;ol  in Flash. With the newly upgraded pen tool, users now have tighter control over  image manipulation on the stage. Even the shortcut key-commands are the same for  this tool.  And you can not mention integra&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:78%;"  &gt;tion without t&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:78%;"  &gt;alking about the  new look and feel for user interface a&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:78%;"  &gt;cross most of the new CS3 applications  including Flash. Not only is the new look very clean, but it also is very  functional with the new iconic mode, allowing for more screen r&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:78%;"  &gt;eal-estate and  less clutter.  And after integration, Adobe went right to streamlining a  lot of differ&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:78%;"  &gt;ent workflows starting with the Ac&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:78%;"  &gt;tions Panel. Collapsible code  chunks is nothing new to other code editors, but in this case it is slightly  differen&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:78%;"  &gt;t in that the Actions panel does not decide where to collapse your code,  you do. You simply highlight the section you want to collapse, and click on one  of the triangles at either end of the highlighted section. But that is not all  you can do with selected code, you can also instantly comment it out as a  line-by-line comment, or as a group comment.&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:78%;"  &gt; And removing comments are just as  easy.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:verdana;font-size:78%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div  style="text-align: center;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_52hSm33-kTo/RjnPYSGYyqI/AAAAAAAABXI/xajAMPE_Xqw/s1600-h/biPicture-2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_52hSm33-kTo/RjnPYSGYyqI/AAAAAAAABXI/xajAMPE_Xqw/s320/biPicture-2.jpg" alt="" id="BLOGGER_PHOTO_ID_5060303672409901730" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_52hSm33-kTo/RjnPmiGYyrI/AAAAAAAABXQ/69Dh1GAHzI8/s1600-h/biPicture-3.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp1.blogger.com/_52hSm33-kTo/RjnPmiGYyrI/AAAAAAAABXQ/69Dh1GAHzI8/s320/biPicture-3.jpg" alt="" id="BLOGGER_PHOTO_ID_5060303917223037618" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;div style="text-align: left;"&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size:78%;"&gt;But that is not where the upgrades to the Actions panel end. When errors  occurred in Flash, they would generally appear in the Output panel, and they  still do, but now there is a Compile Errors panel that allows users to double  click on the error and be taken right to that line of code. And Adobe has even  upgraded the debugger to be more inline with the Flex debugger for even more  debugging control.  Next up is a feature mentioned back at Flash Forward  in Austin. Taking the ease and flexibility of timeline based motion tweens and  converting them &lt;/span&gt;&lt;span style="font-size:78%;"&gt;to well structured XML data that can actually sit right within  the rest of the code is much more powerful than it first appears. Because the  animation is now part of an AS object, it has methods, events and &lt;/span&gt;&lt;span style="font-size:78%;"&gt;properties of  its own including the ability to set the number of loops and be notified whe&lt;/span&gt;&lt;span style="font-size:78%;"&gt;n  the animation is complete. This is something that is a bit more complicated with  traditional tweens. And I thought I might have found something that Adobe had  missed when I set the tween to a motion guide, but sure enough when I copied it  as AS 3 and pasted it into the Actions panel, I noticed it picked up every  position in the motion guide, so the animation still matched identically.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;span style=";font-family:verdana;font-size:78%;"  &gt;And in the continuing evolution from smart objects to components, I think this  set is finally what we have been waiting for. Good functionality is not  necessarily new to components, but how about easily being able to skin them?  Well it doesn't get any easier than this. You simply double click the  component on the stage, and you are presented with the different states of that  component that you can quickly re-skin to look the way you want.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:verdana;font-size:78%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_52hSm33-kTo/RjnYfiGYyxI/AAAAAAAABYA/PxFG_ZC9cNQ/s1600-h/61508.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_52hSm33-kTo/RjnYfiGYyxI/AAAAAAAABYA/PxFG_ZC9cNQ/s400/61508.png" alt="" id="BLOGGER_PHOTO_ID_5060313692568603410" border="0" /&gt;&lt;/a&gt;&lt;span style=";font-family:verdana;font-size:78%;"  &gt;&lt;span id="intelliTXT" nd="1"&gt;&lt;span style="font-family:verdana;"&gt;And I didn't forget about ActionScript 3 and the new virtual machine  that puts to shame the performance of all previous Flash players, but I do not  think that it is any surprise to anyone. What might be a surprise is an upgrade  to the export abilities of Flash. Up until now, if you wanted to create an  animation, and then export it to Quicktime, you had to have everything piece of  animation on the main timeline, no sub-movie clip animations or animations  controlled by code. But now, you can setup sub-animations and have animations  controlled with ActionScript because the export acts more like a screen record  than simply exporting the frames. You can even set it to export for a certain  amount of time, or when it reaches the final frame.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: verdana;font-size:78%;" &gt;Flash CS3 makes workspace customization easy. The new panel system lets you keep  them open (in this case) or hide them to expand the workspace area.&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_52hSm33-kTo/RjnZWSGYyyI/AAAAAAAABYI/uNGCau1u4Q0/s1600-h/61509.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_52hSm33-kTo/RjnZWSGYyyI/AAAAAAAABYI/uNGCau1u4Q0/s400/61509.jpg" alt="" id="BLOGGER_PHOTO_ID_5060314633166441250" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_52hSm33-kTo/RjnZmyGYyzI/AAAAAAAABYQ/BTZjTauWB-U/s1600-h/61510.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_52hSm33-kTo/RjnZmyGYyzI/AAAAAAAABYQ/BTZjTauWB-U/s400/61510.jpg" alt="" id="BLOGGER_PHOTO_ID_5060314916634282802" border="0" /&gt;&lt;/a&gt;&lt;span style=";font-family:verdana;font-size:78%;"  &gt;&lt;span id="intelliTXT" nd="1"&gt;&lt;span style="font-family:verdana;"&gt;A few more random  things about the next version of Flash:&lt;br /&gt;&lt;/span&gt; &lt;ul&gt;&lt;br /&gt;&lt;li nd="2"&gt;It boots up and compiles files much faster than previous versions. As  an example, I took a large sized file, with well over 250 images in it and  compiled it in Flash 8 and Flash CS3. Flash 8 took about 40 seconds, Flash CS3  took about 18 seconds.&lt;br /&gt;&lt;/li&gt;&lt;li nd="3"&gt;The scroll wheel works on the stage and in the timeline. This may not  seem like much, but when you have a ton of layers, and a large stage size it  really makes a difference.&lt;br /&gt;&lt;/li&gt;&lt;li nd="4"&gt;The object hierarchy has moved from above the timeline to beneathe  it. Not really sure why, but it is pretty annoying at first if you're  used to it being above.&lt;br /&gt;&lt;/li&gt;&lt;li nd="5"&gt;Switching between different workspaces is pretty easy now with a  workspace drop down right underneath the timeline.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;This version  of Flash not only marks a truly integrated application, but also a sign of  things to come from Adobe.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;(This review is based on a beta version of  Flash CS3 so it may not represent the final product to ship later this year.  That is why we call this a preview or a "first look". The version tested is  however expected to be feature complete and this article explains what we see as  the biggest enhancements.) &lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-1704254821722067475?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/1704254821722067475/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=1704254821722067475' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/1704254821722067475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/1704254821722067475'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/05/flash-cs3-previewed.html' title='Flash CS3 (P)reviewed'/><author><name>Devesh</name><uri>http://www.blogger.com/profile/04100998934485785818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_52hSm33-kTo/RjnOzyGYyoI/AAAAAAAABW4/rU1V8rSjdKo/s72-c/biCS3_preview.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-1737598282821414028</id><published>2007-05-03T10:47:00.000+05:30</published><updated>2007-05-03T10:57:57.888+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS Tutorials'/><title type='text'>Fast Rollovers Without Preload</title><content type='html'>When using CSS image rollovers, two, three, or more images must be loaded (and often be preloaded for best results). We've got one image for each state (normal, hover, active, visited etc). Putting all states into one image makes dynamic changes faster and requires no preload.&lt;br /&gt;&lt;br /&gt;Let's have a simple example. The menu items are the a-elements with display:block. Proper padding and background image for a, a:hover and a:active make the rollover. To simplify the rollover, I used only one picture containing three states of a button — normal, :hover, and :active.&lt;br /&gt;&lt;br /&gt;Usually, in CSS rollovers, we use background images in this way:&lt;br /&gt;&lt;br /&gt;#menu a { ... background: url("button.gif") top left no-repeat; }&lt;br /&gt;#menu a:hover { ... background-image: url("button-over.gif"); }&lt;br /&gt;#menu a:active { ... background-image: url("button-active.gif"); }&lt;br /&gt;/* etc... */ &lt;br /&gt;&lt;br /&gt;Using one common picture, we don't need to change the background image. We just change its background-position. The :hover state will use the background image moved proper count of pixels (in the example the shift is 157px to the left), the :active state will use bigger shift (by 314px in the example).&lt;br /&gt;&lt;br /&gt;#menu a { background: url("button.gif") 0 0 no-repeat; ... }&lt;br /&gt;#menu a:hover { background-position: -157px 0; ... }&lt;br /&gt;#menu a:active { background-position: -314px 0; ... }&lt;br /&gt;&lt;br /&gt;That's all. Just one image is used. No preload is needed. State switching is as fast as possible (moving background position is much faster than replacing background image). AFAIK, it works in every CSS2 capable browser (IE5+, Mozilla, Opera, Safari etc.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-1737598282821414028?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/1737598282821414028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=1737598282821414028' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/1737598282821414028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/1737598282821414028'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/05/fast-rollovers-without-preload.html' title='Fast Rollovers Without Preload'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-1122650242843200565</id><published>2007-04-27T10:22:00.000+05:30</published><updated>2007-04-27T11:28:56.209+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='IE'/><category scheme='http://www.blogger.com/atom/ns#' term='Browser'/><title type='text'>IE inherited margin bug: form elements and hasLayout</title><content type='html'>&lt;div id="content"&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:100%;"&gt;Internet Explorer on Windows has a wide variety of rendering bugs.&lt;br /&gt;Many of these bugs can be worked around by giving affected elements&lt;br /&gt;the IE-specific "hasLayout" property and an &lt;/span&gt;&lt;a href="http://www.satzansatz.de/cssd/onhavinglayout.html" rel="external"&gt;&lt;span style="font-family:trebuchet ms;font-size:100%;"&gt;extensive&lt;br /&gt;analysis of how and when this works&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;font-size:100%;"&gt; is available. This article&lt;br /&gt;describes the opposite situation: an IE rendering bug that is&lt;br /&gt;triggered by elements having layout for which the workaround is to&lt;br /&gt;remove the hasLayout property.&lt;/span&gt; &lt;h2&gt;&lt;/h2&gt;&lt;p&gt;&lt;span style="font-family:trebuchet ms;"&gt;The bug is that certain form input elements whose containing box&lt;br /&gt;has layout inherit the sum of the margins of all of their containing&lt;br /&gt;boxes. Unlike the the well known &lt;/span&gt;&lt;a href="http://positioniseverything.net/explorer/doubled-margin.html" rel="external"&gt;&lt;span style="font-family:trebuchet ms;"&gt;IE&lt;br /&gt;doubled float-margin bug&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt;, this one does not involve floats. There&lt;br /&gt;is a workaround but, so far, no magic-bullet CSS-only&lt;br /&gt;solution.&lt;/span&gt;&lt;/p&gt;&lt;h2&gt;&lt;span style="font-family:trebuchet ms;font-size:100%;"&gt;The Problem&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;&lt;span style="font-family:trebuchet ms;"&gt;Consider this sample code:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;code&gt;.has-margins {&lt;br /&gt;background-color: gray;&lt;br /&gt;margin-left: 5em;&lt;br /&gt;padding: 1em;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;.has-layout {&lt;br /&gt;background-color: tan;&lt;br /&gt;width: 30em;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&amp;lt;form action="ignore"&amp;gt;&lt;br /&gt;&amp;lt;div class="has-margins"&amp;gt;&lt;br /&gt;&amp;lt;div class="has-layout"&amp;gt;&lt;br /&gt;INPUT tag, type=text:&amp;lt;br&amp;gt;&lt;br /&gt;&amp;lt;input type="text"&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;INPUT tag, type=checkbox:&amp;lt;br&amp;gt;&lt;br /&gt;&amp;lt;input type="checkbox"&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;The outer has-margins box is gray and the full width of the page&lt;br /&gt;except for a left margin of 5em. The inner has-layout box is tan,&lt;br /&gt;30ems wide, and contains four lines of content: two of text and two&lt;br /&gt;form elements. All four lines of content should be flush against the&lt;br /&gt;left edge of the tan box.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:trebuchet ms;"&gt;Here is how it actually displays:&lt;/span&gt;&lt;/p&gt;&lt;form action="ignore"&gt;&lt;div class="has-margins"&gt;&lt;div class="has-layout"&gt;&lt;span style="font-family:trebuchet ms;"&gt;INPUT tag, type=text:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;input&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;&lt;br /&gt;INPUT tag, type=checkbox:&lt;br /&gt;&lt;br /&gt;&lt;input type="checkbox"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;For all CSS-enabled versions of IE/Win, including IE7, the&lt;br /&gt;left edge of the text input field (the second line) is pushed&lt;br /&gt;to the left. It incorrectly inherits the left margin of its&lt;br /&gt;parent box because the parent has a width value, giving it&lt;br /&gt;hasLayout.&lt;/span&gt;&lt;/div&gt;&lt;/form&gt;&lt;p&gt;&lt;span style="font-family:trebuchet ms;"&gt;Consider another example which wraps a second has-margins box&lt;br /&gt;around the inner has-layout box:&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;code&gt;&amp;lt;form action="ignore"&amp;gt;&lt;br /&gt;&amp;lt;div class="has-margins"&amp;gt;&lt;br /&gt;&amp;lt;div class="has-margins"&amp;gt;&lt;br /&gt;&amp;lt;div class="has-layout"&amp;gt;&lt;br /&gt;INPUT tag, type=text:&amp;lt;br&amp;gt;&lt;br /&gt;&amp;lt;input type="text"&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;INPUT tag, type=checkbox:&amp;lt;br&amp;gt;&lt;br /&gt;&amp;lt;input type="checkbox"&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&lt;form action="ignore"&gt;&lt;div class="has-margins"&gt;&lt;div class="has-margins"&gt;&lt;div class="has-layout"&gt;&lt;span style="font-family:trebuchet ms;"&gt;INPUT tag, type=text:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;input&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;&lt;br /&gt;INPUT tag, type=checkbox:&lt;br /&gt;&lt;br /&gt;&lt;input type="checkbox"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;The left edge of the has-layout box is correctly pushed twice as&lt;br /&gt;far to the left (since both enclosing has-margins boxes have a left&lt;br /&gt;margin). However, the affected input is now also pushed twice as far&lt;br /&gt;to the left; compare its location to the text field in the previous&lt;br /&gt;example. The form element actually inherits the the &lt;em&gt;sum&lt;/em&gt; of&lt;br /&gt;the left margins of all of its ancestors. Interestingly, it does not&lt;br /&gt;inherit the top or bottom margins.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/form&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:trebuchet ms;"&gt;The bug seems to occur for all INPUT types except checkbox, radio,&lt;br /&gt;and image as well as TEXTAREA elements but not for SELECT&lt;br /&gt;elements.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;h2&gt;&lt;span style="font-family:trebuchet ms;font-size:100%;"&gt;Workarounds&lt;/span&gt;&lt;/h2&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:trebuchet ms;"&gt;The problem only seems to occur when the direct parent of the INPUT&lt;br /&gt;element has hasLayout and any ancestor has margins. This leads to&lt;br /&gt;several possible workarounds:&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:trebuchet ms;"&gt;Set a negative margin on the INPUT element equal to the sum of all&lt;br /&gt;of its parents' margins. This is fine for static sites but if you are&lt;br /&gt;using a CMS it is probably not possible without scripting. Keep in&lt;br /&gt;mind that only some INPUT element types are affected; assigning&lt;br /&gt;negative margins to checkbox, radio, or image inputs will break your&lt;br /&gt;layout.&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:trebuchet ms;"&gt;Remove the margins from all ancestor elements. This is not&lt;br /&gt;particularly realistic.&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:trebuchet ms;"&gt;Remove the hasLayout-granting style from the containing DIV.&lt;br /&gt;Since you presumably put that style there for a reason, this is also&lt;br /&gt;not particularly realistic.&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:trebuchet ms;"&gt;Put inline text, a LABEL, or possibly any inline element at all&lt;br /&gt;immediately before the INPUT element. The fact that this solves the&lt;br /&gt;problem is probably why some people have not noticed it. Example:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;code&gt;&amp;lt;form action="ignore"&amp;gt;&lt;br /&gt;&amp;lt;div class="has-margins"&amp;gt;&lt;br /&gt;&amp;lt;div class="has-layout"&amp;gt;&lt;br /&gt;INPUT tag, type=text, preceeded by inline text:&amp;lt;br&amp;gt;&lt;br /&gt;Text: &amp;lt;input type="text"&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&lt;form action="ignore"&gt;&lt;div class="has-margins"&gt;&lt;div class="has-layout"&gt;&lt;span style="font-family:trebuchet ms;"&gt;INPUT tag, type=text, preceeded by inline text:&lt;br /&gt;&lt;br /&gt;Text: &lt;/span&gt;&lt;input&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;Wrap the INPUT element in an unstyled SPAN, LABEL, or, in fact,&lt;br /&gt;any container element without a hasLayout-granting style. Example:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;code&gt;&amp;lt;form action="ignore"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;div class="has-margins"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;div class="has-layout"&amp;gt;&lt;br /&gt;INPUT tag, type=text, wrapped in an unstyled SPAN:&amp;lt;br&amp;gt;&lt;br /&gt;&amp;lt;span&amp;gt;&amp;lt;input type="text"&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;INPUT tag, type=text, wrapped in an unstyled SPAN:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;input&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/form&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-1122650242843200565?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/1122650242843200565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=1122650242843200565' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/1122650242843200565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/1122650242843200565'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/04/ie-inherited-margin-bug-form-elements.html' title='IE inherited margin bug: form elements and hasLayout'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-6251593783379512316</id><published>2007-04-24T12:38:00.000+05:30</published><updated>2007-04-24T12:42:01.156+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Accessibility'/><title type='text'>Semantics</title><content type='html'>&lt;span style="font-family:trebuchet ms;"&gt;A great deal has been written about semantic markup and its importance. Some of this material has been written by purists who defend semantics because they like the logic and structure that semantic markup can convey. That’s all very well and good, but what does semantic markup mean? And what practical usage does it have?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Semantic means to have, or convey, meaning. In an Extensible/HyperText Markup Language (&lt;/span&gt;&lt;a class="gloss" title="Link to Glossary" href="http://accessites.org/site/info/#XHTML"&gt;&lt;span style="font-family:trebuchet ms;"&gt;XHTML&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt;/&lt;/span&gt;&lt;a class="gloss" title="Link to Glossary" href="http://accessites.org/site/info/#HTML"&gt;&lt;span style="font-family:trebuchet ms;"&gt;HTML&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt;) context, this translates to using elements that actually convey accurate information about the content they enclose. If you have a page header or sub-header, it should be in an H tag (heading element). If you have a nice testimonial quote, it should be within blockquote element rather than basic paragraph tags with applied style. Remember the saying It does what it says on the box? Well, markup provides the boxes for all page content. Semantic markup ensures that your boxes have the right labels. It goes a long way to ensuring that software doesn’t have to open the box and analyse the contents first before figuring out how to render them. After all, if you open a can labeled “Beans,” you expect to see beans, not peaches. If can labeling was as variable as some of the page markup on the web, meal times would be a lot more… well, interesting, if not exactly edible.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Markup First, Style Later&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;When marking up new content, your first thought should be What kind of content is this phrase? and not What does this say? or How should it look? Concentrate on describing the content by applying the correct semantic markup first. Examine every piece of text on a page to determine what type of content it is and how best to convey that through markup. The humble p element should be your last resort — not your first choice.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Only when this process is complete should you start to look at graphical styling via your Cascading Style Sheet (&lt;/span&gt;&lt;a class="gloss" title="Link to Glossary" href="http://accessites.org/site/info/#CSS"&gt;&lt;span style="font-family:trebuchet ms;"&gt;CSS&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt;). If you have made good use of the full range of markup that is available — rather than just relying on p tags and the odd header element — you may even find that your pages are easier to style. You will probably end up with a larger set of elements to style on a single page and you may not have to create so many specific classes or ids to achieve a given effect.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Why Does Semantic Markup Make A Difference? &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Well, for a start, you have no real idea how many of your visitors won’t actually see your pages using a graphical browser, so you can’t rely upon purely graphical renderings to convey meaning. Styling your quotes using p tags with added styling to render the text dark red or bright green is pretty pointless if some of your visitors won’t ever see the pretty effect. &lt;/span&gt;&lt;a href="http://www.google.com/"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Google&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt; certainly won’t, and that’s one pretty important visitor.&lt;br /&gt;&lt;br /&gt;However, from an accessibility point of view, a great deal of the assistive technology out there is reliant upon semantic markup. The assumption is that headings will be in enclosed in H tags; quotations will be marked up properly and lists will use list markup and not just rely on hard-coded line breaks. &lt;/span&gt;&lt;a href="http://www.freedomscientific.com/fs_products/JAWS_HQ.asp"&gt;&lt;span style="font-family:trebuchet ms;"&gt;JAWS&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt;, for example offers users the option to jump from header to header without reading the intervening text. This is the audio equivalent of a sighted user scanning a page to see what topics it includes before settling down to read a particular paragraph. However, this feature is useless if a page doesn’t contain any header markup. That line of text at the top of a page may look like a header but, unless it’s marked up correctly, it’s not a header and it certainly won’t sound like one.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Similarly, some screen readers may automatically change voice when encountering quotations that are correctly identified using markup. If you don’t use appropriate quotation markup, it becomes extremely difficult to separate, for example, testimonials, from their surrounding text. Conversely, if you use blockquote inappropriately to simply indent plain text, screen reader users may be presented with a page that no longer makes sense.&lt;br /&gt;Finally, using semantic markup offers the best method of future proofing your content and ensuring that it continues to make sense via a whole range of user agents now or in the future.&lt;br /&gt;&lt;br /&gt;Different Strokes&lt;br /&gt;&lt;br /&gt;Although adopting semantic markup will, by definition, tend to lead you towards particular approaches and practices, it is worth bearing in mind that there may not be a hard and fast rule in every situation. Even within semantic markup, there is room for a number of equally valid Best Practice approaches. For example, should a page have just one H1 heading element or is it okay to have more than one? There are good arguments for both sides of that particular discussion.&lt;br /&gt;&lt;br /&gt;Right and wrong are concepts that should only have limited usage within web design once you get beyond the appropriate World Wide Web Consortium (&lt;/span&gt;&lt;a class="gloss" title="Link to Gloassary" href="http://accessites.org/site/info/#W3C"&gt;&lt;span style="font-family:trebuchet ms;"&gt;W3C&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt;) specifications. Beyond these documents, there is only opinion and user feedback. The latter is particularly important and should never be under-estimated. Given that web pages are supposedly intended for use by users, this does seem to be stating the obvious but there are times when user feedback can get over-looked in the pursuit of semantic perfection. And that just has to be plain wrong!&lt;br /&gt;&lt;br /&gt;Opinions, however, are just that. They are not rules and they are open to discussion. Listen to as many points of view as you can, then think about it on your own until you reach your own informed decision. At the end of the day, that’s what applying semantic markup is really all about — thinking about your content first.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-6251593783379512316?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/6251593783379512316/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=6251593783379512316' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/6251593783379512316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/6251593783379512316'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/04/semantics.html' title='Semantics'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-1401860881494988108</id><published>2007-04-23T15:42:00.000+05:30</published><updated>2007-04-23T15:54:38.881+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS Tutorials'/><title type='text'>navigation matrix reloaded</title><content type='html'>&lt;h4&gt;How it works&lt;/h4&gt;At first this example might not seem very different from other navigation experiments. But the most interesting part is hidden in the code and the methodology. My example is called navigation matrix because it actually loads a matrix to display the correct graphics for the menu items. Below I included the image that is downloaded — just once.&lt;br /&gt;&lt;br /&gt;As you can see it contains all the different states required for the navigation to function properly. In essence it’s based on the &lt;a href="http://www.pixy.cz/blogg/clanky/cssnopreloadrollovers/"&gt;method to shift background positions&lt;/a&gt;, which of course works faster than shifting individual images. By assigning a specific id to each body tag in individual pages I can target the list elements and set their respective backgrounds. The only thing I need to do is make sure that the background is in the right position for each element.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The first 4 rows are used for the different &lt;code&gt;ul&lt;/code&gt; backgrounds. As you can see they perfectly match with the hover states on the individual pages. The other two rows include the other states I need for the navigation to function properly. Of course some tabs are included more than once, but this is needed because I need the entire row to display as the &lt;code&gt;ul&lt;/code&gt; background, instead of just individual elements. The size in kilobytes is exactly the same as the previous matrix.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_dNsT-2rXuyw/RiyH4R09ZYI/AAAAAAAAAms/_ahBb9ZkYf4/s1600-h/navigation-matrix2.gif.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_dNsT-2rXuyw/RiyH4R09ZYI/AAAAAAAAAms/_ahBb9ZkYf4/s320/navigation-matrix2.gif.png" alt="" id="BLOGGER_PHOTO_ID_5056565882558178690" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The HTML is given below&lt;br /&gt;&lt;br /&gt;&amp;lt;body id="welcome"&amp;gt;&lt;br /&gt;&amp;lt;div id="header"&amp;gt;&lt;br /&gt;&amp;lt;ul id="nav"&amp;gt;&lt;br /&gt;&amp;lt;li id="wel"&amp;gt;&amp;lt;a href="welcome2.html"&amp;gt;welcome&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li id="pro"&amp;gt;&amp;lt;a href="products2.html"&amp;gt;products&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li id="sup"&amp;gt;&amp;lt;a href="support2.html"&amp;gt;support&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li id="con"&amp;gt;&amp;lt;a href="contact2.html"&amp;gt;contact&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The css is&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;body {&lt;br /&gt;background: #f1efe2;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#header {&lt;br /&gt;margin: 0 auto 0 auto;&lt;br /&gt;width: 650px;&lt;br /&gt;padding: 0;&lt;br /&gt;border: 5px solid #fff;&lt;br /&gt;height: 120px;&lt;br /&gt;background: #666 url(header.png) no-repeat left top;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;ul#nav {&lt;br /&gt;position: relative;&lt;br /&gt;top: 68px;&lt;br /&gt;left: 188px;&lt;br /&gt;width: 346px;&lt;br /&gt;margin: 0;&lt;br /&gt;height: 22px;&lt;br /&gt;list-style-type: none;&lt;br /&gt;overflow: hidden;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;body#welcome ul#nav&lt;br /&gt;{ background: transparent url(nav_f_2.png) no-repeat 0 0; }&lt;br /&gt;body#products ul#nav&lt;br /&gt;{ background: transparent url(nav_f_2.png) no-repeat 0 -22px; }&lt;br /&gt;body#support ul#nav&lt;br /&gt;{ background: transparent url(nav_f_2.png) no-repeat 0 -44px; }&lt;br /&gt;body#contact ul#nav&lt;br /&gt;{ background: transparent url(nav_f_2.png) no-repeat 0 -66px; }&lt;br /&gt;&lt;br /&gt;ul#nav li a {&lt;br /&gt;position: absolute;&lt;br /&gt;top: 0;&lt;br /&gt;width: 84px;&lt;br /&gt;text-indent: -9000px;&lt;br /&gt;text-decoration: none;&lt;br /&gt;padding: 22px 0 0 0;&lt;br /&gt;overflow: hidden;&lt;br /&gt;height: 0px !important;&lt;br /&gt;height /**/:22px; /* IE5/Win */&lt;br /&gt;background: transparent url(nav_f_2.png) no-repeat;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;body#welcome li#wel a&lt;br /&gt;{ background-position: 0 0; width: 94px; left: 0; }&lt;br /&gt;body#welcome li#wel a:hover&lt;br /&gt;{ background-position: 0 0; }&lt;br /&gt;body#welcome li#pro a&lt;br /&gt;{ background-position: -94px -88px; left: 94px; }&lt;br /&gt;body#welcome li#pro a:hover&lt;br /&gt;{ background-position: -94px 0px; }&lt;br /&gt;body#welcome li#sup a&lt;br /&gt;{ background-position: -178px -88px; left: 178px; }&lt;br /&gt;body#welcome li#sup a:hover&lt;br /&gt;{ background-position: -178px 0; }&lt;br /&gt;body#welcome li#con a&lt;br /&gt;{ background-position: -262px -88px; left: 262px; }&lt;br /&gt;body#welcome li#con a:hover&lt;br /&gt;{ background-position: -262px 0; }&lt;br /&gt;&lt;br /&gt;body#products li#wel a&lt;br /&gt;{ background-position: 0 -110px; width: 94px; left: 0; }&lt;br /&gt;body#products li#wel a:hover&lt;br /&gt;{ background-position: 0 -22px; }&lt;br /&gt;body#products li#pro a&lt;br /&gt;{ background-position: -94px -22px; left: 94px; }&lt;br /&gt;body#products li#pro a:hover&lt;br /&gt;{ background-position: -94px -22px; }&lt;br /&gt;body#products li#sup a&lt;br /&gt;{ background-position: -178px -88px; left: 178px; }&lt;br /&gt;body#products li#sup a:hover&lt;br /&gt;{ background-position: -178px 0; }&lt;br /&gt;body#products li#con a&lt;br /&gt;{ background-position: -262px -88px; left: 262px; }&lt;br /&gt;body#products li#con a:hover&lt;br /&gt;{ background-position: -262px 0; }&lt;br /&gt;&lt;br /&gt;body#support li#wel a&lt;br /&gt;{ background-position: 0 -88px; width: 94px; left: 0; }&lt;br /&gt;body#support li#wel a:hover&lt;br /&gt;{ background-position: 0 -44px; }&lt;br /&gt;body#support li#pro a&lt;br /&gt;{ background-position: -94px -110px; left: 94px; }&lt;br /&gt;body#support li#pro a:hover&lt;br /&gt;{ background-position: -94px -44px; }&lt;br /&gt;body#support li#sup a&lt;br /&gt;{ background-position: -178px -44px; left: 178px; }&lt;br /&gt;body#support li#sup a:hover&lt;br /&gt;{ background-position: -178px -44px; }&lt;br /&gt;body#support li#con a&lt;br /&gt;{ background-position: -262px -88px; left: 262px; }&lt;br /&gt;body#support li#con a:hover&lt;br /&gt;{ background-position: -262px 0; }&lt;br /&gt;&lt;br /&gt;body#contact li#wel a&lt;br /&gt;{ background-position: 0 -88px; width: 94px; left: 0px; }&lt;br /&gt;body#contact li#wel a:hover&lt;br /&gt;{ background-position: 0 -44px; }&lt;br /&gt;body#contact li#pro a&lt;br /&gt;{ background-position: -94px -88px; left: 94px; }&lt;br /&gt;body#contact li#pro a:hover&lt;br /&gt;{ background-position: -94px 0; }&lt;br /&gt;body#contact li#sup a&lt;br /&gt;{ background-position: -178px -110px; left: 178px; }&lt;br /&gt;body#contact li#sup a:hover&lt;br /&gt;{ background-position: -178px -66px; }&lt;br /&gt;body#contact li#con a&lt;br /&gt;{ background-position: -262px -66px; left: 262px; }&lt;br /&gt;body#contact li#con a:hove&lt;br /&gt;r  { background-position: -262px -66px; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;p { text-align: center; }&lt;br /&gt;p a&lt;br /&gt;{ color: #666; text-decoration: none; font: 11px/1.5 tahoma, arial, verdana, sans-serif; }&lt;br /&gt;p a em&lt;br /&gt;{ font-style: normal; border-bottom: 1px solid #999; }&lt;br /&gt;p a:hover em&lt;br /&gt;{ color: #333; border-bottom: 0; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;you can see the navigation tab &lt;a href="http://www.nundroo.com/nav_matrix/welcome2.html"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-1401860881494988108?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/1401860881494988108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=1401860881494988108' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/1401860881494988108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/1401860881494988108'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/04/navigation-matrix-reloaded.html' title='navigation matrix reloaded'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_dNsT-2rXuyw/RiyH4R09ZYI/AAAAAAAAAms/_ahBb9ZkYf4/s72-c/navigation-matrix2.gif.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-8688792069449984225</id><published>2007-04-23T15:33:00.000+05:30</published><updated>2007-04-23T15:38:04.728+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS Tutorials'/><title type='text'>css- tab navigation</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_dNsT-2rXuyw/RiyEtR09ZWI/AAAAAAAAAmc/jN93KHfekJI/s1600-h/css_tab.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_dNsT-2rXuyw/RiyEtR09ZWI/AAAAAAAAAmc/jN93KHfekJI/s320/css_tab.gif" alt="" id="BLOGGER_PHOTO_ID_5056562395044734306" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;here is the code for a css tab navigation.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"&lt;br /&gt;    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" &amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;meta http-equiv="content-type" content="application/xhtml+xml; charset=iso-8859-1" /&amp;gt;&lt;br /&gt;&amp;lt;meta name="author" content="Didier Hilhorst" /&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;CSS Based Navigation&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;style media="all" type="text/css"&amp;gt;&lt;br /&gt;&amp;lt;!--&lt;br /&gt;&lt;br /&gt;body {&lt;br /&gt;    margin: 26px;&lt;br /&gt;    padding: 0;&lt;br /&gt;    background: #fff url(back.png) no-repeat;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;span {&lt;br /&gt;    display: none;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;ul {&lt;br /&gt;    position: relative;&lt;br /&gt;    width: 800px;&lt;br /&gt;    background: url(bg_nav.png) no-repeat;&lt;br /&gt;    height: 113px;&lt;br /&gt;    list-style-type: none;&lt;br /&gt;    margin: 0;&lt;br /&gt;    padding: 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;li#bu1 a, li#bu2 a, li#bu3 a, li#bu4 a {&lt;br /&gt;    background: transparent;&lt;br /&gt;    position: absolute;&lt;br /&gt;    width: 110px;&lt;br /&gt;    height: 32px;&lt;br /&gt;    bottom: 0;&lt;br /&gt;    text-decoration: none;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/* adjusted values for IE6 */&lt;br /&gt;* html*li#bu1 a, * html*li#bu2 a, * html*li#bu3 a, * html*li#bu4 a { bottom: -1px; }&lt;br /&gt;&lt;br /&gt;li#bu1 a { left: 21px; }&lt;br /&gt;li#bu2 a { left: 122px; background: url(business_hover.gif) 0 0 no-repeat; }&lt;br /&gt;li#bu3 a { left: 223px; background: url(personal_hover.gif) 0 0 no-repeat; }&lt;br /&gt;li#bu4 a { left: 324px; background: url(information_hover.gif) 0 0 no-repeat; }&lt;br /&gt;&lt;br /&gt;li#bu2 a:hover, li#bu3 a:hover, li#bu4 a:hover { background-position: 0 -32px; }&lt;br /&gt;&lt;br /&gt;--&amp;gt;&lt;br /&gt;&amp;lt;/style&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;ul&amp;gt;&lt;br /&gt;&amp;lt;li id="bu1"&amp;gt;&amp;lt;a href="#"&amp;gt;&amp;lt;span&amp;gt;homepage&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li id="bu2"&amp;gt;&amp;lt;a href="#"&amp;gt;&amp;lt;span&amp;gt;business&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;li id="bu3"&amp;gt;&amp;lt;a href="#"&amp;gt;&amp;lt;span&amp;gt;personal&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li id="bu4"&amp;gt;&amp;lt;a href="#"&amp;gt;&amp;lt;span&amp;gt;information&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-8688792069449984225?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/8688792069449984225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=8688792069449984225' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/8688792069449984225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/8688792069449984225'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/04/css-tab-navigation.html' title='css- tab navigation'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_dNsT-2rXuyw/RiyEtR09ZWI/AAAAAAAAAmc/jN93KHfekJI/s72-c/css_tab.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-2803695737510140353</id><published>2007-04-20T16:19:00.000+05:30</published><updated>2007-04-20T16:26:49.665+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS Tutorials'/><title type='text'>sticky footer</title><content type='html'>here is the XHTML markup&lt;br /&gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "&lt;a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd%22&amp;gt"&gt;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&amp;amp;gt&lt;/a&gt;;&amp;lt;html xmlns="&lt;a href="http://www.w3.org/1999/xhtml"&gt;http://www.w3.org/1999/xhtml&lt;/a&gt;" xml:lang="en"&amp;gt; &amp;lt;head&amp;gt;&lt;br /&gt;  &amp;lt;title&amp;gt;A CSS Sticky Footer&amp;lt;/title&amp;gt;&lt;br /&gt;  &amp;lt;!--  The second stylesheet is to make things look pretty.  The first one is only the important one.  --&amp;gt;&lt;br /&gt;  &amp;lt;link rel="stylesheet" type="text/css" media="screen" href="layout.css" /&amp;gt;  &amp;lt;link rel="stylesheet" type="text/css" media="screen" href="style.css" /&amp;gt;&lt;br /&gt; &amp;lt;/head&amp;gt; &amp;lt;body&amp;gt;&lt;br /&gt;  &amp;lt;div class="wrapper"&amp;gt;&lt;br /&gt;   &amp;lt;div class="header"&amp;gt;    &amp;lt;h1&amp;gt;CSS Sticky Footer&amp;lt;/h1&amp;gt;   &amp;lt;/div&amp;gt;&lt;br /&gt;   &amp;lt;h2&amp;gt;A CSS sticky footer that just works&amp;lt;/h2&amp;gt;   &amp;lt;img src="browsers.gif" width="127" height="122" alt="Browser Icons" /&amp;gt;   &amp;lt;p&amp;gt;We've all tried to use a &amp;lt;strong&amp;gt;sticky footer&amp;lt;/strong&amp;gt; one time or another, but they never seem to come out right, do they? Well, the days of a hard to understand CSS-based &amp;lt;strong&amp;gt;sticky footer&amp;lt;/strong&amp;gt; are thankfully over. In just a few simple CSS classes with minimal extra HTML markup, I've fashioned a &amp;lt;strong&amp;gt;sticky footer&amp;lt;/strong&amp;gt; that even beginners can get a handle on. It's been tested in IE 5 and up, Firefox, Safari and Opera.&amp;lt;/p&amp;gt;   &amp;lt;h2&amp;gt;Usage of the CSS&amp;lt;/h2&amp;gt;   &amp;lt;p&amp;gt;&amp;lt;q&amp;gt;Great! this is exactly what I'm looking for! Can I use it?&amp;lt;/q&amp;gt;&amp;lt;/p&amp;gt;   &amp;lt;p&amp;gt;Absolutely. There are no terms, licenses, fees or requirements. Use it as you will. If you find the kindness to link to me on your site, I'd appreciate it, but it's by no means necessary. Have fun, and don't be afraid to ask me any questions or send me your thoughts.&amp;lt;/p&amp;gt;   &amp;lt;p class="download"&amp;gt;&amp;lt;a href="layout.css"&amp;gt;View the CSS&amp;lt;/a&amp;gt; or &amp;lt;a href="sticker.txt"&amp;gt;download the HTML&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;   &amp;lt;div class="push"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;  &amp;lt;/div&amp;gt;&lt;br /&gt;  &amp;lt;div class="footer"&amp;gt;   &amp;lt;p&amp;gt;Copyright &amp;copy; 2006-2007 Ryan Fait  All rights reserved.&amp;lt;br /&amp;gt;   You may not reproduce this example without written permission from Ryan Fait&amp;lt;/p&amp;gt;  &amp;lt;/div&amp;gt;&lt;br /&gt;  &amp;lt;script type="text/javascript" src="&lt;a href="http://www.google-analytics.com/urchin.js%22&amp;gt;&amp;lt;/script&amp;gt"&gt;http://www.google-analytics.com/urchin.js"&amp;gt;&amp;lt;/script&amp;gt&lt;/a&gt;;  &amp;lt;script type="text/javascript"&amp;gt;   _uacct = "UA-271290-1";   urchinTracker();  &amp;lt;/script&amp;gt;&lt;br /&gt; &amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;here is the CSS&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;STICKER - A valid, easy to use CSS sticky footer by Ryan Fait&lt;br /&gt;This is the basic CSS you need along with the one extra emptydiv and the wrapper required to achieve the effect. I suggestthat you leave the * { margin: 0; } code in while testing andbuilding your site because margins do have a tendency to messthings up a bit. Have fun!&lt;br /&gt;Copyright (c) 2006-2007 Ryan Fait&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;* { margin: 0;}html, body { height: 100%;}.wrapper { min-height: 100%; height: auto !important; height: 100%; margin: 0 auto -4em; /* the bottom margin is the negative value of the footer's height */}.footer, .push { height: 4em; /* .push must be the same height as .footer */}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;TROUBLESHOOTING&lt;br /&gt;I've received a few comments about vertical margins causing afew problems with the layout. If you want space betweenparagraphs or headers, use padding instead of margin. It's assimple as that.&lt;br /&gt;*/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-2803695737510140353?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/2803695737510140353/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=2803695737510140353' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/2803695737510140353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/2803695737510140353'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/04/sticky-footer.html' title='sticky footer'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-375487919068559175</id><published>2007-04-20T11:28:00.000+05:30</published><updated>2007-04-20T11:41:30.436+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='css3'/><title type='text'>Rounded Corner Boxes the CSS3 Way</title><content type='html'>&lt;span style="font-family:trebuchet ms;"&gt;If you’ve been doing CSS for a while you’ll know that there are approximately 3,762 ways to create a rounded corner box. The simplest techniques rely on the addition of extra mark-up directly to your page, while the more complicated ones add the mark-up though DOM manipulation. While these techniques are all very interesting, they do seem somewhat of a kludge. The goal of CSS is to separate structure from presentation, yet here we are adding superfluous mark-up to our code in order to create a visual effect. The reason we are doing this is simple. CSS2.1 only allows a single background image per element.&lt;br /&gt;&lt;br /&gt;Thankfully this looks set to change with the addition of multiple background images into the CSS3 specification. With CSS3 you’ll be able to add not one, not four, but eight background images to a single element. This means you’ll be able to create all kinds of interesting effects without the need of those additional elements.&lt;br /&gt;&lt;br /&gt;While the CSS working group still seem to be arguing over the exact syntax, Dave Hyatt went ahead and implemented the currently suggested mechanism into Safari. The technique is fiendishly simple, and I think we’ll all be a lot better off once the W3C stop arguing over the details and allow browser vendors to get on and provide the tools we need to build better websites.&lt;br /&gt;&lt;br /&gt;To create a CSS3 rounded corner box, simply start with your box element and apply your 4 corner images, separated by commas.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;.box {&lt;br /&gt;background-image: url(top-left.gif), url(top-right.gif), url(bottom-left.gif), url(bottom-right.gif);&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;We don’t want these background images to repeat, which is the normal behaviour, so lets set all their background-repeat properties to no-repeat.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;.box { background-image: url(top-left.gif), url(top-right.gif), url(bottom-left.gif), url(bottom-right.gif); background-repeat: no-repeat, no-repeat, no-repeat, no-repeat; }&lt;br /&gt;&lt;br /&gt;Lastly, we need to define the positioning of each corner image.&lt;br /&gt;&lt;br /&gt;.box { background-image: url(top-left.gif), url(top-right.gif), url(bottom-left.gif), url(bottom-right.gif); background-repeat: no-repeat, no-repeat, no-repeat, no-repeat; background-position: top left, top right, bottom left, bottom right; }&lt;br /&gt;&lt;br /&gt;And there we have it, a simple rounded corner box with no additional mark-up.&lt;br /&gt;As well as using multiple background images, CSS3 also has the ability to create rounded corners without the need of any images at all. You can do this by setting the border-radius property to your desired value as seen in the next example.&lt;br /&gt;&lt;br /&gt;.box { border-radius: 1.6em; }&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-375487919068559175?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/375487919068559175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=375487919068559175' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/375487919068559175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/375487919068559175'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/04/rounded-corner-boxes-css3-way.html' title='Rounded Corner Boxes the CSS3 Way'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-4218317751199664280</id><published>2007-04-20T11:04:00.000+05:30</published><updated>2007-04-20T11:28:36.739+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><title type='text'>Setting Type on the Web to a Baseline Grid</title><content type='html'>&lt;span style="font-family:trebuchet ms;"&gt;We web designers get excited about the littlest things. Our friends in the print world must get a kick out of watching us talk about finally being able to achieve layouts on the web that they’ve taken for granted for years. Let’s face it: it’s easier these days to embed a video on the web than it is to set type consistently or align elements to a universal grid.&lt;br /&gt;&lt;br /&gt;But we’re scrappy folks, web designers. We don’t give up easy. In the long slow battle with browser support and platform inconsistencies, we’ve been able to bring more and more sophisticated print techniques onto the web—sometimes kicking and screaming.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;strong&gt;We have the technology&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;Over the last year or so, there’s been a lot of talk about grid systems and using column grids for website layouts. Mark gave us a &lt;/span&gt;&lt;a title="Mark Boulton: Five Simple Steps to designing grid systems" href="http://www.markboulton.co.uk/articles/detail/five_simple_steps_to_designing_grid_systems/"&gt;&lt;span style="font-family:trebuchet ms;"&gt;lesson plan&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt;, Khoi gave us a &lt;/span&gt;&lt;a title="Khoi Vinh: The Funniest Grid You Ever Saw" href="http://www.subtraction.com/archives/2005/0901_the_funniest.php"&gt;&lt;span style="font-family:trebuchet ms;"&gt;case study&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt; and Cameron gave us &lt;/span&gt;&lt;a title="Cameron Moll: Gridding the 960" href="http://cameronmoll.com/archives/2006/12/gridding_the_960/"&gt;&lt;span style="font-family:trebuchet ms;"&gt;a toolkit&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt;. The message is clear: we have the browser support, the know-how, and the tools we need to create consistent multi-column grid layouts on the web.&lt;br /&gt;We can apply the same principles of proportion and balance to the type within those columns by borrowing another technique from our print brethren: the baseline grid.&lt;br /&gt;The main principle of the baseline grid is that the bottom of every line of text (the baseline) falls on a vertical grid set in even increments all the way down the page. Imagine those old &lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/Big_Chief_tablet"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Big Chief ruled writing pads&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt; they gave you in grade school to practice penmanship and you’ve got the basic idea. The magical &lt;/span&gt;&lt;a href="http://www.alistapart.com/d/settingtypeontheweb/example.html"&gt;&lt;span style="font-family:trebuchet ms;"&gt;end result&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt; is that all the text on your page lines up across all the columns, creating a harmonious vertical rhythm.&lt;br /&gt;In print, it’s not that hard. Just enable the baseline grid in Quark or InDesign and set the increment based on the line-height you want. On the web of course, it’s another story. It’s hard enough to align things vertically with CSS because it’s tough to predict where every element will fall, and it only gets worse when we’re dealing with type, which is hard enough to size consistently on its own. But with a little math and a slightly obsessive attention to detail, we can make it work.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Firing up the grid&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Note: I’ve used pixel units for sizing text in the examples for this article. Recognizing that this may be a surprising recommendation for an article in this publication, I’ve addressed some of my reasons for doing so—as well as some alternate techniques that use relative units—further down.&lt;br /&gt;&lt;br /&gt;The first thing we have to do is set a line-height for our grid. I’ve chosen a pretty standard base font size of 12 pixels, and set the line-height at 18 pixels, which gives us a nice open leading of about 150%. It’s important to think about your line-heights up front. You want a ratio of font size to line-height that’s a good balance for readability and that’s easily divisible into smaller units (more on this later).&lt;br /&gt;&lt;br /&gt;I’ve also borrowed a trick from &lt;/span&gt;&lt;a href="http://www.subtraction.com/archives/2005/0901_the_funniest.php"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Khoi&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt; and created a tiling background image that I can use on the page while I’m working to make sure everything lines up where I want it to. You can see the end result with the grid turned on in this &lt;/span&gt;&lt;a href="http://www.alistapart.com/d/settingtypeontheweb/example_grid.html"&gt;&lt;span style="font-family:trebuchet ms;"&gt;example&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt;.&lt;br /&gt;&lt;br /&gt;You’ll notice in the previous example that the text doesn’t fall directly on the grid lines. Because of the way CSS renders line-height (by adding space above and below the letters) it’s a lot easier to line the text up within the grid lines rather than directly on them. It’s possible to adjust your background image to take this into account, or tweak the padding on certain elements so the text starts in a different place, but there’s no point making this more complicated than it needs to be.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Paragraphs and headers&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;I’ll start by resetting the margin and padding on everything to zero so we don’t have to worry about default browser styles. In practice, you’ll probably want to use something a little more precise, but for the purposes of this example, a good old star selector will do just fine.&lt;br /&gt;&lt;br /&gt;* {&lt;br /&gt;margin: 0;&lt;br /&gt;padding: 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;We want space between paragraphs, but the default top and bottom margins of 1em (which works out in this case to 12 pixels) won’t work with our 18 pixel grid, so we’ll set the bottom margin on paragraphs to 18 pixels.&lt;br /&gt;&lt;br /&gt;p {&lt;br /&gt;margin-bottom: 18px;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;As we set the font size for headers, we also need to set appropriate line-heights in multiples of 18, as well as adding the 18 pixel bottom margin.&lt;br /&gt;&lt;br /&gt;h1 {&lt;br /&gt;font-size: 24px;&lt;br /&gt;line-height: 36px;&lt;br /&gt;margin-bottom: 18px;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;h2 {&lt;br /&gt;font-size: 18px;&lt;br /&gt;line-height: 18px;&lt;br /&gt;margin-bottom: 18px;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;h3 {&lt;br /&gt;font-size: 12px;&lt;br /&gt;line-height: 18px;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;The pattern is pretty simple. Any time you add vertical space with a margin or padding, you need to add it in units of 18 pixels to maintain the baseline grid. You don’t always have to add it in one place, but you need to add it in pairs that add up to 18 pixels. For instance, you could set a top margin of 12 pixels and a bottom margin of 6 pixels.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:trebuchet ms;"&gt;Lists&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Lists are a little bit tougher. We’re used to adding a little padding between each list item and before or after a nested list. Depending on your grid size, you may have to choose between adding a lot of extra space (adding a full grid line) or adding none at all and letting list items fall on the regular grid lines.&lt;br /&gt;Since the 18-pixel line-height we started with is pretty generous, the “none at all” option works pretty well here. I’ll just add the bottom margin of 18 pixels.&lt;br /&gt;&lt;br /&gt;ul, ol {&lt;br /&gt;margin-bottom: 18px;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;As for nested lists, it’s possible to add half of your line-height (in this case, 9 pixels) of margin above and below nested lists. Adding half a line to the top and another half to the bottom means the contents of the list will be “off the grid,” but the grid will get back on track once the list ends. It’s a compromise, but sometimes worth it for designs in which you need to accommodate especially long or complicated nested lists.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;strong&gt;Floats and sidebars&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Here’s where a little discipline comes in. Images and other elements floated within your text need to be sized vertically in multiples of your grid increment: in this case, multiples of 18. If they’re sized correctly, you can add margins around them that add up vertically to a multiple of 18, and the text will always break in the right place, directly under your image.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;.left {&lt;br /&gt;float: left;&lt;br /&gt;margin: 0 18px 18px 0;&lt;br /&gt;}&lt;br /&gt;.right {&lt;br /&gt;float: right;&lt;br /&gt;margin: 0 0 18px 18px;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Other floated elements like callout boxes are a little bit more complicated, since it’s harder to predict their height based on the content inside. As long as all text and images inside the float follow the 18-pixel rules, and you always add vertical padding and margins in groups that add up to 18, everything should line up no matter what you put inside.&lt;br /&gt;&lt;br /&gt;.callout {&lt;br /&gt;border: 1px solid #ddd;&lt;br /&gt;padding: 8px 10px;&lt;br /&gt;margin-bottom: 18px;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Notice that I added 8 pixels of padding to the top and bottom of the floated element, since the border width already accounted for 2 pixels of added height (8 + 8 + 1 + 1 = 18).&lt;br /&gt;I’m also going to suck out the bottom margin on the last element in the callout so we don’t end up with too much extra space inside. This isn’t a critical layout feature (the grid is still intact without it), so I’ll go ahead and use the :last-child pseudo class since it doesn’t require me to add any extra markup. IE6 won’t get it, but it won’t break the layout.&lt;br /&gt;&lt;br /&gt;.callout :last-child {&lt;br /&gt;margin-bottom: 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;The important thing to remember with callouts and sidebars is to keep the line-height the same even if you make the text smaller. You might be tempted to tighten it up, but even for 11- or 10-pixel font sizes, 18 pixels is still a very readable line-height.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:trebuchet ms;"&gt;All your baseline are belong to us&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;You can see it all put together in this &lt;/span&gt;&lt;a href="http://www.alistapart.com/d/settingtypeontheweb/example.html"&gt;&lt;span style="font-family:trebuchet ms;"&gt;example&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt;. If you don’t believe me, put your rulers away and check it out with the &lt;/span&gt;&lt;a href="http://www.alistapart.com/d/settingtypeontheweb/example_grid.html"&gt;&lt;span style="font-family:trebuchet ms;"&gt;background grid&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt; visible.&lt;br /&gt;&lt;br /&gt;You can start to see why baseline grids aren’t used very often on the web. It’s pretty tough to keep up with it—especially as your layouts get more complicated—and we’ve only touched the surface of some of the relatively manageable challenges. Just as in print, baseline grids are not always the right choice for every layout, and sometimes you need to make exceptions or exclude certain elements from the grid to make a layout work.&lt;br /&gt;&lt;br /&gt;But it’s definitely possible, and something that’s worth experimenting with, especially in combination with a horizontal or column grid. A nice balanced baseline grid—even just within the main content area—can add polish and readability as we move typesetting on the web to the next generation with CSS3 and beyond.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;strong&gt;Don’t fear the pixel&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;One final note on font sizing: I’m using pixels instead of ems in this example for one reason: it makes everything simpler. With pixels, I can set one base line-height for the entire document and I don’t have to recalculate it whenever I use a smaller font size. When designing a practical system like this, it’s important that it’s relatively easy (for yourself and others) to use and maintain.&lt;br /&gt;&lt;br /&gt;You can use relative sizes, but it quickly becomes a lot more difficult to maintain as the math becomes more complicated. It’s easy to get 12 out of 18 (just set the line-height to 1.5em), but when you want to adjust the text size but keep the same line-height, the fractions start to get messy, and predicting how browsers are going to round your values makes it hard to be exact. It’s certainly possible however, and if you’re interested in trying something similar with relative text sizes, I’d recommend checking out Richard Rutter’s excellent &lt;/span&gt;&lt;a href="http://24ways.org/"&gt;&lt;span style="font-family:trebuchet ms;"&gt;24 ways&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt; article, &lt;/span&gt;&lt;a title="Richard Rutter: Compost to a Vertical Rhythm" href="http://24ways.org/2006/compose-to-a-vertical-rhythm"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Compose to a Vertical Rhythm&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt;.&lt;br /&gt;&lt;br /&gt;In the end, it’s a tradeoff. Most browsers will scale pixel-based line-heights proportionally along with the text. Of course, the margins don’t scale, and neither do the images. But is it worth making the system more complicated just to make the margins scale if the images don’t? It depends on the situation. In the end, it’s up to you.&lt;br /&gt;&lt;br /&gt;At some point as designers we have to strike a balance between creating pixel-perfect layouts and infinitely flexible ones. When you get down to it, resizable text is primarily an accessibility feature, not a design feature. Ideally it’s something that should be provided by the browser, no matter how the page is built, and in modern browsers it is. As long as all your content is readable and accessible at all sizes, it’s not necessarily true that the design must maintain integrity as you scale. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-4218317751199664280?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/4218317751199664280/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=4218317751199664280' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/4218317751199664280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/4218317751199664280'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/04/setting-type-on-web-to-baseline-grid.html' title='Setting Type on the Web to a Baseline Grid'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-6642465380148374120</id><published>2007-04-20T10:52:00.000+05:30</published><updated>2007-04-20T11:00:16.938+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Usability'/><title type='text'>Breadcrumb Navigation Increasingly Useful</title><content type='html'>Not all design decisions are a matter of website survival. Of course, it's important to &lt;a class="old" title="Alertbox: Growing a Business Website - Fix the Basics First" href="http://www.useit.com/alertbox/design_priorities.html"&gt;get the big things right&lt;/a&gt;, or you won't have any users. But &lt;a class="old" title="Alertbox: Does User Annoyance Matter?" href="http://www.useit.com/alertbox/annoyances.html"&gt;getting the small things right&lt;/a&gt; enhances usability and fosters user comfort. A perfect example here is the breadcrumb trail.&lt;br /&gt;&lt;br /&gt;Breadcrumbs won't help a site answer users' questions or fix a hopelessly confused information architecture. All that breadcrumbs do is make it easier for users to move around the site, assuming its content and overall structure make sense. That's sufficient contribution for something that takes up only one line in the design.&lt;br /&gt;Breadcrumbs have always been a secondary navigation aid. They share this humble status with &lt;a class="old" title="Alertbox: Site Map Usability" href="http://www.useit.com/alertbox/20020106.html"&gt;site maps&lt;/a&gt;. To navigate, site visitors mainly use the primary menus and the search box, which are certainly more important for usability. But from time to time, people do turn to the site map or the breadcrumbs, particularly when the main navigation doesn't quite meet their needs.&lt;br /&gt;&lt;br /&gt;Despite their secondary status, I've recommended breadcrumbs since 1995 for a few simple reasons:&lt;br /&gt;Breadcrumbs show people their current location relative to higher-level concepts, helping them understand where they are in relation to the rest of the site.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Breadcrumbs afford one-click access to higher site levels and thus rescue users who parachute into very specific but inappropriate destinations through search or deep links. &lt;/li&gt;&lt;li&gt;Breadcrumbs never cause problems in user testing: people might overlook this small design element, but they never misinterpret breadcrumb trails or have trouble operating them. &lt;/li&gt;&lt;li&gt;Breadcrumbs take up very little space on the page. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;So, despite the merely mid-sized benefits, the overall cost-benefit analysis comes out quite strongly in favor of breadcrumbs. Their downside is incredibly small: while they do take up space, that space is minute. When you divide a mid-sized numerator by a tiny denominator, the resulting fraction is substantial. &lt;/p&gt;&lt;p&gt;The main argument against breadcrumbs is that many users overlook them. So, why do something that only benefits a minority? &lt;/p&gt;&lt;p&gt;As I've long argued, breadcrumbs are different than most other little-used design elements for the simple reason that they don't hurt users who ignore them. &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Growing Popularity&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The case against breadcrumbs is crumbling. Every year we see more people use breadcrumbs in our studies. Because breadcrumbs are not important enough for a dedicated study, I don't have an exact number for the current percentage of breadcrumb users. But it's definitely growing over time.&lt;br /&gt;&lt;br /&gt;In testing an e-commerce site last month, for example, one user complained: "This is missing a feature to go back to the previous page."&lt;br /&gt;&lt;br /&gt;I found this apparent request for a Back button puzzling, since the button was featured prominently in the browser and the person had easily used it earlier in the test session. Also, for six years, it's been an established guideline to avoid duplicating browser functionality in the page design.&lt;br /&gt;&lt;br /&gt;It quickly became clear, however, that the user wasn't asking for a duplicate Back button. Elaborating on the previous complaint, she pointed to the place on the page where breadcrumbs typically appear and said she wanted the list of links to higher-level pages.&lt;br /&gt;In other words, the user wanted breadcrumbs. She'd seen them before, but didn't know what they were called, so she asked for them using words that -- if taken literally -- would have been easily misinterpreted.&lt;br /&gt;&lt;br /&gt;This is a great example of the hard-won lesson of usability: &lt;a class="old" title="Alertbox: First Rule of Usability? Don't Listen to Users" href="http://www.useit.com/alertbox/20010805.html"&gt;don't comply with user requests&lt;/a&gt;. Give more attention to what study participants do than to what they say.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Consistency Breeds Familiarity&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Human behavior doesn't change much over the years. My &lt;a class="old" title="'Prioritizing Web Usability' - table of contents" href="http://www.useit.com/prioritizing/"&gt;recent book&lt;/a&gt; documents a few cases where Web design guidelines from the mid-1990s have changed. But mainly, &lt;a class="old" title="Alertbox: Durability of Usability Guidelines" href="http://www.useit.com/alertbox/20050117.html"&gt;usability guidelines stay the same&lt;/a&gt; decade after decade. &lt;/p&gt;&lt;p&gt;Why are people now using breadcrumbs to the extent that they actually miss them when sites don't offer them? &lt;/p&gt;&lt;p&gt;It's exactly because of breadcrumbs' modest nature that people are becoming accustomed to them. There aren't too many ways to mess up breadcrumbs in a design. No fancy stuff, just a line of textual links.&lt;br /&gt;&lt;br /&gt;Breadcrumbs are almost always implemented the same way, with a horizontal line that&lt;br /&gt;progresses from the highest level to the lowest, one step at a time;&lt;br /&gt;starts with the homepage and ends with the current page;&lt;br /&gt;&lt;br /&gt;has a simple text link for each level (except for the current page, because you should &lt;a class="old" title="Alertbox: 10 Most Violated Homepage Design Guidelines" href="http://www.useit.com/alertbox/20031110.html"&gt;never have a link that does nothing&lt;/a&gt;); and&lt;br /&gt;&lt;br /&gt;has a simple, one-character separator between the levels (usually "&gt;"). This consistency means that people know a breadcrumb trail when they see one, and immediately know how to use it. Consistency breeds familiarity and predictability, which breed usability. This again means that &lt;a class="old" title="Alertbox: The Need for Web Design Standards" href="http://www.useit.com/alertbox/20040913.html"&gt;you must comply with conventions&lt;/a&gt; in the design of your own breadcrumbs.&lt;br /&gt;&lt;br /&gt;Breadcrumbs are also useful for intranets: 80% of this year's &lt;a class="old" title="Alertbox: The Need for Web Design Standards" href="http://www.useit.com/alertbox/intranet_design.html"&gt;award-winning intranets&lt;/a&gt; use breadcrumbs.&lt;br /&gt;&lt;br /&gt;Hierarchy or History?I'm sometimes asked whether website breadcrumbs should follow the fairytale model of Hansel and Gretel. In that story, the children walk through a bewildering forest, dropping breadcrumbs behind them in hopes that they might later find their way out.&lt;br /&gt;In user interface design, it's often dangerous to take metaphors too far, and breadcrumbs are again the perfect example. Offering users a Hansel-and-Gretel-style history trail is basically useless, because it simply duplicates functionality offered by the Back button, which is the Web's second-most-used feature.&lt;br /&gt;&lt;br /&gt;A history trail can also be confusing: users often wander in circles or go to the wrong site sections. Having each point in a confused progression at the top of the current page doesn't offer much help.&lt;br /&gt;&lt;br /&gt;Finally, a history trail is useless for users who arrive directly at a page deep within the site. This scenario is when breadcrumbs show their greatest usability benefit, but only if you implement them correctly -- as a way to visualize the current page's location in the site's information architecture.&lt;br /&gt;&lt;br /&gt;Breadcrumbs should show the site hierarchy, not the user's history.&lt;br /&gt;For non-hierarchical sites, breadcrumbs are useful only if you can find a way to show the current page's relation to more abstract or general concepts. For example, if you allow users to &lt;a class="old" title="Nielsen Norman Group report: E-commerce User Experience - Design Guidelines for Category Pages" href="http://www.nngroup.com/reports/ecommerce/categorypages.html"&gt;winnow a large product database by specifying attributes&lt;/a&gt; (of relevance to users, of course), the breadcrumb trail can list the attributes that have been selected so far. A toy site might have breadcrumbs like these: Home &gt; Girls &gt; 5-6 years &gt; Outdoor play (note that the &lt;a class="old" title="Alertbox: Guidelines for Visualizing Links" href="http://www.useit.com/alertbox/20040510.html"&gt;links should be colored&lt;/a&gt; as well as underlined, but I don't do this here to avoid confusion with these dummy links).&lt;br /&gt;&lt;br /&gt;Looking ahead, people will use breadcrumbs even more because they're an important navigation tool in Windows Vista. Most users don't distinguish clearly between the operating system, applications, and content or websites. Users will thus transfer their understanding of Vista's interaction techniques to your website.&lt;br /&gt;&lt;br /&gt;If you don't have breadcrumbs, it's time to start planning for them. They'll improve your usability a bit now, meet increasing user expectations in the future, and -- most importantly -- they won't hurt. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-6642465380148374120?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/6642465380148374120/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=6642465380148374120' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/6642465380148374120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/6642465380148374120'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/04/breadcrumb-navigation-increasingly.html' title='Breadcrumb Navigation Increasingly Useful'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-2722464445166195791</id><published>2007-04-19T16:22:00.000+05:30</published><updated>2007-04-19T16:31:22.259+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS Tutorials'/><title type='text'>css for table</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Here is the HTML for table &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&amp;lt; !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt; "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&amp;lt; html xmlns="http://www.w3.org/1999/xhtml"&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&amp;lt; head&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&amp;lt; meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&amp;lt; title&amp;gt;CSS Tables&amp;lt; /title&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&amp;lt; link href="styles.css" rel="stylesheet" type="text/css" /&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&amp;lt; /head&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&amp;lt; body&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&amp;lt; table id="mytable" cellspacing="0" summary="The technical specifications of the Apple PowerMac G5 series"&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&amp;lt; caption&amp;gt;Table 1: Power Mac G5 tech specs &amp;lt; /caption&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;  &amp;lt; tr&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;    &amp;lt; th scope="col" abbr="Configurations" class="nobg"&amp;gt;Configurations&amp;lt; /th&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;    &amp;lt; th scope="col" abbr="Dual 1.8"&amp;gt;Dual 1.8GHz&amp;lt; /th&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;    &amp;lt; th scope="col" abbr="Dual 2"&amp;gt;Dual 2GHz&amp;lt; /th&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;    &amp;lt; th scope="col" abbr="Dual 2.5"&amp;gt;Dual 2.5GHz&amp;lt; /th&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;  &amp;lt; /tr&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;  &amp;lt; tr&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;    &amp;lt; th scope="row" abbr="Model" class="spec"&amp;gt;Model&amp;lt; /th&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;    &amp;lt; td&amp;gt;M9454LL/A&amp;lt; /td&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;    &amp;lt; td&amp;gt;M9455LL/A&amp;lt; /td&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;    &amp;lt; td&amp;gt;M9457LL/A&amp;lt; /td&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;  &amp;lt; /tr&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;  &amp;lt; tr&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;    &amp;lt; th scope="row" abbr="G5 Processor" class="specalt"&amp;gt;G5 Processor&amp;lt; /th&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;    &amp;lt; td class="alt"&amp;gt;Dual 1.8GHz PowerPC G5&amp;lt; /td&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;    &amp;lt; td class="alt"&amp;gt;Dual 2GHz PowerPC G5&amp;lt; /td&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;    &amp;lt; td class="alt"&amp;gt;Dual 2.5GHz PowerPC G5&amp;lt; /td&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;  &amp;lt; /tr&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;  &amp;lt; tr&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;    &amp;lt; th scope="row" abbr="Frontside bus" class="spec"&amp;gt;Frontside bus&amp;lt; /th&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;    &amp;lt; td&amp;gt;900MHz per processor&amp;lt; /td&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;    &amp;lt; td&amp;gt;1GHz per processor&amp;lt; /td&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;    &amp;lt; td&amp;gt;1.25GHz per processor&amp;lt; /td&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;  &amp;lt; /tr&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;  &amp;lt; tr&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;    &amp;lt; th scope="row" abbr="L2 Cache" class="specalt"&amp;gt;Level2 Cache&amp;lt; /th&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;    &amp;lt; td class="alt"&amp;gt;512K per processor&amp;lt; /td&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;    &amp;lt; td class="alt"&amp;gt;512K per processor&amp;lt; /td&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;    &amp;lt; td class="alt"&amp;gt;512K per processor&amp;lt; /td&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;  &amp;lt; /tr&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&amp;lt; /table&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&amp;lt; p&amp;gt;&amp;lt; a href="styles.css"&amp;gt;→ download stylesheet&amp;lt; /a&amp;gt;&amp;lt; /p&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&amp;lt; /body&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&amp;lt; /html&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;And this is the CSS&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;pre&gt;body {&lt;br /&gt; font: normal 11px auto "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;&lt;br /&gt; color: #4f6b72;&lt;br /&gt; background: #E6EAE9;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;a {&lt;br /&gt; color: #c75f3e;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#mytable {&lt;br /&gt; width: 700px;&lt;br /&gt; padding: 0;&lt;br /&gt; margin: 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;caption {&lt;br /&gt; padding: 0 0 5px 0;&lt;br /&gt; width: 700px; &lt;br /&gt; font: italic 11px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;&lt;br /&gt; text-align: right;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;th {&lt;br /&gt; font: bold 11px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;&lt;br /&gt; color: #4f6b72;&lt;br /&gt; border-right: 1px solid #C1DAD7;&lt;br /&gt; border-bottom: 1px solid #C1DAD7;&lt;br /&gt; border-top: 1px solid #C1DAD7;&lt;br /&gt; letter-spacing: 2px;&lt;br /&gt; text-transform: uppercase;&lt;br /&gt; text-align: left;&lt;br /&gt; padding: 6px 6px 6px 12px;&lt;br /&gt; background: #CAE8EA url(images/bg_header.jpg) no-repeat;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;th.nobg {&lt;br /&gt; border-top: 0;&lt;br /&gt; border-left: 0;&lt;br /&gt; border-right: 1px solid #C1DAD7;&lt;br /&gt; background: none;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;td {&lt;br /&gt; border-right: 1px solid #C1DAD7;&lt;br /&gt; border-bottom: 1px solid #C1DAD7;&lt;br /&gt; background: #fff;&lt;br /&gt; padding: 6px 6px 6px 12px;&lt;br /&gt; color: #4f6b72;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;td.alt {&lt;br /&gt; background: #F5FAFA;&lt;br /&gt; color: #797268;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;th.spec {&lt;br /&gt; border-left: 1px solid #C1DAD7;&lt;br /&gt; border-top: 0;&lt;br /&gt; background: #fff url(images/bullet1.gif) no-repeat;&lt;br /&gt; font: bold 10px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;th.specalt {&lt;br /&gt; border-left: 1px solid #C1DAD7;&lt;br /&gt; border-top: 0;&lt;br /&gt; background: #f5fafa url(images/bullet2.gif) no-repeat;&lt;br /&gt; font: bold 10px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;&lt;br /&gt; color: #797268;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-2722464445166195791?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/2722464445166195791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=2722464445166195791' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/2722464445166195791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/2722464445166195791'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/04/css-for-table.html' title='css for table'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-2660811077834032098</id><published>2007-04-18T18:00:00.000+05:30</published><updated>2007-04-18T18:26:52.804+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><title type='text'>show-hide DIV</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;suppose there are 10 divs in a page. you need to show each div while clicking the corresponding link&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;here is the &lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:trebuchet ms;font-size:100%;"  &gt;javascript&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&amp;lt;script language="javascript" type="text/javascript" &amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;      &amp;lt;!--&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;            function showdiv(id)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;{     for (var x = 1; x &amp;lt;= 10; x++)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;var a='div_' + x;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;document.getElementById(a).style.display = "none"&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;document.getElementById("div_" + id).style.display = ""&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;function hidediv ( id )&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;document.getElementById("div_" + id ).style.display = "none"&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;}      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;--&amp;gt; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;and call the javascript inside an anchor tag like this  onClick=showdiv(1)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-2660811077834032098?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/2660811077834032098/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=2660811077834032098' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/2660811077834032098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/2660811077834032098'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/04/show-hide-div.html' title='show-hide DIV'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-6800388410867357247</id><published>2007-04-04T10:25:00.001+05:30</published><updated>2007-04-04T10:29:14.375+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><title type='text'>Javascript for show-hide Div</title><content type='html'>&lt;div style="font-family: trebuchet ms;" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;span style="font-size:100%;"&gt;Shown below is the function for showing and hiding  two div containers&lt;br /&gt;&lt;br /&gt;The function showHideDiv has two variables for passing the values for which div has to show and which div has to hide.&lt;br /&gt;&lt;br /&gt;function &lt;span style="color: rgb(102, 51, 51);"&gt;showHideDiv&lt;/span&gt;(&lt;span style="color: rgb(255, 102, 0);"&gt;divToShow&lt;/span&gt;, &lt;span style="color: rgb(255, 102, 0);"&gt;divToHide&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;    document.getElementById(divToShow).style.display = "block";&lt;br /&gt;    document.getElementById(divToHide).style.display = "none";&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Call the function as shown below.divToShow has to replaced by the ID of the div tag to be shown and divToHide has to replaced by the ID of the div tag to hide.&lt;br /&gt;&lt;br /&gt;&lt;a href="javascript:&lt;span style="&gt;showHideDiv&lt;/span&gt;('&lt;span style="color: rgb(255, 102, 0);"&gt;divToShow&lt;/span&gt;','&lt;span style="color: rgb(255, 102, 0);"&gt;divToHide&lt;/span&gt;');"&gt;Protection Area&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-6800388410867357247?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/6800388410867357247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=6800388410867357247' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/6800388410867357247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/6800388410867357247'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/04/javascript-for-show-hide-div.html' title='Javascript for show-hide Div'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-1981413392416280091</id><published>2007-04-02T13:14:00.000+05:30</published><updated>2007-04-02T13:20:49.274+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Usability'/><title type='text'>Deep Linking is Good Linking</title><content type='html'>Links that go directly to a site's interior pages enhance usability because, unlike generic links, they specifically relate to users' goals. Websites should encourage deep linking and follow three guidelines to support its users.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;Supporting Deep-Link Users&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;A website is like a house with a million entrances: the front door is simply one among many ways to get in. A good website will accommodate visitors who choose alternate routes.&lt;br /&gt;Here are three guidelines for enhancing usability for users who enter your site at interior pages:&lt;br /&gt;&lt;br /&gt;Tell users their arrival point, and how they can proceed to other parts of the site by including these three design elements on every single page:&lt;br /&gt;Company name or logo in upper left corner&lt;br /&gt;Direct, one-click link to the homepage&lt;br /&gt;Search (preferably in the upper right corner)&lt;br /&gt;&lt;br /&gt;Orient the user relative to the rest of the website. If the site has hierarchical information architecture, a breadcrumb trail is usually the best way to do this. Also, include links to other resources that are directly relevant to the current location. Don't bury the user in links to all site areas or to pages that are unrelated to their current location.&lt;br /&gt;&lt;br /&gt;Don't assume that users have followed a drill-down path to arrive at the current page. They may not have seen information that was contained on higher-level pages.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-1981413392416280091?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/1981413392416280091/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=1981413392416280091' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/1981413392416280091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/1981413392416280091'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/04/deep-linking-is-good-linking.html' title='Deep Linking is Good Linking'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-6167540663314419111</id><published>2007-04-02T12:50:00.000+05:30</published><updated>2007-04-02T13:13:11.624+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Usability'/><title type='text'>Top Ten Guidelines for Homepage Usability</title><content type='html'>A company's homepage is its face to the world and the starting point for most user visits. Improving your homepage multiplies the entire website's business value, so following key guidelines for homepage usability is well worth the investment.&lt;br /&gt;Homepages are the most valuable real estate in the world. Each year, companies and individuals funnel millions of dollars through a space that's not even a square foot in size. For good reason. A homepage's impact on a company’s bottom line is far greater than simple measures of e-commerce revenues: The homepage is your company's face to the world. Increasingly, potential customers will look at your company's online presence before doing business with you -- regardless of whether they plan to close the actual sale online.&lt;br /&gt;&lt;br /&gt;The homepage is the most important page on most websites, and gets more page views than any other page. Of course, users don't always enter a website from the homepage. A website is like a house in which every window is also a door: People can follow links from search engines and other websites that reach deep inside your site. However, one of the first things these users do after arriving at a new site is go to the homepage. &lt;a class="old" title="Alertbox March 2002: Deep Linking is Good Linking" href="http://www.useit.com/alertbox/20020303.html"&gt;Deep linking&lt;/a&gt; is very useful, but it doesn't give users the site overview a homepage offers -- if the homepage design follows strong usability guidelines, that is.&lt;br /&gt;Following are ten things you can do to increase the usability of your homepage and thus enhance your website's business value.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;Make the Site's Purpose Clear: Explain Who You Are and What You Do&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;1. Include a One-Sentence Tagline&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Start the page with a &lt;a class="old" title="Alertbox July 2001: Tagline Blues - What's the Site About?" href="http://www.useit.com/alertbox/20010722.html"&gt;tagline&lt;/a&gt; that summarizes what the site or company does, especially if you're new or less than famous. Even well-known companies presumably hope to attract new customers and should tell first-time visitors about the site's purpose. It is especially important to have a good tagline if your company's general marketing slogan is bland and fails to tell users what they'll gain from visiting the site.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2. Write a Window Title with Good Visibility in Search Engines and Bookmark Lists&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Begin the &lt;a class="old" title="Alertbox Sept. 1998: Microcontent - How to Write Headlines, Page Titles, and Subject Lines" href="http://www.useit.com/alertbox/980906.html"&gt;TITLE tag&lt;/a&gt; with the company name, followed by a brief description of the site. Don't start with words like "The" or "Welcome to" unless you want to be alphabetized under "T" or "W."&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3. Group all Corporate Information in One Distinct Area&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Finding out about the company is rarely a user's first task, but sometimes people do need details about who you are. Good corporate information is especially important if the site hopes to support recruiting, &lt;a class="old" title="Nielsen Norman Group: report with 65 design guidelines for Usability of the Investor Relations Area of Corporate Websites, based on user testing with Individual Investors, Institutional Investors, Financial Analysts, and Business Journalists" href="http://www.nngroup.com/reports/ir/"&gt;investor relations&lt;/a&gt;, or &lt;a class="old" title="Nielsen Norman Group Report: Designing Websites to Maximize Press Relations - 32 Guidelines from Usability Studies with Journalists" href="http://www.nngroup.com/reports/pr/"&gt;PR&lt;/a&gt;, but it can also serve to increase a new or lesser-known company's &lt;a class="old" title="Nielsen Norman Group Report: 34 Design Guidelines for Trust and Credibility" href="http://www.nngroup.com/reports/ecommerce/trust.html"&gt;credibility&lt;/a&gt;. An "About &lt;company-name&gt;" section is the best way to link users to more in-depth information than can be presented on the homepage.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;Help Users Find What They Need&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;4. Emphasize the Site's Top High-Priority Tasks&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Your homepage should offer users a clear starting point for the main one to four tasks they'll undertake when visiting your site.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;5. Include a Search Input Box&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;a class="old" title="Alertbox May 2001: Search - Visible and Simple" href="http://www.useit.com/alertbox/20010513.html"&gt;Search&lt;/a&gt; is an important part of any big website. When users want to search, they typically scan the homepage looking for "the little box where I can type," so your search should be a box. Make your search box at least 25 characters wide, so it can accommodate multiple words without obscuring parts of the user's query.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;Reveal Site Content&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;6. Show Examples of Real Site Content&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Don't just describe what lies beneath the homepage. Specifics beat abstractions, and you have good stuff. Show some of your best or most recent content.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;7. Begin Link Names with the Most Important Keyword&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Users scan down the page, trying to find the area that will serve their current goal. Links are the action items on a homepage, and when you start each link with a relevant word, you make it easier for scanning eyes to differentiate it from other links on the page. A common violation of this guideline is to start all links with the company name, which adds little value and impairs users' ability to quickly find what they need.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;8. Offer Easy Access to Recent Homepage Features&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Users will often remember articles, products, or promotions that were featured prominently on the homepage, but they won't know how to find them once you move the features inside the site. To help users locate key items, keep a short list of recent features on the homepage, and supplement it with a link to a permanent archive of all other homepage features.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;Use Visual Design to Enhance, not Define, Interaction Design&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;9. Don't Over-Format Critical Content, Such as Navigation Areas&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;You might think that important homepage items require elaborate illustrations, boxes, and colors. However, users often dismiss graphics as ads, and focus on the parts of the homepage that look more likely to be useful.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;10. Use Meaningful Graphics&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Don't just decorate the page with stock art. Images are powerful communicators when they show items of interest to users, but will backfire if they seem frivolous or irrelevant. For example, it's almost always best to show photos of real people actually connected to the topic, rather than pictures of models.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-6167540663314419111?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/6167540663314419111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=6167540663314419111' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/6167540663314419111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/6167540663314419111'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/04/top-ten-guidelines-for-homepage.html' title='Top Ten Guidelines for Homepage Usability'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-150189519461220027</id><published>2007-04-02T12:45:00.000+05:30</published><updated>2007-04-02T12:50:25.549+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Usability'/><title type='text'>When to Work on Usability</title><content type='html'>Usability plays a role in each stage of the design process. The resulting need for multiple studies is one reason I recommend making individual studies fast and cheap. Here are the main steps:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Before starting the new design, test the old design to identify the good parts that you should keep or emphasize, and the bad parts that give users trouble. &lt;/li&gt;&lt;li&gt;Unless you're working on an intranet, test your competitors' designs to get cheap data on a range of alternative interfaces that have similar features to your own. (If you work on an intranet, read the &lt;a class="old" title="Nielsen Norman Group: list of intranet usability reports" href="http://www.nngroup.com/reports/intranet/"&gt;intranet design annuals&lt;/a&gt; to learn from other designs.) &lt;/li&gt;&lt;li&gt;Conduct a field study to see how users behave in their natural habitat. &lt;/li&gt;&lt;li&gt;Make &lt;a class="new" title="Nielsen Norman Group training film on DVD: Paper Prototyping - A How-To Video" href="http://www.nngroup.com/reports/prototyping/"&gt;paper prototypes&lt;/a&gt; of one or more new design ideas and test them. The less time you invest in these design ideas the better, because you'll need to change them all based on the test results. &lt;/li&gt;&lt;li&gt;Refine the design ideas that test best through multiple iterations, gradually moving from low-fidelity prototyping to high-fidelity representations that run on the computer. Test each iteration. &lt;/li&gt;&lt;li&gt;Inspect the design relative to &lt;a class="old" title="Nielsen Norman Group: list of usability guidelines reports" href="http://www.nngroup.com/reports/"&gt;established usability guidelines&lt;/a&gt;, whether from your own earlier studies or published research. &lt;/li&gt;&lt;li&gt;Once you decide on and implement the final design, test it again. Subtle usability problems always creep in during implementation. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Don't defer user testing until you have a fully implemented design. If you do, it will be impossible to fix the vast majority of the critical usability problems that the test uncovers. Many of these problems are likely to be structural, and fixing them would require major rearchitecting.&lt;br /&gt;The only way to a high-quality user experience is to start user testing early in the design process and to keep testing every step of the way. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-150189519461220027?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/150189519461220027/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=150189519461220027' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/150189519461220027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/150189519461220027'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/04/when-to-work-on-usability.html' title='When to Work on Usability'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-611013138616670013</id><published>2007-04-02T11:36:00.000+05:30</published><updated>2007-04-02T11:47:29.511+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS Tutorials'/><title type='text'>Turning a list into a navigation bar</title><content type='html'>&lt;span style="font-family:trebuchet ms;font-size:85%;color:#ff0000;"&gt;&lt;strong&gt;The HTML&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;The markup is very simple. It’s an unordered list, with each link in a separate list item:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;&lt;ul id="nav"&gt;&lt;br /&gt;&lt;li id="nav-home"&gt;&lt;a href="#"&gt;Home&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li id="nav-about"&gt;&lt;a href="#"&gt;About&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li id="nav-archive"&gt;&lt;a href="#"&gt;Archive&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li id="nav-lab"&gt;&lt;a href="#"&gt;Lab&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li id="nav-reviews"&gt;&lt;a href="#"&gt;Reviews&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li id="nav-contact"&gt;&lt;a href="#"&gt;Contact&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;Why use a list? Because a navigation bar, or menu, is a list of links. The best (most semantic) way of marking up a list of links is to use a list element. Using a list also has the benefit of providing structure even if CSS is disabled.&lt;br /&gt;At this stage, with no CSS applied, the list will look like any old (normally bulleted) list, styled only by the browser’s defaults.&lt;br /&gt;I’ve given id attributes to the ul and li elements. The id attribute for the ul element is used by the CSS rules that style the entire list. The li elements have different id values to enable the use of CSS to highlight the currently selected link. This is done by specifying an id for the body element. More on that later.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#ff0000;"&gt;The CSS&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#ff0000;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;I’ll describe the CSS I’ve used to style the list in a step-by-step fashion.&lt;br /&gt;First of all, I set the margins and padding of the list and list items to zero, and tell the list items to be displayed inline:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;span style="color:#666666;"&gt;#nav {&lt;br /&gt;margin:0;&lt;br /&gt;padding:0;&lt;br /&gt;}&lt;br /&gt;#nav li {&lt;br /&gt;display:inline;&lt;br /&gt;padding:0;&lt;br /&gt;margin:0;&lt;br /&gt;}&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;This will make all the links display one after another on the same line, as if the list wasn’t there. It will also remove the list bullets, since they are only displayed when display:list-item (the default display mode for list items) is used. Some browsers are said to incorrectly display the list bullets even though display:inline has been applied to the list items. I haven’t seen this happen in any of the browsers I tested in, but if you want to make sure that no browsers display list bullets, you can add list-style-type:none to the rule for #nav.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;Next, it’s time to start styling the menu tabs. I do this by adding styles to the links, not to the list items. The reason for that is that I want the entire area of each tab to be clickable. First a bit of colour to make the changes more obvious:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;span style="color:#666666;"&gt;#nav a:link,&lt;br /&gt;#nav a:visited {&lt;br /&gt;color:#000;&lt;br /&gt;background:#b2b580;&lt;br /&gt;}&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;Note that I’m styling the normal and visited states of the links to look the same. the next step is to add a bit of padding to the links:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;#nav a:link,&lt;br /&gt;#nav a:visited {&lt;br /&gt;color:#000;&lt;br /&gt;background:#b2b580;&lt;br /&gt;padding:20px 40px 4px 10px;&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;That’s a bit better. But there is a potential problem that isn’t visible here. Since the links are inline elements, their vertical padding will not add to their line height. It’s easier to see this if the ul element has a background, so I’ll add a background colour and a background image:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;span style="color:#666666;"&gt;#nav {&lt;br /&gt;margin:0;&lt;br /&gt;padding:0;&lt;br /&gt;background:#808259 url(nav_bg.jpg) 0 0 repeat-x;&lt;br /&gt;}&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;Oops. Now the links are sticking out of the list element. To fix this, I’ve turned the links into block boxes by floating them to the left. I’ve also set their width to auto, to make them shrink to fit their content:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;span style="color:#666666;"&gt;#nav a:link,&lt;br /&gt;#nav a:visited {&lt;br /&gt;color:#000;&lt;br /&gt;background:#b2b580;&lt;br /&gt;padding:20px 40px 4px 10px;&lt;br /&gt;float:left;&lt;br /&gt;width:auto;&lt;br /&gt;}&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;Adding display:block to the CSS rule for the links would also have made them block boxes, but since a floated element automatically generates a block box, that isn’t necessary.&lt;br /&gt;As you may have noticed, the background disappeared when the links were floated. That’s because floated elements are taken out of the document flow, which causes the ul element containing them to have zero height. Thus, the background is there, but it isn’t visible. To make the ul enclose the links, I’ve floated that too. I’ve also set its width to 100%, making it span the whole window (except for the padding I’ve given the body element in this example):&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;span style="color:#666666;"&gt;#nav {&lt;br /&gt;margin:0;&lt;br /&gt;padding:0;&lt;br /&gt;background:#808259 url(nav_bg.jpg) 0 0 repeat-x;&lt;br /&gt;float:left;&lt;br /&gt;width:100%;&lt;br /&gt;}&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;To visually separate the links from each other, I’ve added a right border to the links. Then, to give the first link a left border as well, I’ve used a :first-child pseudo-class to apply a rule only to the link in the very first list item. I’ve also added top and bottom borders to the ul element:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;br /&gt;&lt;span style="color:#666666;"&gt;#nav {&lt;br /&gt;margin:0;&lt;br /&gt;padding:0;&lt;br /&gt;background:#808259 url(nav_bg.jpg) 0 0 repeat-x;&lt;br /&gt;float:left;&lt;br /&gt;width:100%;&lt;br /&gt;border:1px solid #42432d;&lt;br /&gt;border-width:1px 0;&lt;br /&gt;}&lt;br /&gt;#nav a:link,&lt;br /&gt;#nav a:visited {&lt;br /&gt;color:#000;&lt;br /&gt;background:#b2b580;&lt;br /&gt;padding:20px 40px 4px 10px;&lt;br /&gt;float:left;&lt;br /&gt;width:auto;&lt;br /&gt;border-right:1px solid #42432d;&lt;br /&gt;}&lt;br /&gt;#nav li:first-child a {&lt;br /&gt;border-left:1px solid #42432d;&lt;br /&gt;} &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#666666;"&gt;&lt;/span&gt;&lt;br /&gt;The :first-child pseudo-class is not recognised by Internet Explorer for Windows, so the first link won’t have a left border in that browser. In this case, that isn’t a major problem, so I’ve left it like that. If it’s really important to you, you’ll need to add a class to the first list item (or the link in it), and then use that to give the link a left border.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;br /&gt;Next I’ve changed the way the link text is displayed by removing the underlining, making the text bold, specifying font size, line-height, and a different font family, making the text uppercase, and adding a little bit of drop shadow. The drop shadow is created with the text-shadow property, a CSS3 property that is currently only supported by Safari and OmniWeb:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;br /&gt;&lt;span style="color:#666666;"&gt;#nav a:link,&lt;br /&gt;#nav a:visited {&lt;br /&gt;color:#000;&lt;br /&gt;background:#b2b580;&lt;br /&gt;padding:20px 40px 4px 10px;&lt;br /&gt;float:left;&lt;br /&gt;width:auto;&lt;br /&gt;border-right:1px solid #42432d;&lt;br /&gt;text-decoration:none;&lt;br /&gt;font:bold 1em/1em Arial, Helvetica, sans-serif;&lt;br /&gt;text-transform:uppercase;&lt;br /&gt;text-shadow: 2px 2px 2px #555;&lt;br /&gt;} &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#666666;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;br /&gt;To give some visual feedback when the links are hovered over, I’ve given their :hover state different text and background colours:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;br /&gt;&lt;span style="color:#666666;"&gt;#nav a:hover {&lt;br /&gt;color:#fff;&lt;br /&gt;background:#727454;&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;br /&gt;In the final step, I’ve added rules that will make the selected link look different than the others, to show visitors where they are on the site.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;br /&gt;In case you haven’t seen an example of specifying an id attribute for the body element to style the “current” navigation tab differently before, that’s what the first two rules do. In the examples linked to from this article, I’ve set id of the body element to “home”, which makes the “Home” tab the current one. Changing it to “about” would make the “About” tab the current one, and so on.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;br /&gt;I’ve also made the selected link stay the same when it’s hovered over. It can be argued that the current menu item should not be a link at all. In this case, I’ve chosen to leave the link in the markup and use CSS to remove the visual feedback on hover.&lt;br /&gt;&lt;br /&gt;To give some visual feedback when you click on one of the links, I’ve given the :active state of the links the same styling as the selected link:&lt;br /&gt;&lt;br /&gt;#&lt;span style="color:#666666;"&gt;home #nav-home a,&lt;br /&gt;#about #nav-about a,&lt;br /&gt;#archive #nav-archive a,&lt;br /&gt;#lab #nav-lab a,&lt;br /&gt;#reviews #nav-reviews a,&lt;br /&gt;#contact #nav-contact a {&lt;br /&gt;background:#e35a00;&lt;br /&gt;color:#fff;&lt;br /&gt;text-shadow:none;&lt;br /&gt;}&lt;br /&gt;#home #nav-home a:hover,&lt;br /&gt;#about #nav-about a:hover,&lt;br /&gt;#archive #nav-archive a:hover,&lt;br /&gt;#lab #nav-lab a:hover,&lt;br /&gt;#reviews #nav-reviews a:hover,&lt;br /&gt;#contact #nav-contact a:hover {&lt;br /&gt;background:#e35a00;&lt;br /&gt;}&lt;br /&gt;#nav a:active {&lt;br /&gt;background:#e35a00;&lt;br /&gt;color:#fff;&lt;br /&gt;} &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#666666;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.456bereastreet.com/lab/ul_navbar/step11/"&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;the finished navigation menu.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;br /&gt;That’s it. This step-by-step tutorial makes the whole thing look more advanced than it really is. View source on the final example to see the complete set of CSS rules. By the way, with a couple of small exceptions (the left border on the first link, and the text shadow), this works in just about any browser, even Internet Explorer (version 5 or newer).&lt;br /&gt;&lt;br /&gt;I hope you’ve been able to follow along well enough to be able to create your own navigation menu. The styling possibilities are almost endless.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-611013138616670013?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/611013138616670013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=611013138616670013' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/611013138616670013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/611013138616670013'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/04/turning-list-into-navigation-bar.html' title='Turning a list into a navigation bar'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-7881411861642798252</id><published>2007-04-02T11:35:00.000+05:30</published><updated>2007-04-02T12:41:39.432+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Usability'/><title type='text'>What (Definition of Usability)</title><content type='html'>Usability is a quality attribute that assesses how easy user interfaces are to use. The word "usability" also refers to methods for improving ease-of-use during the design process.&lt;br /&gt;&lt;br /&gt;Usability is defined by five quality components:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;Learnability:&lt;/span&gt;&lt;/strong&gt; How easy is it for users to accomplish basic tasks the first time they encounter the design?&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;Efficiency:&lt;/span&gt;&lt;/strong&gt; Once users have learned the design, how quickly can they perform tasks?&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;Memorability:&lt;/span&gt;&lt;/strong&gt; When users return to the design after a period of not using it, how easily can they reestablish proficiency?&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;Errors:&lt;/span&gt;&lt;/strong&gt; How many errors do users make, how severe are these errors, and how easily can they recover from the errors?&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;Satisfaction:&lt;/span&gt;&lt;/strong&gt; How pleasant is it to use the design?&lt;br /&gt;&lt;br /&gt;There are many other important quality attributes. A key one is utility, which refers to the design's functionality: Does it do what users need? Usability and utility are equally important: It matters little that something is easy if it's not what you want. It's also no good if the system can hypothetically do what you want, but you can't make it happen because the user interface is too difficult. To study a design's utility, you can use the same user research methods that improve usability.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-7881411861642798252?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/7881411861642798252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=7881411861642798252' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/7881411861642798252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/7881411861642798252'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/04/what-definition-of-usability.html' title='What (Definition of Usability)'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-8626611277499858078</id><published>2007-04-02T11:14:00.000+05:30</published><updated>2007-04-02T11:25:15.864+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><title type='text'>Debugging CSS in Internet Explorer - Part 1</title><content type='html'>&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;For web designers and developers, fixing CSS issues in Internet Explorer is a daily chore. Not too long ago I decided to document these issues and what I did to fix them. This article will be the first in a series of articles containing real world CSS problems and solutions. Although some of these problems have been talked about elsewhere, I hope this article will help designers and developers to debug CSS issues quicker and make the most of their time.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;br /&gt;&lt;strong&gt;The W3C's XHTML and CSS Validators&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;It may seem obvious, but I've seen so many css issues resolved because of some unclosed elements or simple spelling errors. Some of the validators' feedback may seem cryptic at first but after using it over and over, you will be able to instantly pick out problems. Make sure you turn on the "show source" option in the validators so you can quickly match the problems line by line.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;A Reality Check&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;If you're working with a test server, separate from your local machine, make sure you're working with the correct files. I've made this mistake and I've seen others make this mistake; it's always good to double check.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:100%;color:#ff0000;"&gt;CSS Problem Solving&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:100%;color:#ff0000;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Elements are disappearing&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;When dealing with floated elements in Internet Explorer it is possible that some elements seem to completely disappear. This is commonly referred to as the peekaboo bug. If you apply position:relative to the vanishing element it should pop right back into place. I've also seen elements disappear in print and not screen despite using the same stylesheet in IE7.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Margins seem to be doubled&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Another float issue found in Internet Explorer. Some people might be tempted to take the easier way out and deliver different CSS code to Internet Explorer, whether by hacks or comments. It's best to avoid these practices and try an alternate route. Although Internet Explorer can become clueless with margins and float, it will still understand padding. If possible, set the margins to 0 and try to compensate with padding either on the element itself (if it doesn't affect the appearance) or on a parent element.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Element with a height of 1px, but Internet Explorer increases it to 10px &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Internet explorer uses the line-height of an element as a kind of unintentional min-height. So, if you try to set a div to height:1px for example (such as a decorative element) and the default line-height (probably inherited from parent elements) for that element is set to 10px, the height of that element will be forced to the line-height in Internet Explorer. To get around this, you can set line-height:0 and manually set the height.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;An empty anchor tag is not clickable&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;It may seem unusual, but in my experience I have come across this more than once. Say you have an anchor element that you've given display:block and some dimensions with no content or background image, in order to make a clickable area, but in Internet Explorer it's not clickable. In order to keep the anchor invisible you can add a transparent 1px background-image. Suddenly, Internet Explorer understands that this is a clickable element.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;An element's text is squished, causing it to flow downward&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;More than likely this is caused by floating an element without setting a width or by a floating sibling element's width being slightly too small where the squished element can't break out. Try setting a width on the squished element, or a larger width on the sibling element. If these methods don't work, use clear to break the element away from the floated sibling element.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-8626611277499858078?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/8626611277499858078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=8626611277499858078' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/8626611277499858078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/8626611277499858078'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/04/debugging-css-in-internet-explorer-part.html' title='Debugging CSS in Internet Explorer - Part 1'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-8333998166182498176</id><published>2007-03-30T12:12:00.000+05:30</published><updated>2007-03-30T12:13:15.522+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Accessibility'/><title type='text'>Quick Tips to Make Accessible Web Sites</title><content type='html'>&lt;a href="http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-text-equivalent" shape="rect"&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;Images &amp; animations&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;: Use the alt attribute to describe the function of each visual.&lt;br /&gt;Image maps. Use the &lt;/span&gt;&lt;a href="http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-client-side-maps" shape="rect"&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;client-side map&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt; and &lt;/span&gt;&lt;a href="http://www.w3.org/TR/WCAG10-HTML-TECHS/#client-side-text-equivs" shape="rect"&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;text for hotspots&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;.&lt;br /&gt;Multimedia. Provide &lt;/span&gt;&lt;a href="http://www.w3.org/TR/WCAG10-HTML-TECHS/#text-equivs-multimedia" shape="rect"&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;captioning and transcripts of audio&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;, and &lt;/span&gt;&lt;a href="http://www.w3.org/TR/WCAG10-CORE-TECHS/#video-information" shape="rect"&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;descriptions of video&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;.&lt;br /&gt;&lt;/span&gt;&lt;a href="http://www.w3.org/TR/WCAG10-HTML-TECHS/#link-text" shape="rect"&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;Hypertext links&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;. Use text that makes sense when read out of context. For example, avoid "click here."&lt;br /&gt;&lt;/span&gt;&lt;a href="http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#gl-structure-presentation" shape="rect"&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;Page organization&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;. Use &lt;/span&gt;&lt;a href="http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-logical-headings" shape="rect"&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;headings&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;, &lt;/span&gt;&lt;a href="http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-list-structure" shape="rect"&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;lists&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;, and consistent structure. Use &lt;/span&gt;&lt;a href="http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-style-sheets" shape="rect"&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;CSS&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt; for layout and style where possible.&lt;br /&gt;Graphs &amp;amp; charts. Summarize or use the &lt;/span&gt;&lt;a href="http://www.w3.org/TR/WCAG10-HTML-TECHS/#long-descriptions" shape="rect"&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;longdesc&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt; attribute.&lt;br /&gt;Scripts, applets, &amp;amp; plug-ins. Provide &lt;/span&gt;&lt;a href="http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-scripts" shape="rect"&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;alternative content&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt; in case active features are inaccessible or unsupported.&lt;br /&gt;Frames. Use the noframes element and meaningful &lt;/span&gt;&lt;a href="http://www.w3.org/TR/WCAG10-HTML-TECHS/#frame-names" shape="rect"&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;titles&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;.&lt;br /&gt;&lt;/span&gt;&lt;a href="http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#gl-table-markup" shape="rect"&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;Tables&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;. Make line-by-line reading sensible. Summarize.&lt;br /&gt;&lt;/span&gt;&lt;a href="http://www.w3.org/WAI/eval/" shape="rect"&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;Check your work&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;. &lt;/span&gt;&lt;a href="http://validator.w3.org/" shape="rect"&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;Validate&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;. Use tools, checklist, and guidelines at &lt;/span&gt;&lt;a href="http://www.w3.org/TR/WCAG/" shape="rect"&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;http://www.w3.org/TR/WCAG&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-8333998166182498176?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/8333998166182498176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=8333998166182498176' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/8333998166182498176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/8333998166182498176'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/03/quick-tips-to-make-accessible-web-sites.html' title='Quick Tips to Make Accessible Web Sites'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-3700081588200273140</id><published>2007-03-30T12:08:00.000+05:30</published><updated>2007-03-30T12:09:50.566+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Accessibility'/><title type='text'>What is Web Accessibility</title><content type='html'>&lt;a href="http://www.w3.org/WAI/intro/accessibility.php"&gt;http://www.w3.org/WAI/intro/accessibility.php&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-3700081588200273140?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/3700081588200273140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=3700081588200273140' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/3700081588200273140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/3700081588200273140'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/03/what-is-web-accessibility.html' title='What is Web Accessibility'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-6502153963903729842</id><published>2007-03-30T11:59:00.000+05:30</published><updated>2007-03-30T12:04:11.264+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Accessibility'/><title type='text'>Web Content Accessibility Guidelines 1.0</title><content type='html'>Must read&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.w3.org/TR/1999/WAI-WEBCONTENT-19990505/"&gt;http://www.w3.org/TR/1999/WAI-WEBCONTENT-19990505/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-6502153963903729842?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/6502153963903729842/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=6502153963903729842' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/6502153963903729842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/6502153963903729842'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/03/web-content-accessibility-guidelines-10.html' title='Web Content Accessibility Guidelines 1.0'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-6984028711252630382</id><published>2007-03-30T11:48:00.000+05:30</published><updated>2007-03-30T11:50:54.966+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='xhtml'/><title type='text'>XHTML™ Modularization 1.1</title><content type='html'>Must read for UI designers&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.w3.org/TR/xhtml-modularization/"&gt;http://www.w3.org/TR/xhtml-modularization/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-6984028711252630382?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/6984028711252630382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=6984028711252630382' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/6984028711252630382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/6984028711252630382'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/03/xhtml-modularization-11.html' title='XHTML™ Modularization 1.1'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-945827760631083041</id><published>2007-03-30T11:41:00.000+05:30</published><updated>2007-03-30T11:42:08.966+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='xhtml'/><title type='text'>XHTML 1.0 and 1.1: Current Ideas and New Directions</title><content type='html'>&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;br /&gt;XHTML 1.0 is the reformulation of HTML as an XML application. This means that documents as well as syntax must conform strictly to the concepts and DTDs of the language version. The ideas from HTML 4.0, especially the separation of document structure from presentation and issues concerning accessibility and internationalization, are intact in XHTML 1.0. What’s more, the three DTD offerings (strict, transitional, and frameset) originally from HTML 4.0 and later refined by HTML 4.01 are essentially the same DTDs found in XHTML 1.0.&lt;br /&gt;&lt;br /&gt;XHTML 1.0 is best seen as a transitional language that helps puts professional Web authors in the position of writing specification-oriented markup. It puts browser manufacturers on the hot-seat and tells them “get your acts together!” It also moves us toward the extensible intelligence of XML and away from the limitations of HTML.&lt;br /&gt;But transition also means that readying yourself for XML is very important, too. Fortunately, XHTML contains enough of each to help strengthen your HTML skills and to get those of you unfamiliar with XML more comfortable with its applications. Several of the primary XML concepts introduced in XHTML 1.0 are as follows:&lt;br /&gt;&lt;br /&gt;Reintroducing structure back into the language. Picking up on the SGML and XML idea that documents should be written in conformance with the rules set out within the languages, XHTML insists upon a variety of syntax and semantic rules that must be adhered to. One such rule is the idea of well-formed.&lt;br /&gt;&lt;br /&gt;Providing authors with incentives to validate documents. The validation of documents is somewhat controversial for a number of reasons. Certain people believe that validation is an unnecessary part of the process so long as the documents are well-formed. However, I personally feel that validation is a powerful learning tool that helps us find our mistakes, fix them, and in the process, understand the way a specific DTD works. Validation, therefore, is encouraged throughout.&lt;br /&gt;&lt;br /&gt;Accommodating New Devices. Part of the drive to accommodate XML in the Web development environment has to do with an intriguing phenomenon. If the 90s were the years of information explosion and the movement of the PC from the workplace to the home, this decade will be known for the movement away from the desktop.&lt;br /&gt;&lt;br /&gt;With XHTML 1.1, the concept of separation of structure and presentation is complete. XHTML 1.1 has only one public DTD, based on the Strict DTD found in XHTML 1.0. Web authors also have the option to work with modularization. Modularization breaks HTML down into discrete modules such as text, images, tables, frames, forms, and so forth. The author can choose which modules he or she wants to use and then write a DTD combining those modules into a unique application. This is the first time we really see the extensibility introduced by XML at work, because instead of having only the public DTDs to choose from, authors can now create their own applications.&lt;br /&gt; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-945827760631083041?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/945827760631083041/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=945827760631083041' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/945827760631083041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/945827760631083041'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/03/xhtml-10-and-11-current-ideas-and-new.html' title='XHTML 1.0 and 1.1: Current Ideas and New Directions'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-8000437747279448104</id><published>2007-03-30T11:39:00.000+05:30</published><updated>2007-03-30T11:40:43.356+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='xhtml'/><title type='text'>HTML 4.0 and 4.01: Concepts</title><content type='html'>&lt;p&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;Within HTML 4.0 are specific ideas necessary to study if you’re to have a full understanding of the versions and languages that have followed. Specifically, HTML 4.0 provides these critical concepts as follows:&lt;br /&gt;Deprecation of presentational elements in favor of style sheets. Consider this the heart and soul of contemporary Web design. HTML 4.0 clearly states that the separation of structure and presentation are an imperative goal in order for Web authoring to progress. CSS is the suggested alternative, which in HTML 4.0’s emergence in 1997 was more problematic due to browser support than it is today.&lt;br /&gt;&lt;br /&gt;Awareness of Accessibility and Internationalization. HTML 4.0 is very concerned with ensuring that pages are available to those individuals using alternative user agents, whether due to a disability or simply by virtue of circumstance. Internationalization concerns are brought forth in HTML 4.0, and discussions about how to Internationalize and Globalize HTML and XHTML are ongoing.&lt;br /&gt;&lt;br /&gt;Improved rendering of Web documents. HTML 4.0 added several elements, specifically in terms of tables, that aid in accelerated interpretation and rendering of markup.&lt;br /&gt;&lt;br /&gt;Introduction of three unique DTDs. With HTML 4.0 came the concept of three unique public DTDS: Strict, Transitional, and Frameset. The Strict DTD is HTML 4.0 at its most ideal, with the presentation of a document relying on CSS almost entirely. The Transitional DTD allows for the use of deprecated elements, understanding the transitional need for presentation in HTML. Finally, the Frameset DTD formalizes the use of frames in HTML 4.0 and provides a specific set of rules for their implementation.&lt;br /&gt;&lt;br /&gt;HTML 4.0 really upped the ante in terms of offering real options and alternatives to Web developers interested in also writing documents that conformed to W3C goals. However, many authors have missed learning these important concepts, which lay the foundation for XHTML.&lt;br /&gt;With HTML 4.01, a few errors and editorial&lt;br /&gt; &lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-8000437747279448104?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/8000437747279448104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=8000437747279448104' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/8000437747279448104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/8000437747279448104'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/03/html-40-and-401-concepts.html' title='HTML 4.0 and 4.01: Concepts'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-4958042930352856402</id><published>2007-03-30T10:32:00.000+05:30</published><updated>2007-03-30T10:32:03.859+05:30</updated><title type='text'>What are the advantages of using web standards?</title><content type='html'>Accessibility&lt;br /&gt;&lt;br /&gt; To software/machines&lt;br /&gt;Complying with web standards can give your web pages greater visibility in web searches. The structural information present in compliant documents makes it easy for search engines to access and evaluate the information in those documents, and they get indexed more accurately.Because use of web standards makes it easier for server-side as well as client-side software to understand the structure of your document, adding a search engine to your own site becomes easier and gives better results.Standards are written so that old browsers will still understand the basic structure of your documents. Even if they can’t understand the newest and coolest additions to the standards, they’ll be able to display the content of your site. The same, of course, applies to robots - systems that collect information from your site on behalf of search engines and other indexers.Compliant code gives you the opportunity of validating your page with a validation service. Validators process your documents and present you with a list of errors. This makes finding and correcting errors a lot easier, and can save you a lot of time.Compliant documents can easily be converted to other formats, such as databases or Word documents. This allows for more versatile use of the information within documents on the World Wide Web, and simplified migration to new systems - hardware as well as software - including devices such as TVs and PDAs."&lt;br /&gt;&lt;br /&gt;To people&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.w3.org/WAI/"&gt;Accessibility&lt;/a&gt; is an important idea behind many web standards, especially HTML.&lt;br /&gt;Not only does this mean allowing the web to be used by people with disabilities, but also allowing web pages to be understood by people using browsers other than the usual ones - including voice browsers that read web pages aloud to people with sight impairments, Braille browsers that translate text into Braille, hand-held browsers with very little monitor space, teletext displays, and other unusual output devices.&lt;br /&gt;As the variety of web access methods increases, adjusting or duplicating websites to satisfy all needs will become increasingly difficult (indeed, some say it’s impossible even today). Following standards is a major step towards solving this problem. Making your sites standards-compliant will help ensure not only that traditional browsers, old and new, will all be able to present sites properly, but also that they will work with unusual browsers and media.&lt;br /&gt;Some consequences of ignoring standards are obvious: the most basic consequence is that you will restrict access to your site. How much business sense does it make to limit your audience to only a fraction of those who wish be a part of it? For a business site, denying access to even small portions of a target audience can make a big difference to your profit margin. For an educational site, it makes sense to allow access not only to affluent, able-bodied school-children with graphical browsers, but also to children in regions with poorly-developed infrastructure who are best served by text-only browsing, or disabled students using specialized browsers.&lt;br /&gt;The same principle applies to all types of websites — while straying from the standards and taking advantage of browser-specific features may be tempting, the increased accessibility which comes from standards-compliance will lead to far greater rewards in the long run.&lt;br /&gt;&lt;br /&gt;Stability&lt;br /&gt;&lt;br /&gt;Most web standards are generally designed with forward- and backward-compatibility in mind — so that data using old versions of the standards will continue to work in new browsers, and data using new versions of the standards will “gracefully degrade” to produce an acceptable result in older browsers.&lt;br /&gt;Because a website may go through several teams of designers during its lifetime, it is important that those people are able to comprehend the code and to edit it easily. Web standards offer a set of rules that every Web developer can follow, understand, and become familiar with: When one developer designs a site to the standards, another will be able to pick up where the former left off.&lt;br /&gt;&lt;br /&gt;Conclusion&lt;br /&gt;&lt;br /&gt;As web developers, we are constantly trying to address the problem of inconsistencies between the renderings of web pages by different browsers and browser versions. This necessitates either time-consuming double/multiple coding, or coding for a single browser which makes it harder, if not impossible, for some of the public to use the site. This situation will be made even worse with the advent of additional hardware and software which will be able to browse the Web, such as telephones, pagers, and PDAs.&lt;br /&gt;Web standards are not arcane laws decreed by ivory-tower organizations. &lt;a href="http://www.webstandards.org/learn/faq/#p2"&gt;As we have described&lt;/a&gt;, the standards are for the most part decided by representatives of the same people who use them — browser makers, web developers, content providers, and other organizations.&lt;br /&gt;Writing web pages in accordance with the standards shortens site development time and makes pages easier to maintain. Debugging and troubleshooting become easier, because the code follows a standard. No longer do you have to worry about the coding and maintenance for several versions of code that are supposed to accomplish the same presentation. One version of your site, and that is it.&lt;br /&gt;The universal adoption of web standards is becoming of paramount importance. The mission of &lt;a href="http://www.webstandards.org/"&gt;The Web Standards Project&lt;/a&gt; is to make the Web a better place, for developers and for end-users, by encouraging browser and web page editor makers to follow the standards in their applications. This effort will be greatly helped when web developers use the standards as a matter of course, and insist that generators and renderers of their code comply with the standards.&lt;br /&gt;The &lt;a href="http://www.webstandards.org/learn/faq/#p3"&gt;reasons we have given&lt;/a&gt; should give you, the web developer, plenty of incentive to begin using standards, and also plenty of ammunition with which you can encourage your place of business and fellow developers to use those standards.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-4958042930352856402?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.webstandards.org/learn/faq/#p213' title='What are the advantages of using web standards?'/><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/4958042930352856402/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=4958042930352856402' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/4958042930352856402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/4958042930352856402'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/03/what-are-advantages-of-using-web.html' title='What are the advantages of using web standards?'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-9190869562840990142</id><published>2007-03-30T10:30:00.000+05:30</published><updated>2007-03-30T10:30:11.235+05:30</updated><title type='text'>What are the W3C standards?</title><content type='html'>2.1.3.1 HTML 4.0 - HyperText Markup Language&lt;br /&gt;HyperText Markup Language (HTML) is widely used on the Web for adding structure to text documents. Browsers interpret these documents, representing the structure in media-specific ways to the user. For example, visual browsers typically display the strong element (&lt;strong&gt; … &lt;/strong&gt;) as bold text, while text-to-speech readers might emphasize that text when pronouncing it.With the help of Cascading Style Sheets (CSS) the author may define how structural elements are to be represented, overriding the browser defaults."&lt;br /&gt;&lt;br /&gt;XML 1.0 - Extensible Markup Language&lt;br /&gt;Example of part of an XML document&lt;addressbook&gt;&lt;br /&gt;&lt;entry&gt;&lt;br /&gt;&lt;name&gt;Bill Gates&lt;/name&gt;&lt;br /&gt;&lt;email&gt;bgates@microsoft.com&lt;/email&gt;&lt;br /&gt;&lt;/entry&gt;&lt;br /&gt;&lt;entry&gt;&lt;br /&gt;&lt;name&gt;Marc Andreesen&lt;/name&gt;&lt;br /&gt;&lt;email&gt;marca@netscape.com&lt;/email&gt;&lt;br /&gt;&lt;/entry&gt;&lt;br /&gt;&lt;entry&gt;&lt;br /&gt;&lt;name&gt;Jon S. von Tetzchner&lt;/name&gt;&lt;br /&gt;&lt;email&gt;jon@opera.com&lt;/email&gt;&lt;br /&gt;&lt;/entry&gt;&lt;br /&gt;&lt;/addressbook&gt;&lt;br /&gt;Extensible Markup Language (XML) is a markup language like &lt;a href="http://www.webstandards.org/learn/faq/#p2131"&gt;HTML&lt;/a&gt;, but instead of having a single, fixed set of elements, it allows you to define your own - or use a set made by someone else. It even allows using multiple sets within a single document - by using &lt;a href="http://www.w3.org/TR/REC-xml-names/"&gt;XML namespaces&lt;/a&gt;.&lt;br /&gt;Some applications of XML, such as &lt;a href="http://www.w3.org/TR/xhtml1/"&gt;XHTML&lt;/a&gt; and &lt;a href="http://www.w3.org/TR/REC-MathML/"&gt;MathML&lt;/a&gt;, have already become W3C Recommendations. Others are currently W3C Working Drafts.&lt;br /&gt;Style sheet standards, such as CSS and XSL, offer a variety of options for specifying how XML elements are to be rendered. Standards-compliant support for direct rendering of XML is spotty in browsers, so for presenting information to humans, HTML (or XHTML) with CSS-driven styling is the way to go. XML is mostly used for machine-to-machine communication today.&lt;br /&gt;XML is more flexible than HTML, primarily because of the ability to add your own elements and make your own structural systems. This makes it an ideal format for the organization of large quantities of data - it is already in use in many databases and search engines.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2.1.3.3 XHTML 1.0, 1.1, and Modularization&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;XHTML 1.0 is a reformulation of HTML as an XML application. XHTML 1.0 can be seen as ideologically coming from HTML 4.01, and being technically stricter because of XML’s influence.&lt;br /&gt;XHTML will display in your browser identically to the equivalent HTML. You might want to use XHTML if there is any chance you’re going to need to reprocess your content, for example to send it to a PDA; XML’s stricter syntax rules make automatic processing of XHTML much easier and cheaper than ordinary HTML.&lt;br /&gt;Ideologically, XHTML 1.0 inherits the following general concepts from HTML 4.01:&lt;br /&gt;That presentation and document formatting should be separated via style sheets&lt;br /&gt;That documents should be made accessible&lt;br /&gt;That documents should be internationalized&lt;br /&gt;XHTML 1.0 also uses the model of three DTDs: Strict, Transitional, and Frameset. This model originally emerged in HTML 4.0 and followed through to HTML 4.01.&lt;br /&gt;Some important technical practices from XML onto XHTML includes:&lt;br /&gt;That all document types are declared via the correct DOCTYPE declaration&lt;br /&gt;That the structure of a conforming document contain the DOCTYPE declaration, an html element with the XHTML namespace declared, a head element including the title element, and a body element&lt;br /&gt;That all elements and attribute names are written in lower case, and that all attribute values are quoted&lt;br /&gt;That all non-empty elements (e.g. p, li) are properly terminated with a closing tag&lt;br /&gt;That all empty elements (e.g. br, hr, img) are properly terminated with a trailing slash (&lt;br /&gt;)&lt;br /&gt;That documents validate against the DTD that is declared&lt;br /&gt;For templates, please see &lt;a title="go to learn section, templates" href="http://www.webstandards.org/learn/reference/templates/"&gt;Learn &gt; Templates&lt;/a&gt;&lt;br /&gt;XHTML 1.1 is made up of three primary parts:&lt;br /&gt;The XHTML 1.0 Strict DTD (with minor modifications)&lt;br /&gt;XHTML Modularization&lt;br /&gt;The Ruby Annotation&lt;br /&gt;If you’d like to author documents in XHTML 1.1, you can do so in a couple of ways. The first is by using the public XHTML 1.1 DTD. By doing this, your work will be extremely structured because there are virtually no presentational attributes in XHTML 1.1. The separation of structure and presentation is complete here, and all of your presentation work will go in a style sheet.&lt;br /&gt;Another means of authoring documents in XHTML 1.1 is to tap into XHTML Modularization. This is the breakdown of familiar components of HTML and XHTML (such as text, tables, frames, forms) into discrete chunks. You can then write your own DTD and use only those components you require. This is extensibility in action, essentially giving you, the web author, the opportunity to customize your markup.&lt;br /&gt;The Ruby Annotation is a special means of dealing with certain Asian character annotations. Ruby falls under the work being done with Internationalization.&lt;br /&gt;&lt;br /&gt;CSS - Cascading Style Sheets&lt;br /&gt;&lt;br /&gt;Cascading Style Sheets (CSS) is a mechanism for changing the appearance of &lt;a href="http://www.webstandards.org/learn/faq/#p2131"&gt;HTML&lt;/a&gt; or &lt;a href="http://www.webstandards.org/learn/faq/#p2132"&gt;XML&lt;/a&gt; elements, by assigning styles to element types, self-defined classes of elements or individual instances.&lt;br /&gt;Stylesheets can be used to consistently define the appearance of an entire site. Following the introduction of CSS, the W3C recommended that layout-specific features in HTML be phased out and replaced by stylesheets, creating a simpler and more structural World Wide Web.&lt;br /&gt;&lt;br /&gt;DOM 1 - Document Object Model Level 1&lt;br /&gt;&lt;br /&gt;The DOM allows the full power and interactivity of a scripting language (such as &lt;a href="http://www.webstandards.org/learn/faq/#p2231"&gt;ECMAScript&lt;/a&gt;, the standardized version of JavaScript) to be exerted on a web page. (In programming terms, the Document Object Model (DOM) Level 1 is an Application Programming Interface (API) for interacting with web pages.) It gives the scripting language easy access to the structure, content, and presentation of a document which is written in such languages as &lt;a href="http://www.webstandards.org/learn/faq/#p2131"&gt;HTML&lt;/a&gt; and &lt;a href="http://www.webstandards.org/learn/faq/#p2133"&gt;CSS&lt;/a&gt;.&lt;br /&gt;The DOM is compatible with future improvements in technology; it will allow any scripting language to interact with whatever languages are being used in the document. This standard will not only make it easier to program dynamic HTML, but will also make adapting to future Internet technology much less painful.&lt;br /&gt;&lt;br /&gt;ECMA Standards&lt;br /&gt;&lt;a name="p221"&gt;&lt;/a&gt;&lt;br /&gt;2.2.1 What is the ECMA?&lt;br /&gt;The &lt;a href="http://www.ecma.ch/"&gt;European Computer Manufacturers Association&lt;/a&gt; (ECMA) is an organization officially founded in 1961 in order to meet the need for standardizing computer operational formats, including programming languages and input/output codes.&lt;br /&gt;The ECMA is based in Geneva, Switzerland, near the headquarters of the &lt;a href="http://www.iso.ch/"&gt;International Organization for Standardization&lt;/a&gt; (ISO) and the &lt;a href="http://www.iec.ch/"&gt;International Electrotechnical Commission&lt;/a&gt; (IEC). In 1994, the organization’s name was changed to the ECMA - European Association for Standardizing Information and Communication Systems, in order to reflect its broader range of activities.&lt;br /&gt;&lt;br /&gt;What does it do?&lt;br /&gt;&lt;br /&gt;The main role of the ECMA is to develop Standards and Technical Reports in the area of information and communication technology. As ECMA is an association of companies and not an official standardization institute, they often collaborate with official national or international institutes.&lt;br /&gt;ECMA Standards have been accepted as a base for international and European standards. So far more than &lt;a href="http://www.ecma.ch/ecma1/PUBLICAT.HTM"&gt;270 ECMA Standards and 70 Technical Reports&lt;/a&gt; have been published.&lt;br /&gt;Of these standards 85 have been accepted as international standards by the &lt;a href="http://www.iso.ch/"&gt;International Organization for Standardization&lt;/a&gt; (ISO). In addition, 25 have been accepted as European standards by the &lt;a href="http://www.etsi.org/"&gt;European Telecommunications Standards Institute&lt;/a&gt; (ETSI).&lt;br /&gt;&lt;br /&gt;What are the ECMA standards?&lt;br /&gt;&lt;a name="p2231"&gt;&lt;/a&gt;&lt;br /&gt;2.2.3.1 ECMAScript (standardized JavaScript)&lt;br /&gt;ECMAScript is a standardized scripting language, based largely on &lt;a href="http://home.netscape.com/company/"&gt;Netscape&lt;/a&gt;’s &lt;a href="http://devedge-temp.mozilla.org/central/javascript/index_en.html"&gt;JavaScript&lt;/a&gt; and &lt;a href="http://microsoft.com/"&gt;Microsoft&lt;/a&gt;’s &lt;a href="http://msdn.microsoft.com/library/en-us/script56/html/js56jsoriJScript.asp"&gt;JScript&lt;/a&gt;. The ECMAScript standard is defined by ECMA’s &lt;a href="http://www.ecma.ch/ecma1/MEMENTO/tc39.htm"&gt;Technical Committee 39&lt;/a&gt; (TC-39).&lt;br /&gt;The main use of ECMAScript, which is an object-based language, is to manipulate the objects in web pages which are specified by the &lt;a href="http://www.webstandards.org/learn/faq/#p2134"&gt;Document Object Model&lt;/a&gt; (DOM). These objects (effectively, the elements which make up web pages, or the web pages as a wholes) can then be added to, deleted, moved, or have their properties changed. This lets web developers implement such effects as animated text, graphic roll-overs, and pages that change based on user input without having to be reloaded.&lt;br /&gt;The current ECMAScript specification is ECMA Standard ECMA-262,&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-9190869562840990142?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.webstandards.org/learn/faq/#p213' title='What are the W3C standards?'/><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/9190869562840990142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=9190869562840990142' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/9190869562840990142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/9190869562840990142'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/03/what-are-w3c-standards.html' title='What are the W3C standards?'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6136688997431165820.post-4384723529365828551</id><published>2007-03-30T10:19:00.000+05:30</published><updated>2007-03-30T10:20:39.190+05:30</updated><title type='text'>1. Introduction</title><content type='html'>Tim Berners-Lee’s dream for his invention, the World Wide Web, is a common space where users can share information to work together, to play, and to socialize (&lt;a href="http://www.w3.org/People/Berners-Lee/ShortHistory"&gt;The World Wide Web, A very short personal history&lt;/a&gt;). As web developers, creating business, social, and educational sites, we turn this dream into reality.&lt;br /&gt;But in this period of tremendous growth, the Web needs guidance to realize its full potential. Web standards are this guidance. These standards help ensure that everyone has access to the information we are providing, and also make web development faster and more enjoyable.&lt;br /&gt;Standards compliance makes it easier for people with special needs to use the Web. Blind people may have their computer read web pages to them. People with poor eyesight may have pages rearranged and magnified for easier reading. And people using hand-held devices can browse the Web just as easily as those using high-end workstations.&lt;br /&gt;As we will explain, there are also many &lt;a href="http://www.webstandards.org/learn/faq/#p3"&gt;practical reasons&lt;/a&gt; for developers to be concerned with web standards. Search engines can do a better job of indexing sites, for example. Using browser-specific code often doubles or triples the work to create web pages, and leaves a lot to be desired when new media are introduced. This situation will only get worse without the sound direction of web standards.&lt;br /&gt;Some people fear that standards are limiting. In reality, they remove much of the tedious labour involved in web development, and give developers more time and more flexibility to be truly creative. They are both open to future improvement and mindful of past technology.&lt;br /&gt;Many uses of the Web, including some that are only dreamed of today, will not be possible, or will be more difficult, without widespread standards compliance. At the moment, there are systems and software that are very common, seemingly close to universal, but who knows what tomorrow will bring? Tying ourselves to the control of any single company means limiting our future to the fortunes and misfortunes which that one company can or will provide. Maintaining universal standards will allow the Web to survive while encouraging innovation to continue at its current pace.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6136688997431165820-4384723529365828551?l=navidesign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://navidesign.blogspot.com/feeds/4384723529365828551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6136688997431165820&amp;postID=4384723529365828551' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/4384723529365828551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6136688997431165820/posts/default/4384723529365828551'/><link rel='alternate' type='text/html' href='http://navidesign.blogspot.com/2007/03/1-introduction.html' title='1. Introduction'/><author><name>Navi</name><uri>http://www.blogger.com/profile/06876770382621823069</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_dNsT-2rXuyw/Rdlco5koZDI/AAAAAAAAATI/cLmAXb_Xpjg/s320/navi.jpg'/></author><thr:total>0</thr:total></entry></feed>
