<?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>Advanced CSS Design Resources - last-child.com &#187; CSS2</title>
	<atom:link href="http://www.last-child.com/category/css/css2/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.last-child.com</link>
	<description>CSS Toys for Professional Web Developers</description>
	<lastBuildDate>Mon, 19 Dec 2011 18:30:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>Adding style to your rel attributes with CSS</title>
		<link>http://www.last-child.com/rel-attribute-display/</link>
		<comments>http://www.last-child.com/rel-attribute-display/#comments</comments>
		<pubDate>Wed, 25 Jun 2008 15:03:00 +0000</pubDate>
		<dc:creator>Ted</dc:creator>
				<category><![CDATA[attribute selector]]></category>
		<category><![CDATA[background]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS2]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[Image Sprites]]></category>
		<category><![CDATA[Link]]></category>
		<category><![CDATA[microformats]]></category>
		<category><![CDATA[W3C]]></category>
		<category><![CDATA[attribute]]></category>
		<category><![CDATA[Cascading Style Sheets]]></category>
		<category><![CDATA[Data Formats]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[rel]]></category>
		<category><![CDATA[xfn]]></category>

		<guid isPermaLink="false">http://www.last-child.com/?p=153</guid>
		<description><![CDATA[View the finished example: Adding style to your rel link. There&#8217;s a little attribute in HTML links that is starting to get a bit of attention lately. The &#8220;rel&#8221; attribute is a sparsely defined attribute that applies some meta information about a link&#8217;s relationship to other documents. Unfortunately, this information is usually hidden from your [...]]]></description>
			<content:encoded><![CDATA[<p>View the finished example: <a href="/examples/rel-attribute/index.html">Adding style to your rel link</a>.</p>
<p>There&#8217;s a little attribute in HTML links that is starting to get a bit of attention lately. The &#8220;rel&#8221; attribute is a <a href="http://www.w3.org/TR/REC-html40/types.html#type-links">sparsely defined attribute</a> that applies some meta information about a link&#8217;s relationship to other documents. Unfortunately, this information is usually hidden from your users. Let&#8217;s take a light-hearted stab at turning it into a visual element.</p>
<h3>Rel attribute usage</h3>
<p>
While the W3C originally considered the rel attribute to describe the relationship of pages to each other, i.e. next, previous, directory, and start. The attribute has been adopted by the <a href="http://microformats.org">Microformat</a> community for its inherit usefulness. The rel attribute is now used for <a href="http://microformats.org/wiki/rel-tag">tags</a>, <a href="http://gmpg.org/xfn/">to define your relationship to someone</a>, and even to <a href="http://microformats.org/wiki/rel-nofollow">tell search engines not to bother following a link</a>. </p>
<p>
The opportunities to use the rel attribute are seemingly endless. There are more proposals to <a href="http://xen.adactio.com/">define people you don&#8217;t like</a> and <a href="http://microformats.org/wiki/vote-links">links for voting</a>.  </p>
<p>
But all of this flexibility comes at a small price. To remain valid, you need to tell the browser what these new rel values may actually mean. This is handled by <a href="http://microformats.org/wiki/profile-uris">linking to appropriate profiles</a>. Just simply insert the profiles into your head tag. <a href="http://microformats.org/wiki/profile-uris#Combined_Profile">Multiple profiles</a> may throw a validation error, but it&#8217;s ok.  You don&#8217;t need to do this for the standard rel values.</p>
<p><code lang="HTML"><br />
<head profile="http://www.ietf.org/rfc/rfc2731.txt http://www.w3.org/2006/03/hcard"><br />
</code></p>
<p>
We will be using the CSS3 attribute selector functionality to look at the value of the rel attribute and apply some style accordingly. First we&#8217;ll add some padding and a background image to any link that has a rel attribute. We&#8217;ll then use background positioning to display an icon that is appropriate for the link. It&#8217;s a fairly simple hack. </p>
<p>For more information on using attribute selectors, check out my previous posts: </p>
<ul>
<li><a href="/css-attribute-selector/">Progressive enhancement of links using the CSS attribute selector</a></li>
<li><a href="/attribute-selectors-to-provide-language-information/">Attribute selectors to provide language information</a></li>
</ul>
<h3>Sample HTML Code</h3>
<p><code lang="HTML"></p>
<li><a href="http://microformats.org/wiki/rel-nofollow" rel="no-follow">This link is ignored by search engines</a> (rel="no-follow")</li>
<li><a href="http://microformats.org/wiki/rel-tag" rel="tag">A sample tag </a> (rel="tag")</li>
<p></code></p>
<h3>Sample CSS </h3>
<p><code lang="CSS"><br />
a[rel] {padding-left:20px; background:url(rel-sprite.png) no-repeat 0 0; }<br />
a[rel~="help"] {background-position: 0 -350px ;}<br />
a[rel~="license"] {background-position: 0 -1347px ;}<br />
a[rel~="no-follow"] {background-position: 0 -1200px ;}<br />
a[rel~="tag"] {background-position: 0 -47px ;}<br />
</code></p>
<h3>It&#8217;s all fun and games</h3>
<p>
I&#8217;ll be the first to admit this exercise has significant issues. I&#8217;m assuming the following elements are true:</p>
<ol>
<li>All possible rel attribute values are accounted for in my CSS, if not there will be a blank space generated by the first rule</li>
<li>You can only have one relationship defined by XFN. Unfortunately, most people are defined by multiple values, i.e. rel=&#8221;met friend colleague&#8221;. This CSS does not account for multiple values. </li>
</ol>
<p>So, the display of your rel attributes may be a bit off in the edge cases. Keep the spirit light and nobody will say anything&#8230; I hope. Have fun with your rel attributes. They&#8217;re just sitting there waiting to be used. </p>
<p><a href="/examples/rel-attribute/index.html">View the finished rel attribute style example</a>.</p>
<h3>Related Information</h3>
<ul>
<li>Microformats Wiki: <a href="http://microformats.org/wiki/profile-uris#Combined_Profile">Profile URI&#8217;s</a></li>
<li>Microformat: <a href="http://microformats.org/wiki/rel-design-pattern">Rel Design Pattern</a></li>
<li>Microformat: <a href="http://microformats.org/wiki/rel-tag">Tags</a></li>
<li>Microformat: <a href="http://microformats.org/wiki/rel-no-follow">No Follow</a></li>
<li>Microformat: <a href="http://microformats.org/wiki/rel-bookmark">Bookmark</a></li>
<li>Microformat: <a href="http://gmpg.org/xfn/">XFN &#8211; Friends Network</a></li>
<li>Microformat: <a href="http://xen.adactio.com/">XEN &#8211; Enemies Network</a></li>
<li>W3C: <a href="http://www.w3.org/TR/REC-html40/types.html#type-links">Link Types</a></li>
<li><a href="http://www.iconbuffet.com/">Icon Buffet</a> &#8211; The source of most icons used in this example</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.last-child.com/rel-attribute-display/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Progressive enhancement of links using the CSS attribute selector</title>
		<link>http://www.last-child.com/css-attribute-selector/</link>
		<comments>http://www.last-child.com/css-attribute-selector/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 20:13:00 +0000</pubDate>
		<dc:creator>Ted</dc:creator>
				<category><![CDATA[:after]]></category>
		<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[attribute selector]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS2]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[DHTML]]></category>
		<category><![CDATA[Hacks]]></category>
		<category><![CDATA[IE7]]></category>
		<category><![CDATA[IE8]]></category>
		<category><![CDATA[Image Sprites]]></category>
		<category><![CDATA[Link]]></category>
		<category><![CDATA[min-height]]></category>
		<category><![CDATA[Online Resource]]></category>
		<category><![CDATA[W3C]]></category>
		<category><![CDATA[attribute]]></category>
		<category><![CDATA[selector]]></category>

		<guid isPermaLink="false">http://www.last-child.com/?p=152</guid>
		<description><![CDATA[Attribute Selector Test Page We have avoided using CSS3 rules for too long. It&#8217;s been difficult to justify using rules that won&#8217;t work for a significant portion of our audience, Internet Explorer 7 and below. However, Internet Explorer 8 is coming out soon and does work with the features we like. I think it&#8217;s fairly [...]]]></description>
			<content:encoded><![CDATA[<p><a href="/examples/attrib-files/index.html">Attribute Selector Test Page </a></p>
<p>
We have avoided using CSS3 rules for too long. It&#8217;s been difficult to justify using rules that won&#8217;t work for a significant portion of our audience, Internet Explorer 7 and below.  However, Internet Explorer 8 is coming out soon and does work with the features we like. </p>
<p>
 I think it&#8217;s fairly safe to assume IE7 users will upgrade to IE8 within a short time. Those stuck with IE6 for one reason or another will slowly disappear as they are given new computers or their locked down environments are upgraded.</p>
<p>
So, with the future of CSS3 functionality within reach, I&#8217;ve been energized to begin experimenting again.  I&#8217;ll be writing a series of blog posts over the next few months that look at CSS3 functionality as a progressive enhancement. How can we continue to deliver a perfectly fine web site to IE6 and IE7 and mobile phones while enhancing the functionality of more modern browsers and devices?</p>
<h3>Attribute Selectors</h3>
<p>
CSS attribute selectors are the golden ring on the web development merry-go-round. They can be daunting to learn, addictive to use, but then disappointing when you realize they are out of your grasp when you test in Internet Explorer.  We can, however, begin using them to add additional functionality based on your pre-existing, semantic code. Attribute selectors give you power to write CSS that pinpoints the stuff you already code, without having to go back and add classes or ids. I&#8217;ve written previously about <a href="/attribute-selectors-to-provide-language-information/">using attribute selectors to let your users know the language of a site they are about to visit</a>. This trick relies on the rarely used hreflang attribute, which identifies the language of the site targeted in a link.</p>
<p>
There are many other attributes in your HTML, from <a href="http://www.w3.org/TR/html4/struct/tables.html#h-11.4.1">table headers</a>, <a href="http://www.w3.org/TR/REC-html40/struct/objects.html#adef-src-IMG">image src</a>,  <a href="http://www.w3.org/TR/html401/struct/links.html#h-12.1.4">link titles</a>, and <a href="http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.6.1">selected options</a>. Think about all of those juicy attributes just waiting to be targeted. Also think about how you could actually do something useful with them.</p>
<h3>Announce the file type of a link with CSS</h3>
<p>
I once worked for a company that had hundreds of thousands of static HTML pages in their intranet. With no content management system; it was impossible to make global changes. The only thing they shared was a common set of style sheets. Does this sound familiar?  Follow along as we increase your site&#8217;s usability in a less than perfect, but efficient way. </p>
<p>
First off, for accessibility, you need to let users know when a link  will open a file, what type it is, and how large it is. This is best done by adding it to your HTML code:</p>
<p><code lang="HTML"><br />
<a href="foo.pdf" class="pdf">Foo presentation (.pdf, 5kb)</a><br />
</code></p>
<p>That delivers the information to everyone, regardless of their browser.  This, however takes time and is a daunting task for updating legacy code. </p>
<p>
We can, however, use the <a href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113/#attribute-selectors">atttribute selector</a> to target the extension of the link to display the icon and insert the text describing the file type. Here&#8217;s the sample HTML code:</p>
<p><code lang="HTML"></p>
<ul>
<li><a href="foo.zip" >sample zip link</a></li>
<li><a href="foo.pdf" >sample pdf link</a></li>
<li><a href="foo.doc" >sample Word link</a></li>
<li><a href="foo.exe" >sample Executable link</a></li>
<li><a href="foo.png" >sample png image</a></li>
<li><a href="foo.mp3" >sample MP3 file </a></li>
</ul>
<p></code><br />
It&#8217;s a simple list of links for different types of files. We&#8217;ll be looking at the extensions: .zip, .pdf, .doc, .exe, .png, and .mp3. Feel free to extend this list to any extension you so desire. This would be especially helpful for a company that uses proprietary file types within their intranet.</p>
<p>
Now, let&#8217;s look at the CSS:</p>
<p><code lang="CSS"><br />
a[href$="zip"],<br />
a[href$="pdf"],<br />
a[href$="doc"],<br />
a[href$="exe"],<br />
a[href$="png"],<br />
a[href$="mp3"]  {padding-left:20px; background:url(bg-file-icons.png) no-repeat 0 0;}<br />
a[href$="png"]{background-position: 0 -48px;}<br />
a[href$="pdf"] {background-position: 0 -99px;}<br />
a[href$="mp3"]{background-position: 0 -145px;}<br />
a[href$="doc"]{background-position: 0 -199px;}<br />
a[href$="exe"]{background-position: 0 -250px;}</p>
<p>a[href$=".zip"]:after{content: "(.zip file)"; color:#999; margin-left:5px;}<br />
a[href$=".pdf"]:after{content: "(.pdf file)"; color:#999; margin-left:5px;}<br />
a[href$=".doc"]:after{content: "(.doc file)"; color:#999; margin-left:5px;}<br />
a[href$=".exe"]:after{content: "(.exe file)"; color:#999; margin-left:5px;}<br />
a[href$=".mp3"]:after{content: "(.mp3 file)"; color:#999; margin-left:5px;}<br />
a[href$=".png"]:after{content: "(.png file)"; color:#999; margin-left:5px;}<br />
a[href$=".exe"]:after{content: "(.exe file)"; color:#999; margin-left:5px;}<br />
</code></p>
<p><a href="/examples/attrib-files/index.html">See the final test page.</a></p>
<h4>Pattern matching in the attribute selector</h4>
<p>We have some limited &#8220;regular expression&#8221; functionality in CSS3. We can search for an attribute&#8217;s presence and match a pattern within the attribute&#8217;s value.<br />
<a href="http://www.hunlock.com/">Patrick Hunlon</a> has a good summary of the pattern matching: </p>
<blockquote cite="http://www.hunlock.com/blogs/Attach_icons_to_anything_with_CSS">
<ul>
<li>[foo]        &#8212; Has an attribute named &#8220;foo&#8221;</li>
<li>[foo="bar"]  &#8212; Has an attribute named &#8220;foo&#8221; with a value of &#8220;bar&#8221; (&#8220;bar&#8221;)</li>
<li>[foo~="bar"] &#8212; Value has the word &#8220;bar&#8221; in it somewhere (&#8220;blue bar stools&#8221;)</li>
<li>[foo^="bar"] &#8212; Value begins with &#8220;bar&#8221; (&#8220;barstool&#8221;)</li>
<li>[foo$="bar"] &#8212; Value ends with &#8220;bar&#8221; (&#8220;I was at the bar&#8221;)</li>
<li>[foo*="bar"] &#8212; Value has bar somewhere (&#8220;I was looking for barstools&#8221;)  </li>
</ul>
<p><cite><a href="http://www.hunlock.com/blogs/Attach_icons_to_anything_with_CSS">Attach icons to anything with CSS</a></cite>
</p></blockquote>
<p>
The CSS is simply looking to see if the desired extension is at the end of the link href. If so, apply the following styles. </p>
<h4>Adding an icon to the link</h4>
<p>First, we are match any of the desired file extensions.  We then add a background image and some padding on the left side with a bulk rule. Then  the background position on the sprite is adjust for each particular link type. Combining multiple icons into one background image reduces the number of files the user has to download, <a href="http://developer.yahoo.com/performance/rules.html#opt_sprites">making your page faster</a>. This will work with any browser that recognizes attribute selectors, including Internet Explorer 7. However, support for more obscure attributes may be spotty.</p>
<p>
There&#8217;s another peculiarity with pattern matching. Some attributes are case sensitive while others are not. The href attribute is NOT case sensitive, so the above rules will also work if your image name was <em>FOO.ZIP</em>, <em>foo.Zip</em>, or <em>foo.zip</em>.</p>
<h4>Adding the descriptive text</h4>
<p>Now, we are going to add a bit of descriptive text to each link. We can&#8217;t describe the file size, but we can tell the user what type of file it is. This is using the :after(content:) functionality and is supported by Internet Explorer 8 (yeah!!!) but not Internet Explorer 7 and below (boo!!!).<br />
We will also adjust the color and give it a bit of spacing.</p>
<h3>A big step forward with a small chunk of work</h3>
<p>
There you have it. A small chunk of CSS coding has now added substantial usability to your legacy pages. While the CSS version is not as accessible as having the data in the actual link code, it&#8217;s a significant improvement over nothing at all. Further, there&#8217;s no harmful effect on browsers that do not understand the function. You&#8217;ve added information, but haven&#8217;t taken anything away. This is a win in my book. To save some time and effort, you could just download and use this  package of <a href="http://pooliestudios.com/projects/iconize/">CSS and icons</a> from <a href="http://pooliestudios.com">Alexander Kaiser</a>.</p>
<p>
This rather simple example of attribute selectors and pattern matching can open your eyes to many possibilities. There are a number of developers that have been expoloring this potential for the past few years. Take a look at some of these resources for more ideas and have some fun.</p>
<ul>
<li><a href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113/#attribute-selectors">CSS3 &#8211; Atribute Selectors Definition </a> W3C</li>
<li><a href="http://www.456bereastreet.com/archive/200601/css_3_selectors_explained/">CSS 3 Selectors Explained</a></li>
<li><a href="http://www.stuffandnonsense.co.uk/archives/css_a_tribute_to_selectors.html">CSS: A Tribute to Selectors</a></li>
<li><a href="http://developer.yahoo.com/yui/selector/">YUI: Selector Utility</a> Use CSS3 selectors in JavaScript</li>
<li><a href="http://www.cssdrive.com/index.php/forums/viewthread/45/">Dynamic File Type Notations </a></li>
<li><a href="http://www.andybudd.com/archives/2003/09/cool_use_for_css_attribute_selectors/">Cool use for CSS attribute selectors </a> &#8211; Hiding banner ads with CSS</li>
<li><a href="http://www.askthecssguy.com/2006/12/showing_hyperlink_cues_with_cs_1.html">Showing Hyperlink Cues with CSS </a></li>
<li><a href="http://www.askthecssguy.com/2006/12/showing_hyperlink_cues_with_cs_1.html">Showing Hyperlink Cues with CSS </a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.last-child.com/css-attribute-selector/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Internet Explorer is officially released</title>
		<link>http://www.last-child.com/internet-explorer-is-officially-released/</link>
		<comments>http://www.last-child.com/internet-explorer-is-officially-released/#comments</comments>
		<pubDate>Wed, 18 Oct 2006 16:40:48 +0000</pubDate>
		<dc:creator>Ted</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS2]]></category>
		<category><![CDATA[IE7]]></category>
		<category><![CDATA[Online Resource]]></category>
		<category><![CDATA[Standardista]]></category>

		<guid isPermaLink="false">http://www.last-child.com/internet-explorer-is-officially-released/</guid>
		<description><![CDATA[Back in the dark days, programmers battled with a forgotten browser. It was good for its time, like a 4-cyl Fiero. But time marched on and this browser stagnated, forcing those working in the internet world to jump through programming hoops to make their pages work. There were a few heroes that made this work [...]]]></description>
			<content:encoded><![CDATA[<p>Back in the dark days, programmers battled with a forgotten browser. It was good for its time, like a <a href="http://www.fierodriver.com/">4-cyl Fiero</a>. But time marched on and this browser stagnated, forcing those working in the internet world to jump through programming hoops to make their pages work. </p>
<p>There were a few heroes that made this work a bit easier. <a href="http://positioniseverything.net">Big John and Holly</a> started a virtual library. There even became an &#8220;IE7&#8243; long before Microsoft got off their asses. The IE7 javascript was a library designed to fix the annoying issues in Internet Explorer 6. Zeldman began touring the world preaching the horrors of bad browsers. </p>
<p>And then something magical happened. Firefox was released with great support for standards-based programming. Quick on their heels came Safari and new versions of Opera that made life much easier.  Instantly, Microsoft began losing their monopoly on the browser. Something had to be done!</p>
<p><a href="http://www.microsoft.com/windows/ie/downloads/default.mspx" title="download IE7"><img src="http://www.microsoft.com/library/media/1033/windows/ie/images/ie7/home/ie7_thumb_logo.gif" alt="IE7 logo" /></a><a href="http://blogs.msdn.com/cwilso/">Chris Wilson</a> must have been summoned to the all mighty Gates and given the go ahead to build the new beast: <strong>IE7</strong>.  &#8220;Go forth and build a browser that fixes as many IE6 bugs as possible. Add tons of security fixes. Add new RSS and open-source features. And whatever you do&#8230; make it backwards compatible for our customers.&#8221; It was a big order to fill. </p>
<p>Internet Explorer 7 was on the road map.  </p>
<p>To show good faith, they released a very early version &#8211; IE7 Beta 1.  This browser was so meager that it generated even more bad press for the hard working group. Standardistas were up in arms over the remaining bugs.  The team began to reach out even further to the developer pool.  They made nice with the <a href="http://www.webstandards.org/">Web Standards Project</a>, they went to conferences, worked with the web dev teams of large websites, they even gave out really cool shwag.</p>
<p>All of this led to some big promises and regular releases of subsequently better products. <a href="http://www.last-child.com/the-big-list-of-fixed-stuff-in-ie7/">Bugs were squashed</a> and developers began to learn how to deal with IE6/IE7 differences. I personally found a <a href="http://www.last-child.com/ie7-background-sprite-bug-the-saga-continues/">bug with transparent png sprites</a> that I was happy to see fixed for the final release.</p>
<h3>Internet Explorer Hits The Streets</h3>
<p>This is the week we&#8217;ve all waited for.  <a href="http://www.microsoft.com/windows/ie/default.mspx">Internet Explorer 7 is officially released</a>. <a href="http://www.microsoft.com/windows/ie/downloads/default.mspx">Download it now.</a>  Microsoft will be actively pushing this browser as a security and feature upgrade. You can expect to see large numbers of your audience using IE7 over the next six months. I wouldn&#8217;t be surprised if IE6 is a grade B browser within a year. </p>
<p>Internet Explorer 7 is not as good as <a href="http://mozilla.org">Firefox</a>. It&#8217;s not as good as <a href="http://apple.com">Safari</a>. It&#8217;s arguably not as good as <a href="http://opera.com">Opera</a>, only because Opera users love to argue.  But it is much, much, much better than IE6. </p>
<p>More importantly, this release finally allows us to use CSS2 rules.  IE7 recognizes things like <a href="http://www.last-child.com/attribute-selectors-to-provide-language-information/">link[ahref="fr"]</a>, div>p, <a href="http://www.456bereastreet.com/archive/200405/son_of_suckerfish_dropdowns/">li:hover</a>, and <a href="http://meyerweb.com/eric/css/tests/css2/sec05-11-01.htm">ul:first-child</a>.  It doesn&#8217;t recognize generated content, that is my biggest complaint about the browser. </p>
<p>Web standard design seems to be stagnating lately as we&#8217;ve gotten fat and lazy creating rounded corners without thinking twice. AJAX took over some of our creativity. Now it&#8217;s time to go back to the CSS2 specifications and really begin re-inventing web design. </p>
<p>We&#8217;ve not only seen the light at the end of the IE6 tunnel, we&#8217;re standing out in the sun throwing pinecones at each other and running through the fields like drunk rabbits. Hats off to the IE7 team for delivering a browser we&#8217;ve been asking for. It&#8217;s not the one we begged and pleaded for, but maybe that&#8217;s what IE8 is for.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.last-child.com/internet-explorer-is-officially-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The big list of fixed stuff in IE7</title>
		<link>http://www.last-child.com/the-big-list-of-fixed-stuff-in-ie7/</link>
		<comments>http://www.last-child.com/the-big-list-of-fixed-stuff-in-ie7/#comments</comments>
		<pubDate>Wed, 23 Aug 2006 20:15:29 +0000</pubDate>
		<dc:creator>Ted</dc:creator>
				<category><![CDATA[attribute selector]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS2]]></category>
		<category><![CDATA[HTML Elements]]></category>
		<category><![CDATA[IE7]]></category>
		<category><![CDATA[position]]></category>

		<guid isPermaLink="false">http://www.last-child.com/the-big-list-of-fixed-stuff-in-ie7/</guid>
		<description><![CDATA[The IE7 blog has a new post of items that have been fixed in the upcoming release of IE7. While not on the list, the problem I found with alpha transparent png sprites has been fixed for the final release. Take a look at the list and think of it as new tools to use. [...]]]></description>
			<content:encoded><![CDATA[<p>The IE7 blog has a new post of items that have been fixed in the upcoming release of IE7. While not on the list, the problem I found with <a href="http://www.last-child.com/ie7-background-sprite-bug-the-saga-continues/">alpha transparent png sprites</a> has been fixed for the final release. </p>
<p>
Take a look at the list and think of it as new tools to use. </p>
<blockquote cite="http://blogs.msdn.com/ie/archive/2006/08/22/712830.aspx">
<h4>Bugs we fixed</h4>
<p>
All bugs on positioniseverything.net except the &#8220;escaping floats&#8221; bug (which is planned for the future)</p>
<ul>
<li>Peekaboo Bug</li>
<li>Internet Explorer and Expanding Box Problem</li>
<li>Quirky Percentages</li>
<li>Line-height bug</li>
<li>Border Chaos</li>
<li>Disappearing List-Background bug</li>
<li>Guillotine Bug</li>
<li>Unscrollable Content bug</li>
<li>Duplicate Characters Bug</li>
<li>IE and Italics</li>
<li>Doubled Float-Margin bug</li>
<li>Duplicate Indent bug</li>
<li>Three pixel text jog</li>
<li>Creeping Text bug</li>
<li>Missing First letter bug</li>
<li>Phantom box bug</li>
</ul>
<p>
Details on some of the other bugs (from sources other than the positioniseverything.net list) that we fixed:</p>
<ul>
<li>Overflow now works correctly! (That means boxes do not automatically grow any more.)</li>
<li>Parser bugs: * html, _property and /**/ comment bug</li>
<li>Select control: CSS style-able and not always on top</li>
<li>Auto-sizing of absolute positioned element with width:auto and right &amp; left (great for 3 column layouts)</li>
<li>Addressed many relative positioning issues</li>
<li>Addressed many absolute positioned issues</li>
<li>% calculations for height/width for abs positioned elements http://channel9.msdn.com/ShowPost.aspx?PostID=191182</li>
<li>&lt;?xml> prolog no longer causes quirks mode</li>
<li>HTML element truly independent of the Body (now gets its own width, height etc.)</li>
<li>1 px dotted borders no longer render as dashed</li>
<li>Bottom margin bug on hover does not collapse margins</li>
<li>Several negative margin issues fixed</li>
<li>Recalc issues including relative positioning and/or negative margins are fixed now</li>
<li>CLSID attribute of &lt;object> tag no longer limited to 128 characters</li>
<li>:first-letter whitespace bug described in http://blogs.msdn.com/ie/archive/2005/09/02/460115.aspx fixed</li>
<li>Descendant selector now works properly for grand children when combined with other selectors</li>
<li>First-line and first-letter now applies when there is no space between word :first-line and opening brace {</li>
<li>Pseudo-classes now are working as expected if selector is excluded</li>
<li>The :link selector works now for anchor tag with href set to bookmark</li>
<li>Addressed !important issues</li>
<li>PositionIsEverything piefecta-rigid.htm now works</li>
<li>List-item whitespace bug fixed</li>
<li>Fixed Absolutely Buggy II</li>
<li>Absolute positioned elements now use always correct containing block for positioning and size information</li>
<li>Nested block elements now respect all overflow declarations (hidden, scroll, etc)</li>
<li>Fixed the opposing offset problem (absolute positioned element whit all four top, bottom left and right are present)</li>
<li>&lt;a> tags nested within LI elements will no longer add extra bottom margin when hover occurs</li>
<li>We no longer lose the image aspect ratio on refresh</li>
<li>Cleaned up our ident parsing according to CSS2.1 rules</li>
<li>Fixed parsing bugs for multi- class selectors and class selectors that are combined with id selectors</li>
<li>And many more</li>
</ul>
<p>
We also extended our existing implementations to comply with W3C specifications:</p>
<ul>
<li>Enable :hover on all elements not just on &lt;a></li>
<li>Background-attachment: fixed works on all elements – so Eric Meyer’s complexspiral demo works</li>
<li>Improved &lt;object> fallback</li>
</ul>
<p>Finally, we added new features from CSS2.1:</p>
<ul>
<li>Min/max width/height support (also for images, which did not work in IE7b2)</li>
<li>Transparent borders</li>
<li> Fixed positioning support</li>
<li>Selectors: first-child, adjacent, attribute, child
<ul>
<li>A couple of CSS 3 attribute selectors: prefix, suffix and substring since we were working already in the code base (also the general sibling selector)</li>
</ul>
</li>
<li>Alpha channel PNG support (Not a CSS feature but too important for designers to not call it out J)</li>
</ul>
<p><cite><a href="http://blogs.msdn.com/ie/archive/2006/08/22/712830.aspx">IE Blog</a></cite>
</p></blockquote>
<p>
IE7 is still not as good as Firefox, Opera, or Safari. However, Microsoft is planning an aggressive updating campaign and hopefully it won&#8217;t be long before we can count on our average user&#8217;s browser supporting advanced CSS styles. It&#8217;s time to stop complaining about IE6 and begin planning how you will use these new tools.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.last-child.com/the-big-list-of-fixed-stuff-in-ie7/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Forcing the footer to always be at the bottom of a page</title>
		<link>http://www.last-child.com/forcing-the-footer-to-always-be-at-the-bottom-of-a-page/</link>
		<comments>http://www.last-child.com/forcing-the-footer-to-always-be-at-the-bottom-of-a-page/#comments</comments>
		<pubDate>Sun, 19 Mar 2006 15:43:06 +0000</pubDate>
		<dc:creator>Ted</dc:creator>
				<category><![CDATA[:relative]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS2]]></category>
		<category><![CDATA[Div]]></category>
		<category><![CDATA[margin]]></category>
		<category><![CDATA[min-height]]></category>
		<category><![CDATA[negative margins]]></category>
		<category><![CDATA[position]]></category>

		<guid isPermaLink="false">http://www.last-child.com/forcing-the-footer-to-always-be-at-the-bottom-of-a-page/</guid>
		<description><![CDATA[Cameron Adams (The Man in Blue) has created a method to force a footer to stick to the bottom of a page, regardless of how much content it contains. His approach is based on the work by Craig Erskine (solarDreamStudios). The Setup You have a page that terminates in a sturdy footer, such as this [...]]]></description>
			<content:encoded><![CDATA[<p>Cameron Adams (<a href="http://www.themaninblue.com">The Man in Blue</a>) has created a method to force a footer to stick to the bottom of a page, regardless of how much content it contains. His approach is based on the work by  Craig Erskine (<a href="http://solardreamstudios.com/">solarDreamStudios</a>).</p>
<h3>The Setup</h3>
<p>You have a page that terminates in a sturdy footer, such as this site. You&#8217;d like the footer to be cemented to the bottom of the browser window regardless of the amount of content. How do you position the footer at the bottom on a small page, yet not cause a conflict with long page? It&#8217;s actually more irksome than you would imagine.</p>
<h3>The Solution</h3>
<p>The footer is placed outside the content wrapping div. The html, body, and content div are given height:100%, which pushes the footer off screen. The footer then uses negative margins to sneak back up into the page. For pages with longer content, space is needed in the content div to avoid overlapping on the bottom.</p>
<blockquote><p>Based off the original footerStick, <a href="http://www.themaninblue.com/experiment/footerStickAlt/">footerStickAlt</a> sets up the Web page so that it will span the entire height of the browser window, even if the content is less than the height of the browser window. However, where footerStick then used absolute &#8220;bottom&#8221; positioning to get the footer to appear at the bottom of the screen/content, footerStickAlt positions the footer <em>outside</em> the height of the content, and then applies a negative margin to get it to display inside the browser window.</p>
<p>So, where footerStick&#8217;s code requires you to place the footer inside a containing element, footerStickAlt requires you to place it <em>outside</em> the element:</p></blockquote>
<p><code lang="HTML"><br />
<html><br />
<body></p>
<div id="nonFooter">
</div>
<div id="Footer">
</div>
<p></body><br />
</html><br />
</code></p>
<p>You then need to apply a bit of CSS:</p></blockquote>
<p><code lang="CSS"><br />
html { height: 100%;}<br />
body { height: 100%;}<br />
#nonFooter { position: relative; min-height: 100%;}<br />
* html #nonFooter { height: 100%;}<br />
#Footer { position: relative; margin-top: -7.5em; }<br />
</code></p>
<blockquote><p>&#8230;For the case where the Web page content is larger than the browser window, the footer will be positioned naturally below the content, then brought up by the margin. For this scenario you should provide a bit of space at the bottom of your content which the footer can rise into without covering anything. This can be done with a bit of padding or margin on your content.</p>
<p>The only drawback to footerStickAlt is that you <em>must</em> know the exact height of your footer (whether it be in absolute or relative pixels). However, you have to know this roughly with the original version anyway, in order to make room for the footer at the bottom of the content. It&#8217;s generally a non-issue with footers anyway, as they have limited information and a sparse layout.</p>
<p><cite>Cameron Adams &#8211; <a href="http://www.themaninblue.com/writing/perspective/2005/08/29/">footerStickAlt</a> </cite></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.last-child.com/forcing-the-footer-to-always-be-at-the-bottom-of-a-page/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Conflicting Z-Index in IE6</title>
		<link>http://www.last-child.com/conflicting-z-index-in-ie6/</link>
		<comments>http://www.last-child.com/conflicting-z-index-in-ie6/#comments</comments>
		<pubDate>Tue, 14 Mar 2006 03:35:37 +0000</pubDate>
		<dc:creator>Ted</dc:creator>
				<category><![CDATA[:absolute]]></category>
		<category><![CDATA[:relative]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS2]]></category>
		<category><![CDATA[Hacks]]></category>
		<category><![CDATA[IE7]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[position]]></category>
		<category><![CDATA[Z-Index]]></category>
		<category><![CDATA[Cascading Style Sheets]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Internet Explorer 6]]></category>
		<category><![CDATA[Internet Explorer 7]]></category>

		<guid isPermaLink="false">http://www.last-child.com/conflicting-z-index-in-ie6/</guid>
		<description><![CDATA[Internet Explorer 6 has an issue with positioned elements that use z-index. Here&#8217;s the trouble I just had with this: I have a topnav consisting of an unordered list with a dropdown menu on one of the list elements. The dropdown is a nested unordered list with position:absolute and a z-index to sit on top [...]]]></description>
			<content:encoded><![CDATA[<p>Internet Explorer 6 has an issue with positioned elements that use z-index. Here&#8217;s the trouble I just had with this:</p>
<p>I have a topnav consisting of an unordered list with a dropdown menu on one of the list elements. The dropdown is a nested unordered list with  position:absolute and a z-index to sit on top of any page content below.  Fairly simple so far&#8230;</p>
<p>However, in IE6, the menu is obscured by an h5, random images, and paragraphs on various pages.  The z-index should make this list float on top of other elements, but it seems to be ineffective.</p>
<p><a href="http://www.quirksmode.org">PPK</a> summarized this problem on his post: <a href="http://www.quirksmode.org/bugreports/archives/2006/01/Explorer_z_index_bug.html">Explorer z-index bug:</a></p>
<blockquote><p>It appears that in Internet Explorer (windows) positioned elements do generate a new stacking context, starting with a z-index value of 0, causing the lime-green box to appear above the yellow box.</p>
<p>This is a serious violation of the CSS specifications, causing headaches and a lot of misunderstanding of what z-index really does.<cite><a href="http://www.quirksmode.org">PPK</a> </cite></p></blockquote>
<p>While crediting <a href="http://www.aplus.co.yu/css/z-pos/">Aleksandar Vacić</a> for first reporting this bug, PPK doesn&#8217;t mention Aleksandar&#8217;s simple solution. <strong>Give the parent a position:relative and z-index:1.</strong>.<br />
<iframe src="http://rcm.amazon.com/e/cm?t=csstoyslastch-20&amp;o=1&amp;p=8&amp;l=as1&amp;asins=0764579851&amp;md=10FE9736YVPPT7A0FBG2&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr" style="margin: 5px; width: 120px; height: 240px; float: right;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0"></iframe><br />
Now, of course it isn&#8217;t always that simple. There&#8217;s also the issue of subsequent objects that also have a z-index and what happens if their parent is also positioned with a z-index. Please take some time to visit Aleksandar&#8217;s web site if you are having this conflict.</p>
<h3>IE7 and more fun</h3>
<p>According to PPK&#8217;s web site, this has not been fixed in IE7 Beta2Preview. We&#8217;ll see how this works out. I&#8217;ve noticed some positioning bugs in IE7 myself. This is something to consider when considering the z-index happiness of <a href="http://24ways.org/advent/zs-not-dead-baby-zs-not-dead/">Andy Clarke</a></p>
<h3>More solutions</h3>
<p><a href="http://360.yahoo.com/profile-ktYYK_s5fqJ2Hu1ryv2QSL0-?cq=1">Hedger Wang</a> has an ingenious solution to the <a href="http://www.hedgerwow.com/360/bugs/css-select-free.html">conflict between z-index on elements and subsequent select elements</a>. He uses an iframe with z-index-1 that sits under the targeted element. I&#8217;ve used this negative z-index on some of the subsequent elements and it is helping. Fixing all of the pages will  be a long journey , but at least there is light at the end of the tunnel.</p>
<h3>Yet another hack/update</h3>
<p>I had to remove the negative z-index from the container as it was keeping a link with background image/text-indent, display:block, etc from having any hover activity. It acted as if it were under a layer. Other links in the container were fine. You&#8217;ve got to love IE6</p>
<h3>Yet another hack/update 4-30-06</h3>
<p>We were using an iframe with the src=&#8221;/&#8221;. Can you guess what happened?  Oh my goodness. We were loading the home page inside every other page on IE. So here&#8217;s the tip we learned&#8230; don&#8217;t use a page url for your invisible iframe, use an spacer.gif or something benign instead.  Better yet, get rid of the iframe if you find other solutions.  Which is what we ended up doing. We&#8217;ve messed with this thing for so long we&#8217;ve lost track of what&#8217;s doing what.<br />
<h6 class="zemanta-related-title" style="font-size: 1em;">Related articles by Zemanta</h6>
<ul class="zemanta-article-ul">
<li class="zemanta-article-ul-li"><a href="http://www.cbc.ca/technology/story/2008/12/17/microsoft-security.html">Microsoft to issue emergency patch for Explorer security hole</a></li>
<li class="zemanta-article-ul-li"><a href="http://thenextweb.com/2008/12/16/dump-internet-explorer-at-least-for-now/">Dump Internet Explorer. You are Vulnerable.</a></li>
<li class="zemanta-article-ul-li"><a href="http://littlegreenfootballs.com/article/31490_Tech_Note-_IE6_Needs_an_Exorcism">Tech Note: IE6 Needs an Exorcism</a></li>
</ul>
<div style="margin-top: 10px; height: 15px;" class="zemanta-pixie"><a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/32bfa3b5-b81d-44f8-9248-aa2dbb0bcea7/" title="Zemified by Zemanta"><img style="border: medium none ; float: right;" class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=32bfa3b5-b81d-44f8-9248-aa2dbb0bcea7" alt="Reblog this post [with Zemanta]"></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.last-child.com/conflicting-z-index-in-ie6/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
		<item>
		<title>Attribute selectors to provide language information</title>
		<link>http://www.last-child.com/attribute-selectors-to-provide-language-information/</link>
		<comments>http://www.last-child.com/attribute-selectors-to-provide-language-information/#comments</comments>
		<pubDate>Sun, 26 Feb 2006 01:33:27 +0000</pubDate>
		<dc:creator>Ted</dc:creator>
				<category><![CDATA[:after]]></category>
		<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[attribute selector]]></category>
		<category><![CDATA[background]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS2]]></category>
		<category><![CDATA[Image Sprites]]></category>
		<category><![CDATA[Link]]></category>
		<category><![CDATA[padding]]></category>
		<category><![CDATA[W3C]]></category>

		<guid isPermaLink="false">http://www.last-child.com/attribute-selectors-to-provide-language-information/</guid>
		<description><![CDATA[Attribute Selectors for International Web Sites Sébastien Guillon, recently wrote a post about using the CSS2 attribute selector and content rule to let visitors know what to expect when clicking on a link to an international web site. Inspired by his approach, I’ve simplified some of the code and added background images to represent the [...]]]></description>
			<content:encoded><![CDATA[<h3>Attribute Selectors for International Web Sites</h3>
<p><a hreflang="fr-fr" href="http://sebastienguillon.com/journal/2005/10/exploiter-les-langues-avec-les-pseudo-classes-css">Sébastien Guillon</a>, recently wrote a post about using the CSS2 attribute selector and content rule<br />
to let visitors know what to expect when clicking on a link to an international web site. Inspired by his approach, I’ve simplified some of the code and added background images to<br />
represent the countries.</p>
<p>Guillon’s original project focused on adding a text description after the link in the site’s native language. To do this, he used a set of descending selectors to look at the page’s language declaration and the link’s hreflang attribute.  I am assuming the site that hosts this <acronym title="Cascading Style Sheets">CSS</acronym> is in english. However, it would not be difficult for you to simply change the generated content if your site is written in French, Spanish,<br />
Swahili, etc.</p>
<h3>Sample list of international Yahoo sites</h3>
<h4>Europe</h4>
<ul>
<li><a hreflang="ca" href="http://ct.yahoo.com/">Catalan</a></li>
<li><a hreflang="da-dk" href="http://dk.yahoo.com/">Denmark</a></li>
<li><a hreflang="fr-fr" href="http://fr.yahoo.com/">France</a></li>
<li><a hreflang="de-de" href="http://de.yahoo.com/">Germany</a></li>
<li><a hreflang="el-gr" href="http://gr.yahoo.com/">Greece</a></li>
<li><a hreflang="it-it" href="ithttp://it.yahoo.com/">Italy</a></li>
<li><a hreflang="no-no" href="http://no.yahoo.com/">Norway</a></li>
<li><a hreflang="sp-sp" href="http://es.yahoo.com/">Spain</a></li>
<li><a hreflang="sv-se" href="http://se.yahoo.com/">Sweden</a></li>
<li><a hreflang="en-gb" href="http://uk.yahoo.com/">UK </a></li>
<li><a hreflang="en-ie" href="http://uk.yahoo.com/"> Ireland</a></li>
</ul>
<p>Now look at the <a href="/international.html">final version with new <acronym title="Cascading Style Sheets">CSS</acronym></a>. Internet Explorer users will not see a difference, try <a href="http://www.mozilla.org">Firefox</a> or <a href="http://www.opera.com">Opera</a>. <ins>Internet Explorer 7 beta 2 shows the flags but does not show the generated content.</ins></p>
<h3>The hreflang Attribute</h3>
<p>The hreflang allows the user/browser to define the language of a link’s targeted page to avoid presenting<br />
unreadable information:</p>
<blockquote cite="http://www.w3.org/TR/html401/struct/links.html#adef-hreflang"><p>The hreflang attribute provides user agents with information about the language of a resource at the end of a link, just as the lang attribute provides information about the language of an element’s content or attribute values.</p>
<p><cite><acronym title="World Wide Web Consortium">W3C</acronym>.org</cite></p></blockquote>
<p>The hreflang attribute defines the language of the web site you are sending someone to. The language is defined with a two letter abbreviation, such as en, fr, sp… You can also define the locality of this language by adding the country code to this language.  This is particularly helpful for languages that have dialects. A Mexican site would have this attribute: hreflang=”sp-mx”.</p>
<h3>The Attribute Selector</h3>
<p>CSS2 allows us to look for tags that contain specific attributes.  We can look for blockquotes with cite attributes, tables with summaries, table cells with header attributes,<br />
and our little friend, the link with an hreflang attribute.</p>
<p><code lang="CSS"><br />
/*English */<br />
a[hreflang="en"]:after, a[hreflang|="en"]:after {content:"\A0(In English)";}<br />
</code></p>
<h3>Breaking it down</h3>
<p>This rule uses a combination of attribute selector and pseudo-class to transform the link from common to fabulous.</p>
<dl>
<dt> a[…]</dt>
<dd>Look for a link with an attribute</dd>
<dt>hreflang=”en”</dt>
<dd>The hreflang attribute must include the letters “en”. This allows the <acronym title="Cascading Style Sheets">CSS</acronym> to work on links that do not define a country variation</dd>
<dt>:after</dt>
<dd>This pseudoselector defines the space after the link</dd>
<dt>{content:”\A0(In English)”;}</dt>
<dd>After the link, place the following text: (In English)</dd>
<dt>hreflang|=”en”</dt>
<dd>The hreflang attribute must include the letters “en” within a hyphenated set, i.e. en-us, en-ca, …</dd>
</dl>
<h3>Adding the flag</h3>
<p>Now that we’ve notified the user about what language the link will be in, let’s tell them the country the site is from. Once again, we will look at the hreflang attribute for this information. This rule is not as neat and tidy. For each country, we are going to look for all of the possible language attributes. For instance, Canadian links could have hreflang=”fr-ca” and hreflang=”en-ca”.</p>
<p><code lang="CSS"><br />
/*Canada */<br />
a[hreflang="en-ca"], a[hreflang="fr-ca"] {background:<acronym title="Uniform Resource Locator">URL</acronym>(flag-sprite.png) no-repeat 0 0; padding-left:35px;}<br />
</code></p>
<p>This time, we will give links that have Canadian country codes 35px padding to the left side and a background image of the Canadian flag that sits to the<br />
left edge of the link’s text.  This style sheet is using an image sprite to keep the server requests to a minimum.  See the Alistapart.com article about using<br />
<a href="http://www.alistapart.com/articles/sprites">image sprites</a> for more information on this technique.</p>
<h3 lang="fr">Et Voilà</h3>
<p>There we have it. A set of international links with the country of origin and language clearly defined.  All of this has been made possible by our friends, the<br />
attribute selector, the pseudo-class, and the content style. Tune in next week as we learn how to make a cruise ship out of two<br />
shoe-boxes and an <acronym title="eXtensible Markup Language">XML</acronym> schema.</p>
<h3>Fine Print</h3>
<p>This has not been tested in Safari, but it shouldn’t be a problem. The pretty and useful presentation elements will not appear in <acronym title="Internet Explorer">IE</acronym>6, NN4, and probably<br />
most alternative devices (My Treo shows the flags but not the added content). I do not know how assistive devices would render these styles, more than likely they would be ignored. This project falls under<br />
the “build for the best, don’t hurt the rest™” protocol.</p>
<h3>Resources</h3>
<ul>
<li><a href="http://www.w3.org/TR/REC-CSS2/selector.html"><acronym title="World Wide Web Consortium">W3C</acronym> Selectors</a></li>
<li><a hreflang="fr-fr" href="http://sebastienguillon.com/journal/2005/10/exploiter-les-langues-avec-les-pseudo-classes-css">Exploiter les langues avec les pseudo-classes <acronym title="Cascading Style Sheets">CSS</acronym></a></li>
<li><a href="http://www.stuffandnonsense.co.uk/archives/css_a_tribute_to_selectors.html">A tribute to selectors</a> &#8211; Andy Clarke</li>
<li><a href="http://www.meyerweb.com/eric/articles/webrev/200008b.html">Attribute Selectors Part II</a> &#8211; Eric Meyers</li>
<li><a href="http://rollyo.com/search.html?q=hreflang&#038;sid=4886&#038;start=16">hreflang resources</a> &#8211; Standardistas</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.last-child.com/attribute-selectors-to-provide-language-information/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

