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

<channel>
	<title>Oncemade &#187; HTML</title>
	<atom:link href="http://oncemade.com/category/html/feed/" rel="self" type="application/rss+xml" />
	<link>http://oncemade.com</link>
	<description>Design, Web Dev, Inspiration</description>
	<lastBuildDate>Fri, 09 Jul 2010 02:06:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Nice input labels using jQuery and CSS</title>
		<link>http://oncemade.com/nice-input-labels/</link>
		<comments>http://oncemade.com/nice-input-labels/#comments</comments>
		<pubDate>Thu, 01 Jul 2010 19:41:01 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[accessibility]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[label]]></category>

		<guid isPermaLink="false">http://oncemade.com/?p=936</guid>
		<description><![CDATA[Nowadays it's very common to find websites "hiding" form labels in favor of input's default text. Even tough it's a [...]]]></description>
			<content:encoded><![CDATA[<p>Nowadays it's very common to find websites "hiding" form labels in favor of input's default text. Even tough it's a cleaver idea, there is a better way to accomplish the same result without compromising accessibility.</p>

<p>First step is to create the form. I usually have all my forms inside a list:</p>
<p><strong>UPDATE: It's necessary to turn off the "autocomplete" so the inputs don't get messed up.</strong></p>
<pre>
<h4>markup</h4><code>&lt;form action=""&gt;
  &lt;ul&gt;
   &lt;li&gt;
    &lt;label for="username"&gt;Username&lt;/label&gt;
    &lt;input id="username" type="text" autocomplete="off" /&gt;
   &lt;/li&gt;
   &lt;li&gt;
    &lt;label for="password"&gt;Password&lt;/label&gt;
    &lt;input id="password" type="password" autocomplete="off" /&gt;
   &lt;/li&gt;
   &lt;li&gt;
    &lt;input type="submit" value="login" /&gt;
   &lt;/li&gt;
  &lt;/ul&gt;
&lt;/form&gt;</code></pre>
<p>Don't forget the <strong>"for"</strong> attribute, the script will rely on it. Go ahead and add the following CSS:</p>
<pre><h4>CSS</h4><code>form li { position: relative; }
label {
  position: absolute;
  top: 5px; // adjust as needed
  left: 5px;
}
//remove absolute position if the label comes after
//the input. Eg. a checkbox with a text next to it
input + label { position: static; }</code></pre>
<span id="more-936"></span>

<p>Now the final touch. With some jQuery magic, lets make the label disappear on focus.</p>
<pre><h4>jQuery</h4>
<code>//loop through all text inputs, password inputs and textarea
var inputs = $('input[type="text"], textarea, input[type="password"]');

// remove label on focus
inputs.focus(function(){
  $('label[for="'+$(this).attr('id')+'"]').hide();
});
inputs.blur(function(){
  var that = $(this);
  if (that.val() == ""){
    $('label[for="'+that.attr('id')+'"]').show();
  }
});
inputs.blur();</code></pre>
<h4>Demo</h4>
<div id="example"><form>
<ul>
	<li> <label for="username">Username</label>

<input id="username" type="text" autocomplete="off" /></li>
	<li> <label for="password">Password</label>

<input id="password" type="password" autocomplete="off" /></li>
	<li> <input type="submit" value="Login" /></li>
</ul>
</form></div>]]></content:encoded>
			<wfw:commentRss>http://oncemade.com/nice-input-labels/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS Tooltip</title>
		<link>http://oncemade.com/css-tooltip/</link>
		<comments>http://oncemade.com/css-tooltip/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 07:56:23 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[progressive enrichment]]></category>
		<category><![CDATA[tooltip]]></category>

		<guid isPermaLink="false">http://oncemade.com/?p=895</guid>
		<description><![CDATA[Here is how to create a very basic tooltip using only CSS. I've been using this technique all over my [...]]]></description>
			<content:encoded><![CDATA[<p>Here is how to create a very basic tooltip using only CSS. I've been using this technique all over my latest project.</p>
<p>Let's start by creating the following markup:</p>

<pre><h4>Markup</h4><code>&lt;a href=&quot;http://www.example.com&quot; class=&quot;tooltip&quot;&gt;
 My Link 
 &lt;span&gt;Cool tooltip&lt;small&gt;&lt;/small&gt;&lt;/span&gt;
&lt;/a&gt;</code>
</pre>
<pre><h4>CSS</h4><code>.tooltip { position: relative; }
.tooltip span {
  position: absolute;
  right: 0;
  top: -35px;
  display: none;
  min-width: 50px;
  padding: 3px 8px;
  white-space: nowrap;
  font-size: 11px;
  text-align: center;
  background-color: rgba(0,0,0,.8);
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
}
.tooltip span small {
  position: absolute;
  right: 10px;
  bottom: -6px;
  border-top: 6px solid rgba(0,0,0,.8);
  border-left: 6px solid transparent;
}
.tooltip:hover span { display: block; }</code>
</pre>

<p><a href="http://oncemade.com/the-right-way-to-declare-rgba-colors/" title="The Right Way to Declare RGBa Colors | Oncemade">As I mentioned in a previous article</a>, <abbr title="Internet Explorer">IE</abbr> doesn't support RGBa. Adding the following styles, wrapped in a conditional comment, will make it work.</p>

<pre><h4>IE CSS</h4><code>.tooltip span { background-color: #000; }
.tooltip span small { border-top: 6px solid #000; }</code>
<h4>IE 6 Tooltip Arrow Fix</h4><code>*html .tooltip span small { 
  border-left: 6px solid #363636; /* Match the color of the background */
} </code>
</pre>

<p>For more info about creating speech bubble using only CSS, go to <a href="http://desandro.com/resources/css-speech-bubble-icon" title="David DeSandro: CSS Speech Bubble Icon">DeSandro's tutorial on creating speech bubble.</a></p>

<h3>Demo</h3>
<p>
	<a href="#" class="tooltip">My Link <span>Cool Tooltip<small></small></span></a><br />
	<a href="#" class="tooltip">Long Tip Test <span>Very Long Tooltip Test Very Long Tooltip Test<small></small></span></a>
</p>]]></content:encoded>
			<wfw:commentRss>http://oncemade.com/css-tooltip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adding hasJS Class When JavaScript Is Available</title>
		<link>http://oncemade.com/adding-hasjs-class-when-javascript-is-available/</link>
		<comments>http://oncemade.com/adding-hasjs-class-when-javascript-is-available/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 05:01:10 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[progressive enhancement]]></category>

		<guid isPermaLink="false">http://oncemade.com/?p=781</guid>
		<description><![CDATA[While at An Event Apart Boston, Jeremy Keith delivered the best lecture of the conference, about progressive enhancement. One slide [...]]]></description>
			<content:encoded><![CDATA[<p>While at <a href="http://www.aneventapart.com/2009/boston/" title="An Event Apart Boston 2009">An Event Apart Boston</a>, <a href="http://adactio.com/" title="Adactio: Jeremy Keith">Jeremy Keith</a> delivered the best lecture of the conference, about progressive enhancement. One slide caught my attention the most. It was about adding a class to the body if JavaScript was available. Here is his code example using jQuery:</p>
<pre><h4>Keith's Example using jQuery:</h4><code>jQuery(function($) {
$(&#x27;body&#x27;).addClass(&#x27;hasJS&#x27;);
});</code>

<h4>CSS</h4><code>.hasJS .module {
display: none;
}</code>
</pre>
<h5>Why add a class if JavaScript is enabled?</h5>
<p>Although the majority of desktop users have JavaScript enabled, mobile is one of the most used platforms to surf the web. Some mobile browsers don't support JavaScript. Keep in mind that search engines don't run JavaScript, so NEVER add important content using JavaScript.</p>
<span id="more-781"></span>
<p>My current project at work requires the content to be rendered for both enabled and disabled JavaScript browsers. I did a bit of research and found that most websites/solutions add the <em>hasJS</em> class to the body after the <abrr title="Document Object Module"><em>DOM</em></abrr> is loaded. My first thought was, if the class gets added after the <em>DOM</em> is loaded, a shift on the page will occur providing a bad user experience. Yahoo was a site I researched and they have, IMHO, the cleverest solution of them all. They add the class to the <em>HTML</em> element instead of the <em>BODY</em> element. The first script block on the page to be loaded adds the <em>hasJS</em> class without dependency on libraries. <strong>Note: Yahoo uses another class name "jsenabled"</strong>.</p>
<p class="aligncenter"><img src="http://oncemade.com/wp-content/uploads/2009/08/yahoo_firebug.png" alt="Yahoo Firebug" /></p>
<p>You might be asking why add the class to the <em>HTML</em> element? I think it makes more sense because the <em>BODY</em> is the beginning of the content. This means that everything after the body is "visible" to the user and blocking the content with a script tag isn't a good optimization practice. Here is the code to add the <em>hasJS</em>  class to the body:</p>
<pre><h4>hasJS Script Block</h4><code>&lt;script type=&quot;text/javascript&quot;&gt;
  document.getElementsByTagName(&#x27;html&#x27;)[0].className = &#x27;hasJS&#x27;;
&lt;/script&gt;
</code></pre>
<p class="note">NOTE: If you already have more classes on the HTML element, use <strong>  document.getElementsByTagName(&#x27;html&#x27;)[0].className += &#x27; hasJS&#x27;;</strong> instead.</p>

<a target="_blank" class="demoBtn" href="http://examples.oncemade.com/hasjs.html">Demo</a>

<div class="browserSupport">
<h4>Browser Support</h4>
<ul class="browserComp clearfix">
   <li class="firefoxComp"><span>Firefox</span></li>
   <li class="safariComp"><span>Safari</span></li>
   <li class="chromeComp"><span>Chrome</span></li>
   <li class="operaComp"><span>Opera</span></li>
   <li class="ie7Comp"><span>Internet Explore 7 &amp; 8</span></li>
<li class="ie6Comp"><span>Internet Explore 6</span></li>
</ul>
</div>]]></content:encoded>
			<wfw:commentRss>http://oncemade.com/adding-hasjs-class-when-javascript-is-available/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Renaming and Extending Easy-Clearing, AKA Clearfix</title>
		<link>http://oncemade.com/renaming-and-extending-easy-clearing-aka-clearfix/</link>
		<comments>http://oncemade.com/renaming-and-extending-easy-clearing-aka-clearfix/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 04:25:28 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[clearfix]]></category>
		<category><![CDATA[easy-clearing]]></category>
		<category><![CDATA[group]]></category>
		<category><![CDATA[Markup]]></category>

		<guid isPermaLink="false">http://oncemade.com/?p=642</guid>
		<description><![CDATA[When positioniseverything.net posted an article about clearfix technique, it didn&#x27;t take much for web developers and designers to start adopting [...]]]></description>
			<content:encoded><![CDATA[<p>When <a href="http://positioniseverything.net">positioniseverything.net</a> posted an article about <a href="http://www.positioniseverything.net/easyclearing.html"><em>clearfix</em></a> technique, it didn&#x27;t take much for web developers and designers to start adopting it. Lately, <a href="http://simplebits.com">Dan Cederholm</a> has been talking about renaming the class <em>clearfix</em> to <em>group</em>, which semantically speaking makes a lot more sense. So, let&#x27;s go ahead and rename the class.</p>
<pre><h4>New Easy-Clearing</h4><code>.group:after {
  content: ".";
  display: block;
  height: 0;
  clear: both;
  visibility: hidden;
}</code></pre>

<p>Using <a href="http://www.quirksmode.org/css/condcom.html">conditional comments</a>, let&#x27;s add the proper code to handle <abbr title="Internet Explore 6">IE 6</abbr> and <abbr title="Internet Explore 7">IE 7</abbr> (<abbr title="Internet Explore 8">IE8</abbr> supports the :after pseudo-elements; no extra code is necessary).</p>
<span id="more-642"></span>
<pre><h4>New Easy-Clearing for IE</h4><code>/* IE6 */
* html .group { height: 1%; }

/*IE7 */
.group { min-height: 1px; }</code></pre>
<p>I&#x27;ve been using the <em>group</em> class on my latest projects and I&#x27;d like to share a small tip, when clearing list items, with you.</p>
<p>Normally, we&#x27;d have the <em>group</em> class on every <em>LI</em>, like so:</p>
<pre><h4>Clearing List Items the Old Way</h4><code>&lt;ul class=&quot;comments&quot;&gt;
  &lt;li class=&quot;group&quot;&gt;
    &lt;img src=&quot;carla.jpg&quot; alt=&quot;Carla&amp;#x27;s Picture&quot; /&gt;
    &lt;p&gt;Tiny and I miss you&lt;/p&gt;
  &lt;/li&gt;
  &lt;li class=&quot;group&quot;&gt;
    &lt;img src=&quot;steven.jpg&quot; alt=&quot;Steven&amp;#x27;s Picture&quot; /&gt;
    &lt;p&gt;I need a favor! It will take you 5 seconds.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li class=&quot;group&quot;&gt;
    &lt;img src=&quot;buzz.jpg&quot; alt=&quot;Buzz&amp;#x27;s Picture&quot; /&gt;
    &lt;p&gt;I speak gibberish&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;</code></pre>


<!--more-->
<p>Although the markup doesn&#x27;t look very bad, we can make things better by introducing a new class (<em>groupList</em>) and adding it to the <em>UL</em>.</p>
<pre><h4>Clearing List Items the New Way</h4><code>&lt;ul class=&quot;comments groupList&quot;&gt;
  &lt;li&gt;
    &lt;img src=&quot;carla.jpg&quot; alt=&quot;Carla&amp;#x27;s Picture&quot; /&gt;
    &lt;p&gt;Tiny and I miss you&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;img src=&quot;steven.jpg&quot; alt=&quot;Steven&amp;#x27;s Picture&quot; /&gt;
    &lt;p&gt;I need a favor! It will take you 5 seconds.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;img src=&quot;buzz.jpg&quot; alt=&quot;Buzz&amp;#x27;s Picture&quot; /&gt;
    &lt;p&gt;I speak gibberish&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;</code></pre>

<p>Phew, the markup looks much cleaner! Now that we&#x27;ve fixed it, let&#x27;s add the <em>.groupList > li</em> selector to the existing <em>.group</em> styles.</p>
<pre><h4>Extending .group</h4><code>.groupList > li,
.group:after {
  content: ".";
  display: block;
  height: 0;
  clear: both;
  visibility: hidden;
}</code></pre>

<p>Wait! How about the beloved <abbr title="Internet Explore">IE</abbr>?

<pre><h4>Extending .group IE</h4><code>/* IE6 */
* html .groupList li,
* html .group { height: 1%; }
* html .groupList li li { height: auto; } /* Resets nested LIs */

/*IE7 */
.group > li,
.group { min-height: 1px; }</code></pre>


<p>
<h4>Browser Support</h4>
<ul class  = "browserComp clearfix">
<li class = "firefoxComp"><span>Firefox</span></li>
<li class = "safariComp"><span>Safari</span></li>
<li class = "chromeComp"><span>Chrome</span></li>
<li class = "operaComp"><span>Opera</span></li>
<li class = "ie7Comp"><span>Internet Explore 7 &#038; 8</span></li>
<li class = "ie6Comp"><span>Internet Explore 6</span></li>
</ul>
</p>]]></content:encoded>
			<wfw:commentRss>http://oncemade.com/renaming-and-extending-easy-clearing-aka-clearfix/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>
