<?xml version="1.0" encoding="UTF-8"?>
 <rdf:RDF xmlns="http://purl.org/rss/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://web.resource.org/cc/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://pinboard.in">
    <title>Pinboard (alexhansford)</title>
    <link>https://pinboard.in/u:alexhansford/public/</link>
    <description>recent bookmarks from alexhansford</description>
    <items>
      <rdf:Seq>	<rdf:li rdf:resource="http://www.smashingmagazine.com/2011/07/22/responsive-web-design-techniques-tools-and-design-strategies/"/>
	<rdf:li rdf:resource="http://www.dotdragnet.com/content.php?aid=894"/>
	<rdf:li rdf:resource="http://www.flavius.ro/"/>
	<rdf:li rdf:resource="http://www.dynamicdrive.com/style/layouts/"/>
	<rdf:li rdf:resource="http://iphone.wikidot.com/"/>
	<rdf:li rdf:resource="http://www.w3.org/QA/Tips/"/>
	<rdf:li rdf:resource="http://www.mandarindesign.com/style.html#blockquoteimage"/>
	<rdf:li rdf:resource="http://www.sitepoint.com/blogs/2007/04/27/sifr-2007-the-roundup/"/>
	<rdf:li rdf:resource="http://www.mikeindustries.com/sifr/"/>
	<rdf:li rdf:resource="http://www.misspato.com/links/index.php"/>
	<rdf:li rdf:resource="http://www.protolize.org/"/>
	<rdf:li rdf:resource="http://beta.dailycolorscheme.com/"/>
	<rdf:li rdf:resource="http://www.digital-web.com/articles/css_styling_for_print_and_other_media/"/>
	<rdf:li rdf:resource="http://www.gotapi.com/"/>
	<rdf:li rdf:resource="http://www.mikeindustries.com/blog/archive/2005/07/make-your-site-mobile-friendly"/>
	<rdf:li rdf:resource="http://www.pixelgroovy.com/"/>
	<rdf:li rdf:resource="http://www.logoorange.com/color/color-codes-chart.php"/>
	<rdf:li rdf:resource="http://openwebdesign.org/most_popular.phtml"/>
	<rdf:li rdf:resource="http://faveup.com/"/>
	<rdf:li rdf:resource="http://www.huddletogether.com/projects/lightbox/"/>
	<rdf:li rdf:resource="http://tools.i-use.it/index.aspx"/>
	<rdf:li rdf:resource="http://www.maxdesign.com.au/presentation/page_layouts/index.cfm"/>
	<rdf:li rdf:resource="http://dean.edwards.name/"/>
	<rdf:li rdf:resource="http://www.snook.ca/jonathan/"/>
	<rdf:li rdf:resource="http://www.harrymaugans.com/2007/03/05/how-to-create-a-collapsible-div-with-javascript-and-css/"/>
	<rdf:li rdf:resource="http://dbachrach.com/blog/2006/10/a-cool-css-effect-dashboard/"/>
	<rdf:li rdf:resource="http://www.stylegala.com/"/>
	<rdf:li rdf:resource="http://webtypography.net/toc/"/>
	<rdf:li rdf:resource="http://www.codestyle.org/css/font-family/index.shtml"/>
	<rdf:li rdf:resource="http://colorblender.com/"/>
	<rdf:li rdf:resource="http://cloford.com/resources/colours/500col.htm"/>
	<rdf:li rdf:resource="http://lab.christianmontoya.com/css-dates/"/>
	<rdf:li rdf:resource="http://www.accessify.com/default.asp"/>
	<rdf:li rdf:resource="http://joeclark.org/book/sashay/serialization/"/>
	<rdf:li rdf:resource="http://www.maheshbabu.in/ajax-s-ajax-based-slideshow-supporting-xhtml/"/>
	<rdf:li rdf:resource="http://www.smashingmagazine.com/2011/05/11/the-future-of-css-experimental-css-properties/"/>
	<rdf:li rdf:resource="http://www.smashingmagazine.com/2011/04/18/powerful-new-css-techniques-and-tools/"/>
	<rdf:li rdf:resource="http://www.smashingmagazine.com/2011/02/16/css-useful-coding-techniques-and-design-solutions/"/>
	<rdf:li rdf:resource="http://www.smashingmagazine.com/2011/02/11/the-bright-near-future-of-css/"/>
	<rdf:li rdf:resource="http://www.smashingmagazine.com/2011/01/12/guidelines-for-responsive-web-design/"/>
	<rdf:li rdf:resource="http://www.webstyleguide.com/"/>
	<rdf:li rdf:resource="http://www.webdesignfromscratch.com/"/>
	<rdf:li rdf:resource="http://www.tanfa.co.uk/css/articles/css-box-model.asp"/>
      </rdf:Seq>
    </items>
  </channel><item rdf:about="http://www.smashingmagazine.com/2011/07/22/responsive-web-design-techniques-tools-and-design-strategies/">
    <title>Responsive Web Design Techniques, Tools and Design Strategies - Smashing Magazine</title>
    <dc:date>2011-08-03T13:00:12+00:00</dc:date>
    <link>http://www.smashingmagazine.com/2011/07/22/responsive-web-design-techniques-tools-and-design-strategies/</link>
    <dc:creator>alexhansford</dc:creator><description><![CDATA[Responsive Web Design Techniques, Tools and Design Strategies ]]></description>
<dc:subject>Coding CSS mobile responsive</dc:subject>
<dc:source>https://twitter.com/</dc:source>
<dc:identifier>https://pinboard.in/u:alexhansford/b:a4457856ed05/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:CSS"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:mobile"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:responsive"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.dotdragnet.com/content.php?aid=894">
    <title>dotdragnet - The CSS Box Model - part two..</title>
    <dc:date>2011-06-08T17:07:22+00:00</dc:date>
    <link>http://www.dotdragnet.com/content.php?aid=894</link>
    <dc:creator>alexhansford</dc:creator><description><![CDATA[A good introduction to css box model and suitable hacks
]]></description>
<dc:subject>Bookmarks css delicious-export design web</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:4e025bee103b/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:web"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.flavius.ro/">
    <title>Web Developer's Handbook: developing web-sites, exploring own imagination | CSS, Color Tools, SEO, Usability etc.</title>
    <dc:date>2011-06-08T17:07:22+00:00</dc:date>
    <link>http://www.flavius.ro/</link>
    <dc:creator>alexhansford</dc:creator><dc:subject>Bookmarks WebAccessibility css delicious-export design development reference web webdesign webdev</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:ac580a62e635/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:WebAccessibility"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:development"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:reference"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdesign"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdev"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.dynamicdrive.com/style/layouts/">
    <title>Dynamic Drive CSS Layouts- Tableless, CSS based templates</title>
    <dc:date>2011-06-08T17:07:22+00:00</dc:date>
    <link>http://www.dynamicdrive.com/style/layouts/</link>
    <dc:creator>alexhansford</dc:creator><dc:subject>Bookmarks css delicious-export design howto style templates tools tutorial web webdesign webdev</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:f609973a30b3/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:howto"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:style"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:templates"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:tools"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:tutorial"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdesign"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdev"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://iphone.wikidot.com/">
    <title>iPhone: Welcome Apple iPhone Developer</title>
    <dc:date>2011-06-08T17:06:13+00:00</dc:date>
    <link>http://iphone.wikidot.com/</link>
    <dc:creator>alexhansford</dc:creator><dc:subject>Bookmarks css delicious-export development webdev</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:8c2b59ca21e8/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:development"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdev"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.w3.org/QA/Tips/">
    <title>W3C QA - Quality Tips for Webmasters</title>
    <dc:date>2011-06-08T17:05:58+00:00</dc:date>
    <link>http://www.w3.org/QA/Tips/</link>
    <dc:creator>alexhansford</dc:creator><dc:subject>Bookmarks Webmaster css delicious-export design html tips web webdesign</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:f8ec9ae8e059/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Webmaster"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:html"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:tips"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdesign"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.mandarindesign.com/style.html#blockquoteimage">
    <title>Mandarin Design: Cascading Style Sheets CSS</title>
    <dc:date>2011-06-08T17:05:05+00:00</dc:date>
    <link>http://www.mandarindesign.com/style.html#blockquoteimage</link>
    <dc:creator>alexhansford</dc:creator><dc:subject>Bookmarks css delicious-export howto tools webdesign</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:ffcd1a9d57ad/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:howto"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:tools"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdesign"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.sitepoint.com/blogs/2007/04/27/sifr-2007-the-roundup/">
    <title>SitePoint Blogs » sIFR 2007: The Roundup</title>
    <dc:date>2011-06-08T16:18:58+00:00</dc:date>
    <link>http://www.sitepoint.com/blogs/2007/04/27/sifr-2007-the-roundup/</link>
    <dc:creator>alexhansford</dc:creator><dc:subject>Bookmarks css delicious-export design typography web webdesign</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:01a089994091/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:typography"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdesign"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.mikeindustries.com/sifr/">
    <title>sIFR 2.0: Rich Accessible Typography for the Masses</title>
    <dc:date>2011-06-08T16:18:58+00:00</dc:date>
    <link>http://www.mikeindustries.com/sifr/</link>
    <dc:creator>alexhansford</dc:creator><description><![CDATA[A useful introduction to an advanced way to use text in menus and other website GUIs
]]></description>
<dc:subject>Bookmarks css delicious-export design internet typography web webdesign</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:4ee6de503f22/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:internet"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:typography"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdesign"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.misspato.com/links/index.php">
    <title>misspato.com links</title>
    <dc:date>2011-06-08T16:18:57+00:00</dc:date>
    <link>http://www.misspato.com/links/index.php</link>
    <dc:creator>alexhansford</dc:creator><dc:subject>Bookmarks Webmaster css delicious-export design inspiration web webdesign</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:09e7551c20ce/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Webmaster"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:inspiration"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdesign"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.protolize.org/">
    <title>Protolize.org - Essential web tools in one place</title>
    <dc:date>2011-06-08T16:18:24+00:00</dc:date>
    <link>http://www.protolize.org/</link>
    <dc:creator>alexhansford</dc:creator><dc:subject>Bookmarks css delicious-export design tools web webdesign</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:861c6dbe7654/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:tools"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdesign"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://beta.dailycolorscheme.com/">
    <title>Veerle\'s Topp, Daily Color Scheme - Your every-day color resource, we bring you daily-fresh colorschemes</title>
    <dc:date>2011-06-08T16:18:18+00:00</dc:date>
    <link>http://beta.dailycolorscheme.com/</link>
    <dc:creator>alexhansford</dc:creator><description><![CDATA[A website colour scheme a day!
]]></description>
<dc:subject>Bookmarks css delicious-export design inspiration webdesign</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:94da74ac6d8a/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:inspiration"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdesign"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.digital-web.com/articles/css_styling_for_print_and_other_media/">
    <title>CSS Styling for Print and Other Media</title>
    <dc:date>2011-06-08T16:17:21+00:00</dc:date>
    <link>http://www.digital-web.com/articles/css_styling_for_print_and_other_media/</link>
    <dc:creator>alexhansford</dc:creator><dc:subject>Bookmarks css delicious-export design howto tips tutorial webdesign</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:48225e4d1e65/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:howto"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:tips"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:tutorial"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdesign"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.gotapi.com/">
    <title>gotAPI.com - quick developer reference for CSS, HTML, JavaScript, PHP, AJAX, SQL and more</title>
    <dc:date>2011-06-08T16:17:08+00:00</dc:date>
    <link>http://www.gotapi.com/</link>
    <dc:creator>alexhansford</dc:creator><dc:subject>Bookmarks css delicious-export html programming reference</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:2ae65445a309/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:html"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:reference"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.mikeindustries.com/blog/archive/2005/07/make-your-site-mobile-friendly">
    <title>Mike Davidson: Make Your Site Mobile-Friendly in Two Minutes</title>
    <dc:date>2011-06-08T16:17:08+00:00</dc:date>
    <link>http://www.mikeindustries.com/blog/archive/2005/07/make-your-site-mobile-friendly</link>
    <dc:creator>alexhansford</dc:creator><dc:subject>Bookmarks css delicious-export design howto web</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:38e006cf0433/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:howto"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:web"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.pixelgroovy.com/">
    <title>Pixel Groovy - front page</title>
    <dc:date>2011-06-08T16:17:06+00:00</dc:date>
    <link>http://www.pixelgroovy.com/</link>
    <dc:creator>alexhansford</dc:creator><dc:subject>Bookmarks css delicious-export design howto tutorial webdesign</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:106bdd3f5bef/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:howto"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:tutorial"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdesign"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.logoorange.com/color/color-codes-chart.php">
    <title>Color Codes Matching Chart HTML (Pantone, CMYK, RGB Hex)</title>
    <dc:date>2011-06-08T16:16:48+00:00</dc:date>
    <link>http://www.logoorange.com/color/color-codes-chart.php</link>
    <dc:creator>alexhansford</dc:creator><dc:subject>Bookmarks css delicious-export design html reference webdesign</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:6ba90b253cd2/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:html"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:reference"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdesign"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://openwebdesign.org/most_popular.phtml">
    <title>Open Web Design - Most Popular</title>
    <dc:date>2011-06-08T16:16:28+00:00</dc:date>
    <link>http://openwebdesign.org/most_popular.phtml</link>
    <dc:creator>alexhansford</dc:creator><dc:subject>Bookmarks css delicious-export design free templates web webdesign</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:0294a353c7ca/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:free"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:templates"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdesign"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://faveup.com/">
    <title>Design Inspiration Gallery - FAVEUP</title>
    <dc:date>2011-06-08T16:14:28+00:00</dc:date>
    <link>http://faveup.com/</link>
    <dc:creator>alexhansford</dc:creator><dc:subject>Bookmarks css delicious-export design inspiration web webdesign</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:6ce2b663a33e/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:inspiration"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdesign"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.huddletogether.com/projects/lightbox/">
    <title>Lightbox JS</title>
    <dc:date>2011-06-08T16:14:11+00:00</dc:date>
    <link>http://www.huddletogether.com/projects/lightbox/</link>
    <dc:creator>alexhansford</dc:creator><description><![CDATA[useful javascript functionality provides classy image veiwing
]]></description>
<dc:subject>Bookmarks css delicious-export design webdesign</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:37d0fa1f2277/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdesign"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://tools.i-use.it/index.aspx">
    <title>Template:css, a searchable repository of css based layouts / una raccolta di modelli di pagina realizzati con i css.</title>
    <dc:date>2011-06-08T16:13:55+00:00</dc:date>
    <link>http://tools.i-use.it/index.aspx</link>
    <dc:creator>alexhansford</dc:creator><dc:subject>Bookmarks Webmaster css delicious-export design templates web webdesign webdev</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:0ba9af28eb71/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Webmaster"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:templates"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdesign"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdev"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.maxdesign.com.au/presentation/page_layouts/index.cfm">
    <title>Max Design - CSS Page Layouts</title>
    <dc:date>2011-06-08T16:13:55+00:00</dc:date>
    <link>http://www.maxdesign.com.au/presentation/page_layouts/index.cfm</link>
    <dc:creator>alexhansford</dc:creator><dc:subject>Bookmarks Webmaster css delicious-export design tutorial web webdesign</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:5724b014cc6c/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Webmaster"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:tutorial"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdesign"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://dean.edwards.name/">
    <title>dean.edwards.name/</title>
    <dc:date>2011-06-08T16:08:37+00:00</dc:date>
    <link>http://dean.edwards.name/</link>
    <dc:creator>alexhansford</dc:creator><dc:subject>Bookmarks Webmaster blog css delicious-export programming web webdesign webdev</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:88ab827287b1/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Webmaster"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:blog"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdesign"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdev"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.snook.ca/jonathan/">
    <title>Jonathan - Snook.ca</title>
    <dc:date>2011-06-08T16:08:37+00:00</dc:date>
    <link>http://www.snook.ca/jonathan/</link>
    <dc:creator>alexhansford</dc:creator><dc:subject>Bookmarks blog css delicious-export design howto inspiration web webdesign</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:a99aa3733edc/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:blog"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:howto"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:inspiration"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdesign"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.harrymaugans.com/2007/03/05/how-to-create-a-collapsible-div-with-javascript-and-css/">
    <title>Harry Maugans » How to Create a Collapsible DIV with Javascript and CSS</title>
    <dc:date>2011-06-08T16:08:37+00:00</dc:date>
    <link>http://www.harrymaugans.com/2007/03/05/how-to-create-a-collapsible-div-with-javascript-and-css/</link>
    <dc:creator>alexhansford</dc:creator><dc:subject>Bookmarks css delicious-export design howto html tutorial web webdesign</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:181647f1d6b2/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:howto"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:html"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:tutorial"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdesign"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://dbachrach.com/blog/2006/10/a-cool-css-effect-dashboard/">
    <title>A Cool CSS Effect - Dashboard [Updated] » Dustin Bachrach Blog</title>
    <dc:date>2011-06-08T16:08:37+00:00</dc:date>
    <link>http://dbachrach.com/blog/2006/10/a-cool-css-effect-dashboard/</link>
    <dc:creator>alexhansford</dc:creator><dc:subject>Bookmarks css delicious-export design programming web webdesign</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:eecfcedf8441/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdesign"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.stylegala.com/">
    <title>Stylegala ★ design | css | standards</title>
    <dc:date>2011-06-08T16:05:36+00:00</dc:date>
    <link>http://www.stylegala.com/</link>
    <dc:creator>alexhansford</dc:creator><dc:subject>Bookmarks Webmaster css delicious-export design inspiration standards web webdesign</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:99c6765a82f6/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Webmaster"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:inspiration"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:standards"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdesign"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://webtypography.net/toc/">
    <title>Table of Contents | The Elements of Typographic Style Applied to the Web</title>
    <dc:date>2011-06-08T16:05:00+00:00</dc:date>
    <link>http://webtypography.net/toc/</link>
    <dc:creator>alexhansford</dc:creator><dc:subject>Bookmarks css delicious-export design reference typography web webdesign</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:3cceb31fd835/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:reference"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:typography"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdesign"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.codestyle.org/css/font-family/index.shtml">
    <title>CSS font sampler and survey of the most common fonts for CSS font-family properties</title>
    <dc:date>2011-06-08T16:04:58+00:00</dc:date>
    <link>http://www.codestyle.org/css/font-family/index.shtml</link>
    <dc:creator>alexhansford</dc:creator><dc:subject>css delicious-export webdesign</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:730406e2107c/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdesign"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://colorblender.com/">
    <title>ColorBlender.com | Your free online color matching toolbox</title>
    <dc:date>2011-06-08T16:02:43+00:00</dc:date>
    <link>http://colorblender.com/</link>
    <dc:creator>alexhansford</dc:creator><dc:subject>Bookmarks css delicious-export design tools web webdesign</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:f3f64f65e156/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:tools"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdesign"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://cloford.com/resources/colours/500col.htm">
    <title>500+ Named Colours with rgb and hex values</title>
    <dc:date>2011-06-08T16:02:42+00:00</dc:date>
    <link>http://cloford.com/resources/colours/500col.htm</link>
    <dc:creator>alexhansford</dc:creator><dc:subject>Bookmarks Webmaster css delicious-export design reference tools web webdesign</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:04ebfc5eb106/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Webmaster"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:reference"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:tools"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdesign"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://lab.christianmontoya.com/css-dates/">
    <title>Hot Dates with CSS by Christian Montoya, christianmontoya.com</title>
    <dc:date>2011-06-08T16:02:01+00:00</dc:date>
    <link>http://lab.christianmontoya.com/css-dates/</link>
    <dc:creator>alexhansford</dc:creator><dc:subject>Bookmarks css delicious-export design howto tutorial webdesign wordpress</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:7fda3e3b2a44/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:howto"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:tutorial"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdesign"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:wordpress"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.accessify.com/default.asp">
    <title>Accessify.com - all the tools, links and resources you'll ever need to make your web site accessible.</title>
    <dc:date>2011-06-08T15:33:42+00:00</dc:date>
    <link>http://www.accessify.com/default.asp</link>
    <dc:creator>alexhansford</dc:creator><dc:subject>Bookmarks WebAccessibility css delicious-export design tools usability web webdesign</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:a34e6deb63ec/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:WebAccessibility"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:tools"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:usability"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdesign"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://joeclark.org/book/sashay/serialization/">
    <title>‘Building Accessible Websites’ serialization</title>
    <dc:date>2011-06-08T15:33:42+00:00</dc:date>
    <link>http://joeclark.org/book/sashay/serialization/</link>
    <dc:creator>alexhansford</dc:creator><dc:subject>Bookmarks WebAccessibility css delicious-export design standards usability web webdesign</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:dca05054bc44/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:WebAccessibility"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:standards"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:usability"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdesign"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.maheshbabu.in/ajax-s-ajax-based-slideshow-supporting-xhtml/">
    <title>Maheshbabu.Interactive - Web Standards | Design | CSS | Ajax » Blog Archive » AJAX-S - Ajax-based slideshow supporting XHTML</title>
    <dc:date>2011-06-08T15:33:28+00:00</dc:date>
    <link>http://www.maheshbabu.in/ajax-s-ajax-based-slideshow-supporting-xhtml/</link>
    <dc:creator>alexhansford</dc:creator><dc:subject>Bookmarks css delicious-export webdesign</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:9cd4779a24d9/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdesign"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.smashingmagazine.com/2011/05/11/the-future-of-css-experimental-css-properties/">
    <title>The Future Of CSS: Experimental CSS Properties</title>
    <dc:date>2011-05-11T11:35:25+00:00</dc:date>
    <link>http://www.smashingmagazine.com/2011/05/11/the-future-of-css-experimental-css-properties/</link>
    <dc:creator>alexhansford</dc:creator><description><![CDATA[



      
        
    



Despite contemporary browsers supporting a wealth of CSS3 properties, most designers and developers seem to focus on the quite harmless properties such as border-radius, box-shadow or transform. These are well documented, well tested and frequently used, and so it’s almost impossible to not stumble on them these days if you are designing websites.

But hidden deep within the treasure chests of browsers are advanced, heavily underrated  properties that don’t get that much attention. Perhaps some of them rightly so, but others deserve more recognition. The greatest wealth lies under the hood of WebKit browsers, and in the age of iPhone, iPad and Android apps, getting acquainted with them can be quite useful. Even the Gecko engine, used by Firefox and the like, provides some distinct properties. In this article, we wisll look at some of the less known CSS 2.1 and CSS3 properties and their support in modern browsers.



Some explanation: For each property, I state the support: “WebKit” means that it is available only in browsers that use the WebKit engine (Safari, Chrome, iPhone, iPad, Android), and “Gecko” indicates the availability in Firefox and the like. Finally, certain properties are part of the official CSS 2.1. specification, which means that a broad range of browsers, even older ones, support them. Finally, a label of CSS3 indicates adherence to this specification, supported by the latest browser versions, such as Firefox 4, Chrome 10, Safari 5, Opera 11.10 and Internet Explorer 9.

WebKit-Only Properties
-webkit-mask
This property is quite extensive, so a detailed description is beyond the scope of this article and is certainly worth a more detailed examination, especially because it could turn out to be a time-saver in practical applications.

-webkit-mask makes it possible to apply a mask to an element, thereby enabling you to create a cut-out of any shape. The mask can either be a CSS3 gradient or a semi-transparent PNG image. An alpha value of 0 would cover the underlying element, and 1 would fully reveal the content behind. Related properties like -webkit-mask-clip, -webkit-mask-position and -webkit-mask-repeat rely heavily on the syntax of the ones from background. For more info, see the Surfin’ Safari blog and the link below.



Example

Image mask:


.element {
background: url(img/image.jpg) repeat;
-webkit-mask: url(img/mask.png);
}

Example

Gradient mask:


.element2 {
background: url(img/image.jpg) repeat;
-webkit-mask: -webkit-gradient(linear, left top, left bottom, from(rgba(0,0,0,1)), to(rgba(0,0,0,0)));
}

Further reading: Safari Developer Library

-webkit-text-stroke
One of the shortcomings of CSS borders is that only rectangular ones are possible. A ray of hope is -webkit-text-stroke, which gives text a border. Setting not only the width but the color of the border is possible. And in combination with color: transparent, you can create outlined text.

Examples

Assigns a blue border with a 2-pixel width to all <h1> headings:


h1 {-webkit-text-stroke: 2px blue}

Another feature is the ability to smooth text by setting a transparent border of 1 pixel:


h2 {-webkit-text-stroke: 1px transparent}

Creates text with a red outline:


h3 {
color: transparent;
-webkit-text-stroke: 4px red;
}



Further reading: Safari Developer Library

-webkit-nbsp-mode
Wrapping can be pretty tricky. Sometimes you want text to break (and not wrap) at certain points, and other times you don’t want this to happen. One property to control this is -webkit-nbsp-mode. It lets you change the behavior of the &nbsp; character, forcing text to break even where it is used. This behavior is enabled by the value space.

Further reading: Safari Developer Library

-webkit-tap-highlight-color
This one is just for iOS (iPhone and iPad). When you tap on a link or a JavaScript clickable element, it is highlighted by a semi-transparent gray background. To override this behavior, you can set -webkit-tap-highlight-color to any color. To disable this highlighting, a color with an alpha value of 0 must be used.

Example

Sets the highlight color to red, with a 50% opacity:


-webkit-tap-highlight-color: rgba(255,0,0,0.5);

Supported by: iOS only (iPhone and iPad).

Further reading: Safari Developer Library

zoom: reset
Normally, zoom is an Internet Explorer-only property. But in combination with the value reset, WebKit comes into play (which, funny enough, IE doesn’t support). It enables you to override the standard behavior of zooming on websites. If set with a CSS declaration, everything except the given element is enlarged when the user zooms on the page.

Further reading: Safari Developer Library

-webkit-margin-collapse
Here is a property with a quite limited practical use, but it is still worth mentioning. By default, the margins of two adjacent elements collapse, which means that the bottom distance of the first element and the top distance of the second element merge into a single gap.

The best example is two <p>s that share their margins when placed one after another. To control this behavior, we can use -webkit-margin-collapse, -webkit-margin-top-collapse or -webkit-margin-bottom-collapse. The standard value is collapse. The separate value stops the sharing of margins, which means that both the bottom margin of the first element and the top margin of the second are included.



Further reading: Safari Developer Library

-webkit-box-reflect
Do you remember the days when almost every website featured a reflection of either its logo or some text in the header? Thankfully, those days are gone, but if you’d like to make a subtle use of this technique for your buttons, navigation or other UI elements with CSS, then -webkit-box-reflect is the property for you.

It accepts the keywords above, below, left and right, which set where the reflection is drawn, as well as a numeric value that sets the distance between the element and its reflection. Beyond that, mask images are supported as well (see -webkit-mask for an explanation of masks). The reflection is created automatically and has no effect on the layout. Following elements are created using only CSS, and the second button is reflected using the -webkit-box-reflect-property.



Examples

This reflection would be shown under its parent element and have a spacing of 5 pixels:


-webkit-box-reflect: below 5px;

This reflection would be cast on the right side of the element, with no distance (0); additionally, a mask would be applied (url(mask.png)):


-webkit-box-reflect: right 0 url(mask.png);

Further reading: Safari Developer Library

-webkit-marquee
Here is another property that recalls the good ol’ days when marquees were quite common. Interesting that this widely dismissed property turns out to be be useful today, when we shift content on tiny mobile screens that would otherwise not be fully visible without wrapping.

The weather application by ozPDA makes great use of it. (If you don’t see shifting text, just select another city at the bottom of the app. WebKit browser required.)

Example


.marquee {
white-space: nowrap;
overflow:-webkit-marquee;
width: 70px;
-webkit-marquee-direction: forwards;
-webkit-marquee-speed: slow;
-webkit-marquee-style: alternate;
}

There are some prerequisites for the marquee to work. First, white-space must be set to nowrap if you want the text to be on one line. Also, overflow must be set to -webkit-marquee, and width set to something narrower than the full length of the text.

The remaining properties ensure that the text scrolls from left to right (-webkit-marquee-direction), shifts back and forth (-webkit-marquee-style) and moves at a slow rate (-webkit-marquee-speed). Additional properties are -webkit-marquee-repetition, which sets how many iterations the marquee should pass through, and -webkit-marquee-increment, which defines the degree of speed in each increment.

Further reading: Safari Developer Library

Gecko-Only Properties
font-size-adjust
Unfortunately, this useful CSS3 property is supported only by Firefox at the moment. We can use it to specify that the font size for a given element should relate to the height of lowercase letters (x-height) rather than the height of uppercase letters (cap height). For example, Verdana is much more legible at the same size than Times, which has a much shorter x-height. To compensate for this behavior, we can adjust the latter with font-size-adjust.

This property is particularly useful in CSS font stacks whose fonts have different x-heights. Even if you’re careful to use only similar fonts, font-size-adjust can provide a solution when problems arise.

Example

If Verdana is not installed on the user’s machine for some reason, then Arial is adjusted so that it has the same aspect ratio as Verdana, which is 0.58 (at a font size of 12px, differs on other sizes).


p {
font-family:Verdana, Arial, sans-serif;
font-size: 12px;
font-size-adjust: 0.58;
}



Supported by: Gecko.

Further reading: Mozilla Developer Network

image-rendering
A few years ago, images that were not displayed at their original size and were scaled by designers, could appear unattractive or just plain wrong in the browser, depending on the size and context. Nowadays, browsers have a much better algorithm for displaying resized images, however, it’s great to have a full control over the ways your images will be displayed when scaled, especially with responsive images becoming a de facto standard in responsive Web designs.

This Gecko-specific property is particularly useful if you have an image with sharp lines and want to maintain them after resizing. The relevant value would be -moz-crisp-edges. The same algorithm is used at optimizeSpeed, whereas auto and optimizeQuality indicate the standard behavior (which is to resize elements with the best possible quality). The image-rendering property can also be applied to <video> and <canvas>  elements, as well as background images. It is a CSS3 property, but is currently supported only by Firefox.



It’s also worth mentioning -ms-interpolation-mode: bicubic, although it is a proprietary Internet Explorer property. Nevertheless, it enables Internet Explorer 7 to render images at a much higher quality after resizing which is useful because by default this browser handles such tasks pretty poorly.

Supported by: Gecko.

Further reading: Mozilla Developer Network

-moz-border-top-colors
This property could be filed under ‘eye-candy’. It allows you to assign different colors to borders that are wider than 1 pixel. Also available are -moz-border-bottom-colors, -moz-border-left-colors and -moz-border-right-colors.

Unfortunately, there is no condensed version like -moz-border-colors for this property, so the border property must be set in order for it to work, whereas border-width should be the same as the number of the given color values. If it is not, then the last color value is taken for the rest of the border.

Example

Below, the element’s border would have a standard color of orange applied to the left and right side (because -moz-border-left-colors and -moz-border-right-colors are not set). The top and bottom borders have a kind of gradient, with the colors red, yellow and blue.


div {
border: 3px solid orange;
-moz-border-top-colors: red yellow blue;
-moz-border-bottom-colors: red yellow blue;
}



Supported by: Gecko.

Further reading: Mozilla Developer Network

Mixed Properties
-webkit-user-select and -moz-user-select
There might be times when you don’t want users to be able to select text, whether to protect it from copying or for another reason. One solution is to set -webkit-user-select and -moz-user-select to none. Please use this property with caution: since most users are looking for information that they can copy and store for future reference, this property is neither helpful nor effective. In the end, the user could always look up the source code and take the content even if you have forbidden the traditional copy-and-paste. We do not know why this property exists in both WebKit and Gecko browsers.

Supported by: WebKit, Gecko.

Further reading: Safari Developer Library, Mozilla Developer Network

-webkit-appearance and -moz-appearance
Ever wanted to easily camouflage an image to look like a radio button? Or an input field to look like a checkbox? Then appearance will come in handy. Even if you wouldn’t always want to mask a link so that it looks like a button (see example below), it’s nice to know that you can do it if you want.

Example


a {
-webkit-appearance: button;
-moz-appearance: button;
}

Supported by: WebKit, Gecko.

Further reading: Safari Developer Library, Mozilla Developer Network

text-align: -webkit-center/-moz-center
This is one property (or value, to be exact) whose existence is quite surprising. To center a block-level element, one would usually set margin to 0 auto. But you could also set the text-align property of the element’s container to -moz-center and -webkit-center. You can align left and right with -moz-left and -webkit-left and then -moz-right and -webkit-right, respectively.

Supported by: WebKit, Gecko.

Further reading: Safari Developer Library, Mozilla Developer Network

CSS 2.1. Properties
counter-increment
How often have you wished you could automatically number an ordered list or all of the headings in an article? Unfortunately, there is still no CSS3 property for that. But let’s look back to CSS 2.1, in which counter-increment provides a solution. That means it’s been around for several years, and even supported in Internet Explorer 8. Did you know that? Me neither.

In conjunction with the :before pseudo-element and the content property, counter-increment can add automatic numbering to any HTML tag. Even nested counters are possible.

Example

For numbered headings, first reset the counter to start at 1:


body {counter-reset: thecounter}

Every <h1> would get the prefix “Section,” including a counter that automatically increments by 1 (which is default and can be omitted), where thecounter is the name of the counter:


.counter h1:before {
counter-increment: thecounter 1;
content:"Section"counter(thecounter)":";
}

Example

For a nested numbered list, the counter is reset and the automatic numbering of <ol> is switched off because it features no nesting:


ol {
    counter-reset: section;
    list-style-type: none;
}

Then, every <li> is given automatic incrementation, and the separator is set to be a point (.), followed by a blank.


li:before {
    counter-increment: section;
    content: counters(section,".")"";
}

<ol>
<li>item</li><!-- 1 -->
<li>item  <!-- 2 -->
<ol>
<li>item</li><!-- 1.1 -->
<li>item</li><!-- 1.2 -->
</ol>
</li>
<li>item</li><!-- 3 -->
<ol>

Supported by: CSS 2.1., all modern browsers, IE 7+.

Further reading: W3C

quotes
Are you tired of using wrong quotes just because your CMS doesn’t know how to properly convert them to the right ones? Then start using the quotes property to set them how you want. This way, you can use any character. You would then assign the quotes to the desired element using the :before and :after pseudo-elements. Unfortunately, the otherwise progressive WebKit browsers don’t support this property, which means no quotes are shown at all.

Example

The first two characters determine the quotes for the first level of a quotation, the last two for the second level, and so on:


q {
quotes: '«' '»' "‹" "›";
}

These two lines assign the quotes to the selected element:


q:before {content: open-quote}
q:after  {content: close-quote}

So, <p><q>This is a very <q>nice</q> quote.</q></p>  would give us:
«This is a very ‹nice› quote.»

Supported by: CSS 2.1., all browsers except WebKit, even IE 7+.

Further reading: W3C

Question: To add the character directly, does the CSS document have to have a UTF-8 character set? That’s a tough one. Unfortunately, I can’t give a definitive answer. My experimentation has shown that no character set has to be set for the quotes property to work properly. However the utf-8 character set doesn’t work because it shows “broken” characters (for example, “»”). With the iso-8859-1 character set, everything works fine.

This is how the W3C describes it: “While the quotation marks specified by ‘quotes’ in the previous examples are conveniently located on computer keyboards, high-quality typesetting would require different ISO 10646 characters.”

CSS3 Properties You May Have Heard About But Can’t Remember
To round out things, let’s go over some CSS3 properties that are not well known and maybe not as appealing as the classic ones border-radius and box-shadow.

text-overflow
Perhaps you’re familiar with this problem: a certain area is too small for the text that it contains, and you have to use JavaScript to cut the string and append “…” so that it doesn’t blow out the box.

Forget that! With CSS3 and text-overflow: ellipsis, you can force text to automatically end with “…” if it is longer than the width of the container. The only requirement is to set overflow to hidden. Unfortunately, this is not supported by Firefox but will hopefully be implemented in a coming release.

Example


div {
width: 100px;
text-overflow: ellipsis;
}



Supported by: CSS 3, all browsers except Firefox, even IE6+.

Further reading: W3C

word-wrap
With text in a narrow column, sometimes portions of it are too long to wrap correctly. Link URLs especially cause trouble. If you don’t want to hide the overflowing text with overflow: hidden, then you can set word-wrap to break-word, which causes it to break when it reaches the limit of the container.

Example


div {
width: 50px;
word-wrap: break-word;
}



Supported by: CSS 3, all browsers, even IE6+.

Further reading: W3C

resize
If you use Firefox or Chrome, then you must have noticed that text areas by default have a little handle in the bottom-right corner that lets you resize them. This standard behavior is achieved by the CSS3 property resize: both.

But it’s not limited to text areas. It can be used on any HTML element. The horizontal and vertical values limit the resizing to the horizontal and vertical axes, respectively. The only requirement is that overflow be set to anything other than visible.



Supported by: CSS3, all the latest browsers except Opera and Internet Explorer.

Further reading: Safari Developer Library

background-attachment
When you assign a background image to an element that is set to overflow: auto, it is fixed to the background and doesn’t scroll. To disable this behavior and enable the image to scroll with the content, set background-attachment to local.



Supported by: CSS 3, all the latest browsers except Firefox.

Further reading: Safari Developer Library

text-rendering
With more and more websites rendering fonts via the @font-face attribute, legibility becomes a concern. Problems can occur particularly at small font sizes. While there is still no CSS property to control the subtle details of displaying fonts online, you can enable kerning and ligatures via text-rendering.

 Gecko and WebKit browsers handle this property quite differently. The former enables these features by default, while you have to set it to optimizeLegibility in the latter.



Supported by: CSS3, all WebKit browsers and Firefox.

Further reading: Mozilla Developer Network

transform: rotateX/transform: rotateY
If you’ve already dived into CSS3 and transformations a bit, then you’re probably familiar with transform: rotate(), which rotates an element around its z-axis.

But did you know that it is also possible to spin it “into the deep” (i.e. around its x-axis and y-axis)? These transformations are particularly useful in combination with -webkit-backface-visibility: hidden, if you want to rotate an element and reveal another one at its back. This technique is described by Andy Clarke in his latest book, Hardboiled Web Design, and it can be seen in action on a demo page.

Example

If you hover over the element, it will turn by 180°, revealing its back:


div:hover {
transform: rotateY(180deg);
}



Quick tip: To just mirror an element, you can either set transform to rotateX(180deg) (and respectively rotateY) or set transform to scaleX(-1) (and respectively scaleY).

Supported by: CSS3, only WebKit browsers, in combination with -webkit-backface-visibility only Safari and iOS (iPhone and iPad).

Further reading: Safari Developer Library (transform: rotate, -webkit-backface-visibility)

Some Last Words
As you hopefully have seen, there are many unknown properties that range from being nice to hav to being very useful. Many of them are still at an experimental stage and may never leave it or even be discarded in future browser releases. Others will hopefully be adopted by all browser manufacturers in coming versions.

While it is hard to justify using some of them, the WebKit-specific ones are gaining more and more importance with the success of the iOS devices and Android. And of course some CSS3 properties are more or less ready to be used now.

And if you don’t like vendor-specific properties, you can see them as experiments that still could be implemented in the code to improve the user experience for users browsing with the modern browsers. By the way, CSS validator from the W3C now also supports vendor-specific properties, which result in warnings rather than errors.

Happy experimenting!

(al)



© Christian Krammer for Smashing Magazine, 2011. |
Permalink | 
Post a comment | 
Smashing Shop |
Smashing Network |
About Us


Post tags: CSS

]]></description>
<dc:subject>Coding CSS</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:d9ff39709138/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:CSS"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.smashingmagazine.com/2011/04/18/powerful-new-css-techniques-and-tools/">
    <title>Powerful New CSS Techniques and Tools</title>
    <dc:date>2011-04-18T14:23:36+00:00</dc:date>
    <link>http://www.smashingmagazine.com/2011/04/18/powerful-new-css-techniques-and-tools/</link>
    <dc:creator>alexhansford</dc:creator><description><![CDATA[    The hard work of front-end designers never ceases to amaze us. Over the last months, we’ve seen Web designers creating and presenting a plethora of truly remarkable CSS techniques and tools. We have collected, analyzed, curated and feature latest useful resources for your convenience, so you can use them right away or save them for future reference.
Please don’t hesitate to comment on this post and let us know how exactly you are using them in your workflow. However, please avoid link dropping, but share your insights and your experience instead. Also, notice that some techniques are not only CSS-based, but use HTML5, JavaScript, or JavaScript-libraries as well. Thanks to all featured designers and developers for inspiring, hard work.
CSS TechniquesRotational SlidersEric Meyer shares six of his animated transforms that are capable of sliding around to a particular extent with non-centered transform origins.

Generating Organic Randomness with Prime Numbers and CSSAt first, you may be wondering why the heck is Alex Walker talking about cicada’s and Web design. Once taking a closer look, a sort of connection between the two evolves and a ‘cicada principle’ is born.

CSS3 3D HologramBeing inspired by holographic effects that can be achieved with HTML/CSS, Hakim El Hattab has developed his own 3D box which alters perspective depending on device orientation. Note that this requires a webkit browser and has only been tested on iPhone. Also make sure to visit more of Hakim’s CSS/HTML5 experiments.

Checkerboard, striped & other background patterns with CSS3 gradientsYou’re probably familiar with CSS3 gradients by now, including the closer to the standard Mozilla syntax and the verbose Webkit one. I assume you know how to add multiple color stops, make your gradients angled or create radial gradients. What you might not be aware of, is that CSS3 gradients can be used to create many kinds of commonly needed patterns, including checkered patterns, stripes and more. Also, check out Lea’s CSS3 Patterns Gallery
CSS3 KeyboardClick in the box and start typing on your computer’s keyboard. Cleverly developed by Dustin Cartwright and Dustin Hoffman. You’ve got to respect the amount of time and effort which went into producing this demo.

CSS3 Progress BarsA couple of nice progress bars created by Chris Coyier that use no images — just CSS3 fancies. In browsers that do not support CSS3, these progress bars will look more simplified.

Hover on “Everything But”A tutorial by Chris Coyier which shows us how easy adding a hover state to an element can be. In this case, the hover state is applied to everything but the element actually being hovered over.

Creating a Sphere With 3D CSSWith CSS3’s 3D trans­forms it’s possible to cre­ate a sphere-like object, albeit with many elements. Paul Hayes shares his version of a 3D CSS sphere (works in the latest Safari and iOS) and provides us with the coding needed.

CSS3 PlanetariumThis demo highlights leading edge CSS3 and HTML5 features that Mozilla Firefox and the open web community push into modern Web browsers.

Natural Object-Rotation with CSS3 3DA tutorial by Dirk Weber that teaches us how to build a 3D packshot in HTML and CSS by applying some CSS 3D-transforms. By adding  some Javascript, we can make the object freely rotatable in 3D space. And as we will enhance our Javascript with some touch-interactivity, the packshot will also work nicely in Safari for iOS-platforms like iPhone or iPad.

CSS Drop-Shadows Without ImagesNicolas Gallagher shares presents his CSS drop-shadows without any images.

Incrementable Length Values in Text FieldsLea Verou explains how to implement a feature that allows you to increment or decrement a <length> value by pressing the up and down keyboard arrows when the caret is over it.

Beveled Corners & Negative Border-Radius with CSS3 GradientsBeveled corners and simulate negative border radius without images, by utilizing CSS3 gradients once again — Lea Verou is amazed by how many CSS problems can be solved with gradients alone. Works on Firefox 3.6+, latest Webkit Nightly builds, Chrome and Opera 11.10.

Flexible Height Vertical Centering With CSS, Beyond IE7Roger Johansson shares his thoughts on how to improve centering an element both horizontally and vertically with the display:table alternative.

Coding up a semantic, lean timelineThis article tells you how to create a semantic lean timeline.

CSS Border Tricks with Collapsed BoxesThese border tricks tricks will help you to display content outside of the content box, over borders, without the use of images, CSS3 gradients or extraneous markup.

Quick Tip: Nonintrusive CSS Text GradientsJeffrey Way shows some ways for creating pure CSS text-gradients with a bit of trickery. The key is to use a mix of attribute selectors, webkit-specific properties, and custom HTML attributes.

Bokeh with CSS3 GradientsDivya Manian uses the CSS gradients and shows the results of his work on a project which uses a bunch of circles as a decorative background.

Different Transitions for Hover On / Hover OffChris Coyier tries to acchieve “different transitions on mouseenter and mouseleave”, but he isn’t using JavaScript here; we’re talking about CSS :hover state and CSS3 transitions. Hover on, some CSS property animates itself to a new value; hover off, a different CSS property animates.

Styling children based on their number, with CSS3Lea Verou shows how to style children of elements based on their total number (that is, their total count).

CSS ModalUsing CSS3 tech­niques a modal box can be cre­ated with­out JavaScript or images. With a bit of ani­ma­tion, tran­si­tion and trans­form, it can be made that lit­tle bit more special. The problem: when you hit the “Back”-button after the modal has popped up and was closed, you’ll see the modal again. But maybe you’ll come with a way to fix it?

Rotating Feature BoxesThe full effect of it (with transition animations) will work in newish WebKit and Opera browsers and Firefox 4 (in real beta as of today). Any other browser will rotate the blocks without transition animation.

When and How to Visually Hide ContentVisually hiding content on a web page, usually textual content, is at times a viable technique in web design and development. It can be done for several reasons, most importantly, to improve the experience of a screen reader user. Other reasons include improving readability when CSS cannot be rendered, and improving search engine optimization (SEO). Other exaples about using the Visually Hide Content are shown in this article.

How to avoid common CSS3 mistakesThe new features of CSS3 bring with them complexity and new things for us to screw up. This article will help keep us in check as we start using these new features.

Introduction to CSS Escape SequencesEscape sequences are useful because they allow style sheet authors to represent characters that would normally be ignored or interpreted differently by traditional CSS parsing rules. In this article Mert Tol shows how to use these sequences.

Wrapping Long URLs and Text Content with CSSTo wrap long URLs, strings of text, and other content, you can just apply a carefully crafted chunk of CSS code to any block-level element .

CSS Generated ContentTrevor Davis shows on some examples what you can do with the CSS generated content.

Controlling width with CSS3 box-sizingAn incredibly useful CSS3 feature when you’re creating columns with floats is box-sizing. It lets you choose which box sizing model to use – whether or not an element’s width and height include padding and border or not. It makes it much easier to define flexible widths where you also need padding and/or borders. A typical example is laying out forms, which can be a real pain when you want flexible widths.

Revisit Hardboiled CSS3 Media QueriesShi Chuan takes a close look at boilerplates and helps us understand the math we need to tweak the width required for a good resolution to any particular device.
iPad Orientation CSSKeith Chu revises Cloud Four’s work and finds a way to alleviate extra HTTP requests, not iPad-specific as well as lack of reusability. In this post, he shares with us his proposed revision to the iPad orientation CSS.
CSS Value Lengths, Times, Frequencies and AnglesIn this article the authors go over all the math type units that can be applied as property values in CSS.
CSS Tools320 and up‘320 and Up’ prevents mobile devices from downloading desktop assets by using a tiny screen’s stylesheet as its starting point. Try this page at different window sizes and on different devices to see it in action.

CSS3 Generator – By Eric Hoffman and Peter FunkThis generator was proudly designed by Eric Hoffman and coded by Peter Funk.

CSS Pattern GeneratorPatternify is a simple pattern generator that enables you to not only build your patterns online, but export them with the base64 code, so you don’t even need an image file anymore. Just include the code in your CSS and you’re ready to go. Created by Sacha Greif.

Griddle.it – Web page alignment made easyA clean and simple way to help align your layouts. No complex grid frameworks necessary.Just put your dimensions after our URL to get a background guide image to work with in your browser. Grids are created on the fly, so any combination should work.

The 1140px Grid: Fluid down to mobileThe 1140 grid fits perfectly into a 1280 monitor. On smaller monitors it becomes fluid and adapts to the width of the browser.

Fighting the @font-face FOUTPaul Irish’s 2011 update for the @font-face FOUT issue. Good news: Firefox 4 has no FOUT, IE9 does, and FOUT-b-GONE will help you out with that.

CSS3 Github ButtonsCSS3 Buttons is a simple framework for creating good-looking GitHub style button links.

CSS3 Facebook ButtonsCSS3 Facebook Buttons

MinimeeOn the Internets, speed is everything – which means that when it comes to CSS & Javascript files, size DOES matter. By automatically minimizing and combining your files for you, Minimee takes the heavy lifting out of keeping your files svelte.

Live.jsone script closer to designing in the browser.

Bootstrap.lessBootstrap is a pack of mixins and variables to be used in conjunction with LESS, a CSS preprocessor for faster and easier web development.

Animatable: Create CSS3 animations and advertising for Webkit browsersAnimatable is the easy way to create CSS3 animations and advertising for Webkit browsers on any platform or device — including Android, BlackBerry, iOS and WebOS.

Ceaser: CSS Easing Animation ToolCeaser is an CSS Easing Animation Tool.

ShowerThis  is provided without warranty, guarantee, or much in the way of explanation.

CSS PivotThis tool allows you to add CSS styles to any website, and share (and adjust) the result with a short link.

Roots WordPress ThemeRoots is a starting WordPress theme made for developers that’s based on HTML5 Boilerplate, Blueprint CSS (or 960.gs) and Starkers that will help you rapidly create brochure sites and blogs.

Free Online CSS3 Typeset Style GeneratorAn advanced generator of CSS buttons; the tools allows you to define font and color variations, shadows, borders, corners etc.

CSSPrefixerYou hate writing vendor prefixes for all browsers? The CSSPrefixer does it for you.

Type-a-fileThis tool will give your Web typography a head start. Type-a-file is essentially a small collection of CSS stylesheets with heavy focus on rich and beautiful typography. The tool uses Typekit to preview the stylesheets, so if you have a Typekit-account, you could purchase the font license and have exact the same typography on your website.

A Best Practice Baseline for Your Mobile Web AppMobile Boilerplate is your trusted template made custom for creating rich and performant mobile web apps. You get cross-browser consistency among A-grade smartphones, and fallback support for legacy Blackberry, Symbian, and IE Mobile.

Code BeautifierThis tool allows you to format, clean up and optimize your stylesheets.

Markup GeneratorMarkup Generator is a simple tool created for HTML/CSS coders that are tired of writing boring frame code at the very beginning of slicing work.

CSS Sprite GeneratorThis tool allows you to create and maintain your CSS sprites.

RespondA fast & lightweight polyfill for min/max-width CSS3 Media Queries (for IE 6-8, and more)
Adapt.js – Adaptive CSSAdapt.js simply checks the browser width, and serves only the CSS that is needed, when it is needed.
Firmin, a JavaScript animation library using CSS transforms and transitionsFirmin is a JavaScript animation library that uses CSS transforms and transitions to create smooth, hardware-accelerated animations.
Command-line CSS spritingThe author shows, how to create CSS sprites from the command line alone.
Last ClickCode StandardsThis document contains normative guidelines for web applications built by the Interface Development practice of Isobar North America (previously Molecular). It is to be readily available to anyone who wishes to check the iterative progress of our best practices.

How to Manage CSS ExplosionA very useful thread on StackOverflow on how to keep CSS files organized and clean.

Related PostsCSS: Innovative Techniques and Practical SolutionsThe main goal of the article is to present powerful new CSS techniques, encourage experimentation in the design community and push CSS forward.
(vf) (ik)
© Smashing Editorial for Smashing Magazine, 2011. | Permalink | Post a comment | Smashing Shop | Smashing Network | About Us Post tags: CSS, css3, html5, javascript, techniques, tools 

]]></description>
<dc:subject>Coding CSS css3 html5 javascript techniques tools</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:e9f18d404395/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:CSS"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css3"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:html5"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:techniques"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:tools"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.smashingmagazine.com/2011/02/16/css-useful-coding-techniques-and-design-solutions/">
    <title>CSS: Innovative Techniques and Practical Solutions</title>
    <dc:date>2011-02-16T12:10:25+00:00</dc:date>
    <link>http://www.smashingmagazine.com/2011/02/16/css-useful-coding-techniques-and-design-solutions/</link>
    <dc:creator>alexhansford</dc:creator><description><![CDATA[    Although CSS isn’t that difficult, useful CSS techniques are not easy to find. Sometimes finding a cross-browser solution might take time, but you don’t have to reinvent the wheel every single time. Other designers may have had the same problem in the past and thus the main goal of this round-up is to share with you a goldmine of new techniques which you will hopefully find very useful and valuable. We also hope that these tutorials and articles will help you solve common design problems and find new ways of approaching tricky CSS issues.
The main goal of the article is to present powerful new CSS techniques, encourage experimentation in the design community and push CSS forward. Please notice that we feature both experimental demos and practical techniques in this article. Next week we will present even more useful new tools and resources for front-end developers. We sincerely appreciate the efforts of the design community — thank you, guys!
Interesting and Original TechniquesWonder-Webkit: 3D TransformsThis is a remarkable example of what can be done using CSS3 3D transformations. The interesting stuff is the possibility of manipulate the transformation matrix of any element of the DOM, In this case we get the matrix given only the four end points of the element. Don’t forget to click on the items, too. Who thought a couple of years ago that something like that would be possible with only CSS?

CSS Box Shadow & Text Shadow ExperimentsThe CSS box-shadow and text-shadow allow us to create some pretty cool design elements that don’t even look like shadows. The key is to think about how CSS shadows work and use them to get the desired effect. The article features three remarkable examples of using box-shadow property creatively to achieve effects that don’t have much to do with shadows.

CSS3 Depth of FieldSawyer Hollenshead’s experiment is an attempt to create the “Depth of Field” effect with CSS. The blurry text is accomplished using text-shadow, with the text color set to transparent. Take a look at the demo and don’t forget to press ‘n’ to toggle animation.

Art Deco Selectable TextThis is a quick proof-of-concept of split typography, based on Pierre Fix-Masseau’s Art Deco style. The challenge was to have this kind of ‘split letters’ as part of a web page layout, while retaining the ability to select text.

CSS3 :toggle-button without JavaScriptThis demo presents a CSS3 toggle-button that works without JavaScript. If you ever need it: You stack two <a>s on top of each other and then disable pointer-events for the top <a> on :target.

About War and BananasThis student project explores new ways of styling and designing websites in an artistic way. The students from Merz Akademie in Germany used Picasso’s “Guernica” as the footage, seperated the picture into different layers and animated them using CSS.

WebKit ClockThis demo is driven by HTML5 canvas, CSS3, JavaScript, Web Fonts, SVG and no image files. The CSS file is huge, yet the result is quite remarkable.

Pure CSS SlideshowThis technique uses CSS transforms and positioning to create the pure CSS-based slideshow. Unfortunately, no documentation is available (yet).

CSS DockThis is a quick CSS3 experiment trying to replicate the Dock of OS X, complete with labels, animations, reflections and indicators. It uses CSS transitions for the magnification effect and the :target pseudo-class and CSS animations for the bouncing effect.

Andrew HoyerAn interesting experiment by Andrew Hoyer. The walking man is implemented using only CSS3 animations and simple HTML. The key idea behind all of this is the fact that a CSS transformation applied to an element also applies to all of its children. Works in Webkit-browsers only.

Type study: An all CSS buttonDan Cederholm explains how through the use of box-shadow, text-shadow, border-radius, and CSS gradients, we can create a highly polished three-dimensional, responsive button that doesn’t require images.

3D TextThis technique uses multiple text-shadows to create a 3D appearance of the text on any HTML element. No extra mark-up is used. Works in the latest builds of Safari, Chrome, Firefox, and Opera.

Spin those Icons with CSS3Tom Kenny features a neat effect which spins the social icons with the help of a CSS transforms and transition when you hover over them. A very nice enhancement.

The Shapes of CSSThe article presents various geometrical forms, all created using CSS and a single HTML element. The following forms are presented: square, rectangle, circle, oval, triangle, parallelogram, trapezoid, star, pentagon, hexagon, octagon, heart and infinity — all using CSS only.

CSS background image hacksEmulating background image crop, background image opacity, background transforms, and improved background positioning. The article explains a few hacks relying on CSS pseudo-elements to emulate features unavailable or not yet widely supported by modern browsers.

Making Better Select Elements with CSS3 and jQueryThis tutorial explains how to take an ordinary select element, and replace it with a better looking version, while keeping all the functionality intact. It uses CSS3 multiple background and a transparent PNG image as a sprite. Currently, multiple backgrounds are supported by Firefox, Safari, Chrome and Opera. For Internet Explorer and older versions of the first browsers, a fallback is defined, which is basically just a regular version of the background. When parsing the CSS document, browsers that do not understand multiple background will just ignore the rule and use the plain one.

CSS-Only 3D SlideshowThis tutorial shows how to create a 3D slideshow using only HTML and CSS. No JavaScript required. You’ll be able to mimic a click event with CSS using the :focus pseudo-class and the HTML5 element <figcaption>, but the idea is the same. As the author admits, this method isn’t necessarily “better” than using JavaScript, but simply a neat alternative that takes advantages of the newest HTML5 elements.

Have Fun with BordersThis tutorial shows three simple technique to add a light shadow, “pressed” and “beveled” states to text blocks and images. By Soh Tanaka.

Animated CSS3 Owl “What about having an owl that moved his eyes every so often and when hovered over would raise his wings while a few light rays would spin in the background. A little excessive? Probably. Necessary? Not at all. However, that’s exactly what I was looking to do with CSS3 transforms, transitions, and animations.” An interesting experiment, best viewed in Safari or Chrome.

CSS Social Sign-in ButtonsThis blog post describes a fairly simple technique for creating nice responsive CSS-buttons using a CSS sprite, border-radius, shadows and CSS gradients.

Rotating color cube box with CSS3 animation, transforms and gradientsA yet another remarkable experiment that presents a rotating color cube using CSS3 animations and transforms. Be aware that the browser may slow down a bit when loading the demo.

CSS3 Demo: 3D Interactive GalaxyA CSS3 demo where you can interact with a procedurally generated 3D galaxy. In order to create the effect, the designer used 3D CSS properties available in Safari 5 and on the iPhone and iPad.

Getting Hardboiled with CSS3 2D TransformsAndy Clarke explains how to use CSS3 two-dimensional transforms to add realism to a row of hardboiled private detectives’ business cards. The working demo is available as well.

How to create Microsoft Office Minibar with jQuery and CSS3Janko Jovanovic explains how to create a Microsoft Office Minibar that exposes context-related functionality. In case of MS Word, context is a text selection. Since Minibar always pops up near the mouse pointer it enables users to quickly perform actions related to a selection.

Angled Content Mask with CSSThis article explains how to create angled CSS content “masks”. The idea is pretty simple and uses CSS transform property (rotation, to be more precise).

Rotating Feature BoxesAll the animation here are CSS3 transitions. JavaScript only watches for the clicks and applies and removes classes as needed. So when you click on a block, that block’s class’ is adjusted. The new classes have different size and position values. Because the block has transition CSS applied, those new sizes and postion values are animated as well.

Pure CSS3 box-shadow page curl effectOkay, the CSS3 code here is quirky and might seem a bit bloated first, but it’s a nice example of using various CSS3 features together to create an effect that would usually require images.

Pure CSS Folded-Corner EffectLearn how to create a simple CSS folded-corner effect without images or extra markup. It works well in all modern browsers and is best suited to designs with simple colour backgrounds; supported by Firefox 3.5+, Chrome 4+, Safari 4+, Opera 10+, IE 8+.

Useful Practical TechniquesSmooth Fading Image Captions with Pure CSS3Learn how to use CSS3 transitions to create nice, animated, semitransparent image captions. Full example and code download included.

Fade Image Into AnotherLearn how to create an image rollover by giving the element a background image. There are three ways to fade in the opacity. Click here to find out more:

New @Font-Face Syntax: Simpler, EasierWith IE9 and FF4 nearing release, Ethan Dunham from Font Squirrel has revisited the problem of a cross-browser CSS @font-face syntax and found a new and simpler solution. In this article, Richard Fink explains the new syntax and its variations and suggests the most reasonable syntax to use. Also, check FontSpring’s The New Bulletproof @font-face Syntax. Please notice that this technique no longer works in Internet Explorer 9.

The New Clearfix MethodThe clearfix hack, or “easy-clearing” hack, is a useful method of clearing floats. The original clearfix hack works great, but the browsers that it targets are either obsolete or well on their way. The new clearfix method applies clearing rules to standards-compliant browsers using the :after pseudo-class. For IE6 and IE7, the new clearfix method triggers hasLayout with some proprietary CSS. Thus, the New Clearfix method effectively clears floats in all currently used browsers without using any hacks.

Quick Tip: Mimic a Click Event with CSSJeffrey Way shares with us a quick tip with a video that will illustrate a nifty technique by using plain and simple CSS to mimic click events.
Breadcrumb Navigation with CSS TrianglesThis article describes a fairly simple technique for creating triangles with pure CSS. You just make a block level element with zero width and height, a colored border on one side, and transparent borders on the two adjacent sides. Useful for little arrow sticking out from speech bubbles, navigation pointers, and more.

Responsive Images: Experimenting with Context-Aware Image SizingSince Ethan Marcotte coined the term, responsive Web design has gained a lot of attention in the Web design community, mainly due to its remarkable potential for flexible layouts that respond to the browser’s viewport for the best user experience. The main problem with such designs, however, is figuring out how to serve small images to mobile devices and tablets and large ones to desktop displays. The goal of this technique is to deliver optimized, contextual image sizes for responsive layouts that utilize dramatically different image sizes at different resolutions.

CSS powered ribbons the clean wayHarry Roberts presents a simple technique that uses an image and CSS to create clean ribbons. This technique creates a white <h2> with a pink background, pulls the <h2> out of the content area with a negative margin and then places the image absolutely left-bottom of the <h2> in a :before pseudo-element.

Create a centred horizontal navigationCentring block level elements is easy, just define a width and set margin: 0 auto;, but what if you don’t know that fixed width? You could use text-align: center;, but that won't work on 100%-width block-level elements either. However, there is a way to have a centred horizontal navigation without knowing an explicit width, and without adding CSS.
Keep Margins Out of Link ListsWhen building a menu or other list of links, it's generally a good practice to use display: block; or display: inline-block; so that you can increase the size of the link target. The simple truth: bigger link targets are easier for people to click and lead to better user experience. Make sure list items don't have padding, but links do and don't use margins, so there are no un-clickable gaps.

Pure CSS3 Post TagsThis is a rather simple pure CSS trick you can use to style your blog post tags, usually placed at the bottom of the posts. See also Image-Free Tag Shape.

Styling children based on their number, with CSS3Lea Verou presents an interesting technique for styling children based on their number. It is based on the relationship between :nth-child and :nth-last-child. With the technique, the number of total rules is still O(N), but the number of selectors in every rule becomes just 2, making this trick practical for far larger numbers of children.

Wrapping Long URLs and Text Content with CSSTo wrap long URLs, strings of text, and other content, it's enough to apply a carefully crafted chunk of CSS code to any block-level element (e.g., perfect for <pre> tags). Very useful for cases when code snippets need to be presented in a blog post with a fixed content width.

Pure CSS(3) accordionAn interesting accordion technique that uses nothing but semantic HTML, CSS and some progressive CSS3. There are also two versions, a horizontal one and a vertical one.

Target iPhone and iPad with CSS3 Media QueriesA detailed explanation of how to se CSS3 media queries to apply CSS style to the portrait and landscape modes in mobile devices such as iPad or iPhone.
Rein In Fluid Width By Limiting HTML WidthIf you are making a fluid width site but wish to limit the maximum width it can expand, you can do so easily by literally applying a max-width to the html element. Quick and useful tip.

Inline Boxes with Bottom AlignmentImagine that you want to keep a "Submit" button at the bottom of a line box, aligned with form controls positioned below their label (see below). If the containing block is not wide enough for the "Submit" button to flow next to the other controls, that button must be displayed at the beginning of the next line box with minimal space above it. The article explains a solution for this problem.

Transparent CSS SpritesThe idea of the technique is to create a transparent sprite allowing the background-color to show through. If you are familiar with CSS Sprites, you should be able to grasp this twist relatively easily. Simply, an image with a transparent “knocked-out” transparent center is placed over a background colour. Changing the background colour changes the appearance of the element.
Jump links and viewport positioning"Using within-page links presses the jumped-to content right at the very top of the viewport. This can be a problem when using a fixed header. With a bit of hackery, there are some CSS methods to insert space between the top of the viewport and the target element within a page."

Mimic Equal Columns with CSS3 Gradients"What happens when your main content area needs two specific background colors: one for the primary content, and another for the sidebar? If you’ve ever tried applying the background to each container itself, you’ll no doubt have realized that your layout quickly becomes fragmented as soon as the primary content section exceeds the height of the sidebar. Generally, the solution is to set a background image on the parent element, and set it to repeat vertically. However, if we get clever with CSS3 gradients, we can achieve the same effect with zero images." A nice piece by Jeffrey Way.
Double Click in CSS There has been some interesting talk about how we essentially lose the :hover pseudo class in CSS as well as mouseenter, mouseleave, and mousemove in JavaScript. Now, here is the idea: can we somehow pull off a double click with pure CSS? Yes, we can, if the input covers link, buries on focus, which triggers hover on link keeping it on top. Work on WebKit (including Mobile) and Firefox. So we've basically created a "light" alternative to hover for the sequence tap → change state / activate link → tap again to visit link.

Center Multiple DIVs with CSSAt some point, you may have a situation where you want to center multiple elements (maybe «div» elements, or other block elements) on a single line in a fixed-width area. Centering a single element in a fixed area is easy. Just add margin: auto and a fixed width to the element you want to center, and the margins will force the element to center. You can achieve something similar by taking advantage of CSS’s flexibity with “recasting” elements.

Clearing Floats with OverflowOne of the common problems we face when coding with float-based layouts is that the wrapper container doesn't expand to the height of the child floating elements. The typical solution to fix this is by adding an element with clear float after the floating elements or adding a clearfix to the wrapper. But you can also use the overflow property to fix this problem. It's not a new trick, but still very useful.

Different Transitions for Hover On / Hover OffThe idea of this technique is to solve an interesting problem: what about using different transition for hover on and off? In the example, when you hover over, the :hover transition overrides the transition set in the regular state, and that property animates. When you hover off, the transition from the regular state takes over and that property animates. Useful.
Stretch a Box to its Parent's BoundsA powerful feature that enables absolute positioning of stretching a box. The most popular use is having a box positioned in either top or bottom and right or left coordinates.
Equal Height Column Layouts with Borders and Negative Margins in CSSThis article demonstrates different construct techniques and brushes up on a few concepts you might have missed.

Using CSS Text-Shadow to Create Cool Text EffectsThe CSS3 text-shadow property has been around for some time now and is commonly used to recreate Photoshop's Drop Shadow type shading to add subtle shadows which help add depth, dimension and to lift an element from the page. A demo is available if you'd like to see what it looks like before you give it a try yourself.

Fluid Width Equal Height ColumnsEqual height columns have been a need of web designers forever. If all the columns share the same background, equal height is irrelevant because you can set that background on a parent element.

CSS Box-Shadow:InsetIt's always nice to be able to add a vignetting effect to photos sans-Photoshop, but the way browsers interpret box-shadow:inset is to throw the shadow behind the image, rendering it invisible. While this seems pretty useless, it does make sense when you consider other kinds of content.

Flexible NavigationAn interesting technique for a navigation that uses only CSS transforms and transitions and no JavaScript.

Circle ZoomA very nice hover effect: the Twitter icon has a circle as a background and the circle increases its radius when the users hovers the mouse over it.

Last ClickCSS3 MemoryA game of memory in which you will have to find three matching cards (as a tribute to the CSS transitions).

CSS 3D Scrolling @ BeerCamp at SXSW 2011Now, that's innovative: while you are scrolling down the page, the site appears to have a 3D scrolling effect. And it has a nice Inception reference. Can you discover it?

50 New Useful CSS Techniques, Tutorials and ToolsThe previous round-up of CSS techniques on Smashing Magazine. In this post we present recently released CSS techniques, tutorials and tools for you to use and enhance your workflow, thus improving your skills.

© Vitaly Friedman for Smashing Magazine, 2011. | Permalink | Post a comment | Smashing Shop | Smashing Network | About Us Post tags: CSS 
]]></description>
<dc:subject>Coding CSS</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:5dad48dfaa8e/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:CSS"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.smashingmagazine.com/2011/02/11/the-bright-near-future-of-css/">
    <title>The Bright (Near) Future of CSS</title>
    <dc:date>2011-02-11T14:50:20+00:00</dc:date>
    <link>http://www.smashingmagazine.com/2011/02/11/the-bright-near-future-of-css/</link>
    <dc:creator>alexhansford</dc:creator><description><![CDATA[    This article is an excerpt from Eric Meyer’s recent book Smashing CSS, published by Wiley in cooperation with Smashing Magazine.
In this article, the focus is on what’s coming: styling techniques you’ll use in the immediate and near-term future. From styling HTML 5 elements to rearranging layout based on display parameters to crazy selection patterns to transforming element layout, these are all techniques that you may use tomorrow, next month, or next year. With partial browser support, they’re all on the cutting edge of Web design.
Accordingly, be careful not to get cut! A number of useful sites can help you figure out the exact syntaxes and patterns you need to use these techniques.
Furthermore, a number of JavaScript libraries can extend support for advanced CSS back into older browsers, in some cases as far back as IE/Win 5.5. Some are very narrowly focused on certain browser families, whereas others are more broadly meant to allow support in all known browsers. These can be useful in cases where your visitors haven’t quite caught up with the times but you don’t want them to miss out on all the fun. (Some of these libraries are CSS3 PIE, cssSandpaper, :select[ivizr], ie7-js, eCSStender).
There are also a good many CSS enhancements available as plug-ins for popular JavaScript libraries such as jQuery. If you’re a user of such a library, definitely do some digging to see what’s been created. Again: Be careful! While these techniques are powerful and can deliver a lot of power to your pages, you need to test them thoroughly in the browsers of the day to make sure you didn’t just accidentally make the page completely unreadable in older browsers.
Styling HTML 5Styling HTML 5 is really no different than styling HTML 4. There are a bunch of new elements, but styling them is basically the same as styling any other element. They generate the same boxes as any other div, span, h2, a, or what have you.
The HTML 5 specification is still being worked on as of this writing, so this may change a bit over time, but the following declarations may be of use to older browsers that don’t know quite what to do with the new elements.

article, aside, canvas, details, embed, figcaption, figure, footer, header, hgroup, menu, nav, section, summary {
display: block;
}
command, datalist, keygen, mark, meter, progress, rp, rt, ruby, time, wbr {
display: inline;
}
You may have noticed that I left out two fairly important new elements: audio and video. That’s because it’s hard to know exactly how to treat them. Block? Inline? All depends on how you plan to use them. Anyway, you can place them in the declaration that makes the most sense to you.
But what about really old browsers, like IE6? (Note I said “old,” not “unused.” In an interesting subversion of popular culture, browser popularity has very little to do with age.) For those, you need to use a bit of JavaScript in order to get the browser to recognize them and therefore be able to style them. There’s a nice little script that auto-forces old versions of IE to play nicely with HTML 5 elements. If you’re going to use and style them, you should definitely grab that script and put it to use.
Once you’ve gotten your browser ducks in a row and quacking “The Threepenny Opera,” you can get down to styling. Remember: There’s really nothing new about styling with these new elements. For example:

figure {
float: left;
border: 1px solid gray;
padding: 0.25em;
margin: 0 0 1.5em 1em;
}
figcaption {
text-align: center;
font: italic 0.9em Georgia, "Times New Roman", Times, serif;
}


    <img src="splash.jpg" alt="A toddler’s face is obscured by a rippled and dimpled wall of water thrown up by her hands slapping into the surface of the swimming pool in whose waters she sits.">
SPLASH SPLASH SPLASH!!!

Figure 7-1: A styled HTML 5 figure and figure caption.
Classing like HTML 5Perhaps you like the new semantics of HTML 5, but you’re just not ready to take your sites to full-on HTML 5. Maybe your site’s user base is mostly older browsers and you’d rather stick to known quantities like HTML 4 or XHTML. Not to worry: You can have the best of both worlds with the venerable class attribute.
This approach was documented by Jon Tan in his article. The basic idea is to use old-school elements like div and span, and add to them classes that exactly mirror the element names in HTML 5. Here’s a code example.

.figure {
float: left;
border: 1px solid gray;
padding: 0.25em;
margin: 0 0 1.5em 1em;
}
.figcaption {
text-align: center;
font: italic 0.9em Georgia, "Times New Roman", Times, serif;
}


    <img src="spring.jpg" alt="A small child with twin pigtail braids, her back to the camera, swings away from the camera on a playground swingset while the late afternoon sun peeks over the crossbar of the swingset.">
    <div class="figcaption">Swinging into spring.</div>

Figure 7-2: A styled HTML 4-classed figure and figure caption.
If you compare the styles there to those found in the preceding section, you’ll see that the only difference is that the names figure and figcaption are preceded by periods — thus marking them as class names. The markup is a little different, of course, though it’s the same basic structure.
The advantage of this approach is that if you have these styles in place at the point when you decide you can convert to HTML 5, then all you need to do is change your markup to use HTML 5 elements instead of classed divs and then strip off the periods to turn the class selectors into element selectors. That’s it. Easy as cake!
Media QueriesThis could honestly be its own article, or possibly even its own book. Thus, what follows will necessarily be just a brief taste of the possibilities. You should definitely follow up with more research, because in a lot of ways this is the future of Web styling.
The point of media queries is to set up conditional blocks of styles that will apply in different media environments. For example, you could write one set of styles for portrait displays and another for landscape displays. You might change the colors based on the bit depth of the display. You could change the font based on the pixel density of display. You might even rearrange the page’s layout depending on the width or number of pixels available in the display.
Figure 7-3: A basic three-column layout.
How? Consider some basic layout styles for a three-column layout:

body {
background: #FFF;
color: #000;
    font: small Arial, sans-serif;
}
.col {
position: relative;
    margin: 3em 1%;
    padding: 0.5em 1.5%;
    border: 1px solid #aaa;
    border-width: 1px 1px 0 1px;
float: right;
width: 20%;
}
#two {
width: 40%;
}
#footer {
clear: both;
}
As nice as this might be (in a minimalist sort of way), it is likely to run into trouble on smaller—which is to say, narrower—displays. What if you could magically change to a two-column layout on such displays?
Well, you can. First, restrict the three-column layout to environments that are more than 800 pixels across. This is done by splitting the layout bits into their own declarations:

body {
background: #fff;
color: #000;
    font: small Arial, sans-serif;
}
.col {
position: relative;
    margin: 3em 1%;
    padding: 0.5em 1.5%;
    border: 1px solid #aaa;
    border-width: 1px 1px 0 1px;
}
#footer {
clear: both;
}
.col {
float: right;
width: 20%;
}
#two {
width: 40%;
}
Then wrap those last two declarations in a media query:

@media all and (min-width: 800px) {
    .col {
    float: right;
    width: 20%;
    }
    #two {
    width: 40%;
    }
}
What that says is “the rules inside this curly-brace block apply in all media that have a minimum display width of 800 pixels.” Anything below that, no matter the medium, and the rules inside the block will be ignored. Note the parentheses around the min-width term and its value. These are necessary any time you have a term and value (which are referred to as an expression).
At this point, nothing will really change unless you shrink the browser window until it offers fewer than 800 pixels across to the document. At that point, the columns stop floating altogether.
Figure 7-4: What happens below 800 pixels.
What you can do at this point is write another media-query block of layout rules that apply in narrower conditions. Say you want a two-column layout between 500 and 800 pixels):

@media all and (min-width: 500px) and (max-width: 799px) {
    .col {
    float: left;
    width: 20%;
    }
    #two {
    float: right;
    width: 69%;
    }
    #three {
    clear: left;
    margin-top: 0;
    }
}
Figure 7-5: The reworked layout, which shows between 500 and 800 pixels.
And finally, you can apply some single-column styles for any medium with fewer than 500 pixels of display width:

@media all and (max-width: 499px) {
    #one {
    text-align: center;
    }
    #one li {
    display: inline;
    list-style: none;
padding: 0 0.5em;
border-right: 1px solid gray;
line-height: 1.66;
}
    #one li:last-child {
    border-right: 0;
    }
    #three {
    display: none;
    }
}
Figure 7-6: Single-column layout, which shows below 500 pixels.
Note that in all these queries, layout styles are defined in relation to the display area of the browser window. More generically, they are defined in relation to the display area available to the document in any medium in which it is rendered. That means that if a printer, for example, is used to print the document and it has an available display area 784 pixels wide, then the two-column layout will be for printing.
To restrict the column shifting to screen media only, alter the queries, like so:

@media screen and (min-width: 800px) {...}
@media screen and (min-width: 500px) and (max-width: 799px) {...}
@media screen and (max-width: 499px) {...}
But what if you want the three-column layout used in some non-screen media, like print and TV displays? Then add in those media using commas, like so:

@media print, tv, screen and (min-width: 800px) {...}
@media screen and (min-width: 500px) and (max-width: 799px) {...}
@media screen and (max-width: 499px) {...}
The commas here act as logical ORs, so the first query reads “use these styles on print media OR TV media OR a display area on a screen medium where the display area is 800 pixels or more.”
And if you want the three-column layout used in all non-screen media? Add a statement to the first query using the not modifier saying “anything that isn’t screen.”

@media not screen, screen and (min-width: 800px) {...}
@media screen and (min-width: 500px) and (max-width: 799px) {...}
@media screen and (max-width: 499px) {...}
As before, the comma joins the two in an OR statement, so it reads as “anything not on a screen medium OR a display area on a screen medium where the display area is 800 pixels or more.”
There is also an only modifier, so that a query can say something like only print or only screen and (color). As of this writing, not and only are the only modifiers in media queries.
You aren’t restricted to pixels for the previous queries, by the way. You can use ems, centimeters, or any other valid length unit.
Table 7-1: The base media query terms
TermDescriptionwidthThe width of the display area (e.g., a browser window).heightThe height of the display area (e.g., a browser window).device-widthThe width of the device’s display area (e.g., a desktop monitor or mobile device display).device-heightThe height of the device’s display area.orientationThe way the display is oriented; the two values are portrait and landscape.aspect-ratioThe ratio of the display area’s width to its height. Values are two integers separated by a forward slash.device-aspect-ratioThe ratio of the device display’s width to its height. Values are two integers separated by a forward slash.colorThe color bit-depth of the display device. Values are unitless integers which refer to the bit depth. If no value is given, then any color display will match.color-indexThe number of colors maintained in the device’s “color lookup table.” Values are unitless integers.monochromeApplies to monochrome (or grayscale) devices.resolutionThe resolution of the device display. Values are expressed using units dpi or dpcm.scanThe scanning type of a “TV” media device; the two values are progressive and interlace.gridWhether the device uses a grid display (e.g., a TTY device). Values are 0 and 1.Table 7-1 shows all the query terms that can be used in constructing media queries. Note that almost all of these terms accept min- and max- prefixes (for example, device-height also has min-device-height and max-device-height cousins). The exceptions are orientation, scan, and grid.
Styling Occasional ChildrenThere are times when you may want to select every second, third, fifth, eighth, or thirteenth element in a series. The most obvious cases are list items in a long list or rows (or columns) in a table, but there are as many cases as there are combinations of elements.
Consider one of the less obvious cases. Suppose you have a lot of quotes that you want to float in a sort of grid. The usual problem in these cases is that quotes of varying length can really break up the grid.
A classic solution here is to add a class to every fourth div (because that is what encloses each quote) and then clear it. Rather than clutter up the markup with classes, though, why not select every fourth div?

.quotebox:nth-child(4n+1) {
clear: left;
}
Figure 7-7: The problem with floating variable-height elements.
Figure 7-8: Clearing every fourth child.
A quick explanation of the 4n+1 part:
4n means every element that can be described by the formula 4 times n, where n describes the series 0, 1, 2, 3, 4… .That yields elements number 0, 4, 8, 12, 16, and so on. (Similarly, 3n would yield the series 0, 3, 6, 9, 12… .)But there is no zeroth element; elements start with the first (that is, element number 1). So you have to add + 1 in order to select the first, fifth, ninth, and so forth elements.Yes, you read that right: the :nth-child() pattern starts counting from 0, but the elements start counting from 1. That’s why + 1 will be a feature of most :nth-child() selectors.
The great thing with this kind of selector is that if you want to change from selecting every fourth element to every third element, you need only change a single number.

.quotebox:nth-child(3n+1) {
clear: left;
}
Figure 7-9: Clearing every third child.
That might seem pretty nifty on its own, but it gets better. If you combine this approach with media queries, you get an adaptable grid-like layout.

@media all and (min-width: 75.51em) {
    .quotebox:nth-child(5n+1) {
    clear: left;
    }
}
@media all and (min-width: 60.01em) and (max-width: 75em) {
    .quotebox:nth-child(4n+1) {
    clear: left;
    }
}
@media all and (min-width: 45.51em) and (max-width: 60em) {
    .quotebox:nth-child(3n+1) {
    clear: left;
    }
}
@media all and (min-width: 30.01em) and (max-width: 45.5em) {
    .quotebox:nth-child(2n+1) {
    clear: left;
    }
}
@media all and (max-width: 30em) {
    .quotebox {
    float: none;
    }
}
 
Figure 7-10: Two views of an adaptable floated grid.
Note that this particular set of queries is based on the width of the display area of the browser as measured in ems. That helps make the layout much more adaptable to changes of text size and browser window.
If you’re interested in selecting every other element — let’s say, every other table row — there are some more human alternatives to 2n+1. You can select even-numbered or odd-numbered children using :nth-child(even) and :nth-child(odd), as in this example.

tr:nth-child(odd) {
background: #eef;
}
Styling Occasional ColumnsIt’s easy enough to select alternate table rows for styling, but how about table columns? Actually, that’s just as easy, thanks to the :nth-child and :nth-of-type selectors.
In a simple table with rows consisting of nothing but data cells (those are td elements), you can select every other column like so:

td:nth-child(odd) {
background: #fed;
}
Figure 7-11: Styling the odd-numbered columns.
Want to fill in the alternate ones!

td:nth-child(odd) {
background: #fed;
}
td:nth-child(even) {
background: #def;
}
If you’re after every third, fourth, fifth, or similarly spaced-out interval, then you need the n+1 pattern.

td:nth-child(3n+1) {
background: #edf;
}
Figure 7-12: Styling both odd- and even-numbered columns.
Figure 7-13: Styling every third data column.
That’s all relatively straightforward. Now, what happens when you put a th at the beginning of each row? In one sense, nothing. The columns that are selected don’t change; you’re still selecting the first, fourth, seventh, and so on children of the tr elements. In another sense, the selected columns are shifted, because you’re no longer selecting the first, fourth, seventh, and so on data columns. You’re selecting the third, sixth, and so on data columns. The first column, which is composed of th element, doesn’t get selected at all because the selector only refers to td elements.
Figure 7-14: Disrupting the pattern with row headers.
To adjust, you could change the terms of the :nth-child selector:

td:nth-child(3n+2) {
background: #edf;
}
Alternatively, you could keep the original pattern and switch from using :nth-child to :nth-of-type:

td:nth-of-type(3n+1) {
background: #fde;
}
Figure 7-15: Restoring the pattern by adjusting the selection formula.
Figure 7-16: Restoring the pattern with :nth-of-type.
This works because it selects every nth element of a given type (in this case, td elements) that shares a parent element with the others. Think of it as :nth-child that also skips any elements that aren’t named in the :nth-child selector.
RGB Alpha ColorColor values are probably one of the most familiar things in all of CSS; some people are to the point of being able to estimate a color’s appearance based on its hexadecimal representation. (Go on, try it: #e07713.) It’s not quite as common to use the rgb() notation for colors, but they’re still pretty popular.
In CSS 3, the rgb() notation is joined by rgba() notation. The a part of the value is the alpha, as in alpha channel, as in transparency. Thus you can supply a color that is partly see-through:

.box1 {
background: rgb(255,255,255);
}
.box2 {
background: rgba(255,255,255,0.5);
}
Figure 7-17: Boxes with opaque and translucent RGB backgrounds.
You can also use the percentage form of RGB color values in RGBA:

.box1 {
background: rgb(100%,100%,100%);
}
.box2 {
background: rgba(100%,100%,100%,0.5);
}
The alpha value is always represented as a number between 0 and 1 inclusive, with 0 meaning “no opacity at all” and 1 meaning “fully opaque.” So half-opaque (and thus half-transparent) is 0.5. You can’t put a percentage in there for historical reasons that are too messy to get into here.
If you supply a number outside the 0 to 1 range, it will (in the words of the specification) be “clamped” to the allowed range. So if you give an alpha value of 4.2, the browser will treat it as if you’d written 1. Also, it isn’t clear what should happen when an alpha of 0 is used. Since the color is fully transparent, what will happen to, say, invisible text? Can you select it? If it’s used on a link, is the link clickable? Both are interesting questions with no definitive answers. So be careful.
RGBA colors can be used with any property that accepts a color value, such as color and background-color. To keep older browsers from puking on themselves, it’s advisable to supply a non-alpha color before the alpha color. That would take a form like so:

{
color: #000;
color: rgba(0,0,0,0.75);
}
The older browsers see the first value and know what to do with it. Then they see the second value and don’t know what to do with it, so they ignore it. That way, at least older browsers get black text. Modern browsers, on the other hand, understand both values and thanks to the cascade, override the first with the second.
Note that there is no hexadecimal form of RGBA colors. Thus, you cannot write #00000080 and expect half-opaque black.
HSL and HSL Alpha ColorA close cousin to RGBA values are the HSLA values, and an even closer cousin to them are HSL colors. These are new to CSS 3, and will be a delightful addition to many designers.
For those not familiar with HSL, the letters stand for Hue-Saturation-Lightness. Even if you didn’t know the name, you’ve probably worked with HSL colors in a color picker.
Figure 7-18: An HSL color picker.
The hue is represented as a unitless number corresponding to the hue angle on a color wheel. Saturation and lightness are both percentages, and alpha is (as with RGBA) a number between 0 and 1 inclusive. In practice, you can use HSL colors anywhere a color value is accepted. Consider the following rules, which create the equivalent effect.

.box1 {
background: hsl(0,0%,100%);
}
.box2 {
background: hsla(0,0%,100%,0.5);
}
Figure 7-19: Various HSL color tables.
Figure 7-20: Boxes with opaque and translucent HSL backgrounds.
You can do old-browser fallbacks with regular RGB values, though having to specify an RGB color and then HSL color does sort of detract from the point of using HSL in the first place. HSL allows you to get away from RGB altogether.
Shadowy StylesAh, drop shadows. Remember drop shadows? In the mid-90’s, everything had a drop shadow. Of course, back then the shadows were baked into images and constructed with tables even more tortuously convoluted than usual. Now you can relive the glory days with some fairly simple CSS. There are actually two properties available: text-shadow and box-shadow.
Take the former first. The following CSS will result:

h1 {
text-shadow: gray 0.33em 0.25em 0.1em;
}
The first length (0.33em) indicates a horizontal offset; the second (0.25em), a vertical offset. The third is a blur radius, which is the degree by which the shadow is blurred. These values can use any length unit, so if you want to do all your shadow offsets and blurs in pixels, go to town. Blurs can’t be negative, but offsets can: A negative horizontal offset will push the shadow to the left, and a negative vertical offset will go upward.
Figure 7-21: Dropping shadows from a heading.
You can even have multiple shadows! Of course, whether you should, is a matter of opinion.

h1 {
text-shadow: gray 0.33em 0.25em 0.1em, -10px 4px 7px blue;
}
Note that the color of a shadow can come before all the lengths or after them, whichever you prefer. Note also that the CSS 3 specification says that the first shadow is “on top,” which is closest to you. Shadows after that are placed successively further away from you as you look at the page. Thus, the gray shadow is placed over the top of the blue shadow. Now to shadow boxes. It’s pretty much the same drill, only with a different property name.

h1 {
box-shadow: gray 0.33em 0.25em 0.25em;
}
Figure 7-22: A heading with multiple shadows.
Figure 7-23: Shadowing the element box of a heading.
Even though there’s no obvious element box for the h1, a shadow is generated anyway. It’s also drawn only outside the element, which means that you can’t see it behind/beneath the element, even when the element has a transparent (or, with RGBA colors, semi-transparent) background. The shadows are drawn just beyond the border edge, so you’re probably better off putting a border or a visible background (or both) on any shadowed box.
You can have more than one box shadow, just like you can with text shadows:

h1 {
box-shadow: gray 0.33em 0.25em 0.25em, -10px 2px 6px blue;
}
Figure 7-24: Multiple shadows on the element box of a heading.
Here’s where I have to admit a small fib: The previous examples are the ideal cases. As of this writing, they wouldn’t actually work in browsers. As of mid-2010, to make the single-shadow example work, you’d actually need to say:

h1 {
-moz-box-shadow: gray 0.33em 0.25em 0.25em;
-webkit-box-shadow: gray 0.33em 0.25em 0.25em;
box-shadow: gray 0.33em 0.25em 0.25em;}
That will cover all modern browsers as of mid-2010. Over time, the need for the prefixed properties (-moz- and –webkit-) will fade and you’ll be able to just write the single box-shadow declaration. When exactly will that happen? It all depends on your design, your site’s visitors, and your own sense of comfort.
If you also want to get drop shadows on boxes in older versions of Internet Explorer, then you’ll need to add in the IE-only Shadow filter. Read here to find out more.
Multiple BackgroundsOne of the really nifty things in CSS 3 is its support for multiple background images on a given element. If you’ve ever nested multiple div elements just to get a bunch of background decorations to show up, this section is for you.
Take, for example, this simple set of styles and markup to present a quotation:

body {
background: #c0ffee;
font: 1em Georgia, serif;
padding: 1em 5%;
}
.quotebox {
font-size: 195%;
padding: 80px 80px 40px;
width: 16em;
margin: 2em auto;
border: 2px solid #8d7961;
background: #fff;
}
.quotebox span {
font-style: italic;
font-size: smaller;
display: block;
margin-top: 0.5em;
text-align: right;
}

One’s mind has a way of making itself up in the background, and it suddenly becomes clear what one means to do.
—Arthur Christopher Benson

Figure 7-25: Setting up the quotation’s box.
Now, adding a single background image is no big deal. Everyone has done it about a zillion times.

.quotebox {
background: url(bg01.png) top left no-repeat;
background-color: #fff;
}
Figure 7-26: Adding a single background.
But what if you want a little quarter-wheel in every corner? Previously, you would have nested a bunch of divs just inside the quotebox div. With CSS 3, just keep adding them to the background declaration:

.quotebox {
      background:
             url(bg01.png) top left no-repeat,
             url(bg02.png) top right no-repeat;
      background-color: #fff;
}
Figure 7-27: Applying two backgrounds to the same element.
Commas separate each background value to get multiple backgrounds:
.quotebox {
background:
             url(bg01.png) top left no-repeat,
             url(bg02.png) top right no-repeat,
             url(bg03.png) bottom right no-repeat,
             url(bg04.png) bottom left no-repeat;
      background-color: #fff;
}
Figure 7-28: Applying four backgrounds to a single element.
The effect here is extremely similar to nesting a bunch of divs. It’s just that with CSS 3, you don’t have to bother any more.
That similarity extends into the way background are composited together. You may have noticed that I split out the background-color declaration in order to have a nice flat white behind all the images. But what if you wanted to fold it into the background declaration? Where would you put it? After all, each of these comma-separated values sets up its own background. Put the color in the wrong place, and one or more images will be overwritten by the color.
As it turns out, the answer is the last of the values:

.quotebox {
background:
             url(bg01.png) top left no-repeat,
             url(bg02.png) top right no-repeat,
             url(bg03.png) bottom right no-repeat,
             #fff url(bg04.png) bottom left no-repeat;
}
That’s because the multiple background go from “highest”—that is, closest to you as you look at the page—to “lowest”—furthest away from you. If you put the color on the first background, it would sit “above” all the others.
This also means that if you want some kind of patterned background behind all the others, it needs to come last and you need to make sure to shift any background color to it.

.quotebox {
background:
             url(bg01.png) top left no-repeat,
             url(bg02.png) top right no-repeat,
             url(bg03.png) bottom right no-repeat,
             url(bg04.png) bottom left no-repeat,
             #fff url(bgparch.png) center repeat;
}
Figure 7-29: One element, five backgrounds.
Because of the possible complexities involved, I prefer to split any default background color into its own declaration, as shown earlier. Thus I’d write the preceding as:

.quotebox {
background:
             url(bg01.png) top left no-repeat,
             url(bg02.png) top right no-repeat,
             url(bg03.png) bottom right no-repeat,
             url(bg04.png) bottom left no-repeat,
             url(bgparch.png) center repeat;
      background-color: #fff;
}
When you use the separate property, the color is placed behind all the images and you don’t have to worry about shifting it around if you reorder the images or add new images to the pile.
You can comma-separate the other background properties such as background-image. In fact, an alternate way of writing the preceding styles would be:

.quotebox {
    background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, repeat;
    background-image: url(bg01.png), url(bg02.png), url(bg03.png), url(bg04.png), url(bgparch.png);
    background-position: top left, top right, bottom right, bottom left, center;
    background-color: #fff;
}
Different format, same result. This probably looks more verbose, and in this case it really is, but not always. If you drop the parchment background, then you could simplify the first declaration quite a bit:

.quotebox {
    background-repeat: no-repeat;
    background-image: url(bg01.png), url(bg02.png), url(bg03.png), url(bg04.png);
    background-position: top left, top right, bottom right, bottom left;
    background-color: #fff;
}
Figure 7-30: Similar background, alternate syntax.
Given those styles, none of the background images would be repeated, because the single no-repeat is applied to all the backgrounds that are assigned to the element. The only reason you had to write out all the repeat values before was that the first four have one value and the fifth had another.
And if you were to write two values for background-repeat?

.quotebox {
    background-repeat: no-repeat, repeat-y;
    background-image: url(bg01.png), url(bg02.png), url(bg03.png), url(bg04.png);
    background-position: top left, top right, bottom right, bottom left;
    background-color: #fff;
}
In that case, the first and third images would not be repeated, whereas the second and fourth images would be repeated along the y axis. With three repeat values, they would be applied to the first, second, and third images, respectively, whereas the fourth image would take the first repeat value.
2D TransformsIf you’ve ever wanted to rotate or skew an element, border, and text and all, then this section is definitely for you. First, though, a word of warning: In order to keep things legible, this section uses the unprefixed version of the transform property. As of this writing, doing transforms in a browser actually would require multiple prefixed declarations, like so:

-webkit-transform: …;
-moz-transform: …;
-o-transform: …;
-ms-transform: …;
transform: …;
That should cease to be necessary in a year or two (I hope!) but in the meantime, keep in mind as you read through this section that it’s been boiled down to the unprefixed version for clarity.
Time to get transforming! Possibly the simplest transform to understand is rotation:

.box1 {
-moz-transform: rotate(33.3deg);
}
.box2 {
-moz-transform: rotate(-90deg);
}
Figure 7-31: Rotated element boxes. The red dashes show the original placement of the elements before their rotation.
In a sense, transforming is a lot like relative positioning: The element is placed normally and then transformed. You can transform any element at all, and in the case of rotation can use any real-number amount of degrees, radians, or grads to specify the angle of rotation. If you’ve ever wanted to rotate your blog by e radians or 225 grads, well, now’s your chance.
As you no doubt noticed, the boxes in the preceding example were rotated around their centers. That’s because the default transformation origin is 50% 50%, or the center of the element. You can change the origin point using transform-origin:

.box1 {
transform: rotate(33.3deg);
transform-origin: bottom left;
}
.box2 {
transform: rotate(-90deg);
transform-origin: 75% 0;
}
Figure 7-32: Elements rotated around points other than their centers.
Two notes: First, negative angles can be equivalent to positive angles. Thus, 270deg is equivalent to –90deg in the final positioning of the element, just as 0deg and 360deg are the same. Second, you can specify angles greater than the apparent maximum value. If you declare 540deg, the element’s final rotation will look exactly the same as if you’d declared 180deg (as well as –180deg, 900deg, and so on). The interim result may be different if you also apply transitions (see next section), but the final “resting” state will be equivalent.
Almost as simple as rotation is scaling. As you no doubt expect, this scales an element up or down in size, making it larger or smaller. You can do this consistently along both axes, or to a different degree along each axis:

.box1 {
transform: scale(0.5);
}
.box2 {
transform: scale(0.75, 1.5);
}
Figure 7-33: Scaled elements.
One scale() value means the element will be scaled by that amount along both the x and y axes. If there are two values, the first specifies the horizontal (X) scaling, and the second, the vertical (Y) scaling. Thus, if you want to leave the horizontal axis the same and only scale on the y axis, do this:

.box1 {
transform: scale(0.5);
}
.box2 {
transform: scale(1, 1.5);
}
Alternatively, you can use the scaleY() value:

.box1 {
transform: scale(0.5);
}
.box2 {
transform: scaleY(1.5);
}
Along the same lines is the scaleX() value, which causes horizontal scaling without changing the vertical scaling.

.box1 {
transform: scaleX(0.5);
}
.box2 {
transform: scaleX(1.5);
}
Figure 7-34: Two scaled elements, one scaled only on the Y axis.
Figure 7-35: Two scaled elements, one scaled only on the X axis.
When writing CSS yourself, it seems most convenient to just stick with scale() and fill in a 0 for the horizontal any time you want a purely vertical scaling. If you’re programmatically changing the scaling via DOM scripting, it might be easier to manipulate scaleX() and scaleY() directly.
As with rotation, you can affect the origin point for scaling. This allows you, for example, to cause an element to scale toward its top-left corners instead of shrink down toward its center:

.box1 {
transform: scale(0.5);
transform-origin: top left;
}
.box2 {
transform: scale(1.5);
transform-origin: 100% 100%;
}
Figure 7-36: Two scaled elements, each with a different scaling origin.
Similarly simple is translation. In this case, it isn’t changing the language from one to another, but “translating” a shape from one point to another. It’s an offset by either one or two length values.

.box1 {
transform: translate(50px);
}
.box2 {
transform: translate(5em,10em);
}
Figure 7-37: Translated elements.
Again, this is very much like relative positioning. The elements are placed normally and then transformed as directed. When there’s only one length value in a translate() value, it specifies a horizontal movement and the vertical movement is assumed to be zero. If you just want to translate an element up or down, you have two choices. First is to simply give a length of 0 for the horizontal value.

.box1 {
transform: translate(0,50px);
}
.box2 {
transform: translate(5em,10em);
}
The other is to use the value pattern translateY():

.box1 {
transform: translateY(50px);
}
.box2 {
transform: translate(5em,10em);
}
There is also a translateX(), which does about what you’d expect: moves the element horizontally!
Figure 7-38: Two differently translated elements.
While you can declare a transform-origin in cases where you’re just translating, it doesn’t matter all that much whether you do so. After all, whether an element’s center or top-left corner is pushed 50 pixels to the right doesn’t really matter. The element will end up in the same place either way. But that’s only true if all you’re doing is translating. If you do anything else at the same time, like rotate or scale, then the origin will matter. (More on combining transforms in a bit.)
The last type of transformation, skewing, is slightly more complex, although the method of declaring it is no more difficult than you’ve seen so far.
Skewing an element distorts its shape along one or both axes:

.box1 {
transform: skew(23deg);
}
.box2 {
transform: skew(13deg,-45deg);
}
If you provide only a single value for skew(), then there is only horizontal (X) skew, and no vertical (Y) skew. As with translations and scaling, there are skewX() and skewY() values for those times you want to explicitly skew along only one axis:

.box1 {
transform: skewX(-23deg);
}
.box2 {
transform: skewY(45deg);
}
Figure 7-39: Two skewed elements.
Figure 7-40: Two elements, each one skewed along a different axis.
Here’s how skewing works: Imagine there are two bars running through the element, one along each of the X and Y axes. When you skew in the X direction, the Y axis is rotated by the skew angle. Yes, the Y (vertical) axis is the one that rotates in a skewX() operation. Positive angles are counterclockwise, and negative angles are clockwise. That’s why the first box in the preceding example appears to tilt rightward: The Y axis was tilted 33.3 degrees clockwise.
The same basic thing happens with skewY(): The X axis is tilted by the specified number of degrees, with positive angles tilting it counterclockwise and negative angles tilting clockwise.
The interesting part here is how the origin plays into it. If the origin is in the center and you provide a negative skewX(), then the top of the element will slide to the right of the origin point while the bottom will slide to the left. Change the origin to the bottom of the element, though, and the whole thing will tilt right from the bottom of the element.

.box1 {
transform: skewX(-23deg);
}
.box2 {
transform: skewY(-23deg);
transform-origin: bottom center;
}
Figure 7-41: Two skewed elements, each with a different skewing origin.
Similar effects happen with vertical skews.
So those are the types of transforms you can carry out. But what if you want to do more than one at a time? No problem! Just list them in the order you want them to happen.

.box1 {
transform: translateX(50px) rotate(23deg);
}
.box2 {
transform: scale(0.75) translate(25px,-2em);
}
Figure 7-42: Multiple transforms in action.
In every case, the transforms are executed one at a time, starting with the first. This can make a significant difference. Consider the differing outcomes of the same transforms in different orders.

.box1 {
transform: rotate(45deg) skew(-45deg);
}
.box2 {
transform: skew(-45deg) rotate(45deg);
}
There is one more transformation value type to cover: matrix(). This value type allows you to specify a transformation matrix in six parts, the last two of which define the translation. Here’s a code example:

.box1 {
transform: matrix(0.67,0.23,0,1,25px,10px);
}
.box2 {
transform: matrix(1,0.13,0.42,1,0,-25px);
}
Figure 7-43: The differences caused by transform value ordering.
Figure 7-44: Matrix transforms.
Basically, the first four numbers are a compact form of expressing the end result of rotating, skewing, and scaling an element, and the last two translate that end result. If you understand matrix-transformation math, then you’ll love this. If you don’t, don’t worry about it overmuch. You can get to the same place with the other transform values reviewed in this chapter.
If you’d like to learn about matrix transforms, here are two useful resources:
Examples of Linear Transformation MatricesCoordinate Transformation MatricesAbout the book
Smashing CSS takes you well beyond the basics, covering not only the finer points of layout and effects, but introduces you to the future with HTML5 and CSS3. This book is for developers who already have some experience with CSS and JavaScript and are ready for more advanced techniques.
(vf) (ik)
© Eric Meyer for Smashing Magazine, 2011. | Permalink | Post a comment | Smashing Shop | Smashing Network | About Us Post tags: CSS, css3 
]]></description>
<dc:subject>Coding CSS css3</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:553bf40bf9bc/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:CSS"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css3"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.smashingmagazine.com/2011/01/12/guidelines-for-responsive-web-design/">
    <title>Responsive Web Design: What It Is and How To Use It</title>
    <dc:date>2011-01-12T15:22:27+00:00</dc:date>
    <link>http://www.smashingmagazine.com/2011/01/12/guidelines-for-responsive-web-design/</link>
    <dc:creator>alexhansford</dc:creator><description><![CDATA[    Almost every new client these days wants a mobile version of their website. It’s practically essential after all: one design for the BlackBerry, another for the iPhone, the iPad, netbook, Kindle — and all screen resolutions must be compatible, too. In the next five years, we’ll likely need to design for a number of additional inventions. When will the madness stop? It won’t, of course.
In the field of Web design and development, we’re quickly getting to the point of being unable to keep up with the endless new resolutions and devices. For many websites, creating a website version for each resolution and new device would be impossible, or at least impractical. Should we just suffer the consequences of losing visitors from one device, for the benefit of gaining visitors from another? Or is there another option?
Responsive Web design is the approach that suggests that design and development should respond to the user’s behavior and environment based on screen size, platform and orientation. The practice consists of a mix of flexible grids and layouts, images and an intelligent use of CSS media queries. As the user switches from their laptop to iPad, the website should automatically switch to accommodate for resolution, image size and scripting abilities. In other words, the website should have the technology to automatically respond to the user’s preferences. This would eliminate the need for a different design and development phase for each new gadget on the market.
The Concept Of Responsive Web DesignEthan Marcotte wrote an introductory article about the approach, “Responsive Web Design,” for A List Apart. It stems from the notion of responsive architectural design, whereby a room or space automatically adjusts to the number and flow of people within it:
“Recently, an emergent discipline called “responsive architecture” has begun asking how physical spaces can respond to the presence of people passing through them. Through a combination of embedded robotics and tensile materials, architects are experimenting with art installations and wall structures that bend, flex, and expand as crowds approach them. Motion sensors can be paired with climate control systems to adjust a room’s temperature and ambient lighting as it fills with people. Companies have already produced “smart glass technology” that can automatically become opaque when a room’s occupants reach a certain density threshold, giving them an additional layer of privacy.”
Transplant this discipline onto Web design, and we have a similar yet whole new idea. Why should we create a custom Web design for each group of users; after all, architects don’t design a building for each group size and type that passes through it? Like responsive architecture, Web design should automatically adjust. It shouldn’t require countless custom-made solutions for each new category of users.
Obviously, we can’t use motion sensors and robotics to accomplish this the way a building would. Responsive Web design requires a more abstract way of thinking. However, some ideas are already being practiced: fluid layouts, media queries and scripts that can reformat Web pages and mark-up effortlessly (or automatically).
But responsive Web design is not only about adjustable screen resolutions and automatically resizable images, but rather about a whole new way of thinking about design. Let’s talk about all of these features, plus additional ideas in the making.Adjusting Screen ResolutionWith more devices come varying screen resolutions, definitions and orientations. New devices with new screen sizes are being developed every day, and each of these devices may be able to handle variations in size, functionality and even color. Some are in landscape, others in portrait, still others even completely square. As we know from the rising popularity of the iPhone, iPad and advanced smartphones, many new devices are able to switch from portrait to landscape at the user’s whim. How is one to design for these situations?

In addition to designing for both landscape and portrait (and enabling those orientations to possibly switch in an instant upon page load), we must consider the hundreds of different screen sizes. Yes, it is possible to group them into major categories, design for each of them, and make each design as flexible as necessary. But that can be overwhelming, and who knows what the usage figures will be in five years? Besides, many users do not maximize their browsers, which itself leaves far too much room for variety among screen sizes.
Morten Hjerde and a few of his colleagues identified statistics on about 400 devices sold between 2005 and 2008. Below are some of the most common:

Since then even more devices have come out. It’s obvious that we can’t keep creating custom solutions for each one. So, how do we deal with the situation?
Part of the Solution: Flexible EverythingA few years ago, when flexible layouts were almost a “luxury” for websites, the only things that were flexible in a design were the layout columns (structural elements) and the text. Images could easily break layouts, and even flexible structural elements broke a layout’s form when pushed enough. Flexible designs weren’t really that flexible; they could give or take a few hundred pixels, but they often couldn’t adjust from a large computer screen to a netbook.
Now we can make things more flexible. Images can be automatically adjusted, and we have workarounds so that layouts never break (although they may become squished and illegible in the process). While it’s not a complete fix, the solution gives us far more options. It’s perfect for devices that switch from portrait orientation to landscape in an instant or for when users switch from a large computer screen to an iPad.
In Ethan Marcotte’s article, he created a sample Web design that features this better flexible layout:

The entire design is a lovely mix of fluid grids, fluid images and smart mark-up where needed. Creating fluid grids is fairly common practice, and there are a number of techniques for creating fluid images:
Hiding and Revealing Portions of ImagesCreating Sliding Composite ImagesForeground Images That Scale With the LayoutFor more information on creating fluid websites, be sure to look at the book “Flexible Web Design: Creating Liquid and Elastic Layouts with CSS” by Zoe Mickley Gillenwater, and download the sample chapter “Creating Flexible Images.” In addition, Zoe provides the following extensive list of tutorials, resources, inspiration and best practices on creating flexible grids and layouts: “Essential Resources for Creating Liquid and Elastic Layouts.”
While from a technical perspective this is all easily possible, it’s not just about plugging these features in and being done. Look at the logo in this design, for example:

If resized too small, the image would appear to be of low quality, but keeping the name of the website visible and not cropping it off was important. So, the image is divided into two: one (of the illustration) set as a background, to be cropped and to maintain its size, and the other (of the name) resized proportionally.

<h1 id="logo"><a href="#"><img src="site/logo.png" alt="The Baker Street Inquirer" /></a></h1>
Above, the h1 element holds the illustration as a background, and the image is aligned according to the container’s background (the heading).
This is just one example of the kind of thinking that makes responsive Web design truly effective. But even with smart fixes like this, a layout can become too narrow or short to look right. In the logo example above (although it works), the ideal situation would be to not crop half of the illustration or to keep the logo from being so small that it becomes illegible and “floats” up.Flexible ImagesOne major problem that needs to be solved with responsive Web design is working with images. There are a number of techniques to resize images proportionately, and many are easily done. The most popular option, noted in Ethan Marcotte’s article on fluid images but first experimented with by Richard Rutter, is to use CSS’s max-width for an easy fix.

img { max-width: 100%; }
As long as no other width-based image styles override this rule, every image will load in its original size, unless the viewing area becomes narrower than the image’s original width. The maximum width of the image is set to 100% of the screen or browser width, so when that 100% becomes narrower, so does the image. Essentially, as Jason Grigsby noted,  “The idea behind fluid images is that you deliver images at the maximum size they will be used at. You don’t declare the height and width in your code, but instead let the browser resize the images as needed while using CSS to guide their relative size”. It’s a great and simple technique to resize images beautifully.
Note that max-width is not supported in IE, but a good use of width: 100% would solve the problem neatly in an IE-specific style sheet. One more issue is that when an image is resized too small in some older browsers in Windows, the rendering isn’t as clear as it ought to be. There is a JavaScript to fix this issue, though, found in Ethan Marcotte’s article.
While the above is a great quick fix and good start to responsive images, image resolution and download times should be the primary considerations. While resizing an image for mobile devices can be very simple, if the original image size is meant for large devices, it could significantly slow download times and take up space unnecessarily.
Filament Group’s Responsive ImagesThis technique, presented by the Filament Group, takes this issue into consideration and not only resizes images proportionately, but shrinks image resolution on smaller devices, so very large images don’t waste space unnecessarily on small screens. Check out the demo page here.

This technique requires a few files, all of which are available on Github. First, a JavaScript file (rwd-images.js), the .htaccess file and an image file (rwd.gif). Then, we can use just a bit of HTML to reference both the larger and smaller resolution images: first, the small image, with an .r prefix to clarify that it should be responsive, and then a reference to the bigger image using data-fullsrc.

<img src="smallRes.jpg" data-fullsrc="largeRes.jpg">
The data-fullsrc is a custom HTML5 attribute, defined in the files linked to above. For any screen that is wider than 480 pixels, the larger-resolution image (largeRes.jpg) will load; smaller screens wouldn’t need to load the bigger image, and so the smaller image (smallRes.jpg) will load.
The JavaScript file inserts a base element that allows the page to separate responsive images from others and redirects them as necessary. When the page loads, all files are rewritten to their original forms, and only the large or small images are loaded as necessary. With other techniques, all higher-resolution images would have had to be downloaded, even if the larger versions would never be used. Particularly for websites with a lot of images, this technique can be a great saver of bandwidth and loading time.
This technique is fully supported in modern browsers, such as IE8+, Safari, Chrome and Opera, as well as mobile devices that use these same browsers (iPad, iPhone, etc.). Older browsers and Firefox degrade nicely and still resize as one would expect of a responsive image, except that both resolutions are downloaded together, so the end benefit of saving space with this technique is void.
Stop iPhone Simulator Image ResizingOne nice thing about the iPhone and iPod Touch is that Web designs automatically rescale to fit the tiny screen. A full-sized design, unless specified otherwise, would just shrink proportionally for the tiny browser, with no need for scrolling or a mobile version. Then, the user could easily zoom in and out as necessary.
There was, however, one issue this simulator created. When responsive Web design took off, many noticed that images were still changing proportionally with the page even if they were specifically made for (or could otherwise fit) the tiny screen. This in turn scaled down text and other elements.
 (Image: Think Vitamin | Website referenced: 8 Faces)
Because this works only with Apple’s simulator, we can use an Apple-specific meta tag to fix the problem, placing it below the website’s <head> section. Thanks to Think Vitamin’s article on image resizing, we have the meta tag below:

<meta name="viewport" content="width=device-width; initial-scale=1.0">
Setting the initial-scale to 1 overrides the default to resize images proportionally, while leaving them as is if their width is the same as the device’s width (in either portrait or lanscape mode). Apple’s documentation has a lot more information on the viewport meta tag.Custom Layout StructureFor extreme size changes, we may want to change the layout altogether, either through a separate style sheet or, more efficiently, through a CSS media query. This does not have to be troublesome; most of the styles can remain the same, while specific style sheets can inherit these styles and move elements around with floats, widths, heights and so on.
For example, we could have one main style sheet (which would also be the default) that would define all of the main structural elements, such as #wrapper, #content, #sidebar, #nav, along with colors, backgrounds and typography. Default flexible widths and floats could also be defined.
If a style sheet made the layout too narrow, short, wide or tall, we could then detect that and switch to a new style sheet. This new child style sheet would adopt everything from the default style sheet and then just redefine the layout’s structure.
Here is the style.css (default) content:

/* Default styles that will carry to the child style sheet */

html,body{
   background...
   font...
   color...
}

h1,h2,h3{}
p, blockquote, pre, code, ol, ul{}

/* Structural elements */
#wrapper{
width: 80%;
margin: 0 auto;

background: #fff;
padding: 20px;
}

#content{
width: 54%;
float: left;
margin-right: 3%;
}

#sidebar-left{
width: 20%;
float: left;
margin-right: 3%;
}

#sidebar-right{
width: 20%;
float: left;
}
Here is the mobile.css (child) content:

#wrapper{
width: 90%;
}

#content{
width: 100%;
}

#sidebar-left{
width: 100%;
clear: both;

/* Additional styling for our new layout */
border-top: 1px solid #ccc;
margin-top: 20px;
}

#sidebar-right{
width: 100%;
clear: both;

/* Additional styling for our new layout */
border-top: 1px solid #ccc;
margin-top: 20px;
}

Media QueriesCSS3 supports all of the same media types as CSS 2.1, such as screen, print and handheld, but has added dozens of new media features, including max-width, device-width, orientation and color. New devices made after the release of CSS3 (such as the iPad and Android devices) will definitely support media features. So, calling a media query using CSS3 features to target these devices would work just fine, and it will be ignored if accessed by an older computer browser that does not support CSS3.
In Ethan Marcotte’s article, we see an example of a media query in action:

<link rel="stylesheet" type="text/css"
media="screen and (max-device-width: 480px)"
href="shetland.css" />
This media query is fairly self-explanatory: if the browser displays this page on a screen (rather than print, etc.), and if the width of the screen (not necessarily the viewport) is 480 pixels or less, then load shetland.css.
New CSS3 features also include orientation (portrait vs. landscape), device-width, min-device-width and more. Look at “The Orientation Media Query” for more information on setting and restricting widths based on these media query features.
One can create multiple style sheets, as well as basic layout alterations defined to fit ranges of widths — even for landscape vs. portrait orientations. Be sure to look at the section of Ethan Marcotte’s article entitled “Meet the media query” for more examples and a more thorough explanation.
Multiple media queries can also be dropped right into a single style sheet, which is the most efficient option when used:

/* Smartphones (portrait and landscape) ----------- */
@media only screen
and (min-device-width : 320px)
and (max-device-width : 480px) {
/* Styles */
}

/* Smartphones (landscape) ----------- */
@media only screen
and (min-width : 321px) {
/* Styles */
}

/* Smartphones (portrait) ----------- */
@media only screen
and (max-width : 320px) {
/* Styles */
}
The code above is from a free template for multiple media queries between popular devices by Andy Clark. See the differences between this approach and including different style sheet files in the mark-up as shown in the post “Hardboiled CSS3 Media Queries.”
CSS3 Media QueriesAbove are a few examples of how media queries, both from CSS 2.1 and CSS3 could work. Let’s now look at some specific how-to’s for using CSS3 media queries to create responsive Web designs. Many of these uses are relevant today, and all will definitely be usable in the near future.
The min-width and max-width properties do exactly what they suggest. The min-width property sets a minimum browser or screen width that a certain set of styles (or separate style sheet) would apply to. If anything is below this limit, the style sheet link or styles will be ignored. The max-width property does just the opposite. Anything above the maximum browser or screen width specified would not apply to the respective media query.
Note in the examples below that we’re using the syntax for media queries that could be used all in one style sheet. As mentioned above, the most efficient way to use media queries is to place them all in one CSS style sheet, with the rest of the styles for the website. This way, multiple requests don’t have to be made for multiple style sheets.

@media screen and (min-width: 600px) {
     .hereIsMyClass {
          width: 30%;
          float: right;
     }
}
The class specified in the media query above (hereIsMyClass) will work only if the browser or screen width is above 600 pixels. In other words, this media query will run only if the minimum width is 600 pixels (therefore, 600 pixels or wider).

@media screen and (max-width: 600px) {
     .aClassforSmallScreens {
          clear: both;
  font-size: 1.3em;
     }
}
Now, with the use of max-width, this media query will apply only to browser or screen widths with a maximum width of 600 pixels or narrower.
While the above min-width and max-width can apply to either screen size or browser width, sometimes we’d like a media query that is relevant to device width specifically. This means that even if a browser or other viewing area is minimized to something smaller, the media query would still apply to the size of the actual device. The min-device-width and max-device-width media query properties are great for targeting certain devices with set dimensions, without applying the same styles to other screen sizes in a browser that mimics the device’s size.

@media screen and (max-device-width: 480px) {
     .classForiPhoneDisplay {
          font-size: 1.2em;
     }
}

@media screen and (min-device-width: 768px) {
     .minimumiPadWidth {
          clear: both;
  margin-bottom: 2px solid #ccc;
     }
}
There are also other tricks with media queries to target specific devices. Thomas Maier has written two short snippets and explanations for targeting the iPhone and iPad only:
CSS for iPhone 4 (Retina display)How To: CSS for the iPadFor the iPad specifically, there is also a media query property called orientation. The value can be either landscape (horizontal orientation) or portrait (vertical orientation).

@media screen and (orientation: landscape) {
     .iPadLandscape {
          width: 30%;
  float: right;
     }
}

@media screen and (orientation: portrait) {
     .iPadPortrait {
          clear: both;
     }
}
Unfortunately, this property works only on the iPad. When determining the orientation for the iPhone and other devices, the use of max-device-width and min-device-width should do the trick.
There are also many media queries that make sense when combined. For example, the min-width and max-width media queries are combined all the time to set a style specific to a certain range.

@media screen and (min-width: 800px) and (max-width: 1200px) {
     .classForaMediumScreen {
          background: #cc0000;
          width: 30%;
          float: right;
     }
}The above code in this media query applies only to screen and browser widths between 800 and 1200 pixels. A good use of this technique is to show certain content or entire sidebars in a layout depending on how much horizontal space is available.
Some designers would also prefer to link to a separate style sheet for certain media queries, which is perfectly fine if the organizational benefits outweigh the efficiency lost. For devices that do not switch orientation or for screens whose browser width cannot be changed manually, using a separate style sheet should be fine.
You might want, for example, to place media queries all in one style sheet (as above) for devices like the iPad. Because such a device can switch from portrait to landscape in an instant, if these two media queries were placed in separate style sheets, the website would have to call each style sheet file every time the user switched orientations. Placing a media query for both the horizontal and vertical orientations of the iPad in the same style sheet file would be far more efficient.
Another example is a flexible design meant for a standard computer screen with a resizable browser. If the browser can be manually resized, placing all variable media queries in one style sheet would be best.
Nevertheless, organization can be key, and a designer may wish to define media queries in a standard HTML link tag:

<link rel="stylesheet" media="screen and (max-width: 600px)" href="small.css" />
<link rel="stylesheet" media="screen and (min-width: 600px)" href="large.css" />
<link rel="stylesheet" media="print" href="print.css" />
JavaScriptAnother method that can be used is JavaScript, especially as a back-up to devices that don’t support all of the CSS3 media query options. Fortunately, there is already a pre-made JavaScript library that makes older browsers (IE 5+, Firefox 1+, Safari 2) support CSS3 media queries. If you’re already using these queries, just grab a copy of the library, and include it in the mark-up: css3-mediaqueries.js.
In addition, below is a sample jQuery snippet that detects browser width and changes the style sheet accordingly — if one prefers a more hands-on approach:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>

<script type="text/javascript">
$(document).ready(function(){
$(window).bind("resize", resizeWindow);
function resizeWindow(e){
var newWindowWidth = $(window).width();

// If width width is below 600px, switch to the mobile stylesheet
if(newWindowWidth < 600){ $("link[rel=stylesheet]").attr({href : "mobile.css"}); } // Else if width is above 600px, switch to the large stylesheet else if(newWindowWidth > 600){
$("link[rel=stylesheet]").attr({href : "style.css"});
}
}
});
</script>
There are many solutions for pairing up JavaScript with CSS media queries. Remember that media queries are not an absolute answer, but rather are fantastic options for responsive Web design when it comes to pure CSS-based solutions. With the addition of JavaScript, we can accomodate far more variations. For detailed information on using JavaScript to mimic or work with media queries, look at “Combining Media Queries and JavaScript.”Showing or Hiding ContentIt is possible to shrink things proportionally and rearrange elements as necessary to make everything fit (reasonably well) as a screen gets smaller. It’s great that that’s possible, but making every piece of content from a large screen available on a smaller screen or mobile device isn’t always the best answer. We have best practices for mobile environments: simpler navigation, more focused content, lists or rows instead of multiple columns.

Responsive Web design shouldn’t be just about how to create a flexible layout on a wide range of platforms and screen sizes. It should also be about the user being able to pick and choose content. Fortunately, CSS has been allowing us to show and hide content with ease for years!

display: none;
Either declare display: none for the HTML block element that needs to be hidden in a specific style sheet or detect the browser width and do it through JavaScript. In addition to hiding content on smaller screens, we can also hide content in our default style sheet (for bigger screens) that should be available only in mobile versions or on smaller devices. For example, as we hide major pieces of content, we could replace them with navigation to that content, or with a different navigation structure altogether.
Note that we haven’t used visibility: hidden here; this just hides the content (although it is still there), whereas the display property gets rid of it altogether. For smaller devices, there is no need to keep the mark-up on the page — it just takes up resources and might even cause unnecessary scrolling or break the layout.

Here is our mark-up:

<p class="sidebar-nav"><a href="#">Left Sidebar Content</a> | <a href="#">Right Sidebar Content</a></p>

<div id="content">
<h2>Main Content</h2>
</div>

<div id="sidebar-left">
<h2>A Left Sidebar</h2>

</div>

<div id="sidebar-right">
<h2>A Right Sidebar</h2>
</div>
In our default style sheet below, we have hidden the links to the sidebar content. Because our screen is large enough, we can display this content on page load.
Here is the style.css (default) content:

#content{
width: 54%;
float: left;
margin-right: 3%;
}

#sidebar-left{
width: 20%;
float: left;
margin-right: 3%;
}

#sidebar-right{
width: 20%;
float: left;
}
.sidebar-nav{display: none;}
Now, we hide the two sidebars (below) and show the links to these pieces of content. As an alternative, the links could call to JavaScript to just cancel out the display: none when clicked, and the sidebars could be realigned in the CSS to float below the content (or in another reasonable way).
Here is the mobile.css (simpler) content:

#content{
width: 100%;
}

#sidebar-left{
display: none;
}

#sidebar-right{
display: none;
}
.sidebar-nav{display: inline;}
With the ability to easily show and hide content, rearrange layout elements and automatically resize images, form elements and more, a design can be transformed to fit a huge variety of screen sizes and device types. As the screen gets smaller, rearrange elements to fit mobile guidelines; for example, use a script or alternate style sheet to increase white space or to replace image navigation sources on mobile devices for better usability (icons would be more beneficial on smaller screens).
Below are a couple of relevant resources:
Mobile Web Design Trends For 20097 Usability Guidelines for Websites on Mobile DevicesTouchscreens vs. CursorsTouchscreens are becoming increasingly popular. Assuming that smaller devices are more likely to be given touchscreen functionality is easy, but don’t be so quick. Right now touchscreens are mainly on smaller devices, but many laptops and desktops on the market also have touchscreen capability. For example, the HP Touchsmart tm2t is a basic touchscreen laptop with traditional keyboard and mouse that can transform into a tablet.

Touchscreens obviously come with different design guidelines than purely cursor-based interaction, and the two have different capabilities as well. Fortunately, making a design work for both doesn’t take a lot of effort. Touchscreens have no capability to display CSS hovers because there is no cursor; once the user touches the screen, they click. So, don’t rely on CSS hovers for link definition; they should be considered an additional feature only for cursor-based devices.
Look at the article “Designing for Touchscreen” for more ideas. Many of the design suggestions in it are best for touchscreens, but they would not necessarily impair cursor-based usability either. For example, sub-navigation on the right side of the page would be more user-friendly for touchscreen users, because most people are right-handed; they would therefore not bump or brush the navigation accidentally when holding the device in their left hand. This would make no difference to cursor users, so we might as well follow the touchscreen design guideline in this instance. Many more guidelines of this kind can be drawn from touchscreen-based usability.A Showcase Of Responsive Web DesignBelow we have a few examples of responsive Web design in practice today. For many of these websites, there is more variation in structure and style than is shown in the pairs of screenshots provided. Many have several solutions for a variety of browsers, and some even adjust elements dynamically in size without the need for specific browser dimensions. Visit each of these, and adjust your browser size or change devices to see them in action.
Art Equals Work Art Equals Work is a simple yet great example of responsive Web design. The first screenshot below is the view from a standard computer screen dimension. The website is flexible with browser widths by traditional standars, but once the browser gets too narrow or is otherwise switched to a device with a smaller screen, then the layout switches to a more readable and user-friendly format. The sidebar disappears, navigation goes to the top, and text is enlarged for easy and simple vertical reading.


Think Vitamin With Think Vitamin, we see a similar approach. When on a smaller screen or browser, the sidebar and top bar are removed, the navigation simplifies and moves directly above the content, as does the logo. The logo keeps its general look yet is modified for a more vertical orientation, with the tagline below the main icon. The white space around the content on larger screens is also more spacious and interesting, whereas it is simplified for practical purposes on smaller screens.


8 Faces 8 Faces’ website design is flexible, right down to a standard netbook or tablet device, and expands in content quantity and layout width when viewed on wider screens or expanded browsers. When viewed on narrower screens, the featured issue on the right is cut out, and the content below is shortened and rearranged in layout, leaving only the essential information.


Hicksdesign The Hicksdesign website has three columns when viewed on a conventional computer screen with a maximized browser. When minimized in width, the design takes on a new layout: the third column to the right is rearranged above the second, and the logo moves next to the introductory text. Thus, no content needs to be removed for the smaller size. For even narrower screens and browser widths, the side content is removed completely and a simplified version is moved up top. Finally, the font size changes with the screen and browser width; as the browser gets narrower, the font size throughout gets smaller and remains proportional.


Information Architects Here is a great example of a flexible image. The image in this design automatically resizes after certain “break” points, but in between those width changes, only the side margins and excess white space are altered. On smaller screens and minimized browsers, the navigation simplifies and the columns of navigation at the top fall off. At the design’s smallest version, the navigation simplifies to just a drop-down menu, perfect for saving space without sacrificing critical navigation links.


Garret Keizer The website for Garret Keizer is fully flexible in wider browsers and on larger screens: the photo, logo and other images resize proportionally, as do the headings and block areas for text. At a few points, some pieces of text change in font size and get smaller as the screen or browser gets narrower. After a certain break point, the layout transforms into what we see in the second screenshot below, with a simple logo, introductory text and a simple vertical structure for the remaining content.


Simon Collison With four relatively content-heavy columns, it’s easy to see how the content here could easily be squished when viewed on smaller devices. Because of the easy organized columns, though, we can also collapse them quite simply when needed, and we can stack them vertically when the space doesn’t allow for a reasonable horizontal span. When the browser is minimized or the user is on a smaller device, the columns first collapse into two and then into one. Likewise, the horizontal lines for break points also change in width, without changing the size or style of each line’s title text.


CSS Tricks On the CSS Tricks website, like many other collapsible Web designs, the sidebars with excess content are the first to fall off when the screen or browser gets too narrow. On this particular website, the middle column or first sidebar to the left was the first to disappear; and the sidebar with the ads and website extras did the same when the browser got even narrower. Eventually, the design leaves the posts, uses less white space around the navigation and logo and moves the search bar to below the navigation. The remaining layout and design is as flexible as can be because of its simplicity.


Tee Gallery As one can see, the main navigation here is the simple layout of t-shirt designs, spanning both vertically and horizontally across the screen. As the browser or screen gets smaller, the columns collapse and move below. This happens at each break point when the layout is stressed, but in between the break points, the images just change proportionally in size. This maintains balance in the design, while ensuring that any images (which are essential to the website) don’t get so small that they become unusable.


City Crawlers: Berlin When varied between larger screen sizes and browser widths, this design remains flexible. It also remains flexible after a few layout pieces collapse into a more vertical orientation for small screens and narrow browsers. At first, the introductory image, logo and navigation image links resize proportionally to accommodate variations in screen and browser widths, as do the blocks of content below. The bottom columns of content eventually collapse and rearrange above or below other pieces, until (at the narrowest point) they are all stacked vertically. In the layout for the smallest screen and narrowest browser, the slideshow is left out altogether, the navigation is moved below the logo and other images are also removed.


Ten by Twenty Ten by Twenty is another design that does not resort to changing layout structure at all after certain break points, but rather simplifies responsive Web design by making everything fully flexible and automatically resizing, no matter what the screen or browser width. After a while, the design does stress a bit and could benefit from some rearrangement of content. But overall, the image resizing and flexible content spaces allow for a fairly simple solution that accommodates a wide range of screen sizes.


Hardboiled Web Design On wide screens and browsers, all of the content on this simply designed website is well organized into columns, sidebar and simple navigation up top. It’s a fairly standard and efficient layout. On smaller screens, the sidebar is the first to drop off, and its content is moved below the book previews and essential information. Being limited in space, this design preserves its important hierarchy. Whereas on a wider screen we’d look left to right, on a narrower screen we’d tend to look from top to bottom. Content on the right is moved below content that would appear on the left on a wider screen. Eventually, when the horizontal space is fully limited, the navigation is simplified and stacked vertically, and some repeated or inessential elements are removed.


Teixido This design features a complex layout that looks inspired by a print style. When viewed on a standard wide computer screen, more portfolio pieces are featured and spanned horizontally across the page. As one moves down the page, more graphics and imagery span the space. On a smaller screen, the portfolio piece is cut down to one, and then eventually left out altogether for very small screens and narrow browsers. The visualizations below collapse into fewer columns and more rows, and again, some drop off entirely for very small screens. This design shows a creative and intelligent way to make a not-so-common layout work responsively.


Stephen Caver This design has three main stages at which the design and layout collapse into a more user-friendly form, depending on how wide the screen or browser is. The main image (featuring type) is scaled proportionally via a flexible image method. Each “layout structure” is fully flexible until it reaches a breaking point, at which point the layout switches to something more usable with less horizontal space. The bottom four columns eventually collapse into two, the logo moves above the navigation, and the columns of navigation below are moved on top or below each other. At the design’s narrowest stage, the navigation is super-simplified, and some inessential content is cut out altogether.


Unstoppable Robot Ninja This layout does not change at all; no content is dropped or rearranged; and the text size does not change either. Instead, this design keeps its original form, no matter what the change in horizontal and vertical space. Instead, it automatically resizes the header image and the images for the navigation. The white space, margins and padding are also flexible, giving more room as the design expands and shrinks.


Bureau This is perhaps the simplest example of a responsive Web design in this showcase, but also one of the most versatile. The only piece in the layout that changes with the browser width is the blog post’s date, which moves above the post’s title or to the side, depending on how much horizontal space is available. Beyond this, the only thing that changes is the width of the content area and the margin space on the left and right. Everything is centered, so a sense of balance is maintained whatever the screen or browser width. Because of this design’s simplicity, switching between browser and screen widths is quick and easy.


CSS Wizardry Harry Roberts shows that responsive design can also have quite humble uses. If the user has a large viewport, the website displays three columns with a navigation menu floating on the left. For users with a viewport between 481px and 800px, a narrow version is displayed: the navigation jumps to the top of the site leaving the area for the content column and the sidebar. Finally, the iPhone view displays the sidebar under the content area. Harry also wrote a detailed article about the CSS styles he added to the stylesheet in his article “Media queries, handier than you think“. A nice example of how a couple of simple CSS adjustments can improve the website’s appearance across various devices.

Bryan James This last design by Bryan James shows that responsive Web design need not apply only to static HTML and CSS websites. Done in Flash, this one features a full-sized background image and is flexible up to a certain width and height. As a result of the design style, on screens that are too small, the background image gets mostly hidden and the content can become illegible and squished. Instead of just letting it be, though, a message pops up informing the user that the screen is too small to adequately view the website. It then prompts the user to switch to a bigger screen. One can discuss if the design solution is good or bad in terms of usability, but the example shows that Flash websites can respond to user’s viewport, too.

ConclusionWe are indeed entering a new age of Web design and development. Far too many options are available now, and there will be far too many in the future to continue adjusting and creating custom solutions for each screen size, device and advancement in technology. We should rather start a new era today: creating websites that are future-ready right now. Understanding how to make a design responsive to the user doesn’t require too much learning, and it can definitely be a lot less stressful and more productive than learning how to design and code properly for every single device available.
Responsive Web design and the techniques discussed above are not the final answer to the ever-changing mobile world. Responsive Web design is a mere concept that when implemented correctly can improve the user experience, but not completely solve it for every user, device and platform. We will need to constantly work with new devices, resolutions and technologies to continually improve the user experience as technology evolves in the coming years.
Besides saving us from frustration, responsive Web design is also best for the user. Every custom solution makes for a better user experience. With responsive Web design, we can create custom solutions for a wider range of users, on a wider range of devices. A website can be tailored as well for someone on an old laptop or device as it can for the vast majority of people on the trendiest gadgets around, and likewise as much for the few users who own the most advanced gadgets now and in the years to come. Responsive Web design creates a great custom experience for everyone. As Web designers, we all strive for that every day on every project anyway, right?Further ResourcesResponsive Web Design, A List ApartCSS Media Query for Mobile is Fool’s Gold, Cloud FourDesigning for a Responsive Web with Heuristic Methods, Design ReviverExamples Of Flexible Layouts With CSS3 Media Queries, Zoe Mickley GillenwaterThe Big Web Show #9: Responsive Web Design, 5by5 StudiosHow to Use CSS3 Media Queries to Create a Mobile Version of Your Website, Smashing MagazineApplication: Rapid Prototyping of Adaptive CSS and Responsive Design, ProtoFluidHandcrafted CSS: More Bulletproof Web Design, Dan Cederholm (printed book)Flexible Web Book, Zoe Mickley Gillenwater (printed book)(al) (vf)
© Kayla Knight for Smashing Magazine, 2011. | Permalink | Post a comment | Add to del.icio.us | Digg this | Stumble on StumbleUpon! | Tweet it! | Submit to Reddit | Forum Smashing Magazine Post tags: CSS, elastic layout, flexible layout, fluid layout, mobile design, responsive web design 








]]></description>
<dc:subject>Coding Design CSS elastic_layout flexible_layout fluid_layout mobile_design responsive_web_design</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:0ccde9058936/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:CSS"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:elastic_layout"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:flexible_layout"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:fluid_layout"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:mobile_design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:responsive_web_design"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.webstyleguide.com/">
    <title>Web Style Guide, 2nd Edition</title>
    <dc:date>2006-06-04T15:20:17+00:00</dc:date>
    <link>http://www.webstyleguide.com/</link>
    <dc:creator>alexhansford</dc:creator><dc:subject>Bookmarks Webmaster css delicious-export design reference style usability web webdesign</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:c7c9d7a51707/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Webmaster"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:reference"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:style"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:usability"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdesign"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.webdesignfromscratch.com/">
    <title>Web Design from Scratch - Free web design course - basics, layout, free tutorials, case studies, how to guides and examples</title>
    <dc:date>2006-02-08T21:40:49+00:00</dc:date>
    <link>http://www.webdesignfromscratch.com/</link>
    <dc:creator>alexhansford</dc:creator><description><![CDATA[useful web design principles
]]></description>
<dc:subject>Bookmarks css delicious-export design html tutorial web webdesign</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:4eacb4163dc3/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:html"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:tutorial"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdesign"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.tanfa.co.uk/css/articles/css-box-model.asp">
    <title>CSS Box Model - everything in is the boxes!</title>
    <dc:date>2005-12-09T00:15:08+00:00</dc:date>
    <link>http://www.tanfa.co.uk/css/articles/css-box-model.asp</link>
    <dc:creator>alexhansford</dc:creator><dc:subject>Bookmarks css delicious-export design web webdesign</dc:subject>
<dc:identifier>https://pinboard.in/u:alexhansford/b:0526aaeb8ba7/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:Bookmarks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:delicious-export"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:alexhansford/t:webdesign"/>
</rdf:Bag></taxo:topics>
</item>
</rdf:RDF>