<?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>Stephan Muller</title>
	<atom:link href="http://www.stephanmuller.nl/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.stephanmuller.nl</link>
	<description>Front-end developer</description>
	<lastBuildDate>Sun, 25 Nov 2012 13:34:54 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Why you should use ems for media queries</title>
		<link>http://www.stephanmuller.nl/ems-relative-media-queries/</link>
		<comments>http://www.stephanmuller.nl/ems-relative-media-queries/#comments</comments>
		<pubDate>Sun, 25 Nov 2012 13:33:02 +0000</pubDate>
		<dc:creator>Stephan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[media queries]]></category>
		<category><![CDATA[responsive]]></category>

		<guid isPermaLink="false">http://www.stephanmuller.nl/?p=571</guid>
		<description><![CDATA[<p>I have bad eyes. Really bad eyes. So even though I wear glasses, often I find myself needing bigger fonts. On my Chromebook that means that I browse with the zoom set to 125% by default. And I&#8217;ve been noticing some bad things in your media queries. We need to talk about that. But let&#8217;s [...]</p><p>The post <a href="http://www.stephanmuller.nl/ems-relative-media-queries/">Why you should use ems for media queries</a> appeared first on <a href="http://www.stephanmuller.nl">Stephan Muller</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>I have bad eyes. Really bad eyes. So even though I wear glasses, often I find myself needing bigger fonts. On my Chromebook that means that I browse with the zoom set to 125% by default. And I&#8217;ve been noticing some bad things in your media queries. We need to talk about that.</p>
<p>But let&#8217;s talk about font sizes first. Or if you&#8217;re already up to date, jump to where I <a href="/ems-relative-media-queries/#mediaqueries">get to the point</a>.<br />
<span id="more-571"></span></p>
<h2>Relative font sizes</h2>
<p>Over the course of the past few years, us webdevelopers have been told over and over again to use relative font sizes. A pixel is a pixel (well <a href="http://www.quirksmode.org/blog/archives/2010/04/a_pixel_is_not.html">not really</a>, but that&#8217;s beside the point here), and using them forces your visitor to try and read things in a certain size they may not be able to handle. So we use <code>em</code>s and percentages that scale along with whatever font size the user needs.</p>
<p>Most browsers have a default font size of circa 16px. If you have a sidebar for example that has a width of 160px, you could write exactly that, or you could use <code>10em</code> &#8211; aka &#8220;10 times the fontsize this element has&#8221;.</p>
<p>Now if a visitor wants to see it all a bit more clearly and they set the font size to say 20px, you can guess what happens: the sidebar that had its width declared in pixels stays at 160px wide, but the one that uses <code>em</code> will now span 200px. The contents still fit in exactly as they did before zooming.</p>
<h2>Responsive design</h2>
<p>After the relative font size trend came the responsive design trend, and it&#8217;s still going strong. Where we got away with making pixel-perfect designs in times past, often served with a &#8220;best viewed in <em>x</em> screen resolution&#8221;, nowadays it&#8217;s all about adapting your design to the size of the visitor&#8217;s browser. And that&#8217;s where media queries come in.</p>
<h2 id="mediaqueries">Media Queries</h2>
<p>Responsive design and media queries go hand in hand. In our stylesheet we query the device or browser size, and if it falls below (or above) a certain treshold, we apply some additional styles.</p>
<p>So we build a site in a big screen first<strong>*</strong>. Say it has two columns, one 640px (40em) wide for content and another one 320px (20em) for the navigation menu. Then we size down the browser until the site doesn&#8217;t look good anymore. In this case that&#8217;s at 960px, at which point the site is wider than the screen.</p>
<p>We add some styles in a media query for <code>min-width: 960px</code> in which we tell the browser to do things differently. We could put that navigation menu above the content instead of next to it, for example.</p>
<p>This all works quite well, but here comes the problem: this breakdown at 960px only works at a zoom level of 100%.  It has become a <a href="http://csswizardry.com/2012/11/code-smells-in-css/">magic number</a>.</p>
<p><strong>* </strong>Some build for the small screen first and then size up, which has it&#8217;s own merits, but hat is a discussion that I don&#8217;t want to go into now.</p>
<h2>Using relative media queries</h2>
<p>Think of it, with the zoom of 125% like I use by default, all these relative elements get bigger. The font size is now not 16px but 20px. The sidebar grows to (20px * 20em = ) 400px. The content column is 800px. This means that the page will start breaking down at a width of 1200px (or 60em), but our media query doesn&#8217;t know that yet. Between the screen widths of 1200px and 900px, <em>your site will not look good</em>.</p>
<p>So to make a long story short, when you use media queries in pixels, you&#8217;re not being fully responsive. Using <code>em</code>s will make sure that your media query adapts itself to your font size or zoom level.</p>
<p>One comment (in <a href="https://twitter.com/RobertoDeVivo/status/272234933953626112">two</a> <a href="https://twitter.com/RobertoDeVivo/status/272235289731268608">parts</a>) I got on Twitter was:</p>
<blockquote><p>What would breakpoints be relative to? Em would mean ppl with large font settings could get a layout meant for smaller viewports, wich could provide a suboptimal user experience. What would you suggest?</p></blockquote>
<p>I disagree though. The whole idea of responsive design is to serve an optimal user experience, no matter the screen size. If I&#8217;m serving someone a layout that was built for smaller screens because they are zoomed, I&#8217;m not providing a suboptimal experience at all, I&#8217;m doing them a favor. Stubbornly showing them the bigger version even though it doesn&#8217;t fit in their screen would be providing a suboptimal experience, I&#8217;d say.</p>
<p>(This is why it&#8217;s also important to not hide content for smaller screens, just re-arrange it. Some website makers seem to think that &#8220;mobile&#8221; users need less content, but since you can never guess their intent anyway this is a bad practice in itself.)</p>
<h2>Some additional notes</h2>
<h3><strong>Zooming and font size</strong></h3>
<p>The <code>em</code>s in the media queries seem to be based on the browser&#8217;s font size, not on that declared in your stylesheet. Even if you set your font-size to 12px at the html element and then use relative sizes onward based on these 12px (as made popular by many reset stylesheets), the media query will use your browser&#8217;s font size of ~16px. What this means for websites with a &#8220;change font size&#8221; button that affects the document&#8217;s font size  I&#8217;m not sure. I have yet to test this.</p>
<p>The zooming that most browsers use nowadays is not just enlarging font-size, but making everything bigger. Come to think of it, it&#8217;s kind of strange that everything grows (even the pixel-based elements) but the media query&#8217;s pixels stay the same. Except in one case:</p>
<h3><strong>Internet Explorer</strong></h3>
<p><strong></strong>To my total surprise, IE9 seems to be the only browser so far that actually scales up the pixel-based media queries automatically when you zoom in. Kudos, IE9! Luckily, that doesn&#8217;t mean em-based media queries don&#8217;t work, so no worries. Use them for the other browsers and IE9 will still handle them equally well.</p>
<h3><strong>Practice what you preach</strong></h3>
<p>While I&#8217;m writing all this, I&#8217;m aware that my website is not yet reflecting my stance, so go ahead, zoom in and see for yourself what&#8217;s going wrong. I have plans to re-write the CSS entirely, but there&#8217;s never enough time. You know how it goes.</p>
<h3>Your thoughts?</h3>
<p>Last of all, please let me know what you think. I might have overlooked some consequences of using relative media queries (although I tried to at least test for side-effects), or maybe the whole premise is broken, but unless you tell me so I&#8217;ll start using ems.</p>
<p>I can be found on <a href="http://twitter.com/Litso_">Twitter</a> and <a href="http://alpha.app.net/litso">App.net</a>, and there&#8217;s also a comment section below.</p>
<p>The post <a href="http://www.stephanmuller.nl/ems-relative-media-queries/">Why you should use ems for media queries</a> appeared first on <a href="http://www.stephanmuller.nl">Stephan Muller</a>.</p><div class='yarpp-related-rss'>
<p>Related posts:</p><ol>
<li><a href='http://www.stephanmuller.nl/responsive/' rel='bookmark' title='On the way to Responsive'>On the way to Responsive</a></li>
<li><a href='http://www.stephanmuller.nl/enable-opera-single-column-view/' rel='bookmark' title='Enable Opera&#8217;s &#8220;Single Column&#8221; view on your site'>Enable Opera&#8217;s &#8220;Single Column&#8221; view on your site</a></li>
<li><a href='http://www.stephanmuller.nl/display-inlineblock-ie7-css-hack/' rel='bookmark' title='Display: inline-block in IE7 (CSS hack)'>Display: inline-block in IE7 (CSS hack)</a></li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.stephanmuller.nl/ems-relative-media-queries/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Enable Opera&#8217;s &#8220;Single Column&#8221; view on your site</title>
		<link>http://www.stephanmuller.nl/enable-opera-single-column-view/</link>
		<comments>http://www.stephanmuller.nl/enable-opera-single-column-view/#comments</comments>
		<pubDate>Mon, 05 Nov 2012 15:07:54 +0000</pubDate>
		<dc:creator>Stephan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[media queries]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[responsive]]></category>

		<guid isPermaLink="false">http://www.stephanmuller.nl/?p=545</guid>
		<description><![CDATA[<p>Last week I got a complaint from a user on a site I work for: for a while now Opera Mobile&#8217;s &#8220;Single Column View&#8221; didn&#8217;t work anymore on our desktop site. I had never even heard of the Single Column View, so I did some research in what it is and how it works. Single [...]</p><p>The post <a href="http://www.stephanmuller.nl/enable-opera-single-column-view/">Enable Opera&#8217;s &#8220;Single Column&#8221; view on your site</a> appeared first on <a href="http://www.stephanmuller.nl">Stephan Muller</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Last week I got a complaint from a user on a site I work for: for a while now Opera Mobile&#8217;s &#8220;Single Column View&#8221; didn&#8217;t work anymore on our desktop site.</p>
<p>I had never even heard of the Single Column View, so I did some research in what it is and how it works.</p>
<p><span id="more-545"></span></p>
<h2>Single Column View</h2>
<p>Apparently, Opera Mobile and Mini have a built-in feature that allows you to view a website on your mobile in one column instead of the default layout.</p>
<div id="attachment_551" class="wp-caption aligncenter" style="width: 289px"><a href="http://www.stephanmuller.nl/wp-content/uploads/2012/11/opera-single-column-view-jira.png"><img class="size-medium wp-image-551 " title="Jira website with Single Column View on (left) and off" src="http://www.stephanmuller.nl/wp-content/uploads/2012/11/opera-single-column-view-jira-279x300.png" alt="Opera's Single Column View of Atlassion.com/jira/" width="279" height="300" /></a><p class="wp-caption-text">Two screenshots of Opera Mobile emulator showing the Jira homepage. Left is the default layout, right is the Single Column View.</p></div>
<p>This is especially useful for pages that are not optimized for mobile, as Opera will try to guess which parts of the site are the main blocks and places them all below each other and fitting them to your screen width, eliminating horizontal scroll.</p>
<p>It&#8217;s not the perfect solution, but especially for pages that would need a lot of zooming in and panning otherwise, it&#8217;s quite a decent alternative.</p>
<h2>media=&#8221;handheld&#8221;</h2>
<p>Obviously, when a website <em>is</em> optimized for mobile, there is no need for a single column view. Opera needs to check whether you&#8217;re already supplying your users with a mobile-friendly layout. The way they do this: they check for the &#8220;handheld&#8221; media type (both the <code>&lt;style media="handheld"&gt;</code> HTML element and the <code>@media handheld</code> CSS variant work). This means that as soon as you&#8217;re using any of those two, Single Column View won&#8217;t work on your site.</p>
<p>Apparently, on our desktop version (we do have a mobile version, with a link back to the desktop version) I used media queries to hide some banners if your screen is too small. One of these is a media query that checks for the &#8220;handheld&#8221; type. Even though those rules don&#8217;t do anything to optimize for mobile except hiding some banners, it destroyed the mobile experience of potentially thousands of visitors each day (depending of course on how many of those use the Single Column View).</p>
<p>In my case, I could easily get rid of the rule because the other max-width media queries already handled the job, but if you&#8217;re seriously using the handheld media type, make sure that your site looks okay in Opera Mobile and Mini because you&#8217;re denying your users a useful built-in usability tool.</p>
<p>On the upside though, I think the &#8220;handheld&#8221; media type is hardly supported anyway so not many people will probably use it. And even then, your site should be responsive nowadays anyway.</p>
<p>The post <a href="http://www.stephanmuller.nl/enable-opera-single-column-view/">Enable Opera&#8217;s &#8220;Single Column&#8221; view on your site</a> appeared first on <a href="http://www.stephanmuller.nl">Stephan Muller</a>.</p><div class='yarpp-related-rss'>
<p>Related posts:</p><ol>
<li><a href='http://www.stephanmuller.nl/browserling-cross-browser-testing/' rel='bookmark' title='Browserling: test your site in different browsers'>Browserling: test your site in different browsers</a></li>
<li><a href='http://www.stephanmuller.nl/responsive/' rel='bookmark' title='On the way to Responsive'>On the way to Responsive</a></li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.stephanmuller.nl/enable-opera-single-column-view/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Make a multiple select box printable in IE9</title>
		<link>http://www.stephanmuller.nl/multiple-select-box-printable-ie9/</link>
		<comments>http://www.stephanmuller.nl/multiple-select-box-printable-ie9/#comments</comments>
		<pubDate>Thu, 25 Oct 2012 10:54:25 +0000</pubDate>
		<dc:creator>Stephan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[browser rendering]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[ie9]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.stephanmuller.nl/?p=530</guid>
		<description><![CDATA[<p>Recently I had to solve a small print bug in IE9 that turned out a lot harder than I thought. In short, the problem is as follows: I have a &#60;select multiple="multiple"&#62; on a page, with enough &#60;option&#62;s in it to have a scrollbar. On the screen this is all fine, but when trying to [...]</p><p>The post <a href="http://www.stephanmuller.nl/multiple-select-box-printable-ie9/">Make a multiple select box printable in IE9</a> appeared first on <a href="http://www.stephanmuller.nl">Stephan Muller</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Recently I had to solve a small print bug in IE9 that turned out a lot harder than I thought. In short, the problem is as follows: I have a <code>&lt;select multiple="multiple"&gt;</code> on a page, with enough <code>&lt;option&gt;</code>s in it to have a scrollbar. On the screen this is all fine, but when trying to print that box in IE9, the overflowing elements are always visible.</p>
<p>Because I wasn&#8217;t able to reproduce it in the browser, here&#8217;s an actual photo of a printed multiple select:</p>
<p><span id="more-530"></span></p>
<div id="attachment_531" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.stephanmuller.nl/wp-content/uploads/2012/10/select.jpg"><img class="size-medium wp-image-531 " title="select multiple" src="http://www.stephanmuller.nl/wp-content/uploads/2012/10/select-300x251.jpg" alt="Multiple select input with overflowing content, printed from IE9" width="300" height="251" /></a><p class="wp-caption-text">Multiple select input with overflowing content, printed from IE9</p></div>
<p>The only <a href="http://stackoverflow.com/q/6202897/124238">question on StackOverflow</a> I could find about it only had one (unaccepted) answer with one upvote at the time. This didn&#8217;t bring much hope. I tried a couple of CSS solutions, but even giving it a negative z-index and putting a div with a background color and a higher z-index below it wouldn&#8217;t hide the overflowing content. Maybe there&#8217;s some very elaborate CSS trick to fix it, but instead I went for a jQuery solution.</p>
<p>The script does a few simple things: when called (and the browser is IE), it recreates the content of the <code>&lt;select multiple&gt;</code> but puts it in a <code>&lt;div&gt;</code> instead, transforming each <code>&lt;option&gt;</code> into a checkbox with a label. The checkboxes are hidden, but allow me to easily copy the selected state of each of the options.</p>
<p>A few simple CSS rules serve to recreate the look and feel of the multiple select element as possible. The script also copies the classes on the select onto the div, so that you&#8217;re able to style it a bit more.</p>
<p><strong>The script</strong></p>
<pre>//jQuery required
$(function() {
  if($.browser.msie) return false;
  $('select[multiple]').each(function() {
    $lPrintableDiv = $('&lt;div data-for="' + this.id + '" /&gt;').addClass($(this).attr('class')).addClass('printable');

    //update printable on changes
    $(this).after($lPrintableDiv).change(function($aEvent){
      updatePrintable($aEvent.target);
    });

    //run once on load
    updatePrintable(this);
  });
});

function updatePrintable($aTarget) {
  var $lSelect = $($aTarget);
  var $lSelected = $($aTarget).val();
  var $lPrintable = $('[data-for="'+$aTarget.id+'"]');

  $($lPrintable).width($lSelect.width()).height($lSelect.height());
  $($lPrintable).html('');

  $($aTarget).children().each(function($lElm){
    $lVal = $(this).val();
    $lLabel = $('&lt;label /&gt;').text($lVal);
    $lOption = $('&lt;input type="checkbox" /&gt;').val($lVal);

    if($(this).is(':selected'))
    $lOption.prop('checked', true);

    $lPrintable.append($lOption).append($lLabel);
  });
}</pre>
<p><strong> The styles</strong></p>
<pre>.printable {
    border: 1px solid grey;
    display: none;
    overflow: auto;
}

    .printable label {
        display: block;
        font: .8em sans-serif;
        overflow: hidden;
        white-space: nowrap;
    }

    .printable [type="checkbox"] {
        display: none;
    }

    .printable [type="checkbox"]:checked + label {
        background: #3399ff;
        color: white;
    }

@media print {
    select[multiple] { display: none; }
    .printable { display: inline-block; }
    .printable [type="checkbox"]:checked + label { background: grey; }
}</pre>
<p>This will style the div just like a regular multiple select, and only show it when you&#8217;re in print mode.</p>
<p>And of course, here&#8217;s a <a href="http://jsfiddle.net/tTqvp/1/">jsFiddle demo</a> for you to play around with. I commented out the display: none for the printable element so that you can see how it behaves as you update the selections. Comment out the second rule in the JavaScript to be able to test it in another browser than IE.</p>
<p>The post <a href="http://www.stephanmuller.nl/multiple-select-box-printable-ie9/">Make a multiple select box printable in IE9</a> appeared first on <a href="http://www.stephanmuller.nl">Stephan Muller</a>.</p><div class='yarpp-related-rss'>
<p>Related posts:</p><ol>
<li><a href='http://www.stephanmuller.nl/display-inlineblock-ie7-css-hack/' rel='bookmark' title='Display: inline-block in IE7 (CSS hack)'>Display: inline-block in IE7 (CSS hack)</a></li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.stephanmuller.nl/multiple-select-box-printable-ie9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>12 Web People you should follow on App.net</title>
		<link>http://www.stephanmuller.nl/12-web-people-follow-app-net/</link>
		<comments>http://www.stephanmuller.nl/12-web-people-follow-app-net/#comments</comments>
		<pubDate>Tue, 23 Oct 2012 09:39:55 +0000</pubDate>
		<dc:creator>Stephan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[app.net]]></category>
		<category><![CDATA[people]]></category>
		<category><![CDATA[Social media]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.stephanmuller.nl/?p=505</guid>
		<description><![CDATA[<p>While I&#8217;m still exploring App.net it I&#8217;m trying to find some more developers to follow there. The reason I really started to dig Twitter is the amount of discussions and shared links about the stuff that I work with all day, and I hope to continue that on ADN as well. I thought it might [...]</p><p>The post <a href="http://www.stephanmuller.nl/12-web-people-follow-app-net/">12 Web People you should follow on App.net</a> appeared first on <a href="http://www.stephanmuller.nl">Stephan Muller</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>While I&#8217;m still exploring App.net it I&#8217;m trying to find some more developers to follow there. The reason I really started to dig Twitter is the amount of discussions and shared links about the stuff that I work with all day, and I hope to continue that on ADN as well.</p>
<p>I thought it might be a good idea to share them, until some better tools are built to find like-minded people, so here they are:</p>
<p><strong>Andy Clarke</strong> (<a href="https://alpha.app.net/malarkey">@malarkey</a>)<br />
Designer, speaker, author of &#8220;Transcending CSS&#8221; and &#8220;Hardboiled Web Design&#8221;.</p>
<p><strong>Anil Dash</strong> (<a href="https://alpha.app.net/anildash">@anildash</a>)<br />
Blogger, entrepreneur and technologist. Generally has a lot of useful things to share.</p>
<p><strong>Ethan Marcotte</strong> (<a href="https://alpha.app.net/beep">@beep</a>)<br />
Web designer and developer, writer of &#8220;Responsive Web Design&#8221; (which started the whole RWD hype we&#8217;re currently in the middle of).</p>
<p><strong>Jason Santa Maria</strong> (<a href="https://alpha.app.net/jasonsantamaria">@jasonsantamaria</a>)<br />
Designer, creative director of Typekit and A List Apart, co-founder of A Book Apart.</p>
<p><strong>Jeffrey Zeldman</strong> (<a href="https://alpha.app.net/zeldman">@zeldman</a>)<br />
The Godfather of web standards. Also web designer, entrepeneur, writer of &#8220;Designing with Web Standards&#8221;, founder of A List Apart and An Event Apart, co-host of The Big Web Show.</p>
<p><strong>Jonathan Snook</strong> (<a href="https://alpha.app.net/snookca">@snookca</a>)<br />
Web designer and developer, writer of &#8220;Scalable and Modular CSS&#8221;.</p>
<p><strong>Marco Arment</strong> (<a href="https://alpha.app.net/marco">@marco</a>)<br />
Web- and iOS developer, founder of Instapaper, co-founder of Tumblr.</p>
<p><strong>Mat Marquis</strong> (<a href="https://alpha.app.net/wilto">@wilto</a>)<br />
Web designer and developer, part of the jQuery Mobile team. Also quite funny.</p>
<p><strong>Michael Heilemann</strong> (<a href="https://alpha.app.net/heilemann">@heilemann</a>)<br />
Interface designer, created the Kubrick theme for WordPress (the default theme on versions 1.5 &#8211; 2.9).</p>
<p><strong>Peter-Paul Koch</strong> (<a href="https://alpha.app.net/ppk">@ppk</a>)<br />
Mobile platform strategist, browser compatibility expert, founder of Quirksmode.org</p>
<p><strong>Roy Tomeij</strong> (<a href="https://alpha.app.net/roy">@roy</a>)<br />
Front-end architect, entrepeneur, writer of &#8220;Modular Front-End&#8221;.</p>
<p>&nbsp;</p>
<p>Bonus: a list of people possibly worth following but inactive on App.net right now. They might start posting interesting stuff in the future. Or not.</p>
<p><strong>Chris Coyier</strong> (<a href="https://alpha.app.net/chriscoyier">@chriscoyier</a>)<br />
Designer, founder of CSS-tricks.com, author of &#8220;Digging into WordPress&#8221;.</p>
<p><strong>Dan Cederholm</strong> (<a href="https://alpha.app.net/simplebits">@simplebits</a>)<br />
Web designer, author of several books on CSS, co-founder of Dribbble.</p>
<p><strong>Dylan Wilbanks</strong> (<a href="https://alpha.app.net/dylanw">@dylanw</a>)<br />
Web developer and UX designer, plays the part of &#8220;Moose&#8221; in the &#8220;Squirrel and Moose&#8221; podcast with cssquirrel.</p>
<p><strong>Erin Kissane</strong> (<a href="https://alpha.app.net/kissane">@kissane</a>)<br />
Writer, editor and content strategist, wrote &#8220;The Elements of Content Strategy&#8221;. Former editor of A List Apart.</p>
<p><strong>Luke Wroblewski</strong> (<a href="https://alpha.app.net/lukew">@lukew</a>)<br />
Digital product designer, writer of &#8220;Web Form Design&#8221; and &#8220;Site-Seeing: A Visual Approach to Web Usability&#8221;.</p>
<p><strong>Matt Mullenweg</strong> (<a href="https://alpha.app.net/photomatt">@photomatt</a>)<br />
Co-founder of WordPress.</p>
<p>Did I miss some interesting people? As always, let me know in the comments, on <a href="http://twitter.com/litso_">Twitter</a> or on <a href="http://alpha.app.net/litso">App.net</a>!</p>
<p>The post <a href="http://www.stephanmuller.nl/12-web-people-follow-app-net/">12 Web People you should follow on App.net</a> appeared first on <a href="http://www.stephanmuller.nl">Stephan Muller</a>.</p><div class='yarpp-related-rss yarpp-related-none'>
<p>No related posts.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.stephanmuller.nl/12-web-people-follow-app-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rivr vs Rhino, a comparison of  free app.net clients</title>
		<link>http://www.stephanmuller.nl/review-rivr-vs-rhino-a-comparison-of-app-net-clients/</link>
		<comments>http://www.stephanmuller.nl/review-rivr-vs-rhino-a-comparison-of-app-net-clients/#comments</comments>
		<pubDate>Sat, 20 Oct 2012 17:39:52 +0000</pubDate>
		<dc:creator>Stephan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[app.net]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[iOs]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Social media]]></category>

		<guid isPermaLink="false">http://www.stephanmuller.nl/?p=486</guid>
		<description><![CDATA[<p>A couple of days ago I decided to join app.net, the new ad-free social network you have to pay for to join (yeah, you read that right). I won&#8217;t go into detail why as there&#8217;s already plenty of blogs roughly voicing my reasons to do so. Instead, I want to compare two free iOS apps [...]</p><p>The post <a href="http://www.stephanmuller.nl/review-rivr-vs-rhino-a-comparison-of-app-net-clients/">Rivr vs Rhino, a comparison of  free app.net clients</a> appeared first on <a href="http://www.stephanmuller.nl">Stephan Muller</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>A couple of days ago I decided to join <a href="http://app.net">app.net</a>, the new ad-free social network you have to pay for to join (yeah, you read that right). I won&#8217;t go into detail why as there&#8217;s already <a href="http://joshuairish.tumblr.com/post/32854503841/why-i-paid-50-to-join-app-net">plenty</a> <a href="http://www.timmmmyboy.com/2012/08/why-i-joined-app-net/">of</a> <a href="http://www.readwriteweb.com/archives/five-reasons-to-join-appnet-now.php">blogs</a> roughly voicing my reasons to do so. Instead, I want to compare two free iOS apps that are currently available to access the network: Rhino and Rivr.</p>
<p>A small disclaimer: app.net and its clients are all still very young, and a lot of changes are bound to happen in the near future. This is just an early comparison of apps that are still in their development stages. Updates on this post will follow.</p>
<p><span id="more-486"></span></p>
<h2><a href="http://itunes.apple.com/app/appnet-rhino/id554821337?mt=8">Rhino</a></h2>
<p><strong>AppNet Rhino</strong> is the first free app I could find in the iOS App Store. As the app.net API itself is still very young and its web client dubbed &#8220;alpha&#8221; is still quite basic, so is Rhino.</p>
<h3>The screens</h3>
<p>There&#8217;s currenty four screens: timeline, mentions, global stream and profile.</p>
<div class="wp-caption aligncenter" style="width: 330px"><a href="http://www.stephanmuller.nl/wp-content/uploads/2012/10/20121020-1418101.jpg"><img class="size-full " src="http://www.stephanmuller.nl/wp-content/uploads/2012/10/20121020-1418101.jpg" alt="AppNet Rhino: Timeline" width="320" height="480" /></a><p class="wp-caption-text">Timeline in Rhino</p></div>
<p>Honestly there&#8217;s really not much more to the web client, so this covers most of what&#8217;s to do on App.net, but there is some things in these screens that I&#8217;m missing.</p>
<p>First of all, I can&#8217;t swipe between screens. Maybe this is because a left-to-right swipe on a post gives you more options (like replying and reposting, something I hadn&#8217;t found out until after i made that screenshot), but it&#8217;s still something I try to do out of habit. When swiping right-to-left instead it registers as a tap on the post I touched and tries to reply to it. Kind of annoying, but I&#8217;ll overcome.</p>
<p>Another thing that kind of bugs me is that the app loads on the global screen every time, and has to load it before I can go to my timeline, which is where I&#8217;ll want to be most of the times. A &#8216;default screen&#8217; option would be nice.</p>
<h3>What does what?</h3>
<p>Also confusing at times is what is going to happen when you tap something. The first three posts in my screenshot have a yellow corner, meaning they&#8217;re part of a conversation. Tapping it will show the conversation, but it starts at the top showing the newest replies first. To read the conversation chronologically you have to scroll down and then read from bottom to top.</p>
<p>Tapping any of the posts in that conversation opens a reply-screen where only the person whose post you tapped is mentioned, but the reply still shows up in the original conversation, even if you&#8217;re not mentioning the OP. This might be just how app.net works but I found it rather confusing.</p>
<p>Tapping a non-conversation post will open a reply-screen that starts a conversation immediately, which is logical. That&#8217;s good.</p>
<p>Then there&#8217;s other people&#8217;s profiles. Basic as they are they&#8217;re pretty self-explanatory. Except for the eye-icon; it mutes the user. You&#8217;ll only learn that by trial and error. But maybe I&#8217;m nitpicking.</p>
<div class="wp-caption aligncenter" style="width: 330px"><a href="http://www.stephanmuller.nl/wp-content/uploads/2012/10/20121020-143732.jpg"><img class="size-full " src="http://www.stephanmuller.nl/wp-content/uploads/2012/10/20121020-143732.jpg" alt="AppNet Rhino: Profile page" width="320" height="480" /></a><p class="wp-caption-text">Profile in Rhino</p></div>
<h3>Missing functionalities</h3>
<p>What I&#8217;m missing most though are two basic functionalities: profile editing and search.</p>
<p>Search really is something that yet has to flesh out all across app.net. Even web client Alpha has just a very basic search page that doesn&#8217;t work anything as well as for example Twitters search. In addition there&#8217;s some third-party apps that will find some of your Twitter friends for you, but that&#8217;s about it.<br />
Rhino however lacks a search functionality entirely. This is quite honestly a major drawback.</p>
<p>Editing your profile also isn&#8217;t possible. The settings icon on your own profile screen has some app settings but nothing about your actual profile. When I asked the developers they did insinuate that that&#8217;s in the works though. As I said, we can safely assume that everyone is still working on fleshing out all the basics at this point in time.</p>
<h3>The good parts</h3>
<p>When looking at developer Planet 1107&#8242;s timeline and the #rhino hashtag, it seems that the developers are keeping an eye on what people are saying. They responded quite swiftly to my questions too.</p>
<p>Another thing I like is the graphical design (apart from te UX). Basic as it is, it&#8217;s all very clean and clear and gives as much room for the most important things, the posts, as your screen allows. With the exception of the mute-button all the icons speak for themselves too.</p>
<h2><a href="http://itunes.apple.com/app/rivr/id561088843?ls=1&amp;mt=8">Rivr</a></h2>
<p>After using Rhino for two days I gave <strong>Rivr</strong> a try. I&#8217;d seen it in the app store but scrolled past it for some reason, until someone mentioned it in a conversation. Don&#8217;t let whatever made me scroll past it deceive you though, because this is one hell of an app.</p>
<h3>The screens</h3>
<p>When I first logged in it gave me one single screen, my timeline. There were just two buttons at the top: the three-stroke icon that&#8217;s quickly becoming the standard in app- and mobile webdesign for a pullout menu, and a plus sign to add a post with.</p>
<p>The first thing I did was try to add a post. Pressing the + does the same as swiping right-to-left: it shows a menu on the right side of the screen where you can choose different types of content to post.</p>
<div class="wp-caption aligncenter" style="width: 330px"><a href="http://www.stephanmuller.nl/wp-content/uploads/2012/10/20121020-191423.jpg"><img class="size-full " src="http://www.stephanmuller.nl/wp-content/uploads/2012/10/20121020-191423.jpg" alt="Rivr: five different content types" width="320" height="480" /></a><p class="wp-caption-text">Post type options in Rivr</p></div>
<p>That&#8217;s right, you can post text, photos, music, your location or apparently a mood. Along with each of the non-text choices you can still add some text.</p>
<p>The photo feature pleasantly surprised me. Not only does Rhino not support this at all, Rivr even lets you add some built-in filters. I&#8217;m not a fan of the whole Instagram hype, but it&#8217;s nice that it&#8217;s possible at all so people don&#8217;t have to switch to another app for that.</p>
<div class="wp-caption aligncenter" style="width: 330px"><a href="http://www.stephanmuller.nl/wp-content/uploads/2012/10/20121020-190749.jpg"><img class="size-full " src="http://www.stephanmuller.nl/wp-content/uploads/2012/10/20121020-190749.jpg" alt="Rivr: photo filters" width="320" height="480" /></a><p class="wp-caption-text">Photo filters in Rivr</p></div>
<p>What adding music does I&#8217;m not quite sure of. I was able to search for music, starting by default (but not limited to) what I was playing, but where did it get its information from? The post (as seen in the first screen) featured the name and artist of the song along with an album cover, but it didn&#8217;t do much. Unless it was trying to play it and my 3G connection just failed. I&#8217;ll have to test that on wifi.</p>
<p>The menu-button (or swipe left-to-right) opened up a whole new world for me: where Rhino has only four screen choices, Rivr gave me this:</p>
<div class="wp-caption aligncenter" style="width: 330px"><a href="http://www.stephanmuller.nl/wp-content/uploads/2012/10/20121020-191348.jpg"><img class="size-full " src="http://www.stephanmuller.nl/wp-content/uploads/2012/10/20121020-191348.jpg" alt="Rivr: slide-in navigation menu" width="320" height="480" /></a><p class="wp-caption-text">Navigation menu in Rivr</p></div>
<p>Most of that speaks for itself. I probably won&#8217;t use the #rivr page a lot, but I can at least follow my own favorite hashtags under #Topics.</p>
<p>The settings page has a couple more options than Rhino too. It even lets me choose to open links in Chrome instead of Safari, that&#8217;s a very big plus for me.</p>
<h3>What does what</h3>
<p>The design of Rivr is quite intuitive. I had to take a closer look at each of the five post types I could enter, but apart from that it&#8217;s all very clear.</p>
<p>Also, actions are consistent throughout the app. Tapping a tweet always shows a menu with options like repost, favorite and view conversation. Swiping always shows the post menu or the navigation menu (depending on which direction you swiped). There are no surprises in the interaction, which is how it should be.</p>
<h3>The bad parts</h3>
<p>Where for Rhino I ended with the good parts, I think for Rivr I&#8217;ve been praising enough already.</p>
<p>So far I haven&#8217;t found any real showstoppers, but it does bug me that even here I can&#8217;t change my profile.</p>
<p>Also, the &#8220;pull down to refresh&#8221; action really seems a bit despondent, often making me repeat three times to be sure there actually aren&#8217;t updates.</p>
<p>Another thing I&#8217;m missing, even though it has a decent search, is a way to find new followers. Searching for &#8220;html&#8221; in users gave me nothing, so it&#8217;s not searching in people&#8217;s bios, but really what I&#8217;d like is just recommendations. I&#8217;m always looking for more front-end developers to follow, so a recommendation feature of some kind would be really nice.</p>
<h2>And the winner is&#8230;</h2>
<p>Even though I really didn&#8217;t expect any full-feature apps yet (hell, even Google needed several months to develop a good iOS app), Rivr has a lot of good stuff going on. Apart from the minor drawbacks I described, which I&#8217;ll definitely get over, it seems to have more than I could wish for.</p>
<p>After using the app for a few more weeks, and if App.net gets bigger and busier, I&#8217;ll probably have a few more features on my wishlist, but for now my choice has been made:</p>
<p><strong>Rivr</strong> is the clear winner. I guess it won&#8217;t take long until Rhino and other apps catch up, but especially in the web- and app culture early birds get the worm.</p>
<p>Did I miss something? Do you disagree whole-heartedly? Would you like more details about certain features? Let me know in the comments, or on Twitter (<a href="http://twitter.com/litso_">@litso_</a>) or App.net (<a href="http://alpha.app.net/litso">@litso</a>).</p>
<p>The post <a href="http://www.stephanmuller.nl/review-rivr-vs-rhino-a-comparison-of-app-net-clients/">Rivr vs Rhino, a comparison of  free app.net clients</a> appeared first on <a href="http://www.stephanmuller.nl">Stephan Muller</a>.</p><div class='yarpp-related-rss yarpp-related-none'>
<p>No related posts.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.stephanmuller.nl/review-rivr-vs-rhino-a-comparison-of-app-net-clients/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Styling table columns with nth-child()</title>
		<link>http://www.stephanmuller.nl/styling-table-columns-nthchild/</link>
		<comments>http://www.stephanmuller.nl/styling-table-columns-nthchild/#comments</comments>
		<pubDate>Fri, 12 Oct 2012 10:03:31 +0000</pubDate>
		<dc:creator>Stephan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[pseudo-classes]]></category>
		<category><![CDATA[tables]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.stephanmuller.nl/?p=450</guid>
		<description><![CDATA[<p>Tables in HTML are dead. Well, mostly. Sometimes you actually have tabular data that you wish to show on a website, and in that case the &#60;table&#62; element is obviously still the best choice. One problem that I often encounter is that while you can style table rows quite easily with a single class per [...]</p><p>The post <a href="http://www.stephanmuller.nl/styling-table-columns-nthchild/">Styling table columns with nth-child()</a> appeared first on <a href="http://www.stephanmuller.nl">Stephan Muller</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Tables in HTML are <a title="Why tables for layout is stupid" href="http://www.hotdesign.com/seybold/">dead</a>. Well, mostly. Sometimes you actually have tabular data that you wish to show on a website, and in that case the <code>&lt;table&gt;</code> element is obviously still the best choice.<br />
One problem that I often encounter is that while you can style table rows quite easily with a single class per row, styling columns is harder.</p>
<p>Here's a random example table from a site I've been working on.</p>
<table class="example-table">
<thead>
<tr>
<th>Month</th>
<th>Credits Earned</th>
<th>Dollars Earned</th>
</tr>
</thead>
<tbody>
<tr>
<td>June 2012</td>
<td>2,054</td>
<td>$133</td>
</tr>
<tr>
<td>July 2012</td>
<td>1,580</td>
<td>$89</td>
</tr>
<tr>
<td>June 2012</td>
<td>3240</td>
<td>$187</td>
</tr>
</tbody>
</table>
<h2>Classes</h2>
<p>Now say you want to align the columns with numbers to the right and give the final column a different background color. One of the ways to do this is to use classes on each of the table cells.</p>
<p>This isn't a bad solution per se, especially if you use semantic classes and not just <code>class="align-right"</code>, but on big tables you end up with lots and lots of classes horizontally (for every cell that you need to style) and vertically (for every row, repeat the cells and their classes). I don't like that.</p>
<h2>The &lt;col /&gt; element</h2>
<p>Another solution is to use the <a href="http://www.search-this.com/2007/04/11/styling-table-columns-with-css/">&lt;col /&gt; element</a>. By defining the columns in your table you can add CSS hooks to it in this way:</p>
<pre>&lt;table class="sales"&gt;
  &lt;colgroup&gt;
    &lt;col class="month" /&gt;
    &lt;col class="credits" /&gt;
    &lt;col class="dollars" /&gt;
  &lt;/colgroup&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Month&lt;/th&gt;
      &lt;th&gt;Credits Earned&lt;/th&gt;
      &lt;th&gt;Dollars Earned&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;June 2012&lt;/td&gt;
      &lt;td&gt;2,054&lt;/td&gt;
      &lt;td&gt;$133&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;July 2012&lt;/td&gt;
      &lt;td&gt;1,580&lt;/td&gt;
      &lt;td&gt;$89&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;</pre>
<p><small>(I left out a row for brevity)</small></p>
<p>Now you can use <code>.month</code> to style the first column, or if you only want to style the contents and not the header cells you can use <code>.month td</code>.</p>
<p><strong>The problem?</strong> You can only style the border, background, width and visibility. Not even the text-alignment. Why? No idea, it shouldn't be too hard to implement other styles there as well, right? (Fun fact: IE6 <em>does</em> support all styles this way)</p>
<h2>nth-child()</h2>
<p>So that leaves us with one more solution: using CSS3's pseudo-classes. The <code>nth-child()</code> selector allows you to choose specific siblings of elements without the need for classes. For example, if you want to style the "month" column you only have to count to one:</p>
<pre>.sales td:nth-child(1) {
  color: red;
}</pre>
<p>Or if you want to align both the heading and content cells that contain numbers to the right:</p>
<pre>.sales tr :nth-child(2),
.sales tr :nth-child(3) {
  text-align: right;
}</pre>
<p>There's a lot more to the nth-child than just this. You can use counters to select every <em>nth</em> element: <code>:nth-child(2n+1)</code> selects every second element, starting with the first, <code>:nth-child(-n+3)</code> styles only the first three elements, and if that's getting too confusing don't <a href="http://nthmaster.com/">visit nthmaster.com</a>, because I've only barely scratched the surface.</p>
<h2>The downsides</h2>
<p>Of course there's some minor downsides to this method. First of all, it's not supported by IE8 and lower. I know, that's still a problem, but Microsoft has been getting better at pushing their browser updates so I expect it won't even be too long before IE8 won't have to be supported anymore. Or you can just use <a href="/selectivizr-css3-features-ie68/">Selectivizr</a>.</p>
<p>Another downside is that it gets a little harder to maintain. When you have to add a column to a table, you'll have to re-count instead of just adding a <code>&lt;td&gt;</code> with a class. If you know your tables are going to change a lot, maybe stick to classes for now.</p>
<p>All in all though, for projects where I know the HTML doesn't change much and I'm not too bound by supporting older browsers, I tend to use these pseudo-selectors more and more.</p>
<p>If you feel like playing around a bit more with these rules, see this awesome <a href="http://lea.verou.me/demos/nth.html">Pseudo-class selector tester</a> and the aforementioned <a href="http://nthmaster.com">nthmaster</a>.</p>
<p>The post <a href="http://www.stephanmuller.nl/styling-table-columns-nthchild/">Styling table columns with nth-child()</a> appeared first on <a href="http://www.stephanmuller.nl">Stephan Muller</a>.</p><div class='yarpp-related-rss'>
<p>Related posts:</p><ol>
<li><a href='http://www.stephanmuller.nl/difference-pseudo-classes-pseudo-elements/' rel='bookmark' title='The difference between pseudo-classes and pseudo-elements'>The difference between pseudo-classes and pseudo-elements</a></li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.stephanmuller.nl/styling-table-columns-nthchild/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On the way to Responsive</title>
		<link>http://www.stephanmuller.nl/responsive/</link>
		<comments>http://www.stephanmuller.nl/responsive/#comments</comments>
		<pubDate>Thu, 11 Oct 2012 17:41:04 +0000</pubDate>
		<dc:creator>Stephan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[media queries]]></category>
		<category><![CDATA[responsive]]></category>
		<category><![CDATA[this site]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.stephanmuller.nl/?p=444</guid>
		<description><![CDATA[<p>For a while now I&#8217;ve been working with responsive webdesign, and I&#8217;m starting to really dig it. I&#8217;ve even gone back to some previously built sites that I still maintain and added some quick media queries to them to make them a little bit more mobile-friendly. However, as often happens with projects that you run [...]</p><p>The post <a href="http://www.stephanmuller.nl/responsive/">On the way to Responsive</a> appeared first on <a href="http://www.stephanmuller.nl">Stephan Muller</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>For a while now I&#8217;ve been working with responsive webdesign, and I&#8217;m starting to really dig it. I&#8217;ve even gone back to some previously built sites that I still maintain and added some quick<br />
media queries to them to make them a little bit more mobile-friendly.  However, as often happens with projects that you run as a hobby instead of as a job, this very blog was still not ready for the smaller screens. It is now though!</p>
<p>So far I&#8217;ve added just a few basic rules in media queries based on where my site broke down when resizing the window (not on standard phone screen sizes, see <a href="http://www.palantir.net/re-thinking-breakpoints">this blog post</a>). Over the next few days I&#8217;ll still have to tweak and fix some things and test on more devices (and especialy Opera Mini/Mobile) but at least I&#8217;ve made the first step. </p>
<p>Future, here I come!</p>
<p>The post <a href="http://www.stephanmuller.nl/responsive/">On the way to Responsive</a> appeared first on <a href="http://www.stephanmuller.nl">Stephan Muller</a>.</p><div class='yarpp-related-rss yarpp-related-none'>
<p>No related posts.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.stephanmuller.nl/responsive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Get element by attribute value (plain Javascript)</title>
		<link>http://www.stephanmuller.nl/element-attribute-plain-javascript/</link>
		<comments>http://www.stephanmuller.nl/element-attribute-plain-javascript/#comments</comments>
		<pubDate>Thu, 04 Oct 2012 11:46:22 +0000</pubDate>
		<dc:creator>Stephan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[attributes]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://testing.stephanmuller.nl/?p=435</guid>
		<description><![CDATA[<p>Just a quick and simple function to grab any one element by a certain attribute value, without having to use libraries like jQuery or Prototype: function getElementByAttributeValue(attribute, value) { var allElements = document.getElementsByTagName('*'); for (var i = 0; i &#60; allElements.length; i++) { if (allElements[i].getAttribute(attribute) == value) { return allElements[i]; } } } In case of multiple elements with the same attributes this will only return the first one. Example Sometimes I [...]</p><p>The post <a href="http://www.stephanmuller.nl/element-attribute-plain-javascript/">Get element by attribute value (plain Javascript)</a> appeared first on <a href="http://www.stephanmuller.nl">Stephan Muller</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Just a quick and simple function to grab any one element by a certain attribute value, without having to use libraries like jQuery or Prototype:</p>
<pre>
function getElementByAttributeValue(attribute, value)
{
  var allElements = document.getElementsByTagName('*');
  for (var i = 0; i &lt; allElements.length; i++)
   {
    if (allElements[i].getAttribute(attribute) == value)
    {
      return allElements[i];
    }
  }
}
</pre>
<p>In case of multiple elements with the same attributes this will only return the first one. </p>
<h3>Example</h3>
<p>Sometimes I use elements like <code>&lt;header role="masthead"&gt;</code> in my site to be able to style the site's header (masthead) differently than other header elements, for example post headers. To select this element in JavaScript I'd now use:</p>
<pre>
var headerElement = getElementByAttributeValue('role', 'masthead');
</pre>
<p>The post <a href="http://www.stephanmuller.nl/element-attribute-plain-javascript/">Get element by attribute value (plain Javascript)</a> appeared first on <a href="http://www.stephanmuller.nl">Stephan Muller</a>.</p><div class='yarpp-related-rss'>
<p>Related posts:</p><ol>
<li><a href='http://www.stephanmuller.nl/selectivizr-css3-features-ie68/' rel='bookmark' title='Selectivizr: CSS3 features in IE6-8'>Selectivizr: CSS3 features in IE6-8</a></li>
<li><a href='http://www.stephanmuller.nl/removing-wordpress-plugin-style-scripts-head/' rel='bookmark' title='Removing WordPress plugin styles and scripts from the &lt;head&gt;'>Removing WordPress plugin styles and scripts from the <head></a></li>
<li><a href='http://www.stephanmuller.nl/difference-pseudo-classes-pseudo-elements/' rel='bookmark' title='The difference between pseudo-classes and pseudo-elements'>The difference between pseudo-classes and pseudo-elements</a></li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.stephanmuller.nl/element-attribute-plain-javascript/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Display: inline-block in IE7 (CSS hack)</title>
		<link>http://www.stephanmuller.nl/display-inlineblock-ie7-css-hack/</link>
		<comments>http://www.stephanmuller.nl/display-inlineblock-ie7-css-hack/#comments</comments>
		<pubDate>Wed, 18 Apr 2012 11:09:42 +0000</pubDate>
		<dc:creator>Stephan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[ie7]]></category>
		<category><![CDATA[internet explorer]]></category>

		<guid isPermaLink="false">http://www.stephanmuller.nl/?p=431</guid>
		<description><![CDATA[<p>Once in a while you&#8217;re forced to support Internet Explorer 7. Even though its share is only 1.29% for the site I&#8217;m currently working on, the amount of visitors is so vast that even that small percentage accounts for hundreds of thousands of pageviews per month. Which means we can&#8217;t just yet afford to drop [...]</p><p>The post <a href="http://www.stephanmuller.nl/display-inlineblock-ie7-css-hack/">Display: inline-block in IE7 (CSS hack)</a> appeared first on <a href="http://www.stephanmuller.nl">Stephan Muller</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Once in a while you&#8217;re forced to support Internet Explorer 7. Even though its share is only 1.29% for the site I&#8217;m currently working on, the amount of visitors is so vast that even that small percentage accounts for hundreds of thousands of pageviews per month. Which means we can&#8217;t just yet afford to drop support.</p>
<p>One problem I kept encountering was that of using <code>display: inline-block</code>. In all modern browsers this is supported, and often it&#8217;s a lot more useful than using floats. The problem once again though is IE7&#8242;s support for it.<span id="more-431"></span></p>
<p>For some reason <code>inline-block</code> only works in IE7 when the element has a native display value of <code>inline</code> (like <code>&lt;a&gt;</code>, <code>&lt;span&gt;</code> and <code>&lt;strong&gt;</code>).</p>
<p>What does work however is forcing the mysterious <a href="http://www.satzansatz.de/cssd/onhavinglayout.html">hasLayout</a> property on the element by using a CSS property that invokes this effect. The most commonly used one is <code>zoom: 1</code>, which doesn&#8217;t change anything to the element except force it to get hasLayout.</p>
<p>Finally, to make the element appear like an inline-block in IE7 force it to <code>display: inline</code> (and the hasLayout property will do the rest of the work).</p>
<p>One way to target only IE7 is to prepend a CSS rule with an asterisk (it&#8217;s the only browser that will accept this property, all the others will ignore it.</p>
<p>So your code will become:</p>
<pre>.my-inline-block {
	display: inline-block;
	zoom: 1;
	*display: inline;
}</pre>
<p>Of course, if you use the HTML5 Boilerplate you will already have a way to target IE7 specifically:</p>
<pre>.lt-ie7 .my-inline-block {
	display: inline;
	zoom: 1;
}</pre>
<p>The post <a href="http://www.stephanmuller.nl/display-inlineblock-ie7-css-hack/">Display: inline-block in IE7 (CSS hack)</a> appeared first on <a href="http://www.stephanmuller.nl">Stephan Muller</a>.</p><div class='yarpp-related-rss'>
<p>Related posts:</p><ol>
<li><a href='http://www.stephanmuller.nl/css3-active-menu-item-triangle/' rel='bookmark' title='CSS3: Indicate active menu item with a triangle'>CSS3: Indicate active menu item with a triangle</a></li>
<li><a href='http://www.stephanmuller.nl/difference-pseudo-classes-pseudo-elements/' rel='bookmark' title='The difference between pseudo-classes and pseudo-elements'>The difference between pseudo-classes and pseudo-elements</a></li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.stephanmuller.nl/display-inlineblock-ie7-css-hack/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SEO Slugs Dutch &#8211; Remove Dutch stopwords from your Blog URLs</title>
		<link>http://www.stephanmuller.nl/seo-slugs-dutch/</link>
		<comments>http://www.stephanmuller.nl/seo-slugs-dutch/#comments</comments>
		<pubDate>Fri, 09 Mar 2012 15:15:01 +0000</pubDate>
		<dc:creator>Stephan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.stephanmuller.nl/?p=408</guid>
		<description><![CDATA[<p>For a while now I&#8217;ve been using the plugin SEO Slugs on several blogs, to make sure no unnecessary words end up in my URLs. However, this plugin still only exists in English, and I really needed one in Dutch. So, I scoured the web for lists of Dutch stopwords, and combined those to make a [...]</p><p>The post <a href="http://www.stephanmuller.nl/seo-slugs-dutch/">SEO Slugs Dutch &#8211; Remove Dutch stopwords from your Blog URLs</a> appeared first on <a href="http://www.stephanmuller.nl">Stephan Muller</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>For a while now I&#8217;ve been using the plugin <a title="SEO Slugs WordPress plugin" href="http://wordpress.org/extend/plugins/seo-slugs/">SEO Slugs</a> on several blogs, to make sure no unnecessary words end up in my URLs. However, this plugin still only exists in English, and I really needed one in Dutch.</p>
<p>So, I scoured the web for lists of Dutch stopwords, and combined those to make a Dutch version of the plugin. I&#8217;d like to make an internationalized version that contains multiple word lists, and I may do so in the future, but for now here&#8217;s just a Dutch version of the SEO Slugs plugin.</p>
<p>Download <a href="http://wordpress.org/extend/plugins/seo-slugs-dutch/">SEO Slugs Dutch for WordPress</a>.</p>
<p>The current list counts 131 words, but suggestions and updates are always welcome of course (in the comments or to @<a href="http://twitter.com/#!/Litso_">Litso_</a>). To see a working example of this plugin visit <a title="Denk Eens Na" href="http://www.denkeensna.nl/">denkeensna.nl</a></p>
<p>The post <a href="http://www.stephanmuller.nl/seo-slugs-dutch/">SEO Slugs Dutch &#8211; Remove Dutch stopwords from your Blog URLs</a> appeared first on <a href="http://www.stephanmuller.nl">Stephan Muller</a>.</p><div class='yarpp-related-rss'>
<p>Related posts:</p><ol>
<li><a href='http://www.stephanmuller.nl/sfc-wordpress-disable-password-nagging/' rel='bookmark' title='SFC plugin addition: Disable Password Nagging'>SFC plugin addition: Disable Password Nagging</a></li>
<li><a href='http://www.stephanmuller.nl/removing-wordpress-plugin-style-scripts-head/' rel='bookmark' title='Removing WordPress plugin styles and scripts from the &lt;head&gt;'>Removing WordPress plugin styles and scripts from the <head></a></li>
<li><a href='http://www.stephanmuller.nl/restricted-forums-bbpress/' rel='bookmark' title='Restricted forums for bbPress'>Restricted forums for bbPress</a></li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.stephanmuller.nl/seo-slugs-dutch/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
