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

<channel>
	<title>CSS Wizardry</title>
	<atom:link href="http://csswizardry.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://csswizardry.com</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Fri, 03 Sep 2010 09:24:17 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Zebra-striping rows and columns</title>
		<link>http://csswizardry.com/2010/08/zebra-striping-rows-and-columns/</link>
		<comments>http://csswizardry.com/2010/08/zebra-striping-rows-and-columns/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 20:54:01 +0000</pubDate>
		<dc:creator>Harry Roberts</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Tables]]></category>
		<category><![CDATA[Usabiliy]]></category>

		<guid isPermaLink="false">http://csswizardry.com/?p=1343</guid>
		<description><![CDATA[Zebra-striping tables is certainly not a new thing; it has been done and discussed for years. They (allegedly) aid usability in reading tabular data by offering the user a coloured means of separating and differentiating rows from one another. I say allegedly, there has been research into their effectiveness, conducted by Jessica Enders over at [...]]]></description>
			<content:encoded><![CDATA[<p><span class="opener"><span>Z</span>ebra-striping</span> tables is certainly not a new thing; it has been done and discussed for years. They (allegedly) aid usability in reading tabular data by offering the user a coloured means of separating and differentiating rows from one another. I say allegedly, there has been research into their effectiveness, conducted by <a href="http://twitter.com/Formulate" title="Jessica Enders on Twitter">Jessica Enders</a> over at <a href="http://www.alistapart.com/articles/zebrastripingdoesithelp/">A List Apart</a> which proved pretty inconclusive.</p>
<p>Striping a table&#8217;s alternate rows couldn&#8217;t be simpler. By programatically adding a class of <code>odd</code> or suchlike to every other <code>&lt;tr&gt;</code> you can then apply styles to this row (usually a pale background colour) and create zebra-stripes. An even better method would be to ditch the extraneous class and use the <code>nth-of-type</code> selector, thus:</p>
<pre><code>tbody tr:nth-of-type(odd){
  background:rgba(255,255,136,0.5); <span class="code-comment">/* Pale yellow with 50% opacity */</span>
}</code></pre>
<p>What the <code>nth-of-type selector</code> is doing here is looking for every odd <code>&lt;tr&gt;</code> in the <code>&lt;tbody&gt;</code>, that is to say the 1st, 3rd, 5th, 7th and so on.</p>
<p>By understanding this, we can apply that logic to create zebra-striped columns, too. Thus:</p>
<pre><code>tbody td:nth-of-type(odd),
thead th:nth-of-type(odd){
  background:rgba(255,255,136,0.5);
}</code></pre>
<p class="marginalia"><b>Above:</b> Here we target every other &lt;th&gt; in the &lt;head&gt;, and &lt;td&gt; in the &lt;tbody&gt;.</p>
<p>We can also combine the two, to create a table where every other row and every other column is striped simultaneously, and by using the <code>rgba()</code> colour declaration we can effectively layer the stripes, therefore showing where they cross over. The code for this simply combines the two:</p>
<pre><code>tbody td:nth-of-type(odd),
tbody tr:nth-of-type(odd),
thead th:nth-of-type(odd){
  background:rgba(255,255,136,0.5);
}</code></pre>
<h2><a href="/demos/zebra-striping/">You wanna see a demo?</a></h2>
<p>Sure thing, <a href="/demos/zebra-striping/">here you go&#8230;</a></p>
<h2>Addendum</h2>
<p class="marginalia">After questions about browser support, I have decided to add a little onto the article&#8230;</p>
<p>The selectors involved here are only supported in CSS3 capable browser, that is to say pretty much anything but Internet Explorer. However, due to zebra-striping&#8217;s negligible benefits and inherently progressive nature, I don&#8217;t feel that it is a feature that is important enough to warrant full cross-browser support. Research shows that tables are just as usable without zebra-striping as with, therefore in IE et al, the user is not receiving a sub-par experience.</p>
<p>Of course if you do want to support Internet Explorer, you can always revert to programmatically adding an <code>odd</code> class to <code>&lt;tr&gt;</code>, <code>&lt;th&gt;</code> and <code>&lt;td&gt;</code> elements.</p>
]]></content:encoded>
			<wfw:commentRss>http://csswizardry.com/2010/08/zebra-striping-rows-and-columns/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Semantics and sensibility</title>
		<link>http://csswizardry.com/2010/08/semantics-and-sensibility/</link>
		<comments>http://csswizardry.com/2010/08/semantics-and-sensibility/#comments</comments>
		<pubDate>Mon, 09 Aug 2010 16:34:46 +0000</pubDate>
		<dc:creator>Harry Roberts</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Markup]]></category>
		<category><![CDATA[Semantics]]></category>

		<guid isPermaLink="false">http://csswizardry.com/?p=1309</guid>
		<description><![CDATA[For a while now, sensible naming conventions and semantics have been confused. Things such as class="left" or class="clear" have been deemed insemantic, whereas in reality, semantics really doesn&#8217;t stretch that far… Let me illustrate with some code examples:
Insemantic code
The following code is just plain wrong, it&#8217;s insemantic, using the wrong elements for the wrong job:
&#60;div [...]]]></description>
			<content:encoded><![CDATA[<p><span class="opener"><span>F</span>or a while</span> now, sensible naming conventions and semantics have been confused. Things such as <code>class="left"</code> or <code>class="clear"</code> have been deemed insemantic, whereas in reality, semantics really doesn&#8217;t stretch that far… Let me illustrate with some code examples:</p>
<h2>Insemantic code</h2>
<p>The following code is just plain wrong, it&#8217;s insemantic, using the wrong elements for the wrong job:</p>
<pre><code>&lt;div class=&quot;nav-link&quot;&gt;&lt;a href=&quot;/&quot;&gt;Home&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;nav-link&quot;&gt;&lt;a href=&quot;/about/&quot;&gt;About&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;page-title&quot;&gt;About&lt;/div&gt;
&lt;div&gt;This is some page text about some stuff...&lt;/div&gt;</code></pre>
<h2>Insensible code</h2>
<p>This code is perfectly semantic, it just uses some silly classes:</p>
<pre><code>&lt;div class=&quot;border&quot;&gt;
  &lt;h2 class=&quot;red&quot;&gt;This is a heading&lt;/h2&gt;
&lt;/div&gt;</code></pre>
<h2>Semantics concerns itself with elements&#8230;</h2>
<p>&#8230;and not the names assigned to them. Using the correct element for the correct job is as far as semantics goes. Standards concerning naming of those elements is all about <em>sensibility</em>.</p>
<p>Semantics sets a standard from which it is very difficult to stray. Headings are marked up with a <code>&lt;h1&ndash;6&gt;</code>, a list with <code>&lt;ul/ol/dl&gt;</code> and so on. You cannot, however, define a convention for naming the IDs and classes of these. <code>&lt;div id=&quot;contact&quot;&gt;</code>, <code>&lt;div id=&quot;kontact&quot;&gt;</code> and <code>&lt;div id=&quot;contact-info&quot;&gt;</code> all bear different names, but are all equally as semantic. All three are examples of semantic <em>and</em> sensible code.</p>
<p>However, take the following examples: <code>&lt;div id=&quot;bottom&quot;&gt;</code>, <code>&lt;div id=&quot;lower-area&quot;&gt;</code> and <code>&lt;div id=&quot;b&quot;&gt;</code>. These examples exhibit semantic code, but with insensible namings.</p>
<h3>Be sensible, for our sake</h3>
<p>Semantics should be adhered no matter what&mdash;web standards are good. Naming however is totally down to you, you can call your elements whatever you wish. <code>&lt;div id=&quot;a&quot;&gt;</code>, <code>&lt;div id=&quot;b&quot;&gt;</code> and <code>&lt;div id=&quot;c&quot;&gt;</code> are all possible, but not sensible.</p>
<blockquote><p>&ldquo;Always code like you&#8217;re working in a team, even when you&#8217;re not.&rdquo;</p>
</blockquote>
<p>I have actually seen markup like this, and the developer&#8217;s reasoning was <q>&#8216;I like to keep my markup as lean as possible, and I know what <code>a</code>, <code>b</code> and <code>c</code> do&#8217;</q>.</p>
<p>While this is all correct, and passable, it&#8217;s not really very sensible. He might know what <code>a</code>, <code>b</code> and <code>c</code> do, but what about the person who inherits the project? For all his justification of code bloat was somewhat advanced (<em>really</em> decreasing markup size), the impression the next guy to see his code will have will be <q>&#8216;WTF was this guy thinking?!&#8217;</q> Always code like you&#8217;re working in a team, even when you&#8217;re not.</p>
<h2>Final word</h2>
<blockquote><p>&ldquo;An ID/class should be as short as possible but as long as necessary.&mdash;<a href="http://meiert.com/en/blog/20090617/maintainability-guide/">Jens Meiert</a></p>
</blockquote>
<p>Semantics and sensibility are not the same. Anyone who tells you that <code>class=&quot;left&quot;</code> is insemantic is wrong. Be semantic and be sensible. Pick names which are descriptive. An ID/class should be as short as possible but as long as necessary.</p>
]]></content:encoded>
			<wfw:commentRss>http://csswizardry.com/2010/08/semantics-and-sensibility/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Thoughts on Dribbble</title>
		<link>http://csswizardry.com/2010/05/thoughts-on-dribbble/</link>
		<comments>http://csswizardry.com/2010/05/thoughts-on-dribbble/#comments</comments>
		<pubDate>Tue, 11 May 2010 10:56:59 +0000</pubDate>
		<dc:creator>Harry Roberts</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://csswizardry.com/?p=1295</guid>
		<description><![CDATA[For a while I was really gutted I didn&#8217;t have a Dribbble invite, I posted a tweet requesting one, and Drew McLellan gave me one. From the off I was kind of disappointed with it. It&#8217;s just Twitter with screenshots. Anyway, I wrote these thoughts down the other day elsewhere, and I thought I&#8217;d do [...]]]></description>
			<content:encoded><![CDATA[<p><span class="opener"><span>F</span>or a while</span> I was really gutted I didn&#8217;t have a <a href="http://dribbble.com/">Dribbble</a> invite, I posted a tweet requesting one, and <a href="http://twitter.com/drewm" title="Drew McLellan on Twitter">Drew McLellan</a> gave me one. From the off I was kind of disappointed with it. It&#8217;s just Twitter with screenshots. Anyway, I wrote these thoughts down the other day elsewhere, and I thought I&#8217;d do a mini-post to share them more publicly. They are totally unrehearsed, unedited and completely off the cuff:</p>
<blockquote><p>&ldquo;I think it&#8217;s just another place where the more famous designers just pat each other on the back, regardless of what they actually produce.<br />
It&#8217;s too elitist and the more known designers only follow each other, leaving less known people following them but their own work barely been seen. This in turn fuels the cycle&mdash;the famous get more so, while the more humble designers go unnoticed. I am seriously unimpressed with Dribbble&rdquo;</p>
</blockquote>
<p>So, if you&#8217;re really really wanting a Dribbble invite, don&#8217;t worry; you&#8217;re not missing much.</p>
]]></content:encoded>
			<wfw:commentRss>http://csswizardry.com/2010/05/thoughts-on-dribbble/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>On a more personal note&#8230;</title>
		<link>http://csswizardry.com/2010/04/on-a-more-personal-note/</link>
		<comments>http://csswizardry.com/2010/04/on-a-more-personal-note/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 09:50:23 +0000</pubDate>
		<dc:creator>Harry Roberts</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://csswizardry.com/?p=1253</guid>
		<description><![CDATA[Lately, I&#8217;ll admit, I&#8217;ve not been too hot on replying to emails and suchlike. If you have emailed me recently I do apologise, however I&#8217;ve not turned my home PC on in almost two weeks now, and it feels great. I spend eight hours a day in front of my computer at work, and usually [...]]]></description>
			<content:encoded><![CDATA[<p><span class="opener"><span>L</span>ately</span>, I&#8217;ll admit, I&#8217;ve not been too hot on replying to emails and suchlike. If you have emailed me recently I do apologise, however I&#8217;ve not turned my home PC on in almost two weeks now, and it feels great. I spend eight hours a day in front of my computer at <a href="http://venturelab.co.uk/" title="Venturelab website">work</a>, and usually the first thing I do when I get home is turn the computer on there. I could sometimes spend over half of my day sat at a PC.</p>
<p>While I have written <a href="/resources/" title="Resources on CSS Wizardry">several resources</a> in my spare time, and thoroughly enjoyed each, they are very time consuming. The exposure and nice comments they bring are great, but sometimes it&#8217;s hard to keep on putting in hours and hours of work in exchange for a pat on the back&mdash;that&#8217;s why so few people actually take the time to do it.</p>
<p><img src="http://csswizardry.com/wp-content/uploads/2010/04/trials.jpg" alt="A photo of me riding trials, taken by Suzanna Haworth" width="220" height="330" class="left" style="margin-bottom:0;" /></p>
<p class="marginalia" style="clear:both;">Photo by <a href="http://twitter.com/suzehaworth">@suzehaworth</a></p>
<p>So, having gotten back into <a href="http://www.flickr.com/photos/csswizardry/sets/72157617396200602/" title="Me riding trials on Flickr">trials</a> lately, combined with improving weather, I&#8217;m devoting more spare time to that at the moment. Evenings not spent with <a href="http://suzannahaworth.com/">Suze</a> will most likely be spent riding. <em>Not at my PC</em>.</p>
<p>This is not to say I won&#8217;t be writing articles any more, far from it. I love writing articles, and as CSS Wizardry&#8217;s exposure has rocketed recently (thanks to people like yourself) writing articles is even more rewarding than ever, and the quality of the comments and feedback is increasing too. I have article ideas all the time, and will post whenever I have the chance. All that&#8217;s happening at the moment is I&#8217;m stepping back from the PC for a bit, for my health and sanity more than anything. Too much time at the PC can&#8217;t be doing me much good. A result of which is that I haven&#8217;t been on email for a couple of weeks now&#8230;</p>
<p>If you have emailed and it is urgent, I apologise. Please <a href="http://twitter.com/?status=@csswizardry">tweet at me</a> as I&#8217;m always on Twitter. I&#8217;ve also had emails regarding permission to translate <a href="/web-design+/">Web Design+</a>&mdash;if you&#8217;d like to translate it that&#8217;d be great, you have my permission to do so (provided you don&#8217;t pass it off as your own, of course).</p>
<p>Also, regarding freelance work; I shan&#8217;t be undertaking any form of freelance for the foreseeable future, sorry&#8230;</p>
<p>Keep <a href="http://twitter.com/csswizardry">following me on Twitter</a> though, as I&#8217;ll still be posting links and things as ever, and add <a href="/feed/">the CSS Wizardry RSS feed</a> so any articles I do write, you&#8217;ll hear about first.</p>
<p>I&#8217;m not going, just relaxing. And I think you should too. Move away from your computer, get outside and have fun!</p>
<p>Cheers,<br /><i>Harry</i></p>
]]></content:encoded>
			<wfw:commentRss>http://csswizardry.com/2010/04/on-a-more-personal-note/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Building sites without using IDs or classes</title>
		<link>http://csswizardry.com/2010/04/building-sites-without-using-ids-or-classes/</link>
		<comments>http://csswizardry.com/2010/04/building-sites-without-using-ids-or-classes/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 12:17:09 +0000</pubDate>
		<dc:creator>Harry Roberts</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Semantics]]></category>

		<guid isPermaLink="false">http://csswizardry.com/?p=1216</guid>
		<description><![CDATA[This morning, for one reason or another, I decided to have a go at coding up a page without using any IDs or classes in my markup, and therefore none in my CSS. I&#8217;m not sure why I tried it, I guess I just did&#8230; In order to make it a fairly painless job I [...]]]></description>
			<content:encoded><![CDATA[<p><span class="opener"><span>T</span>his</span> morning, for one reason or another, I decided to have a go at coding up a page without using any IDs or classes in my markup, and therefore none in my CSS. I&#8217;m not sure why I tried it, I guess I just did&#8230; In order to make it a fairly painless job I dove straight into the browser and coded up a simple header, footer, two column layout. <a href="/demos/sites-without-ids-classes/">View the demo</a> and be sure to view the source.</p>
<p><span id="more-1216"></span></p>
<p>Using a combination of more advanced selectors such as sibling and <code>nth-of-type</code> you can target elements based on their position in the markup rather than a given name. The practical upshot of this is that your markup is much leaner and cleaner, removing class and ID names has a notable impact.</p>
<h2>Using advanced selectors</h2>
<p class="marginalia">For a complete list please see <a href="http://www.w3.org/TR/css3-selectors/">http://www.w3.org/TR/css3-selectors/</a></p>
<p>The more advanced selectors take information about an element to determine whether it matches a certain criteria, for example <code>body&gt;div</code> will target a <code>div</code> that is a direct and immediate descendant of the <code>body</code>; <code>p+p</code> will target a paragraph immediately preceded by a paragraph.</p>
<p>On this basis, you could select (for example) your main content <code>div</code> by knowing that it&#8217;s the second <code>div</code> in your content wrapper: <code>body&gt;div div:nth-of-type(2)</code>. Broken down we have:</p>
<ul>
<li><code>body</code>&mdash;sets the root</li>
<li><code>&gt;div</code>&mdash;the first <code>div</code> inside the body (the wrapper <code>div</code>)</li>
<li><code>div:nth-of-type(2)</code>&mdash;the second <code>div</code> in the wrapper (just after the header <code>div</code>).</li>
</ul>
<h2>Why I think this won&#8217;t catch on</h2>
<p class="marginalia">For the time being, let&#8217;s completely disregard that Internet Explorer completely disregards these selectors&#8230;</p>
<p>As you can see from the above example, targeting the single, lone, unique content <code>div</code> has taken two advanced selectors and 27 bytes. The selectors are fixed, the content <code>div</code> will always have to be the second <code>div</code> in the <code>div</code> that is an immediate child of the <code>body</code>. This is incredibly restrictive. Surely <code>#content{&hellip;}</code> is far better than <code>body>div div:nth-of-type(2){&hellip;}</code>&hellip;?</p>
<p>For the sake of ease, instead of rambling about pros and cons, I&#8217;ve simply drawn up a list of advantages and disadvantages:</p>
<h3>Advantages:</h3>
<ul>
<li>Leaner markup.</li>
<li>Promotes more sensible structuring of code.</li>
<li>Promotes semantics.</li>
</ul>
<h3>Disadvantages:</h3>
<ul>
<li>Difficult syntaxes to remember.</li>
<li>Extremely restrictive&mdash;elements are styled based on their location meaning that any moving/restructuring means all styles tied to an element are lost. This leads me on to&#8230;</li>
<li>The CSS is no longer just describing style, it also describes structure. CSS is a styling language, not a markup one.</li>
<li>Arbitrary elements such as images and <code>div</code>s that change depending on page content (blog posts for example) aren&#8217;t fixed enough to be styled based on their structure. This means that any variable content will require IDs and classes anyway, so you might as well us them across the board as opposed to a mix of with and without.</li>
<li>Difficult to understand. I wrote <a href="/demos/sites-without-ids-classes/css/style.css">the CSS for the demo page</a> and I&#8217;m having a hard enough time doing the calculations to work out what does what. Imagine inheriting that!</li>
<li>Jenga. As soon as you alter your markup, the structure dependent CSS will come falling down too, what might be the first child might become the second, making the second child the third and so on, creating a domino effect.</li>
</ul>
<h3>Final word</h3>
<p>While the more advanced CSS(3) selectors are impressive, and incredibly powerful, they aren&#8217;t flexible enough to allow any large dependency upon them. That, and they&#8217;re more awkward to understand than the tried and tested ID/class &#8216;hooks&#8217; we know and use. There are far too many downsides to make cleaner markup a big enough plus-side in my opinion&#8230; Oh, and Internet Explorer doesn&#8217;t seem to honour any of them, but that can&#8217;t have come as much of a surprise.</p>
]]></content:encoded>
			<wfw:commentRss>http://csswizardry.com/2010/04/building-sites-without-using-ids-or-classes/feed/</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
		<item>
		<title>I rode through Leeds on a bike with no seat</title>
		<link>http://csswizardry.com/2010/03/i-rode-through-leeds-on-a-bike-with-no-seat/</link>
		<comments>http://csswizardry.com/2010/03/i-rode-through-leeds-on-a-bike-with-no-seat/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 17:13:26 +0000</pubDate>
		<dc:creator>Harry Roberts</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Trials]]></category>

		<guid isPermaLink="false">http://csswizardry.com/?p=1172</guid>
		<description><![CDATA[As well as being a web developer and type geek, I like to bounce around on a bike with no seat&#8230; Trials is something I&#8217;ve been doing for a couple of years now, but I always did it on a smaller mod trials bike, with 20&#8243; wheels. This was okay for a period, but after [...]]]></description>
			<content:encoded><![CDATA[<p><span class="opener"><span>A</span>s well</span> as being a <a href="/web-design+/" title="Link to Web Design+, tips and advice on web standards development">web developer</a> and <a href="/type-tips/" title="Link to Type Tips, all things web typography">type geek</a>, I like to bounce around on a bike with no seat&#8230; Trials is something I&#8217;ve been doing for a couple of years now, but I always did it on a smaller <i>mod</i> trials bike, with 20&Prime; wheels. This was okay for a period, but after a while it became painfully clear that a 6&prime;4&Prime; guy on a bike with small wheels looked remarkably like <a href="http://www.aboutfacesentertainers.com/images/clowns/mayhem/may_g_little_bike.jpg" title="Link to a photo of a clown riding a bike">a clown</a>. So, after six months out of the sport, this week I went to town and forked out £1200+ on a <i>stock</i>, a type of trials bike with 26&Prime; wheels.</p>
<p><span id="more-1172"></span></p>
<p class="marginalia">Oh, and the post title is a reference to <a href="http://open.spotify.com/track/0LfiPrJKVVpnkXUcLLMzOo" title="Spotify link to America&rsquo;s &lsquo;Horse With No Name&rsquo; track">this song</a>.</p>
<p>Today, <a href="http://suzannahaworth.com/" title="Suzanna Haworth Photography">Suze</a> and I decided to head out for a few hours so I could ride, and she could take some pictures with <a href="http://www.flickr.com/photos/suzannahaworth/sets/72157622638120572/" title="Link to Suzanna&rsquo;s iPhone Flickr set">her iPhone</a> (yes, the following were all taken and edited on her iPhone!).</p>
<div class="outdent" style="margin-bottom:24px;"><object width="640" height="480"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=10159173&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=10159173&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="480"></embed></object></div>
<p class="marginalia">Apologies for poor video quality.</p>
<h2>Drop gap</h2>
<p><img src="http://csswizardry.com/wp-content/uploads/2010/03/drop-gap.jpg" alt="A photo of me making a drop gap on a trials bike" /></p>
<h2>Small drop</h2>
<p><img src="http://csswizardry.com/wp-content/uploads/2010/03/small-drop.jpg" alt="A photo of me making a small drop on a trials bike" width="460" height="613" /></p>
<h2>Stoppie</h2>
<p><img src="http://csswizardry.com/wp-content/uploads/2010/03/stoppie-round.jpg" alt="A photo of me doing a stoppie on a trials bike" width="460" height="613" /></p>
<h2>To back wheel</h2>
<p><img src="http://csswizardry.com/wp-content/uploads/2010/03/to-back-wheel.jpg" alt="A photo of me getting onto my back wheel on a wall on a trials bike" width="460" height="613" /></p>
<h2>Gap</h2>
<p><img src="http://csswizardry.com/wp-content/uploads/2010/03/gap.jpg" alt="A photo of me jumping across a gap on a trials bike" width="460" height="613" /></p>
<h2>On top</h2>
<p class="marginalia">I&#8217;d been trying this one for ages. We&#8217;re talking months&#8230;</p>
<p><img src="http://csswizardry.com/wp-content/uploads/2010/03/on-top.jpg" alt="A photo of me hopping on the back wheel on a trials bike" width="460" height="613" /></p>
<p><img src="http://csswizardry.com/wp-content/uploads/2010/03/on-top-bw.jpg" alt="A photo of me hopping on the back wheel on a trials bike (black and white)" width="460" height="613" /></p>
<h2>Going down</h2>
<p class="marginalia">&#8230;gotta get back down after though.</p>
<p><img src="http://csswizardry.com/wp-content/uploads/2010/03/going-down.jpg" alt="A photo of me jumping off a stone structure on a trials bike" width="460" height="613" /></p>
<p><img src="http://csswizardry.com/wp-content/uploads/2010/03/going-down-bw.jpg" alt="A photo of me jumping off a stone structure on a trials bike (black and white)" width="460" height="613" /></p>
<h3>Wait, no seat?</h3>
<p>I know, I know; there&#8217;s no seat. It&#8217;s meant to be like that for a few reasons:</p>
<ol>
<li>The shape of the frame means that the pedals come up to higher than any seat would.</li>
<li>You spend so little time sat down when riding trials that a seat is almost entirely redundant.</li>
<li>The place where a seat would be means it could cause (males in particular) some serious damage.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://csswizardry.com/2010/03/i-rode-through-leeds-on-a-bike-with-no-seat/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>30 days without an iPhone</title>
		<link>http://csswizardry.com/2010/03/30-days-without-an-iphone/</link>
		<comments>http://csswizardry.com/2010/03/30-days-without-an-iphone/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 12:15:17 +0000</pubDate>
		<dc:creator>Harry Roberts</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Insurance]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://csswizardry.com/?p=1077</guid>
		<description><![CDATA[As of 6 February, 2010, I have been without my iPhone. It&#8217;s beenunbelievably difficult for me, as a web developer and geek, toproperly function without it. You do not realise how relianteveryone is upon technology until you lose it. Unsurprisingly it isreally quite hard going from having the whole internet at yourcall and fingertips, to [...]]]></description>
			<content:encoded><![CDATA[<p><span class="opener"><span>A</span>s of</span> 6 February, 2010, I have been without my iPhone. It&#8217;s been<br />unbelievably difficult for me, as a web developer and geek, to<br />properly function without it. You do not realise how reliant<br />everyone is upon technology until you lose it. Unsurprisingly it is<br />really quite hard going from having the whole internet at your<br />call and fingertips, to going to a big, archaic pre-iPhone piece<br />of rubbish. If this experience taught me one thing though, I am<br />very dependent on technology, simply just to wile away the time;<br />even sat in bed, my iPhone was a major part of me seeing what<br />revelations the web had in store.</p>
<p><span id="more-1077"></span></p>
<h2>Do I need an iPhone?</h2>
<p>Of course I don&#8217;t, but I do have one, and that&#8217;s what I&#8217;m used to. However, after a few days I kind of got used to, and almost enjoyed (<em>almost</em>) not being connected to the internet, the internet that I spend 8+ hours a day sat connected to.</p>
<h3>The problem</h3>
<p>Sure, the first few days were okay. And I had bought into a policy whereby the damaged item is replaced in 48 hours. I rang up and was told the it would in fact take 10&ndash;12 days. It took 30. Anyone who owns an iPhone surely knows that that just isn&#8217;t easy.</p>
<p class="marginalia">The insurers name? Read the opening paragraph again, closely ;) Shh&#8230;</p>
<p>Anyway, anyone <a href="http://snapbird.org/csswizardry/timeline/iphone" title="My Tweets including the word 'iPhone'">following</a> <a href="http://snapbird.org/csswizardry/timeline/insurance" title="My Tweets including the word 'insurance'">me</a> <a href="http://twitter.com/csswizardry">on Twitter</a> will know that this whole farce has really wound me up, with error after error on the insurers part. You will also know that I have refused to name them. This was for the sake of professionalism, while ever they were messing around, and I was keeping it amicable, they were 100% in the wrong, nothing could come back to me, nor could my actions influence theirs (i.e. me being rude making them even slower etc.). It didn&#8217;t really work to my advantage, but still, better that than be a rude shouty b*stard to them, eh?</p>
]]></content:encoded>
			<wfw:commentRss>http://csswizardry.com/2010/03/30-days-without-an-iphone/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Thai-po-graph-e</title>
		<link>http://csswizardry.com/2010/03/thai-po-graph-e/</link>
		<comments>http://csswizardry.com/2010/03/thai-po-graph-e/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 09:22:15 +0000</pubDate>
		<dc:creator>Harry Roberts</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Typography]]></category>
		<category><![CDATA[Pictogram]]></category>
		<category><![CDATA[Pointless]]></category>

		<guid isPermaLink="false">http://csswizardry.com/?p=932</guid>
		<description><![CDATA[This is just a silly little something I threw together yesterday. A small pictogram using a map of Thailand, children&#8217;s TV character Po, a graph and the letter e to represent, well, Typography.

Too much time on my hands!
Thai &#8226; Po &#8226; graph &#8226; e
]]></description>
			<content:encoded><![CDATA[<p>This is just a silly little something I threw together yesterday. A small pictogram using a map of Thailand, children&#8217;s TV character <i>Po</i>, a graph and the letter <i>e</i> to represent, well, Typography.</p>
<p><img src="http://csswizardry.com/wp-content/uploads/2010/03/thai-po-graph-e-web.jpg" alt="Pictogram reading Thai-po-graph-e" width="640" height="238" class="full" /></p>
<p class="marginalia">Too much time on my hands!</p>
<p><i>Thai</i> &bull; <i>Po</i> &bull; <i>graph</i> &bull; <i>e</i></p>
]]></content:encoded>
			<wfw:commentRss>http://csswizardry.com/2010/03/thai-po-graph-e/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Moving forward is holding us back</title>
		<link>http://csswizardry.com/2010/03/moving-forward-is-holding-us-back/</link>
		<comments>http://csswizardry.com/2010/03/moving-forward-is-holding-us-back/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 22:03:28 +0000</pubDate>
		<dc:creator>Harry Roberts</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Optimisation]]></category>

		<guid isPermaLink="false">http://csswizardry.com/?p=840</guid>
		<description><![CDATA[For years, web developers have been looking forward to that next feature, that new and monumental shift which has allowed them to break away from the shackles of obsolescence and adopt new and forward thinking technologies. But it is beginning to come full circle&#8212;that thirst for new technology has slowly brought us back to square [...]]]></description>
			<content:encoded><![CDATA[<p><span class="opener"><span>F</span>or</span> years, web developers have been looking forward to that next feature, that new and monumental shift which has allowed them to break away from the shackles of obsolescence and adopt new and forward thinking technologies. But it is beginning to come full circle&mdash;that thirst for new technology has slowly brought us back to square one, reimposing the constraints that we have, for years, tried to rid ourselves of. <em>Moving forward is holding us back</em>.</p>
<p><span id="more-840"></span></p>
<p>Okay, okay. That was a very alarmist intro. There is no web developers&#8217; apocalypse around the corner (not that I know of anyway, please don&#8217;t take anything I say about the apocalypse as read. I don&#8217;t want that responsibility.), nor are we going to have to regress to using tables and spacer GIFs again. The real issue here is that with all this new technology that keeps emerging and exciting web developers is unwittingly reimposing the restrictions of yesteryear&#8230;</p>
<h2>Screen resolutions</h2>
<p class="marginalia">Remember trying to break away from 800&#215;600px?</p>
<p>With the movement toward a more mobile web, screen resolutions are in fact getting smaller. The iPhone&#8217;s maximum resolution is 480px, increasingly popular netbooks are set at about 1024px wide. Such a shift toward mobile and portable devices mean that screen sizes are actually getting <em>smaller</em>.</p>
<p>In my opinion, <a href="http://csswizardry.com/2010/01/iphone-css-tips-for-building-iphone-websites/" title="iPhone CSS&mdash;tips for building iPhone websites">iPhones and other mobile devices should be handled separately</a>, serving them device specific CSS. Netbooks on the other hand are still &#8216;desktop&#8217; machines like any other. Their smallness is their key feature, and at 1024px horizontal resolution, they aren&#8217;t that small anyway&#8230;</p>
<p>With <a href="http://960.gs/">the 960 Grid System</a>, and <a href="http://csswizardry.com/type-tips/#tip-09" title="Type Tip nine: Line Length Matters">an optimum line length of 52&ndash;78 characters</a>, sticking to 1024px shouldn&#8217;t be that difficult anyway. I believe that although desktop monitor sizes are generally getting larger, other equally important technologies are creeping up, and as responsible developers you should cater for them. Sure you may want to start adopting <a href="http://sam.brown.tc/entry/379/the-new-massive-blue" title="A post by Sam Brown on the redesign of Massive Blue">the 1080 grid</a>, which is all well and good if you know your audience, but to cater for the majority, we&#8217;re <em>not ready to burst 1024 yet</em>.</p>
<h2>Connection speeds</h2>
<p class="marginalia">Remember building for 56k dial up connections? (I don&#8217;t)</p>
<p>Where permanent and fixed connections are getting much faster, connections to mobile devices through means such as 3G are <em>much</em> slower. The ability to optimise sites to be fast loading over such connections is getting more important. As edge-case resolutions are getting smaller, edge-case connections are getting slower. Much slower.</p>
<h3>A word on Flash</h3>
<p class="marginalia">Remember <a href="http://www.2advanced.com/">2Advanced</a>? A site of yesteryear&#8230;</p>
<p>Flash seems to be dying a death anyway these days, slowly being superseded by Javascript and Canvas <span xml:lang="la" lang="la" title="and others">et al</span>. However, what was once a fantastically powerful technology has been ousted completely from Apple&#8217;s <i>i</i> products, making in an inviable option for content which needs to be universally accessible.</p>
<h3>A real life example?</h3>
<p>Anyone with an iPhone will know what I mean&mdash;spending any amount of time on an iPhone loading poorly optimised sites is a real grind, and via some sensible optimisation these problems can be easily alleviated.</p>
<p>However, a more interesting example might be the one that happened to myself&#8230; When <a href="http://csswizardry.com/2010/01/pastures-newfrom-sense-to-venturelab/" title="Pastures new&mdash;from Sense to Venturelab">we first started at Venturelab</a> we really were building the company from the ground up. For the first few weeks we were without desktop machines <em>and</em> internet. I was working on a 10.1&Prime; netbook with a screen resolution of 1024&#215;600px, and over a poor 3G connection via a dongle.</p>
<blockquote><p>&ldquo;Accessibility isn&#8217;t just about disabilities, it&#8217;s about varying degrees of ability to access content.&rdquo;</p>
</blockquote>
<p>Working in this manner really made me wonder whether enough people are delivering content in a manner which is accessible on numerous levels. Accessibility isn&#8217;t just about disabilities, it&#8217;s about varying degrees of ability to access content. As responsible developers your content should be accessible through a full spectrum of means and in an acceptable manner.</p>
<p>All it takes is some decent optimisation (which is also set to reap SEO benefits) and a reasonable page layout and you&#8217;re already halfway there.</p>
]]></content:encoded>
			<wfw:commentRss>http://csswizardry.com/2010/03/moving-forward-is-holding-us-back/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>A quick note on border radius</title>
		<link>http://csswizardry.com/2010/03/a-quick-note-on-border-radius/</link>
		<comments>http://csswizardry.com/2010/03/a-quick-note-on-border-radius/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 10:34:55 +0000</pubDate>
		<dc:creator>Harry Roberts</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Border Radius]]></category>
		<category><![CDATA[CSS3]]></category>

		<guid isPermaLink="false">http://csswizardry.com/?p=853</guid>
		<description><![CDATA[This is a quick post concerning the border-radius CSS3 property, and the syntax behind it. After coming across this site earlier today via Twitter I remembered my initial frustrations with lack of uniformity across user agents and their required syntax in order to create round corners; Firefox requiring a different format to Webkit and the [...]]]></description>
			<content:encoded><![CDATA[<p><span class="opener"><span>T</span>his</span> is a quick post concerning the <code>border-radius</code> CSS3 property, and the syntax behind it. After coming across <a href="http://www.border-radius.com/">this site</a> earlier today via <a href="http://twitter.com/csswizardry" title="Harry Roberts on Twitter">Twitter</a> I remembered my initial frustrations with lack of uniformity across user agents and their required syntax in order to create round corners; Firefox requiring a different format to Webkit and the CSS3 spec was pretty annoying.</p>
<p><span id="more-853"></span></p>
<p>However, it&#8217;s not all that bad. As border-radius.com would have you believe, the syntax to create an element with top&ndash;left and bottom&ndash;right corners with a 50px round, and top&ndash;right and bottom&ndash;left corners with 10px rounds would be:</p>
<pre><code>-webkit-border-radius: 50px;
-webkit-border-top-right-radius: 10px;
-webkit-border-bottom-left-radius: 10px;
-moz-border-radius: 50px;
-moz-border-radius-topright: 10px;
-moz-border-radius-bottomleft: 10px;
border-radius: 50px;
border-top-right-radius: 10px;
border-bottom-left-radius: 10px;</code></pre>
<p>Wrong, you can actually use the <code>border-radius</code> shorthand to nail this in three lines:</p>
<pre><code>-moz-border-radius:50px 10px 50px 10px;
-webkit-border-radius:50px 10px 50px 10px;
border-radius:50px 10px 50px 10px;</code></pre>
<p>The sytanx follows the following rule: <code>border-radius:top&ndash;left top&ndash;right bottom&ndash;right bottom&ndash;left;</code>. I&#8217;ve tested this in Firefox (<code>-moz-border-radius</code>), Webkit (<code>-webkit-border-radius</code>) and Opera (<code>border-radius</code>) and <a href="http://csswizardry.com/demos/border-radius/" title="Border radius demo">it works just fine</a>.</p>
<h2><ins datetime="2010-03-02T10:44:38+00:00">Addendum</ins></h2>
<p>You&#8217;d think Webkit would just be Webkit, right? Wrong. This works in Chrome but <em>not</em> Safari. I&#8217;ve had reports that Safari 4.0.4 (I guess it&#8217;s <em>not found it</em>, get it? Oh never mind.) doesn&#8217;t work. Useful&#8230;</p>
<p>Still, this version will work, and is still considerably shorter:</p>
<pre><code>-webkit-border-radius: 50px;
-webkit-border-top-right-radius: 10px;
-webkit-border-bottom-left-radius: 10px;
-moz-border-radius:50px 10px 50px 10px;
border-radius:50px 10px 50px 10px;</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://csswizardry.com/2010/03/a-quick-note-on-border-radius/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
