<?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>Friendly Bit &#187; CSS</title> <atom:link href="http://friendlybit.com/articles/css/feed/" rel="self" type="application/rss+xml" /><link>http://friendlybit.com</link> <description>You have found Friendly Bit, a web development blog. I focus on client side technologies like CSS, HTML and Javascript. You find my articles below and categories to the right.</description> <lastBuildDate>Fri, 05 Feb 2010 23:32:09 +0000</lastBuildDate> <generator>http://wordpress.org/?v=2.9.2</generator> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <item><title>Rendering a web page &#8211; step by step</title><link>http://friendlybit.com/css/rendering-a-web-page-step-by-step/</link> <comments>http://friendlybit.com/css/rendering-a-web-page-step-by-step/#comments</comments> <pubDate>Mon, 11 Jan 2010 00:04:33 +0000</pubDate> <dc:creator>Emil Stenström</dc:creator> <category><![CDATA[Browsers]]></category> <category><![CDATA[CSS]]></category> <category><![CDATA[HTML]]></category> <category><![CDATA[JS]]></category><guid
isPermaLink="false">http://friendlybit.com/?p=580</guid> <description><![CDATA[Have you ever thought about what happens when you surf the web? It&#8217;s not as simple as it seems:You type an URL into address bar in your preferred browser.
The browser parses the URL to find the protocol, host, port, and path.
It forms a HTTP request (that was most likely the protocol)
To reach the host, it [...]]]></description> <content:encoded><![CDATA[<p>Have you ever thought about what happens when you surf the web? It&#8217;s not as simple as it seems:</p><ol><li>You <strong>type an URL</strong> into address bar in your preferred browser.</li><li>The browser <strong>parses the URL</strong> to find the protocol, host, port, and path.</li><li>It <strong>forms a HTTP request</strong> (that was most likely the protocol)</li><li>To reach the host, it first needs to <strong>translate </strong>the human readable host<strong> into an IP number</strong>, and it does this by doing a DNS lookup on the host</li><li>Then a <strong>socket needs to be opened</strong> from the user&#8217;s computer to that IP number, on the port specified (most often port 80)</li><li>When a connection is open, the <strong>HTTP request is sent</strong> to the host</li><li>The host <strong>forwards the request</strong> to the server software (most often Apache) configured to listen on the specified port</li><li>The <strong>server inspects the request</strong> (most often only the path), and <strong>launches the server plugin needed</strong> to handle the request (corresponding to the server language you use, PHP, Java, .NET,  Python?)</li><li>The plugin gets access to the full request, and starts to prepare a HTTP response.</li><li>To construct the response a <strong>database </strong>is (most likely) <strong>accessed</strong>. A database search is made, based on parameters in the path (or data) of the request</li><li>Data from the database, together with other information the plugin decides to add, is <strong>combined into a long string</strong> of text (probably HTML).</li><li>The plugin <strong>combines </strong>that data with some meta data (in the form of HTTP headers), and <strong>sends the HTTP response</strong> back to the browser.</li><li>The browser receives the response, and <strong>parses the HTML</strong> (which with 95% probability is broken) in the response</li><li>A <strong>DOM tree is built</strong> out of the broken HTML</li><li><strong>New requests are made</strong> to the server for each new resource that is found in the HTML source (typically images, style sheets, and JavaScript files). Go back to step 3 and repeat for each resource.</li><li><strong>Stylesheets are parsed</strong>, and the rendering information in each gets attached to the matching node in the DOM tree</li><li><strong>Javascript is parsed and executed</strong>, and DOM nodes are moved and style information is updated accordingly</li><li>The browser <strong>renders the page</strong> on the screen according to the DOM tree and the style information for each node</li><li><strong>You</strong><strong> see</strong> the page on the screen</li><li>You get annoyed the whole process was too slow.</li></ol><p>I, too, get annoyed when the above steps take longer than one tenth of a second. But now at least I have some documentation to look at, while waiting the remaining fractions of a second before the page renders.</p><p><a
href="http://www.flickr.com/photos/amboo213/115034446/sizes/s/"><img
class="alignnone" title="Spoiled dog - by amboo213 on Flickr" src="http://farm1.static.flickr.com/45/115034446_8bf43c2273_m.jpg" alt="Spoiled dog" width="240" height="180" /></a></p><p>Spoiled we are, all of us.</p><p><em>(Feel free to add more steps, through the comments&#8230;)</em></p> ]]></content:encoded> <wfw:commentRss>http://friendlybit.com/css/rendering-a-web-page-step-by-step/feed/</wfw:commentRss> <slash:comments>10</slash:comments> </item> <item><title>Position: fixed CSS templates</title><link>http://friendlybit.com/css/position-fixed-css-templates/</link> <comments>http://friendlybit.com/css/position-fixed-css-templates/#comments</comments> <pubDate>Thu, 31 Dec 2009 14:14:26 +0000</pubDate> <dc:creator>Emil Stenström</dc:creator> <category><![CDATA[CSS]]></category><guid
isPermaLink="false">http://friendlybit.com/?p=573</guid> <description><![CDATA[In 2006 I wrote an article about simulating Frames and Iframes and from time to time, I get questions of how to make modifications to the templates presented. But one big thing has changed since 2006: Perfect support for IE6 is no longer mandatory.
So yesterday, when Brandon Cobb of Super Fighter Team asked about a [...]]]></description> <content:encoded><![CDATA[<p>In 2006 I wrote an article about <a
href="http://friendlybit.com/css/frames-or-iframes-with-css/">simulating Frames and Iframes</a> and from time to time, I get questions of how to make modifications to the templates presented. But one big thing has changed since 2006: <strong>Perfect support for <abbr
title="Internet Explorer 6">IE6</abbr> is no longer mandatory</strong>.</p><p>So yesterday, when Brandon Cobb of <a
href="http://superfighter.com/">Super Fighter Team</a> asked about a design with a fixed header, fixed left column, and scrolling right column, I thought I&#8217;d renew my take on <a
href="http://friendlybit.com/css/frames-or-iframes-with-css/">simulating frames</a> with CSS (The original article is still good for background information, so I still recommend reading it).</p><h2>Position: fixed CSS templates</h2><p>The idea is this: Instead of specifying what parts of the page should scroll, we can <strong>specify what parts should stay fixed when scrolling</strong>. This makes it easier to deal with several fixed parts of the same layout, but also allows us do to things frames cannot do.</p><p>So what&#8217;s the trick? Well, <code >position: fixed</code> does exactly what we want. It works just like <code >position: absolute</code>, but it stays still when the page is scrolled. So it&#8217;s really just a matter of making sure things don&#8217;t overlap.</p><ul><li><a
href="http://friendlybit.com/files/fixed/fixedtopandleft.html">Demo: Fixed top, fixed left, scrolling right</a></li><li><a
href="http://friendlybit.com/files/fixed/fixedtop.html">Demo: Fixed top, scrolling bottom</a></li><li><a
href="http://friendlybit.com/files/fixed/fixedleft.html">Demo: Fixed left, scrolling right</a></li></ul><p><strong>Try resizing the page, and see how the scrolling works</strong>. The templates have been tested in: Fx 3.5, IE8, IE7, IE6 (see note below), Opera 10, Safari 4; all on Windows. Let me know if you can test it on more browsers, or find bugs.</p><p>You&#8217;re of course free to use this templates as you see fit, with or without a link back, commercially or not. Consider it public domain.</p><h2>Fixes for IE6</h2><p>As I&#8217;ve said, these designs don&#8217;t act the same in IE6. Instead of some parts being fixed, the whole page scrolls in IE6. The good thing about this is that <strong> IE6 users won&#8217;t see that your site is &#8220;broken&#8221;</strong>, they will just get another design. And as the number of IE6 users goes towards zero, your design will be more and more consistent :). The fallback is very simple, IE6 gets <code >position: absolute</code> instead of fixed, using the <a
href="http://www.webdevout.net/css-hacks#in_css-important">!important hack</a> (you should probably use <a
href="http://www.quirksmode.org/css/condcom.html">conditional comments</a> instead).</p><p>Hope these templates are useful for some of you!</p> ]]></content:encoded> <wfw:commentRss>http://friendlybit.com/css/position-fixed-css-templates/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>SpriteMe &#8211; Combine images and get fewer HTTP requests</title><link>http://friendlybit.com/css/spriteme-combine-images-and-get-fewer-http-requests/</link> <comments>http://friendlybit.com/css/spriteme-combine-images-and-get-fewer-http-requests/#comments</comments> <pubDate>Sat, 19 Sep 2009 15:09:02 +0000</pubDate> <dc:creator>Emil Stenström</dc:creator> <category><![CDATA[CSS]]></category><guid
isPermaLink="false">http://friendlybit.com/?p=557</guid> <description><![CDATA[Those of you that care about website performance have probably read about combining images, something that&#8217;s called &#8220;CSS sprites&#8221;. The idea is that by using the same (somewhat larger) image several times, you get fewer HTTP requests to your site, and therefore speed it up. Problem is, most of your images are CSS background images, [...]]]></description> <content:encoded><![CDATA[<p>Those of you that care about website performance have probably read about combining images, something that&#8217;s called &#8220;CSS sprites&#8221;. The idea is that by using the same (somewhat larger) image several times, you get fewer HTTP requests to your site, and therefore speed it up. Problem is, most of your images are CSS background images, that are positioned using clever background-positions and repeats.</p><p>Now, this makes to tricky to combine images. Something that repeats horizontally can&#8217;t be combined with something that repeats vertically (unless there&#8217;s transparency involved), and wide images can&#8217;t be combined with narrow ones. So combining is usually tedious, manual work, both to combine the images and then calculate the new background-positions required.</p><p>Lucky for us then, that there is a tool called <a
href="http://spriteme.org/">SpriteMe</a>, available as a bookmarklet (a bookmark containing javascript), and as an excellent <a
href="http://spriteme.org/demo.php">online demo</a> that walks you through how it works. SpriteMe does all the hard work for you, you just have to copy and paste both the combined images, and the new background rules, to your site.</p><p>Decreasing the number of HTTP requests have never been simpler. Well done <a
href="http://www.stevesouders.com/">Steve Souders</a>!</p> ]]></content:encoded> <wfw:commentRss>http://friendlybit.com/css/spriteme-combine-images-and-get-fewer-http-requests/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>Techniques to use when IE6 dies</title><link>http://friendlybit.com/css/techniques-to-use-when-ie6-dies/</link> <comments>http://friendlybit.com/css/techniques-to-use-when-ie6-dies/#comments</comments> <pubDate>Wed, 26 Aug 2009 21:54:51 +0000</pubDate> <dc:creator>Emil Stenström</dc:creator> <category><![CDATA[Browsers]]></category> <category><![CDATA[CSS]]></category><guid
isPermaLink="false">http://friendlybit.com/?p=496</guid> <description><![CDATA[Everyone except Microsoft themselves are talking about the death of IE6. I&#8217;ve tried motivating people to drop support, arguing that you at least can show IE6 users a message. Many have replied with &#8220;but our IT department doesn&#8217;t let us&#8230;&#8221;, and I can say nothing more than that the IT department is filled with humans. [...]]]></description> <content:encoded><![CDATA[<p>Everyone<a
href="http://www.eweek.com/c/a/Windows/Microsoft-Internet-Explorer-6-Support-Continues-Despite-Calls-for-PhaseOut-307122/"> except Microsoft themselves</a> are talking about the death of IE6. I&#8217;ve tried <a
href="/browsers/motivation-for-building-for-ie6/">motivating people to drop support</a>, arguing that you at least can show IE6 users a message. Many have replied with &#8220;but our IT department doesn&#8217;t let us&#8230;&#8221;, and I can say nothing more than that the IT department is filled with humans. Which means they are lazy, and upgrade when people whine enough about it. It&#8217;s a shame it has to be that way, that we have to <a
href="http://www.ie6nomore.com/corporate-users.html">punish people for their IT departments</a>, but that&#8217;s how it has to be.</p><p>As <strong>web developers</strong>, we should be the ones complaining the loudest. We have so much to win on IE6:s death it&#8217;s silly. Just look at the below list of things IE6 can&#8217;t do, but IE7 can (the next worst browser):</p><ul><li>Native PNG alpha transparency without silly hacks.</li><li>Several selectors: <a
href="http://crusher.w3.org/TR/CSS2/selector.html#child-selectors">Child selector</a> (&#8220;&gt;&#8221;), <a
href="http://crusher.w3.org/TR/CSS2/selector.html#adjacent-selectors">Adjacent sibling selector</a> (&#8220;+&#8221;), <a
href="http://crusher.w3.org/TR/CSS2/selector.html#attribute-selectors">Attribute selectors</a> ([attr=value]), and <a
href="http://www.w3.org/TR/css3-selectors/#general-sibling-combinators">General sibling selector</a> (&#8220;~&#8221;, CSS3)</li><li>Min-height, Max-height, Min-width, Max-width</li><li>Multiple class/id selectors in the same ruleset (ie. .class1.class2 { &#8230; })</li><li>:hover on all elements, not just links</li><li>position: fixed</li><li>Native XMLHTTP (Without ActiveX)</li><li>International Domain Names (IDN), the ability to use UTF-8 chars in domains</li><li>Page zoom that zooms the whole page (don&#8217;t worry about zoom)</li></ul><p>This is a huge step forward for us web developers. Huge! Bigger then when CSS3 comes out, because we won&#8217;t be able to use that one for years. Someone is pushing the front of what&#8217;s possible, I&#8217;m pushing for the front of what&#8217;s <strong>usable</strong>.</p><p>What can you do to help me get everything in the above list? And, did I forget something?</p><p>Sources:</p><ul><li><a
href="http://www.quirksmode.org/css/contents.html">CSS Compatibility charts</a></li><li><a
href="http://blogulate.com/content/new-features-of-internet-explorer-7/">IE6 vs IE7 &#8211; New features in Internet Explorer 7</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://friendlybit.com/css/techniques-to-use-when-ie6-dies/feed/</wfw:commentRss> <slash:comments>28</slash:comments> </item> <item><title>A couple of sites I&#8217;ve launched</title><link>http://friendlybit.com/css/a-couple-of-sites-ive-launched/</link> <comments>http://friendlybit.com/css/a-couple-of-sites-ive-launched/#comments</comments> <pubDate>Mon, 16 Feb 2009 16:18:02 +0000</pubDate> <dc:creator>Emil Stenström</dc:creator> <category><![CDATA[CSS]]></category> <category><![CDATA[Django]]></category><guid
isPermaLink="false">http://friendlybit.com/?p=448</guid> <description><![CDATA[Lots of opinions here lately, and very few concrete examples of work I&#8217;ve done. I thought I&#8217;d take a few minutes of your time and talk about those projects here.
All of the sites I&#8217;ve built are in Swedish. The reason for Swedish is just that they are so much easier to write for. Since English [...]]]></description> <content:encoded><![CDATA[<p>Lots of opinions here lately, and very few concrete examples of work I&#8217;ve done. I thought I&#8217;d take a few minutes of your time and talk about those projects here.</p><p>All of the sites I&#8217;ve built are in <strong>Swedish</strong>. The reason for Swedish is just that they are so much easier to write for. Since English is not my native language, everything takes a little bit longer when having to struggle with vocabulary.</p><p>All of the sites are built with <strong>Django</strong>, a framework I&#8217;ve had great success with, which feels both well architectured and easy to get started with (a very unusual combination). Django also lets me write the HTML I want, without getting in the way.</p><p>(By the way: there&#8217;s a <a
href="http://groups.google.com/group/django-stockholm">Django User Group</a> forming in Stockholm if you&#8217;re interested. First meeting this friday)</p><h2>Uttråkad.se</h2><p>The first one to launch was <a
href="http://www.uttråkad.se">Uttråkad.se &#8211; hitta saker att göra</a>, a site for everyone that have too much time on their hands. I guess the english version would be &#8220;bored.com&#8221;, which kinda tells you what the site is about, right? :) Anyway, we&#8217;ve played around with having the site very open, with no registration needed at all.</p><p>I would say the launch has been a good one, with an <a
href="http://www.metro.se/se/article/2008/12/16/19/0353-45/index.xml">article in metro</a> the first week of launch, 153 activities posted, and about 70 daily unique visitors. It has been a fun project to be a part of, and it&#8217;s been developed together with three friends in a group we call <a
href="http://openworks.se">openworks</a>.</p><p>Are you bored? Then play around with <a
href="http://uttrakad.se/">Uttråkad</a> a bit :)</p><h2>Kundo.se</h2><p>With our first project barely launched we decided to join an even called 24 hour business camp. The idea was simple: prepare a business idea, and build and launch it in 24 hours. Said and done: 92 entrepreneurs gathered at a luxurious conference center and presented 52 new sites 24 hours later. It was simply the best conference I&#8217;ve been to, and an extreme energy boost to be in a group of doers like that.</p><p>Anyway, we launched <a
href="http://kundo.se">Kundo &#8211; kundtjänst på nätet</a> after 24 hours, a site that companies can use to embed a feedback-widget on their site. Translates to something like &#8220;CustomerO.com&#8221;, it&#8217;s clearly influenced from <a
href="http://getsatisfaction.com/">Getsatisfaction</a> but in Swedish.  There&#8217;s clearly a need for better ways for companies to communicate with their customers in Sweden too.</p><p>After the camp we still had some bugs and important features missing, so yesterday me and Björn sat down and squashed all the major ones. So, do you know of a company that needs to take better care of their customers? For free. Send them a link to <a
href="http://kundo.se">Kundo</a>. Thanks! :)</p><h2>Samhallsentreprenor.se</h2><p>I&#8217;ve also been busy with Django at work. <a
href="http://www.samhallsentreprenor.se/">Samhallsentreprenor.se</a> is a meeting place for people that work in projects that somehow help their local (or global) community. These are people that are incredibly motivated to do good, a group that&#8217;s of course great to work for.</p><p>We&#8217;ve released new versions of the site about every 10 days, so development is fast, and through the <a
href="http://www.samhallsentreprenor.se/blogg/">development blog</a> people can directly influence future features.</p><p>So, do you have ideas for projects that can help people around you? <a
href="http://samhallsentreprenor.se/">Sign up on the site and start talking to people</a>.</p><h2>Two more projects&#8230;</h2><p>&#8230; are under development and will be announced when they are done. There&#8217;s no lack of things to do in my world :)</p> ]]></content:encoded> <wfw:commentRss>http://friendlybit.com/css/a-couple-of-sites-ive-launched/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Interface developers and security</title><link>http://friendlybit.com/css/interface-developers-and-security/</link> <comments>http://friendlybit.com/css/interface-developers-and-security/#comments</comments> <pubDate>Fri, 23 Jan 2009 22:30:44 +0000</pubDate> <dc:creator>Emil Stenström</dc:creator> <category><![CDATA[CSS]]></category> <category><![CDATA[HTML]]></category> <category><![CDATA[JS]]></category><guid
isPermaLink="false">http://friendlybit.com/?p=398</guid> <description><![CDATA[You live in a new era, when demanding that people register on your site is no longer enough. There&#8217;s far too many other sites out that that you&#8217;re already a member of, you don&#8217;t need another one. You need to trust people.
You also want people to contribute to your sites with content somehow. Text is [...]]]></description> <content:encoded><![CDATA[<p>You live in a <strong>new era</strong>, when demanding that people register on your site is no longer enough. There&#8217;s far too many other sites out that that you&#8217;re already a member of, you don&#8217;t need another one. You need to trust people.</p><p>You also want people to contribute to your sites with content somehow. Text is not enough, you want all kinds of &#8220;rich&#8221; content, and you want people to be able to place them how they want on your page. I mean, we live in a <strong>new era</strong> after all.</p><p>Problem is, this <strong>new era thingie talk</strong> makes people forget the basics. Even though this is the future, and we&#8217;re all bored with &#8220;just&#8221; hypertext, we can&#8217;t allow random people to add HTML to our sites. Why? Ask myspace about the <a
href="http://namb.la/popular/tech.html">Samy worm</a> from 2005, a little piece of clever front-end code that took their servers flying. What did they do wrong? They tried to let untrusted people embed HTML on their profile pages.</p><p>But they even had this clever filter, which cleaned the code first! Well, long story short, using a div with the style attribute set to a background image that points to a javascript url actually execute the javascript in IE6. Didn&#8217;t think of that did you? So what about the fact that both IE6 and IE7 execute vbscripts in urls prefixed with &#8220;vbscript:&#8221;, just like with javascript. Didn&#8217;t know that? Ohhh. Perhaps then you shouldn&#8217;t be trying to let unknown people embed HTML on your site?</p><p>Many of these security issues stem from the fact that ordinary well-educated computer scientists <strong>don&#8217;t know enough about interface development</strong>, HTML, CSS and javascript, and discount them as being something that &#8220;anyone&#8221; could do. &#8220;Even my aunt made this puppy site in like 3 days, how hard can it be?!&#8221;.</p><p>I&#8217;ve always thought that interface development have an undeserved reputation of being easier than &#8220;real programming&#8221;; something that you can let rookies work with, something that no &#8220;real&#8221; programmer would ever want. &#8220;No, I want to work with hard stuff, not that webby stuff&#8221;.</p><p>If you are in a position where people actually think that, perhaps security could be the way to lift interface development to its proper status. So why not read up on <a
href="http://en.wikipedia.org/wiki/Cross-site_scripting">Cross Site Scripting (XSS)</a>, look at <a
href="http://ha.ckers.org/xss.html">examples of vulnerabilities</a>, and pick a couple of examples of <a
href="http://www.xssed.com/">big sites that are vulnerable</a>. While you&#8217;re at it, why not read up on <a
href="http://en.wikipedia.org/wiki/Cross-site_request_forgery">Cross-site request forgery (CSRF)</a> too?</p><p>These are real issues that <strong>someone </strong>needs to take into account when building websites. My guess is that the fancy computer scientists will have a very long way to go before grasping this stuff. &#8220;Why does IE6 parse &#8216;java   script:&#8217; as if there where no space in the middle?&#8221;. You know who&#8217;s not surprised? Every damn interface developer out there.</p><p>So. Go out there, and teach them silly math people how it&#8217;s done, and what your HTML, CSS and javscript-knowledge is worth. Show them that logic isn&#8217;t the way we do things around here, that anything can happen when IE6 boots. And&#8230; whatever you do&#8230; think very hard before letting people embed HTML on your site.</p> ]]></content:encoded> <wfw:commentRss>http://friendlybit.com/css/interface-developers-and-security/feed/</wfw:commentRss> <slash:comments>13</slash:comments> </item> <item><title>OpenID, Nofollow removed, Comment counts, and IE7 fixes</title><link>http://friendlybit.com/css/openid-nofollow-removed-comment-counts-and-ie7-fixes/</link> <comments>http://friendlybit.com/css/openid-nofollow-removed-comment-counts-and-ie7-fixes/#comments</comments> <pubDate>Sun, 19 Oct 2008 13:48:03 +0000</pubDate> <dc:creator>Emil Stenström</dc:creator> <category><![CDATA[CSS]]></category><guid
isPermaLink="false">http://friendlybit.com/?p=290</guid> <description><![CDATA[I&#8217;m added a few features to the site:
OpenID support: Instead of typing your name and e-mail you could instead sign in with an OpenID-enabled URL. Or you could completely ignore it, and go on as usual.
Nofollow restriction removed: Wordpress by default adds rel=&#8221;nofollow&#8221; to all links that people write in comments. It&#8217;s a good way [...]]]></description> <content:encoded><![CDATA[<p>I&#8217;m added a few features to the site:</p><p><strong>OpenID support</strong>: Instead of typing your name and e-mail you could instead sign in with an OpenID-enabled URL. Or you could completely ignore it, and go on as usual.</p><p><strong>Nofollow restriction removed</strong>: Wordpress by default adds rel=&#8221;nofollow&#8221; to all links that people write in comments. It&#8217;s a good way to decrease the impact of spam. Thing is, I strictly moderate comments, and have three plugins that prevent spam (Akismet, Spam Karma 2, and Bad Behavior). Since spam really isn&#8217;t a problem, I&#8217;ve decided to remove the nofollow from your links, if you&#8217;ve posted more than three comments.</p><p><strong>Comment counts</strong>: To make it easier to see who you can trust and not in the comments I&#8217;ve added a comment count next to the name. Damn, I&#8217;ve commented a lot :)</p><p><strong>IE7 fixes</strong>: There were script errors in IE7 since I&#8217;m trying to do funky stuff with opacity on the search field. I&#8217;ve fixed that. Also, the number of subscribers wasn&#8217;t visible in IE7. They are now.</p><p>Over and out.</p> ]]></content:encoded> <wfw:commentRss>http://friendlybit.com/css/openid-nofollow-removed-comment-counts-and-ie7-fixes/feed/</wfw:commentRss> <slash:comments>8</slash:comments> </item> <item><title>IE7 hover bug: z-index ignored (and other properties)</title><link>http://friendlybit.com/css/ie7-hover-bug-z-index-ignored-and-other-properties/</link> <comments>http://friendlybit.com/css/ie7-hover-bug-z-index-ignored-and-other-properties/#comments</comments> <pubDate>Sun, 12 Oct 2008 18:17:04 +0000</pubDate> <dc:creator>Emil Stenström</dc:creator> <category><![CDATA[CSS]]></category><guid
isPermaLink="false">http://friendlybit.com/?p=285</guid> <description><![CDATA[I&#8217;m implementing a rather different design right now for an intranet, and have found a bug I thought you&#8217;d like to know about. If you restyle things with :hover, you might have to add an extra property for the rule to be applied in IE7.
How is this design different? Well, it built on columns that [...]]]></description> <content:encoded><![CDATA[<p>I&#8217;m implementing a rather different design right now for an intranet, and have found a bug I thought you&#8217;d like to know about. If you restyle things with :hover, you might have to add an extra property for the rule to be applied in IE7.</p><p>How is this design different? Well, it built on columns that are overlapping each other. When you hover one of the columns, that column get placed on top (temporarily). You think you need javascript for this? You don&#8217;t (if you can live with not supporting IE6).</p><pre><code >#menu, #content, #sidebar {
   z-index: 1;
}
#menu:hover, #content:hover, #sidebar:hover {
   z-index: 2;
}</code></pre><p>Simple isn&#8217;t it? Now you just have to absolutely position the three columns. By the way, working with absolute positioning is ok as long as you don&#8217;t need a cleared footer below the three columns. Strange that not more people use this.</p><p>Anyway, the above doesn&#8217;t work in IE7. It should, because IE7 supports :hover on all elements, including my &#8220;div columns&#8221;. Some googling led me to an old IE6 bug where <a
href="http://www.tanfa.co.uk/css/articles/pure-css-popups-bug.asp">some elements are ignored on links</a>. The bug talks about IE6 and the color property being ignored, but the same seems to apply to IE7 and z-index.</p><p>So, long story short, just add <code >display: block</code> to the hover rule and everything works fine. As the link above dictates, many different rules work, the important thing is that it must be a new rule, which you <strong>haven&#8217;t used before</strong> on that element. But you don&#8217;t set display: block; on divs, do you? So it should work fine.</p><p>Hope it helps some frustrated soul out there :) And long live funky designs.</p> ]]></content:encoded> <wfw:commentRss>http://friendlybit.com/css/ie7-hover-bug-z-index-ignored-and-other-properties/feed/</wfw:commentRss> <slash:comments>6</slash:comments> </item> <item><title>Yellow fade with CSS and a simple image</title><link>http://friendlybit.com/css/yellow-fade-with-css-and-a-simple-image/</link> <comments>http://friendlybit.com/css/yellow-fade-with-css-and-a-simple-image/#comments</comments> <pubDate>Sat, 04 Oct 2008 18:19:09 +0000</pubDate> <dc:creator>Emil Stenström</dc:creator> <category><![CDATA[CSS]]></category><guid
isPermaLink="false">http://friendlybit.com/?p=276</guid> <description><![CDATA[Via Think Vitamin I find a cool way to highlight the current element. Lots of people do this by calling some kind of javascript library, it&#8217;s so common it&#8217;s been dubbed the yellow fade technique. But javascript isn&#8217;t really needed, you just need CSS and an image.
First: you can jump to any id on the [...]]]></description> <content:encoded><![CDATA[<p>Via <a
href="http://www.thinkvitamin.com/features/css/stay-on-target">Think Vitamin</a> I find a cool way to highlight the current element. Lots of people do this by calling some kind of javascript library, it&#8217;s so common it&#8217;s been dubbed the <a
href="http://www.37signals.com/svn/archives/000558.php">yellow fade technique</a>. But javascript isn&#8217;t really needed, you just need CSS and an image.</p><p
id="example">First: you can jump to any id on the current page by appending #some-id-here to the url. This includes all the &#8220;semantic&#8221; ids you&#8217;ve added to the page such as #content, #sidebar, and so on. Very useful if you want to point out a certain section of a page to a friend, just look at the source, try to find an id nearby, and add it to the url.</p><p>If you want to make things even easier on your own site, you can visually highlight things that get referenced via the above method. That&#8217;s where the :target psuedo selector jumps in to save your day. Please note that :target is CSS3, and only currently works in <a
href="http://reference.sitepoint.com/css/pseudoclass-target">non-crap browsers</a>. But perhaps this effect is something not all users really need?</p><pre><code >a:target {
   background: #234af5;
}</code></pre><p>This highlights all links that get referenced via the URL with a nice blue color. So they need an id added. Makes perfect sense for all kinds of documentation where you want to refer someone to a certain method or even sentence.</p><p>But it gets better:</p><pre><code >:target {
   background: url(<a href="http://friendlybit.com/images/yellow-fade.gif">yellow-fade.gif</a>);
}</code></pre><p>We&#8217;ve removed the limit of only targeting links with by using :target straight off. So all targeted elements will get affected by this rule. What next? Well, we use a small animated image to fade from one color to the next. It&#8217;s a really easy way to add dynamics to a page.</p><p>Try the effect by <a
href="#example">jumping to the code example</a> above.</p><p>I really think this makes internal links a whole lot more useful, especially for jumping to the bottom of the page, where it&#8217;s not possible for the browser to scroll down enough to get the targeted element to the top. Needless to say, I&#8217;ve added this effect to this site too. Hope you can find something to use it for too.</p> ]]></content:encoded> <wfw:commentRss>http://friendlybit.com/css/yellow-fade-with-css-and-a-simple-image/feed/</wfw:commentRss> <slash:comments>9</slash:comments> </item> <item><title>The Open Web: Can it deliver?</title><link>http://friendlybit.com/css/the-open-web-can-it-deliver/</link> <comments>http://friendlybit.com/css/the-open-web-can-it-deliver/#comments</comments> <pubDate>Mon, 01 Sep 2008 20:58:08 +0000</pubDate> <dc:creator>Emil Stenström</dc:creator> <category><![CDATA[CSS]]></category><guid
isPermaLink="false">http://friendlybit.com/?p=221</guid> <description><![CDATA[It&#8217;s ringing through my head as Microsoft releases Silverlight, as Adobe forces another version of Flash or Air, and as Sun tries to push JavaFX into the spotlight. It&#8217;s a dark whisper when I read how many still use old browsers (hello IE6!), or when I see Javascript being used poorly by otherwise knowledgeable programmers. [...]]]></description> <content:encoded><![CDATA[<p>It&#8217;s ringing through my head as Microsoft releases Silverlight, as Adobe forces another version of Flash or Air, and as Sun tries to push JavaFX into the spotlight. It&#8217;s a dark whisper when I read how many still use old browsers (hello IE6!), or when I see Javascript being used poorly by otherwise knowledgeable programmers. It&#8217;s getting obvious when people complain over how hard and hacky HTML and CSS is.</p><p>People are simply not getting their job done fast enough. Just because we&#8217;ve hacked and hacked to the point of getting used to it, doesn&#8217;t mean our way of writing web apps is the best way. In the end it about delivering to end users or paying clients, and they care more about <strong>what</strong> you deliver than <strong>how</strong>. I&#8217;m not saying we are working slower than before, it&#8217;s the opposite, new tools makes web development less annoying. But I am saying that we get less work done in relation to the expectations.</p><p>So what do they expect? Well, they want flashy effects. The want application behavior. They want snappy response times, bright colors, and &#8220;Wow!&#8221;-reactions. For our clients, the web is getting more crowded every day and they need to fight harder and harder for people&#8217;s attention. That means you need to fight harder on their behalf.</p><p>Say you are a pro open standards developer, like me. What tools do you have to grab people&#8217;s attention? Valid HTML? DIVs with fading color? AJAX? No way man. A good Flash developer can get a wow reaction by the time you&#8217;ve chosen doctype (or at least by the time you&#8217;ve booted IE6).</p><p>So you turn to Google, and look for the latest and hottest in standards development. And you find that you need to use Javascript and Flash (sIFR) to render custom fonts. You find that you need to use (Adobe) Photoshop to add highlights and shadows on your headers. You find that you have to hack severely to be able to use alpha transparent images. To do any kind of animation, you need a big Javascript library, because browser makers have not yet (yes, it&#8217;s 2008) been able to collaborate on how the language should work.</p><p>You say that standards have to take time. That everyone needs to come together and thoroughly discuss important issues. The right committees and councils needs to be formed. Meanwhile Microsoft prepares for the release of Silverlight 2.</p><p><strong>Have you no sense of urgency?</strong></p> ]]></content:encoded> <wfw:commentRss>http://friendlybit.com/css/the-open-web-can-it-deliver/feed/</wfw:commentRss> <slash:comments>17</slash:comments> </item> <item><title>Why adding variables to CSS is a good thing</title><link>http://friendlybit.com/css/why-adding-variables-to-css-is-a-good-thing/</link> <comments>http://friendlybit.com/css/why-adding-variables-to-css-is-a-good-thing/#comments</comments> <pubDate>Thu, 07 Aug 2008 14:29:24 +0000</pubDate> <dc:creator>Emil Stenström</dc:creator> <category><![CDATA[CSS]]></category><guid
isPermaLink="false">http://friendlybit.com/?p=171</guid> <description><![CDATA[Via Simon Willison I find that Bert Bos, one of the creators of CSS, has written an article on why variables shouldn&#8217;t be included in CSS3. I thought I&#8217;d try to explain why I think they should.
Professional perspective
Bert posts statistics of stylesheet usage from the W3C site, and means that most stylesheets are very small, [...]]]></description> <content:encoded><![CDATA[<p>Via <a
href="http://simonwillison.net/2008/Aug/6/cssvariables/">Simon Willison</a> I find that Bert Bos, one of the creators of CSS, has written an article on why <a
href="http://www.w3.org/People/Bos/CSS-variables">variables shouldn&#8217;t be included in CSS3</a>. I thought I&#8217;d try to explain why I think <strong>they should</strong>.</p><h2>Professional perspective</h2><p>Bert posts statistics of stylesheet usage from the W3C site, and means that most stylesheets are very small, and on those, variables are not really needed. I agree. You can get away with simple search-replace in those simple cases. But Bert also finds that there are bigger sheets: &#8220;largest hand-written style sheet: 1462 lines (bought from a Web design company)&#8221;. I work at one of those companies, and almost all CSS files I write exceed 1000 lines.</p><p>In those cases, I think CSS variables would help me a lot. Especially for margins. Matching several margins together by copying the same value over and over again isn&#8217;t maintainable. Search replace on a pixel value is a sure way to mess up your whole stylesheet: who says you only use 5px for those margins? So <strong>there is </strong>a use case for some kind of variables.</p><h2>So we need variables, but how?</h2><p>Bert then suggests that those people should use a solution such as <a
href="http://interfacelab.com/variables-in-css-via-php/">PHP to generate CSS</a>. So we should invent a new language for generating CSS with PHP? And another language for generating CSS from Ruby, from Java, from .NET, and so on. Why shouldn&#8217;t we go this way? It&#8217;s the path HTML has taken. And this is a hard nut to crack. How is CSS different from HTML? Why should CSS have variables when HTML doesn&#8217;t?</p><p>I think the answer is that we should add variables to both languages. They are very similar in nature, so they should be treated the same. Because what has changed since when CSS was created is that we&#8217;ve started building bigger and more complex sites. And if CSS starts to be too cumbersome to use, people will start looking elsewhere, to Flash, Air, Silverlight and so on. CSS needs to adapt to the more complex sites people are building today.</p><p><strong>I&#8217;d rather see CSS follow the times and add variables, than seeing frustrated professionals move to proprietary technologies</strong>.</p><h2>So what about beginners?</h2><p>Bert&#8217;s article deals a lot with beginners, and how it will be harder for them to understand another level of abstraction. Lets make it clear at first that CSS already is too hard for beginners. To make a very simple layout you need to understand floats (yes, almost everyone needs columns), and floating is really confusing (ever tried to explain float/clear to someone?). Even for someone like me, who has worked with CSS for years, floats still puzzle me regularly.</p><p>People will give up on CSS when they encounter floats (yes, I&#8217;ve seen this), not when they find CSS variables. They can just choose not to use variables, while they really need to know floats. Also, CSS variables are easier to understand than cascading values. I mean really, if I set font-size on body, why do my links get larger? That&#8217;s a very similar concept that is central to CSS.</p><h2>Summary</h2><p>CSS Variables make it easier for professionals to do their job. It doesn&#8217;t require inventing new template languages. It doesn&#8217;t make the language overall harder either. The people that can handle floats and cascading, can handle variables too. <strong>We need variables</strong>.</p> ]]></content:encoded> <wfw:commentRss>http://friendlybit.com/css/why-adding-variables-to-css-is-a-good-thing/feed/</wfw:commentRss> <slash:comments>24</slash:comments> </item> <item><title>Don&#8217;t waste time writing HTML and CSS</title><link>http://friendlybit.com/css/dont-waste-time-writing-html-and-css/</link> <comments>http://friendlybit.com/css/dont-waste-time-writing-html-and-css/#comments</comments> <pubDate>Wed, 09 Jul 2008 23:02:50 +0000</pubDate> <dc:creator>Emil Stenström</dc:creator> <category><![CDATA[CSS]]></category> <category><![CDATA[HTML]]></category><guid
isPermaLink="false">http://friendlybit.com/?p=169</guid> <description><![CDATA[When you&#8217;ve worked with front-end development for a while, you start thinking about effectiveness. So without further ado, here&#8217;s my four best ways to be a more effective front-end developer. Feel free to add more ideas as comments!
1. Do you need HTML or CSS for this?
Lots of times when I get stranded on hard problem [...]]]></description> <content:encoded><![CDATA[<p>When you&#8217;ve worked with front-end development for a while, you start thinking about effectiveness. So without further ado, here&#8217;s my four best ways to be a more effective front-end developer. Feel free to add more ideas as comments!</p><h2>1. Do you need HTML or CSS for this?</h2><p>Lots of times when I get stranded on hard problem and sit back, I realize that I really <strong>shouldn&#8217;t be trying to use CSS to solve all layout problems</strong>. Assuming a rounded corner box will have to scale in all directions (up to 8 images!), when it really is fixed width and height (1 image), is an indescribable waste of everyone&#8217;s time. Look closely at the design you&#8217;re trying to implement: does it really have to be as flexible and scalable as you think? Shifting to that mindset saves me hours of work per day.</p><p>One thing that many developers forget is that not all designers care for exact pixels. If something is really hard to develop, walk over to their table and suggest a change. You&#8217;ll soon start to notice that designers are real people too, and that they have as much flexibility as you do. It&#8217;s just as easy to call them up, so don&#8217;t let shyness waste your time.</p><h2>2. Try to set properties once</h2><p>When you know you have to do something (see above), try to <strong>do things once</strong>. This is really tricky in both HTML and CSS, languages that have no variables, and generally makes code reuse a pain. But it is possible.</p><p><strong>With CSS</strong>; set widths of elements once, and trust inner elements to fill their parent. That&#8217;s the default behavior of block level elements, and you can set display: block, or width: 100% on most other elements. Don&#8217;t set heights at all if you can avoid them, and let elements expand to fill their containers. Combine similar CSS selectors to avoid typing things twice, and make new ones for common properties when few properties differ. Use floats and clearing instead of absolute positioning, and you&#8217;ll won&#8217;t have to micromanage positions all the time.</p><p><strong>With HTML</strong>, make sure that you really know the template language. I&#8217;ve fighted with ASP.NET, JSP, JSTL, Smarty, Wordpress Themes, RHTML, and Django&#8217;s Templating Language, and now know enough about all of them to be productive. You should never have to type the same structure out twice, even in HTML. If your template language have loops, if-clauses and includes you really have no excuse to copy large chunks of HTML around. Refactor your HTML and make your own life easy.</p><h2>3. Learn your text editor</h2><p>When code reuse isn&#8217;t possible, <strong>use search/replace</strong> in your favorite text editor.</p><p>Replacing all instances of one HTML tag name with another is about replacing &#8220;element>&#8221; with &#8220;element2>&#8221; (without the opening bracket). That way you replace both opening and ending tags at once. Check to see if your editor supports regular expressions in its search/replace tool. If it does you can save lots of time by learning it. Matching a HTML tag is &#8220;<[^>]+>&#8221;, a starting angel bracket, one or more non-brackets, followed by an ending angel bracket. Naive regexps can make you match the starting bracket of one tag and the end of another, which makes for a mess.</p><p>There&#8217;s lots of little tricks like that, if you learn them you save massive amounts of time.</p><h2>4. Make sure your environment supports you</h2><p>There&#8217;s more than the text editor that you have to work with. One essential part of front-end development is trial and error. It sounds silly but no matter what your skill is, sometimes you must resort to trying and testing your way to a solution. With HTML and CSS, this means being able to <strong>quickly make a change, switch window, and see that change in the browser</strong>. If that cycle takes more that 5 seconds, you&#8217;re losing valuable time.</p><p>Don&#8217;t use a virtual machine (even if it&#8217;s only for IE6) that you can&#8217;t quickly Alt-Tab out of. If you&#8217;re stuck using one, you need to have the text editor on that machine too. It&#8217;s worth your time fixing it.</p><p>Don&#8217;t accept build processes that makes you wait more than 5-10 seconds before you see your changes. With trial and error coding you will then waste 50% of your capacity doing nothing. Most often you can bypass this by copying just the HTML and CSS to the right place, without touching other source-code. I&#8217;ve managed to do this in all kinds of crappy environments, and it&#8217;s always worth it.</p><p>So.</p><p>I hope some of the above can help you save some time each day. The little things add up you know. What&#8217;s your best time-saver?</p> ]]></content:encoded> <wfw:commentRss>http://friendlybit.com/css/dont-waste-time-writing-html-and-css/feed/</wfw:commentRss> <slash:comments>37</slash:comments> </item> <item><title>Upside down text with CSS</title><link>http://friendlybit.com/css/upside-down-text-with-css/</link> <comments>http://friendlybit.com/css/upside-down-text-with-css/#comments</comments> <pubDate>Thu, 26 Jun 2008 21:34:31 +0000</pubDate> <dc:creator>Emil Stenström</dc:creator> <category><![CDATA[CSS]]></category><guid
isPermaLink="false">http://friendlybit.com/?p=167</guid> <description><![CDATA[Previously I&#8217;ve talked about reversing text with CSS by simply setting a few CSS attributes. Today we will try another trick: turning text upside down.
It&#8217;s actually possible using a simple CSS property and works cross-browser today. The property to use it &#8220;text-gravity&#8221; with a value of &#8220;inverse&#8221;.
&#60;span style="text-gravity: inverse"&#62;
write upside down text
&#60;/span&#62;
&#8230; and this [...]]]></description> <content:encoded><![CDATA[<p>Previously I&#8217;ve talked about <a
href="/css/reverse-text-with-css-32-very-special-hex-digits/">reversing text with CSS</a> by simply setting a few CSS attributes. Today we will try another trick: turning text <strong>upside down</strong>.</p><p>It&#8217;s actually possible using a simple CSS property and works cross-browser today. The property to use it &#8220;text-gravity&#8221; with a value of &#8220;inverse&#8221;.</p><pre><code >&lt;span style="text-gravity: inverse"&gt;
write upside down text
&lt;/span&gt;</code></pre><p>&#8230; and this is the result:</p><p><span
style="text-gravity: inverse">?x?? u?op ?p?sdn ?????</span></p><p>I&#8217;m really surprised to learn that so few people know about this property, and I recommend you to continue reading the <a
href="http://www.fliptext.info/index.php">W3C specification of text-gravity</a>.</p><p><strong>Update</strong>: Sorry, I lied :) The above is done with a UTF-8 character generator (see the link the the &#8220;specification&#8221; above). Amazingly, you can find that most characters have their upside down equivalent somewhere else in the huge Unicode alphabet. Neat trick :)</p> ]]></content:encoded> <wfw:commentRss>http://friendlybit.com/css/upside-down-text-with-css/feed/</wfw:commentRss> <slash:comments>32</slash:comments> </item> <item><title>Feed readers should show comments</title><link>http://friendlybit.com/css/feed-readers-should-show-comments/</link> <comments>http://friendlybit.com/css/feed-readers-should-show-comments/#comments</comments> <pubDate>Sun, 15 Jun 2008 16:25:48 +0000</pubDate> <dc:creator>Emil Stenström</dc:creator> <category><![CDATA[CSS]]></category><guid
isPermaLink="false">http://friendlybit.com/?p=165</guid> <description><![CDATA[One thing I&#8217;ve noticed lately is that I read fewer comments. It isn&#8217;t that strange really: I read blogs using a feed reader and it doesn&#8217;t show a links to comments. I see a couple of reasons why comments are not cared for in feed readers:
Why not to #1: Feeds are meant to be fast
Many [...]]]></description> <content:encoded><![CDATA[<p>One thing I&#8217;ve noticed lately is that I read fewer comments. It isn&#8217;t that strange really: I read blogs using a feed reader and it doesn&#8217;t show a links to comments. I see a couple of reasons why comments are not cared for in feed readers:</p><h2>Why not to #1: Feeds are meant to be fast</h2><p>Many subscribe to feeds to be able to get news before everyone else. And getting things fast means getting it before anyone else have commented. Why add a lot of zeros below each feed item?</p><p>But, it isn&#8217;t unusual that <strong>I read posts that are a couple of days old</strong>. I don&#8217;t read my feeds every day, rather every second or third day. In those days there are most likely comments on good posts, and of course I don&#8217;t want to miss them. The older a post is, the more likely that it will have interesting comments.</p><h2>Why not to #2: Comments are hard to detect</h2><p>Perhaps feed readers have a hard time detecting if there are comments to a post or not. Comments are not included in the post, so wouldn&#8217;t they have to parse through the feed link for comments?</p><p>No, there is a tag called <code >&lt;wfw:commentRss&gt;</code>, that&#8217;s possible to use in both Atom and RSS (If I&#8217;m not mistaken), that gives <strong>a link to the comment feed</strong>. That means feed readers could easily get the comments too. The best thing here is that all Wordpress blogs (and others too) have it already. It&#8217;s just a matter of using it!</p><h2>Why not to #3: Each post will be too long!</h2><p>If there are 50 comments to a post, the item in the feed reader will be too long to read. That would also affect download time and therefore make things slow.</p><p>Yes, it will mean downloading more data, but you also get more information. <strong>Each feed reader is free to implement comments any way they like</strong>, and I doubt it will be to expand the original post with all 50 comments. I little link that expands comments (don&#8217;t download any extra data until you expand)? Only show the first five, and a link to the page for more? There&#8217;s lots of good options here.</p><h2>Promote contributions more</h2><p>Adding comments to your feed serves to promote your user&#8217;s contributions even more, and I&#8217;m really surprised that not everyone does it. I&#8217;m using feed burner for <a
href="http://friendlybit.com/feed">my feed</a> and can therefore use a feed flair (Click your feed / Optimize / FeedFlair / Comment count) to add a link to my comments at the end of the post. That&#8217;s a first step.</p><p>What would be much better was if <strong>feed readers would get better at promoting comments</strong>. Could we get them to somehow?</p> ]]></content:encoded> <wfw:commentRss>http://friendlybit.com/css/feed-readers-should-show-comments/feed/</wfw:commentRss> <slash:comments>10</slash:comments> </item> <item><title>New theme up for friendlybit.com</title><link>http://friendlybit.com/css/new-theme-up-for-friendlybitcom/</link> <comments>http://friendlybit.com/css/new-theme-up-for-friendlybitcom/#comments</comments> <pubDate>Thu, 22 May 2008 00:04:54 +0000</pubDate> <dc:creator>Emil Stenström</dc:creator> <category><![CDATA[CSS]]></category><guid
isPermaLink="false">http://friendlybit.com/?p=162</guid> <description><![CDATA[Hi! If you&#8217;re reading this blog through your feed reader, today is a good day to break out of it and have a look at the site. There&#8217;s been several little changes throughout, and I invite you to click around and explore things. Let me know if you find anything broken!Comments have moved up [...]]]></description> <content:encoded><![CDATA[<p>Hi! If you&#8217;re reading this blog through your feed reader, today is a good day to break out of it and have a look at the site. There&#8217;s been several little changes throughout, and I invite you to click around and explore things. <strong>Let me know if you find anything broken</strong>!</p><ol><li>Comments have moved up to the top and gotten more space. That includes the comment form which have been an insult to people wanting to comment. I&#8217;m hoping you reward me by correcting me even more often.</li><li>I&#8217;m using Google for my searches. Instead of trying to patch the builtin wordpress search I&#8217;m just linking to google from the header. It gives both faster and better results.</li><li>Design-wise it&#8217;s much &#8220;lighter&#8221; than before. The old one felt hard and heavy, and didn&#8217;t look to be as open as it in fact is.</li><li>Widgetized. I&#8217;m using wordpress widgets all over the place, which makes the administration of things like the &#8220;recent comments&#8221; easier. I just log in and change a number from the admin interface.</li><li>Fluid width (between 1000 and 1250 pixels).</li><li>Much nicer CSS, with a structure that you can actually follow.</li><li>I&#8217;ve <a
href="/other/new-design-for-friendlybit/">promised</a> you the number of feed readers clearly visible, and I&#8217;m still going to get it done. But I&#8217;m not done yet.</li></ol><p>No matter what I will keep what I&#8217;ve always done with comments: I will read each and every comment you post, and I won&#8217;t close articles for comments even though they are a year old. I will keep replying to (almost) all posts within a couple of days. I won&#8217;t delete your comment just because I disagree with what you&#8217;re saying, and I will go back and correct the original article with any errors you find.</p><p><strong>You</strong> are what makes this blog what it is. I could have written all my texts in word instead (and some of you probably wish I did sometimes), but that would have been totally meaningless. Feedback is what makes this blog go around.</p><p><strong>Thanks!</strong></p> ]]></content:encoded> <wfw:commentRss>http://friendlybit.com/css/new-theme-up-for-friendlybitcom/feed/</wfw:commentRss> <slash:comments>30</slash:comments> </item> </channel> </rss>
<!-- This site's performance optimized by W3 Total Cache. Dramatically improve the speed and reliability of your blog!

Learn more about our WordPress Plugins: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (user agent is rejected)
Database Caching 3/10 queries in 0.019 seconds using disk

Served from: c8.67.364a.static.theplanet.com @ 2010-03-14 23:39:03 -->