<?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>Code Couch &#187; CSS</title>
	<atom:link href="http://www.codecouch.com/tag/css/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.codecouch.com</link>
	<description>The ramblings of two code monkeys</description>
	<lastBuildDate>Thu, 19 Nov 2009 15:47:59 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Use CSS pseudo classes to enhance accessibility</title>
		<link>http://www.codecouch.com/2009/01/use-css-pseudo-classes-to-enhance-accessibility/</link>
		<comments>http://www.codecouch.com/2009/01/use-css-pseudo-classes-to-enhance-accessibility/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 14:42:16 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.codecouch.com/?p=246</guid>
		<description><![CDATA[It is very simple to add some CSS rules to make your site more accessible. Read on to find out how you can use pseudo classes to provide extra support for keyboard users in all browsers (including Internet Explorer).]]></description>
			<content:encoded><![CDATA[<p>CSS pseudo-classes are probably not something most people are familiar with &#8211; although many developers would make use of them without necessarily being aware of it! When you hover the mouse over a link, many sites will underline the link for you. This is using the <strong>hover</strong> pseudo-class.</p>

<div class="wp_syntax_outer"><div class="wp_syntax"><div class="wp_syntax_inner"><pre class="javascript" style="color: #000000;">a <span class="br0">&#123;</span> text<span class="sy0">-</span>decoration<span class="sy0">:</span>none<span class="sy0">;</span> <span class="br0">&#125;</span>
a<span class="sy0">:</span>hover <span class="br0">&#123;</span> text<span class="sy0">-</span>decoration<span class="sy0">:</span>underline<span class="sy0">;</span> <span class="br0">&#125;</span></pre></div></div></div>

<p>The above example sets all anchors to have no underline text decoration, and the <strong>hover</strong> pseudo-class sets all anchors to have an underline on them. When the user hovers their mouse over a link, an underline will show under the link. When they move their mouse away, the <strong>hover</strong> pseudo-class stops taking effect and the underline is removed.</p>
<p>Pseudo-classes are supported with all modern browsers, but this support is only for the anchor element. Any attempt to use a pseudo-class on any other element will not work in Internet Explorer 6.</p>
<p>There are other pseudo-classes that can be used to provide a more usable experience for those that primarily use a keyboard to navigation through a page.  The first of these is the <strong>focus</strong> pseudo-class (which take affect when the element gains focus &#8211; such as tabbing to the element). This pseudo-class can be used to style elements when they receive focus.</p>
<p>Building on the initial example, the addition of a <strong>focus</strong> pseudo-class will ensure that the same hover effects (in this case some underline text decoration) are applied when the user tabs focus to the anchor.</p>

<div class="wp_syntax_outer"><div class="wp_syntax"><div class="wp_syntax_inner"><pre class="javascript" style="color: #000000;">a <span class="br0">&#123;</span> text<span class="sy0">-</span>decoration<span class="sy0">:</span>none<span class="sy0">;</span> <span class="br0">&#125;</span>
a<span class="sy0">:</span>hover<span class="sy0">,</span> a<span class="sy0">:</span><span class="kw3">focus</span> <span class="br0">&#123;</span> text<span class="sy0">-</span>decoration<span class="sy0">:</span>underline<span class="sy0">;</span> <span class="br0">&#125;</span></pre></div></div></div>

<p>This would be fine, except that Internet Explorer 6 doesn&#8217;t understand the <strong>focus</strong> pseudo-class at all! The solution is to use the <strong>active</strong> pseudo-class to extend the CSS rule.</p>

<div class="wp_syntax_outer"><div class="wp_syntax"><div class="wp_syntax_inner"><pre class="javascript" style="color: #000000;">a <span class="br0">&#123;</span> text<span class="sy0">-</span>decoration<span class="sy0">:</span>none<span class="sy0">;</span> <span class="br0">&#125;</span>
a<span class="sy0">:</span>hover<span class="sy0">,</span> a<span class="sy0">:</span><span class="kw3">focus</span><span class="sy0">,</span> a<span class="sy0">:</span>active <span class="br0">&#123;</span> text<span class="sy0">-</span>decoration<span class="sy0">:</span>underline<span class="sy0">;</span> <span class="br0">&#125;</span></pre></div></div></div>

<p>The order of the<strong> pseudo-class </strong>rules is important (and if you get the order wrong, you may experience some of the CSS rules displaying inconsistently across browsers). As a general rule, always put pseudo-classes in the following order:</p>
<blockquote><p><strong>link, visited, hover, focus, active</strong></p></blockquote>
<p>So, whenever you define a <strong>hover</strong> pseudo-class CSS rule, consider adding in a <strong>focus</strong> and then an <strong>active</strong> pseudo-class at the same time &#8211; it will help users that choose to use the keyboard to navigate your site.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codecouch.com/2009/01/use-css-pseudo-classes-to-enhance-accessibility/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How do you vertically centre content using CSS?</title>
		<link>http://www.codecouch.com/2008/10/how-do-you-vertically-centre-content-using-css/</link>
		<comments>http://www.codecouch.com/2008/10/how-do-you-vertically-centre-content-using-css/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 13:12:07 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.codecouch.com/?p=201</guid>
		<description><![CDATA[Find out how to do vertical centring (vertical alignment) of content using just CSS (and some div elements).]]></description>
			<content:encoded><![CDATA[<p>How do you vertical centre some content using CSS (and some extra div elements)? This is the same simple layout that used to be achieved using a table and valign attribute. This solution doesn&#8217;t require a table at all (but it does require some extra div elements &#8211; as per the markup below).</p>
<p>With the following markup:</p>

<div class="wp_syntax_outer"><div class="wp_syntax"><div class="wp_syntax_inner"><pre class="html4strict" style="color: #000000;"><span class="sc2"><span class="kw2">&lt;div</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;verticalCenteringOuter&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;moduleA&quot;</span><span class="kw2">&gt;</span></span>
	<span class="sc2"><span class="kw2">&lt;div</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;verticalCenteringMiddle&quot;</span><span class="kw2">&gt;</span></span>
		<span class="sc2"><span class="kw2">&lt;div</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;verticalCenteringInner&quot;</span><span class="kw2">&gt;</span></span>
			<span class="sc2"><span class="kw2">&lt;b&gt;</span></span>Some vertical aligned content here<span class="sc2"><span class="kw2">&lt;/b&gt;</span></span>
		<span class="sc2"><span class="kw2">&lt;/div&gt;</span></span>
	<span class="sc2"><span class="kw2">&lt;/div&gt;</span></span>
<span class="sc2"><span class="kw2">&lt;/div&gt;</span></span></pre></div></div></div>

<p>Using the following CSS:</p>

<div class="wp_syntax_outer"><div class="wp_syntax"><div class="wp_syntax_inner"><pre class="css" style="color: #000000;">&lt;style type=<span class="st0">&quot;text/css&quot;</span><span class="sy0">&gt;</span>
<span class="re0">#moduleA</span> <span class="br0">&#123;</span>
	<span class="kw1">height</span><span class="sy0">:</span> <span class="re3">300px</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
<span class="re1">.verticalCenteringOuter</span> <span class="br0">&#123;</span>
	<span class="kw1">display</span><span class="sy0">:</span> table<span class="sy0">;</span>
	<span class="kw1">overflow</span><span class="sy0">:</span> <span class="kw2">hidden</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
<span class="re1">.verticalCenteringMiddle</span> <span class="br0">&#123;</span>
	<span class="kw1">display</span><span class="sy0">:</span> <span class="kw2">table-cell</span><span class="sy0">;</span>
	<span class="kw1">vertical-align</span><span class="sy0">:</span> <span class="kw2">middle</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
&lt;/style<span class="sy0">&gt;</span>
&nbsp;
&lt;!--<span class="br0">&#91;</span>if IE<span class="br0">&#93;</span><span class="sy0">&gt;</span>
&lt;style type=<span class="st0">&quot;text/css&quot;</span><span class="sy0">&gt;</span>
<span class="re1">.verticalCenteringOuter</span> <span class="br0">&#123;</span>
	<span class="kw1">position</span><span class="sy0">:</span> <span class="kw2">relative</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
<span class="re1">.verticalCenteringMiddle</span> <span class="br0">&#123;</span>
	<span class="kw1">position</span><span class="sy0">:</span> <span class="kw2">absolute</span><span class="sy0">;</span>
	<span class="kw1">top</span><span class="sy0">:</span> <span class="re3"><span class="nu0">50</span>%</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
<span class="re1">.verticalCenteringInner</span> <span class="br0">&#123;</span>
	<span class="kw1">position</span><span class="sy0">:</span> <span class="kw2">relative</span><span class="sy0">;</span>
	<span class="kw1">top</span><span class="sy0">:</span> -<span class="re3"><span class="nu0">50</span>%</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
&lt;/style<span class="sy0">&gt;</span>
&lt;!<span class="br0">&#91;</span>endif<span class="br0">&#93;</span>--<span class="sy0">&gt;</span></pre></div></div></div>

<p>Full credit on this to <a href="http://www.jakpsatweb.cz/css/css-vertical-center-solution.html">Yuhů (www.jakpsatweb.cz)</a>. Thanks for the inspiration on this one.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codecouch.com/2008/10/how-do-you-vertically-centre-content-using-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Problems with anchors and alpha transparency filters in IE6</title>
		<link>http://www.codecouch.com/2008/10/problems-with-anchors-and-alpha-transparency-filters-in-ie6/</link>
		<comments>http://www.codecouch.com/2008/10/problems-with-anchors-and-alpha-transparency-filters-in-ie6/#comments</comments>
		<pubDate>Tue, 21 Oct 2008 06:29:40 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[Internet Explorer]]></category>

		<guid isPermaLink="false">http://www.codecouch.com/?p=195</guid>
		<description><![CDATA[If you use the Microsoft filter CSS property to allow support for an alpha transparent PNG on an element, any links directly within that element are not clickable (in Internet Explorer 6 only). The problem is explained and a solution put forward that will make your links clickable again.]]></description>
			<content:encoded><![CDATA[<p>You can use alpha transparent PNGs in IE6 as described in <a href="http://www.codecouch.com/2007/05/how-do-i-display-alpha-transparent-pngs-across-all-browsers/">How do I display alpha transparent PNGs across all browsers</a>. There is a problem with implementing this solution &#8211; in Internet Explorer 6 links are no longer clickable when they are contained within an element with an alpha transparency filter applied.</p>
<div class="seeThrough h2Pod "><div class="seeThroughTop"><span class="tl"></span><span class="tr"></span><span class="t"></span></div><div class="seeThroughMiddle"><span class="r"></span><span class="l"></span><span class="m"></span><div class="seeThroughContent">
	<h2>The problem</h2>
</div></div><div class="seeThroughBottom"><span class="bl"></span><span class="br"></span><span class="b"></span></div></div>

<p>Consider the following CSS and HTML code snippets that set up the problem with a link contained within a div that has an alpha transparency filter applied to it:</p>

<div class="wp_syntax_outer"><div class="wp_syntax"><div class="wp_syntax_inner"><pre class="css" style="color: #000000;">&lt;style type=<span class="st0">&quot;text/css&quot;</span><span class="sy0">&gt;</span>
<span class="re1">.opaque</span> <span class="br0">&#123;</span> <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="re4">images/alphaTransparent<span class="re1">.png</span></span><span class="br0">&#41;</span> <span class="kw2">transparent</span> <span class="kw2">no-repeat</span> <span class="kw1">left</span> <span class="kw1">top</span><span class="sy0">;</span> <span class="br0">&#125;</span>
&lt;/style<span class="sy0">&gt;</span>
&lt;!--<span class="br0">&#91;</span>if IE <span class="nu0">6</span><span class="br0">&#93;</span><span class="sy0">&gt;</span>
&lt;style type=<span class="st0">&quot;text/css&quot;</span><span class="sy0">&gt;</span>
<span class="re1">.opaque</span> <span class="br0">&#123;</span>
	<span class="kw1">background-image</span><span class="sy0">:</span> <span class="kw2">none</span><span class="sy0">;</span>
	filter<span class="sy0">:</span> progid<span class="re2">:DXImageTransform</span><span class="re1">.Microsoft</span><span class="re1">.AlphaImageLoader</span><span class="br0">&#40;</span>enabled=true,sizingMethod=<span class="kw2">crop</span>,src=images/alphaTransparent<span class="re1">.png</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
&lt;/style<span class="sy0">&gt;</span>
&lt;!<span class="br0">&#91;</span>endif<span class="br0">&#93;</span>--<span class="sy0">&gt;</span></pre></div></div></div>


<div class="wp_syntax_outer"><div class="wp_syntax"><div class="wp_syntax_inner"><pre class="html4strict" style="color: #000000;">...
<span class="sc2"><span class="kw2">&lt;div</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;parent&quot;</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;opaque&quot;</span><span class="kw2">&gt;</span></span>
    <span class="sc2"><span class="kw2">&lt;span</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;child&quot;</span><span class="kw2">&gt;</span></span>Lorem <span class="sc2"><span class="kw2">&lt;a</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;http://www.codecouch.com&quot;</span><span class="kw2">&gt;</span></span>ipsum<span class="sc2"><span class="kw2">&lt;/a&gt;</span></span> dolor.<span class="sc2"><span class="kw2">&lt;/span&gt;</span></span>
<span class="sc2"><span class="kw2">&lt;/div&gt;</span></span>
...</pre></div></div></div>

<p>The parent element has a class <b>opaque</b> applied to it which puts an image on the background of the element. In Internet Explorer 6 only, the background image is removed and the proprietary filter property is used. The link inside the child span is no longer clickable in Internet Explorer 6.</p>
<div class="seeThrough h2Pod "><div class="seeThroughTop"><span class="tl"></span><span class="tr"></span><span class="t"></span></div><div class="seeThroughMiddle"><span class="r"></span><span class="l"></span><span class="m"></span><div class="seeThroughContent">
	<h2>The solution</h2>
</div></div><div class="seeThroughBottom"><span class="bl"></span><span class="br"></span><span class="b"></span></div></div>

<p>Make sure the parent element (the element with the filter applied to it) doesn&#8217;t have the position property set on it, and the child element (the element with the link in it) has to have relative position.</p>
<p>The following addition to the above code will make the link clickable:</p>

<div class="wp_syntax_outer"><div class="wp_syntax"><div class="wp_syntax_inner"><pre class="css" style="color: #000000;">&lt;!--<span class="br0">&#91;</span>if IE <span class="nu0">6</span><span class="br0">&#93;</span><span class="sy0">&gt;</span>
&lt;style type=<span class="st0">&quot;text/css&quot;</span><span class="sy0">&gt;</span>
<span class="re0">#child</span> <span class="br0">&#123;</span> <span class="kw1">position</span><span class="sy0">:</span> <span class="kw2">relative</span><span class="sy0">;</span> <span class="br0">&#125;</span>
&lt;/style<span class="sy0">&gt;</span>
&lt;!<span class="br0">&#91;</span>endif<span class="br0">&#93;</span>--<span class="sy0">&gt;</span></pre></div></div></div>

<p>Since it only has to apply for Internet Explorer 6, the &#8220;fix&#8221; can be enclosed within the <a href="http://www.codecouch.com/2007/04/how-to-target-specific-ie-browsers-using-just-html/">conditional comment</a> that targets just that browser. This doesn&#8217;t require any javascript to work (unlike <a href="http://bjorkoy.com/past/2007/4/8/the_easiest_way_to_png/">other solutions</a> that have been posted) and degrades properly.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codecouch.com/2008/10/problems-with-anchors-and-alpha-transparency-filters-in-ie6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to create rollovers without using Javascript</title>
		<link>http://www.codecouch.com/2008/10/create-rollovers-without-using-javascript/</link>
		<comments>http://www.codecouch.com/2008/10/create-rollovers-without-using-javascript/#comments</comments>
		<pubDate>Sun, 19 Oct 2008 13:11:10 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Front-end]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.codecouch.com/?p=174</guid>
		<description><![CDATA[Using just CSS, you can do simple (and more complex) rollovers... no javascript required. This post shows how to apply this technique to your own pages with ease - whether it's a colour change or a more complex image swap.]]></description>
			<content:encoded><![CDATA[<p>You can make use of the <b>:hover</b> pseudo class on the anchor tag to change the anchor&#8217;s style attributes. Typically you see this on sites that underline anchors when you mouse over them (when you hover over them). The CSS code to do this simple underlining can look like this:</p>

<div class="wp_syntax_outer"><div class="wp_syntax"><div class="wp_syntax_inner"><pre class="css" style="color: #000000;">a <span class="br0">&#123;</span> <span class="kw1">text-decoration</span><span class="sy0">:</span> <span class="kw2">none</span><span class="sy0">;</span> <span class="br0">&#125;</span>
a<span class="re2">:hover</span> <span class="br0">&#123;</span> <span class="kw1">text-decoration</span><span class="sy0">:</span> <span class="kw2">underline</span><span class="sy0">;</span> <span class="br0">&#125;</span></pre></div></div></div>

<p>We could extend this to change the background and forground colour of the link to make it appear a little more &#8220;box-like&#8221; using something like this CSS code:</p>

<div class="wp_syntax_outer"><div class="wp_syntax"><div class="wp_syntax_inner"><pre class="css" style="color: #000000;">a <span class="br0">&#123;</span>
	<span class="kw1">display</span><span class="sy0">:</span> <span class="kw2">block</span><span class="sy0">;</span>
	<span class="kw1">padding</span><span class="sy0">:</span> <span class="re3">5px</span> <span class="re3">10px</span><span class="sy0">;</span>
	<span class="kw1">background-color</span><span class="sy0">:</span> <span class="re0">#<span class="nu0">000000</span></span><span class="sy0">;</span>
	<span class="kw1">color</span><span class="sy0">:</span> <span class="re0">#FFFFFF</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
a<span class="re2">:hover</span> <span class="br0">&#123;</span>
	<span class="kw1">background-color</span><span class="sy0">:</span> <span class="re0">#CCCCCC</span><span class="sy0">;</span>
	<span class="kw1">color</span><span class="sy0">:</span> <span class="re0">#<span class="nu0">000000</span></span><span class="sy0">;</span>
<span class="br0">&#125;</span></pre></div></div></div>

<p>If you wanted to have a background image on the anchor, then you could change the background-image when you hovered over the anchor. The CSS code might look like this:</p>

<div class="wp_syntax_outer"><div class="wp_syntax"><div class="wp_syntax_inner"><pre class="css" style="color: #000000;">a <span class="br0">&#123;</span>
	<span class="kw1">display</span><span class="sy0">:</span> <span class="kw2">block</span><span class="sy0">;</span>
	<span class="kw1">padding</span><span class="sy0">:</span> <span class="re3">5px</span> <span class="re3">10px</span><span class="sy0">;</span>
	<span class="kw1">background</span><span class="sy0">:</span> <span class="re0">#<span class="nu0">000000</span></span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="re4">img/anchor_off<span class="re1">.gif</span></span><span class="br0">&#41;</span> <span class="kw2">no-repeat</span> <span class="kw1">left</span> <span class="kw1">top</span><span class="sy0">;</span>
	<span class="kw1">color</span><span class="sy0">:</span> <span class="re0">#FFFFFF</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
a<span class="re2">:hover</span> <span class="br0">&#123;</span>
	<span class="kw1">background</span><span class="sy0">:</span> <span class="re0">#CCCCCC</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="re4">img/anchor_hovered<span class="re1">.gif</span></span><span class="br0">&#41;</span> <span class="kw2">no-repeat</span> <span class="kw1">left</span> <span class="kw1">top</span><span class="sy0">;</span>
	<span class="kw1">color</span><span class="sy0">:</span> <span class="re0">#<span class="nu0">000000</span></span><span class="sy0">;</span>
<span class="br0">&#125;</span></pre></div></div></div>

<p>This technique does suffer from a flaw, however. You will invariably see a flickering as you roll over the anchor for the first time due to the browser having to request the second image (assuming the file isn&#8217;t already in the browser cache).</p>
<p>This problem can be fixed by using the same image for both the normal and hover state of the anchor &#8211; just reposition the background image on hover. This is presented very well over at <a href="http://www.alistapart.com/articles/sprites/">A List Apart</a> where Dave Shea introduces the concept of CSS Sprites. The image below (195px wide, 30px high in size) shows how you might set this up:</p>
<p><img src="http://www.codecouch.com/wp-content/uploads/2008/10/cssbuttonbackground.gif" alt="" title="Anchor background sprites" width="195" height="30" /></p>
<p>The image above shows both states of the anchor&#8230; the initial state at the &#8220;left top&#8221; and the hovered state &#8220;100px&#8221; from the left of the image. The following CSS code shows how you can reposition the background image to show a different image on hover &#8211; without the flicker:</p>

<div class="wp_syntax_outer"><div class="wp_syntax"><div class="wp_syntax_inner"><pre class="css" style="color: #000000;">a <span class="br0">&#123;</span>
	<span class="kw1">display</span><span class="sy0">:</span> <span class="kw2">block</span><span class="sy0">;</span>
	<span class="kw1">padding</span><span class="sy0">:</span> <span class="re3">5px</span> <span class="re3">10px</span><span class="sy0">;</span>
	<span class="kw1">width</span><span class="sy0">:</span> <span class="re3">95px</span><span class="sy0">;</span>
	<span class="kw1">height</span><span class="sy0">:</span> <span class="re3">30px</span><span class="sy0">;</span>
	<span class="kw1">overflow</span><span class="sy0">:</span> <span class="kw2">hidden</span><span class="sy0">;</span>
	<span class="kw1">background</span><span class="sy0">:</span> <span class="re0">#<span class="nu0">000000</span></span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="re4">img/anchor_background<span class="re1">.gif</span></span><span class="br0">&#41;</span> <span class="kw2">no-repeat</span> <span class="kw1">left</span> <span class="kw1">top</span><span class="sy0">;</span>
	<span class="kw1">color</span><span class="sy0">:</span> <span class="re0">#FFFFFF</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
a<span class="re2">:hover</span> <span class="br0">&#123;</span>
	<span class="kw1">background-position</span><span class="sy0">:</span> <span class="re3">100px</span> <span class="kw1">top</span><span class="sy0">;</span>
	<span class="kw1">background-color</span><span class="sy0">:</span> <span class="re0">#CCCCCC</span><span class="sy0">;</span>
	<span class="kw1">color</span><span class="sy0">:</span> <span class="re0">#<span class="nu0">000000</span></span><span class="sy0">;</span>
<span class="br0">&#125;</span></pre></div></div></div>

<p>You may have to deal with all the anchor pseudo classes to get the effect consistent in all browsers, and be sure to define them in the correct order&#8230; :link, :visited, :hover, :active.</p>
<p>Finally, Internet Explorer only supports pseudo classes on the anchor element. All other browsers support pseudo classes on all elements. You could use this technique on non-anchor elements, but would be forced to introduce some javascript to support Internet Explorer. A good working example of this is the popular <a href="http://www.alistapart.com/articles/dropdowns">Suckerfish dropdowns</a> CSS menu solution that uses :hover on the list item element and attaches some javascript for Internet Explorer.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codecouch.com/2008/10/create-rollovers-without-using-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to use “clearfix” CSS to clear floats without markup</title>
		<link>http://www.codecouch.com/2008/10/how-to-use-clearfix-css-to-clear-floats-without-markup/</link>
		<comments>http://www.codecouch.com/2008/10/how-to-use-clearfix-css-to-clear-floats-without-markup/#comments</comments>
		<pubDate>Tue, 14 Oct 2008 21:43:19 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Front-end]]></category>
		<category><![CDATA[HTML/XHTML]]></category>

		<guid isPermaLink="false">http://www.codecouch.com/?p=165</guid>
		<description><![CDATA[Here we extended the normal rules for clearfix and provide a complete CSS solution to clearing floated elements (ensuring that a parent element inherits it's floated child element's height). A complete clearfix redux.]]></description>
			<content:encoded><![CDATA[<p>When an element is floated, it is taken out of the normal flow of the document. As a result, the element takes up no height (in the normal flow) &#8211; and any wrapping parent element will not automatically resize to accommodate the height of the floated element. Here is some sample HTML that shows this in it&#8217;s simple form:</p>

<div class="wp_syntax_outer"><div class="wp_syntax"><div class="wp_syntax_inner"><pre class="html4strict" style="color: #000000;">...
<span class="sc2"><span class="kw2">&lt;div</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;parent&quot;</span> <span class="kw3">style</span><span class="sy0">=</span><span class="st0">&quot;background-color:#F00;&quot;</span><span class="kw2">&gt;</span></span>
	<span class="sc2"><span class="kw2">&lt;div</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;child&quot;</span> <span class="kw3">style</span><span class="sy0">=</span><span class="st0">&quot;float: left;&quot;</span><span class="kw2">&gt;</span></span>Floated element<span class="sc2"><span class="kw2">&lt;/div&gt;</span></span>
<span class="sc2"><span class="kw2">&lt;/div&gt;</span></span>
...</pre></div></div></div>

<p>Given the child element is floated, it doesn&#8217;t affect the height of the parent element &#8211; and so the parent element remains with no height (and the red background colour is never shown).</p>
<p>The <a href="http://www.w3.org/TR/CSS2/visuren.html#floats">W3 describe floating an element</a> and the use of a &#8220;clearing element&#8221; (a block level element with the <b>clear</b> CSS property set). This is not acceptable for all layouts. It would be nicer if all this could be carried out using CSS &#8211; providing a separation of content and layout into the bargain.</p>
<p>Rather than attempt to merely re-word much of what is already online, you can read about how the CSS for this works in more detail at <a href="http://www.positioniseverything.net/easyclearing.html">Position is Everything</a>. Whilst their implementation is slightly different to the one presented below, their description is excellent (and they are credited with bringing together all the threads to make this solution usable).</p>
<p>The <b>clearfix</b> solution below is our current &#8220;best practise&#8221; effort to date. We have switched from using the typical &#8220;.&#8221; to using a space &#8221; &#8221; in the <b>content</b> rule due to <a href="http://perishablepress.com/press/2008/02/05/lessons-learned-concerning-the-clearfix-css-hack/">reports of some layout issues in Firefox</a>.</p>

<div class="wp_syntax_outer"><div class="wp_syntax"><div class="wp_syntax_inner"><pre class="css" style="color: #000000;">&lt;style type=<span class="st0">&quot;text/css&quot;</span><span class="sy0">&gt;</span>
<span class="re1">.clearfix</span><span class="re2">:after</span> <span class="br0">&#123;</span>
	<span class="kw1">clear</span><span class="sy0">:</span> <span class="kw2">both</span><span class="sy0">;</span>
	<span class="kw1">display</span><span class="sy0">:</span> <span class="kw2">block</span><span class="sy0">;</span>
	<span class="kw1">content</span><span class="sy0">:</span> <span class="st0">&quot; &quot;</span><span class="sy0">;</span>
	<span class="kw1">height</span><span class="sy0">:</span> <span class="re3">0px</span><span class="sy0">;</span>
	<span class="kw1">visibility</span><span class="sy0">:</span> <span class="kw2">hidden</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
<span class="re1">.clearfix</span> <span class="br0">&#123;</span>
	<span class="kw1">display</span><span class="sy0">:</span> inline-<span class="kw2">block</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
<span class="coMULTI">/* Hide these rules from IE-mac \*/</span>
* html <span class="re1">.clearfix</span> <span class="br0">&#123;</span>
	<span class="kw1">height</span><span class="sy0">:</span> <span class="re3"><span class="nu0">1</span>%</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
<span class="re1">.clearfix</span> <span class="br0">&#123;</span>
	<span class="kw1">display</span><span class="sy0">:</span> <span class="kw2">block</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
li<span class="re1">.clearfix</span> <span class="br0">&#123;</span>
	<span class="kw1">display</span><span class="sy0">:</span> <span class="kw2">list-item</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
<span class="coMULTI">/* End hide from IE-mac */</span>
&lt;/style<span class="sy0">&gt;</span></pre></div></div></div>

<p>We extended the normal rules to include setting the correct display (list-item) for use on list items (as a direct result of some problems with floated lists). If you don&#8217;t care about IE-mac support (don&#8217;t forget that <a href="http://www.codecouch.com/2005/12/microsoft-finally-retires-ie-5-for-the-mac/">Microsoft finally retired IE 5 for the Mac</a>) then you can avoid using the &#8220;commented backslash hack&#8221; all together.</p>
<p>Going back to our original HTML code, we can place the <b>clearfix</b> class on the parent element to ensure that it inherits the height of it&#8217;s floating child elements (and the red background will now show):</p>

<div class="wp_syntax_outer"><div class="wp_syntax"><div class="wp_syntax_inner"><pre class="html4strict" style="color: #000000;">...
<span class="sc2"><span class="kw2">&lt;div</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;clearfix&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;parent&quot;</span> <span class="kw3">style</span><span class="sy0">=</span><span class="st0">&quot;background-color:#F00;&quot;</span><span class="kw2">&gt;</span></span>
	<span class="sc2"><span class="kw2">&lt;div</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;child&quot;</span> <span class="kw3">style</span><span class="sy0">=</span><span class="st0">&quot;float: left;&quot;</span><span class="kw2">&gt;</span></span>Floated element<span class="sc2"><span class="kw2">&lt;/div&gt;</span></span>
<span class="sc2"><span class="kw2">&lt;/div&gt;</span></span>
...</pre></div></div></div>

<p>You can read more about the <b>clearfix</b> solution all over the place, including:</p>
<ul>
<li><a href="http://www.positioniseverything.net/easyclearing.html">Position is Everything</a></li>
<li><a href="http://www.456bereastreet.com/archive/200603/new_clearing_method_needed_for_ie7/">456 Berea Street</a></li>
<li><a href="http://www.sitepoint.com/blogs/2005/02/26/simple-clearing-of-floats/">Sitepoint</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.codecouch.com/2008/10/how-to-use-clearfix-css-to-clear-floats-without-markup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How do I display alpha transparent PNGs across all browsers?</title>
		<link>http://www.codecouch.com/2007/05/how-do-i-display-alpha-transparent-pngs-across-all-browsers/</link>
		<comments>http://www.codecouch.com/2007/05/how-do-i-display-alpha-transparent-pngs-across-all-browsers/#comments</comments>
		<pubDate>Sat, 05 May 2007 09:40:05 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Graphical]]></category>

		<guid isPermaLink="false">http://www.codecouch.com/?p=104</guid>
		<description><![CDATA[Find out how you can use alpha transparency successfully across all browsers - and specifically IE 6 for Windows.]]></description>
			<content:encoded><![CDATA[<p>Many web developers have shunned the <acronym title="Portable Network Graphics">PNG</acronym> image format in the past. For some this has been because of a perceived lack of support for alpha transparency (described formally as <a title="Wikipedia entry" href="http://en.wikipedia.org/wiki/Alpha_compositing">alpha compositing</a>) in Internet Explorer. Here are some directions on how you can use alpha transparency successfully across all browsers &#8211; and specifically IE 6 for Windows.</p>
<p>The examples below rely on the following CSS code (described below):</p>

<div class="wp_syntax_outer"><div class="wp_syntax"><div class="wp_syntax_inner"><pre class="css" style="color: #000000;">&lt;style type=<span class="st0">&quot;text/css&quot;</span><span class="sy0">&gt;</span>
  <span class="re0">#demo1</span> <span class="br0">&#123;</span>
    <span class="kw1">width</span><span class="sy0">:</span> <span class="re3">250px</span><span class="sy0">;</span>
    <span class="kw1">height</span><span class="sy0">:</span> <span class="re3">100px</span><span class="sy0">;</span>
    <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="re4">images/logo<span class="re1">.png</span></span><span class="br0">&#41;</span> <span class="kw2">transparent</span> <span class="nu0">0</span> <span class="nu0">0</span> <span class="kw2">no-repeat</span><span class="sy0">;</span>
  <span class="br0">&#125;</span>
&lt;/style<span class="sy0">&gt;</span>
&lt;!––<span class="br0">&#91;</span>if lt IE <span class="nu0">7</span><span class="br0">&#93;</span><span class="sy0">&gt;</span>
&lt;style type=<span class="st0">&quot;text/css&quot;</span><span class="sy0">&gt;</span>
  <span class="re0">#demo1</span> <span class="br0">&#123;</span>
    <span class="kw1">background-image</span><span class="sy0">:</span> <span class="kw2">none</span><span class="sy0">;</span>
    filter<span class="sy0">:</span> progid<span class="re2">:DXImageTransform</span><span class="re1">.Microsoft</span><span class="re1">.AlphaImageLoader</span>
        <span class="br0">&#40;</span>enabled=true,sizingMethod=scale,src=/images/logo<span class="re1">.png</span><span class="br0">&#41;</span><span class="sy0">;</span>
  <span class="br0">&#125;</span>
&lt;/style<span class="sy0">&gt;</span>
&lt;!<span class="br0">&#91;</span>endif<span class="br0">&#93;</span>––<span class="sy0">&gt;</span></pre></div></div></div>

<p>The first block of CSS sets a background image on an element with the id “demo1″ (typically a div, span or img) for all browsers. This works fine for everything else, but doesn’t work with IE prior to version 7.</p>
<p>The second block targets just these “broken” browsers through use of a <a href="http://msdn.microsoft.com/workshop/author/dhtml/overview/ccomment_ovw.asp">conditional comment</a>. This second block uses the filter property to set up a proper alpha transparent version of the png. Read more about this here at the <a href="http://msdn2.microsoft.com/en-us/library/ms532969.aspx">MSDN site</a>.</p>
<p>In the following example the CSS above would show the logo.png with alpha transparency as the background to a div:</p>

<div class="wp_syntax_outer"><div class="wp_syntax"><div class="wp_syntax_inner"><pre class="html4strict" style="color: #000000;"><span class="sc2"><span class="kw2">&lt;div</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;demo1&quot;</span><span class="kw2">&gt;</span></span><span class="sc2"><span class="kw2">&lt;/div&gt;</span></span></pre></div></div></div>

<p>This next example shows that you can display a png with alpha transparency by targetting a transparent image:</p>

<div class="wp_syntax_outer"><div class="wp_syntax"><div class="wp_syntax_inner"><pre class="html4strict" style="color: #000000;"><span class="sc2"><span class="kw2">&lt;img</span> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;transparent.gif&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;demo1&quot;</span> <span class="kw3">alt</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span><span class="sy0">/</span><span class="kw2">&gt;</span></span></pre></div></div></div>

<p>There are plenty of variations of this technique. All the examples above are considered “standards friendly”. This final example shows the same CSS simplified (but not passing validation):</p>

<div class="wp_syntax_outer"><div class="wp_syntax"><div class="wp_syntax_inner"><pre class="css" style="color: #000000;">&lt;style type=<span class="st0">&quot;text/css&quot;</span><span class="sy0">&gt;</span>
  <span class="re0">#demo1</span> <span class="br0">&#123;</span>
    <span class="kw1">width</span><span class="sy0">:</span> <span class="re3">250px</span><span class="sy0">;</span>
    <span class="kw1">height</span><span class="sy0">:</span> <span class="re3">100px</span><span class="sy0">;</span>
    <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="re4">images/logo<span class="re1">.png</span></span><span class="br0">&#41;</span> <span class="kw2">transparent</span> <span class="nu0">0</span> <span class="nu0">0</span> <span class="kw2">no-repeat</span><span class="sy0">;</span>
    _background-image<span class="sy0">:</span> <span class="kw2">none</span><span class="sy0">;</span>
    _filter<span class="sy0">:</span> progid<span class="re2">:DXImageTransform</span><span class="re1">.Microsoft</span><span class="re1">.AlphaImageLoader</span>
        <span class="br0">&#40;</span>enabled=true,sizingMethod=scale,src=/images/logo<span class="re1">.png</span><span class="br0">&#41;</span><span class="sy0">;</span>
  <span class="br0">&#125;</span>
&lt;/style<span class="sy0">&gt;</span></pre></div></div></div>

<p>If you are putting the CSS above into an external stylesheet, then be aware that the path to the logo.png when used as the background image is relative to the CSS file, but the path to logo.png when used in the filter is relative to the enclosing HTML file. This can cause some confusion.</p>
<p>On a related note… you should always <a href="http://www.codecouch.com/2007/06/make-your-alpha-transparent-pngs-32-bit/">ensure your alpha transparent PNGs are 32-bit</a> to ensure that they always display the same colour across all browsers (specifically Firefox and IE displayed a 24-bit alpha transparent PNG differently using the technique described here &#8211; changing it to 32-bit confirmed this was the case).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codecouch.com/2007/05/how-do-i-display-alpha-transparent-pngs-across-all-browsers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to get consistent font sizes across all browsers</title>
		<link>http://www.codecouch.com/2007/04/how-to-get-consistent-font-sizes-across-all-browsers/</link>
		<comments>http://www.codecouch.com/2007/04/how-to-get-consistent-font-sizes-across-all-browsers/#comments</comments>
		<pubDate>Wed, 18 Apr 2007 12:58:17 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Browsers]]></category>

		<guid isPermaLink="false">http://www.codecouch.com/?p=136</guid>
		<description><![CDATA[Whether you specify your element's font size in pixels, points or ems, you can be confident that text will look the same across browsers on Mac and Windows with this simple set of CSS rules.]]></description>
			<content:encoded><![CDATA[<p>Here is an un-sourced quote that I picked up from the internet:</p>
<blockquote><p>Macs render text at a screen resolution of 72 pixels per inch (ppi) &#8230; Windows renders type at a notional screen resolution of 96 ppi&#8230; the difference between 96 ppi and 72 ppi (24 pixels) makes the fonts on a Web page look 33 percent larger when viewed on a Windows machine.</p>
</blockquote>
<p>To compensate, there are some very simple CSS rules that you can use to essentially &#8220;reset&#8221; the text size to be consistent across both Mac and Windows.</p>

<div class="wp_syntax_outer"><div class="wp_syntax"><div class="wp_syntax_inner"><pre class="css" style="color: #000000;">&lt;style type=<span class="st0">&quot;text/css&quot;</span><span class="sy0">&gt;</span>
   html<span class="sy0">&gt;</span>body <span class="br0">&#123;</span> <span class="kw1">font-size</span><span class="sy0">:</span> <span class="re3">16px</span><span class="sy0">;</span> <span class="br0">&#125;</span>
   body <span class="br0">&#123;</span> <span class="kw1">font-size</span><span class="sy0">:</span> <span class="re3"><span class="nu0">100</span>%</span><span class="sy0">;</span> <span class="br0">&#125;</span>
&lt;/style<span class="sy0">&gt;</span>
&nbsp;
&lt;!--<span class="br0">&#91;</span>if IE <span class="nu0">7</span><span class="br0">&#93;</span><span class="sy0">&gt;</span>
&lt;style type=<span class="st0">&quot;text/css&quot;</span><span class="sy0">&gt;</span>
   html<span class="sy0">&gt;</span>body <span class="br0">&#123;</span> <span class="kw1">font-size</span><span class="sy0">:</span> <span class="re3"><span class="nu0">100</span>%</span><span class="sy0">;</span> <span class="br0">&#125;</span>
&lt;/style<span class="sy0">&gt;</span>
&lt;!<span class="br0">&#91;</span>endif<span class="br0">&#93;</span>--<span class="sy0">&gt;</span></pre></div></div></div>

<p>Initially the <b>html&gt;body</b> definition is applied to all browsers that understand the child selector CSS. This will result in setting the font-size on Opera, Firefox, Netscape, IE7, Safari (and other &#8220;modern&#8221; browsers). It will not be applied to older versions of IE &#8211; they will ignore this definition.</p>
<p>Next, the <b>body</b> definition is set for all browsers that didn&#8217;t understand the initial definition. Because this definition has lower specificity than the initial definition, it is ignored by the likes of Opera, Firefox, Netscape, IE7 and Safari&#8230; but older versions of IE will get this font-size definition.</p>
<p>Finally a conditional comment (which is specific to Windows IE) delivers an override to the initial style by setting the font-size back from a fixed pixel value to a scaleable value for all &#8220;new&#8221; versions of IE&#8230; specifically IE7. It needs to be <b>html&gt;body</b> to ensure it doesn&#8217;t have a lower specificity than the initial definition.</p>
<p>Now, whether you specify your element&#8217;s font size in pixels, points or ems, you can be confident that text will look the same across browsers on Mac and Windows.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codecouch.com/2007/04/how-to-get-consistent-font-sizes-across-all-browsers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
