<?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>nekkidblogger</title>
	<atom:link href="http://nekkidblogger.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://nekkidblogger.com</link>
	<description>SEO, CSS, Web Design and stuff</description>
	<lastBuildDate>Tue, 08 Nov 2011 01:49:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Vertical Nekkidblogger menu &#8211; Ultra-efficient CSS flyout menu</title>
		<link>http://nekkidblogger.com/2011/vertical-nekkidblogger-menu-ultra-efficient-css-flyout-menu/</link>
		<comments>http://nekkidblogger.com/2011/vertical-nekkidblogger-menu-ultra-efficient-css-flyout-menu/#comments</comments>
		<pubDate>Fri, 30 Sep 2011 20:11:06 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS menu]]></category>
		<category><![CDATA[effective CSS]]></category>
		<category><![CDATA[flyout]]></category>
		<category><![CDATA[Web design]]></category>
		<category><![CDATA[efficient CSS menu]]></category>
		<category><![CDATA[fast CSS only menu]]></category>
		<category><![CDATA[good for SEO]]></category>
		<category><![CDATA[multi-level vertical CSS menu]]></category>
		<category><![CDATA[vertical CSS flyout menu]]></category>

		<guid isPermaLink="false">http://nekkidblogger.com/?p=619</guid>
		<description><![CDATA[The menu uses the ultra efficient Nekkidblogger menu framework, the same as I used for the horizontal CSS drop menu. It uses an accessible, standard UL (unordered list) classed with classes for the levels of the menu. The CSS is light, simple and very fast. Here it is. It only uses three &#34;structural&#34; CSS-rules for [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>The menu uses the <a href="http://nekkidblogger.com/2011/vertical-nekkidblogger-menu-ultra-efficient-css-flyout-menu/" title="CSS only, efficient dropdown menu">ultra efficient Nekkidblogger menu framework</a>, the same as I used for the horizontal CSS drop menu. It uses an accessible, standard UL (unordered list) classed with classes for the levels of the menu. The CSS is light, simple and very fast.</p>
<p>Here it is. It only uses three &quot;structural&quot; CSS-rules for a multi-level menu (no javascript):</p>
<div class="menimg">
<ul id="nekkidblogger-v">
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2 »</a>
<ul class="l2">
<li><a href="#">Link 2-1</a></li>
<li><a href="#">Link 2-2</a></li>
<li><a href="#">Link 2-3</a></li>
</ul>
</li>
<li><a href="#">Link 3 »</a>
<ul class="l2">
<li><a href="#">Link 3-1</a></li>
<li><a href="#">Link 3-2 »</a>
<ul class="l3">
<li><a href="#">Link 3-2-1</a></li>
<li><a href="#">Link 3-2-2 »</a>
<ul class="l4">
<li><a href="#">Link 3-2-2-1</a></li>
<li><a href="#">Link 3-2-2-2</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li><a href="#">Link 4</a></li>
</ul>
</div>
<p style="padding-top:25px">It is the most <a href="http://nekkidblogger.com/2011/vertical-nekkidblogger-menu-ultra-efficient-css-flyout-menu/">efficient menu</a> there is: no complex CSS rules with long lists of descendant selectors and a clear separation between presentational and structural elements.</p>
<p>The menu has been tested extensively and works well in all modern browsers: Chrome, Firefox, Internet Explorer from IE 7 and up, as well as Safari and Opera. For IE6 some fixes are required. You can find these, along with the markup and CSS for this menu, in <a href="http://nekkidblogger.com/nekkidblogger-menu-vertical.html" title="Demo: Nekkidblogger vertical flyout menu" target="_blank">the online demo</a>.</p>
<p>&copy;2012 <a href="http://nekkidblogger.com">nekkidblogger</a>. All Rights Reserved.</p>.]]></content:encoded>
			<wfw:commentRss>http://nekkidblogger.com/2011/vertical-nekkidblogger-menu-ultra-efficient-css-flyout-menu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ultra-efficient CSS/HTML drop menu: Nekkidblogger menu</title>
		<link>http://nekkidblogger.com/2011/ultra-efficient-css-html-drop-menu-nekkidblogger-menu/</link>
		<comments>http://nekkidblogger.com/2011/ultra-efficient-css-html-drop-menu-nekkidblogger-menu/#comments</comments>
		<pubDate>Thu, 22 Sep 2011 22:27:35 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS menu]]></category>
		<category><![CDATA[dropdown]]></category>
		<category><![CDATA[effective CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Web design]]></category>
		<category><![CDATA[Web Standards]]></category>
		<category><![CDATA[website speed]]></category>
		<category><![CDATA[CSS drop meu]]></category>
		<category><![CDATA[CSS dropdown menu]]></category>
		<category><![CDATA[fast menu]]></category>
		<category><![CDATA[pure CSS]]></category>
		<category><![CDATA[rendering speed]]></category>

		<guid isPermaLink="false">http://www.nekkidblogger.com/?p=491</guid>
		<description><![CDATA[Introduction Over the last couple of years there has been an increasing focus on Web page speed. Partly this is due to initiatives by Google and Yahoo, partly it is due to the explosive increase in web browsing on devices such as iPads and advanced cell phones (iPhone, Androids, etc). Gradually, the focus on speed [...]]]></description>
			<content:encoded><![CDATA[<p></p><h3>Introduction</h3>
<p>Over the last couple of years there has been an increasing focus on Web page speed. Partly this is due to initiatives by Google and Yahoo, partly it is due to the explosive increase in web browsing on devices such as iPads and advanced cell phones (iPhone, Androids, etc).</p>
<p>Gradually, the focus on speed has also resulted in increased attention being devoted to more efficient CSS. Efficient HTML and CSS can help improve rendering speed significantly, not least on mobile devices with slower processors. I have done a lot of work to speed up web sites lately, and in the process I have noticed that menu systems is an area where there is a lot of inefficient CSS floating around. It turns out there is lots of room for improvements.</p>
<h3>Markup (HTML)</h3>
<p>What we want is a HTML/CSS menu with very efficient CSS. In the example I use a horizontal 4-level dropdown menu.</p>
<p>The markup is basically a standard unordered list (&lt;ul&gt;&lt;li&gt;). I have highlighted the non-standard features. It has <code>id="nekkidblogger"</code> and each of the sub-levels (nested lists) have classes describing the level: <span class="hli">level2</span>, <span class="hli">level3</span> and <span class="hli">level4</span>.</p>
<p>Usually lists used in menus are not styled with classes like this. However, doing it this way has some great advantages: It makes it easy to build a CSS menu with very few style rules; it allows for very efficient CSS; and provides (as a kind of bonus) convenient &quot;hooks&quot; (i.e. the &quot;level&quot; classes&quot;) for styling if one wants to style the dropdown levels differently from the top level.</p>
<div class="fvch-code">
<pre class="fvch-line-numbers">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
</pre>
<pre><span class="html"><span class="html-other-element">&lt;ul id=<span class="html-attribute">&quot;nekkidblogger&quot;</span>&gt;</span>
<span class="html-other-element">&lt;li&gt;</span><span class="html-anchor-element">&lt;a href=<span class="html-attribute">&quot;#&quot;</span>&gt;</span>Link 1<span class="html-anchor-element">&lt;/a&gt;</span><span class="html-other-element">&lt;/li&gt;</span>
<span class="html-other-element">&lt;li&gt;</span><span class="html-anchor-element">&lt;a href=<span class="html-attribute">&quot;#&quot;</span>&gt;</span>Link 2<span class="html-anchor-element">&lt;/a&gt;</span>
  <span class="html-other-element">&lt;ul class=<span class="html-attribute">&quot;level2&quot;</span>&gt;</span>
    <span class="html-other-element">&lt;li&gt;</span><span class="html-anchor-element">&lt;a href=<span class="html-attribute">&quot;#&quot;</span>&gt;</span>Link 2-1<span class="html-anchor-element">&lt;/a&gt;</span><span class="html-other-element">&lt;/li&gt;</span>
    <span class="html-other-element">&lt;li&gt;</span><span class="html-anchor-element">&lt;a href=<span class="html-attribute">&quot;#&quot;</span>&gt;</span>Link 2-2<span class="html-anchor-element">&lt;/a&gt;</span><span class="html-other-element">&lt;/li&gt;</span>
    <span class="html-other-element">&lt;li&gt;</span><span class="html-anchor-element">&lt;a href=<span class="html-attribute">&quot;#&quot;</span>&gt;</span>Link 2-3<span class="html-anchor-element">&lt;/a&gt;</span><span class="html-other-element">&lt;/li&gt;</span>
  <span class="html-other-element">&lt;/ul&gt;</span><span class="html-other-element">&lt;/li&gt;</span>
<span class="html-other-element">&lt;li&gt;</span><span class="html-anchor-element">&lt;a href=<span class="html-attribute">&quot;#&quot;</span>&gt;</span>Link 3<span class="html-anchor-element">&lt;/a&gt;</span>
  <span class="html-other-element">&lt;ul class=<span class="html-attribute">&quot;level2&quot;</span>&gt;</span>
    <span class="html-other-element">&lt;li&gt;</span><span class="html-anchor-element">&lt;a href=<span class="html-attribute">&quot;#&quot;</span>&gt;</span>Link 3-1<span class="html-anchor-element">&lt;/a&gt;</span><span class="html-other-element">&lt;/li&gt;</span>
    <span class="html-other-element">&lt;li&gt;</span><span class="html-anchor-element">&lt;a href=<span class="html-attribute">&quot;#&quot;</span>&gt;</span>Link 3-2<span class="html-anchor-element">&lt;/a&gt;</span>
       <span class="html-other-element">&lt;ul class=<span class="html-attribute">&quot;level3&quot;</span>&gt;</span>
         <span class="html-other-element">&lt;li&gt;</span><span class="html-anchor-element">&lt;a href=<span class="html-attribute">&quot;#&quot;</span>&gt;</span>Link 3-2-1<span class="html-anchor-element">&lt;/a&gt;</span><span class="html-other-element">&lt;/li&gt;</span>
         <span class="html-other-element">&lt;li&gt;</span><span class="html-anchor-element">&lt;a href=<span class="html-attribute">&quot;#&quot;</span>&gt;</span>Link 3-2-2<span class="html-anchor-element">&lt;/a&gt;</span>
            <span class="html-other-element">&lt;ul class=<span class="html-attribute">&quot;level4&quot;</span>&gt;</span>
              <span class="html-other-element">&lt;li&gt;</span><span class="html-anchor-element">&lt;a href=<span class="html-attribute">&quot;#&quot;</span>&gt;</span>Link 3-2-2-1<span class="html-anchor-element">&lt;/a&gt;</span><span class="html-other-element">&lt;/li&gt;</span>
              <span class="html-other-element">&lt;li&gt;</span><span class="html-anchor-element">&lt;a href=<span class="html-attribute">&quot;#&quot;</span>&gt;</span>Link 3-2-2-2<span class="html-anchor-element">&lt;/a&gt;</span><span class="html-other-element">&lt;/li&gt;</span>
            <span class="html-other-element">&lt;/ul&gt;</span><span class="html-other-element">&lt;/li&gt;</span><span class="html-other-element">&lt;/ul&gt;</span><span class="html-other-element">&lt;/li&gt;</span>
  <span class="html-other-element">&lt;/ul&gt;</span><span class="html-other-element">&lt;/li&gt;</span><span class="html-other-element">&lt;li&gt;</span><span class="html-anchor-element">&lt;a href=<span class="html-attribute">&quot;#&quot;</span>&gt;</span>Link 4<span class="html-anchor-element">&lt;/a&gt;</span><span class="html-other-element">&lt;/li&gt;</span>
<span class="html-other-element">&lt;/ul&gt;</span></span></pre>
</div>
<div class="display2">
<ul>
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a>
<ul>
<li><a href="#">Link 2-1</a></li>
<li><a href="#">Link 2-2</a></li>
<li><a href="#">Link 2-3</a></li>
</ul>
</li>
<li><a href="#">Link 3</a>
<ul>
<li><a href="#">Link 3-1</a></li>
<li><a href="#">Link 3-2</a>
<ul>
<li><a href="#">Link 3-2-1</a></li>
<li><a href="#">Link 3-2-2</a>
<ul>
<li><a href="#">Link 3-2-2-1</a></li>
<li><a href="#">Link 3-2-2-2</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li><a href="#">Link 4</a></li>
</ul>
</div>
<p>On the right it is shown without styling. This is a standard unordered list. The &lt;ul&gt; for the overall menu has id=&#8221;nekkidblogger&#8221;. It has four top level links, and under Link 3 there are three dropdown levels. This is more than sufficient for a demonstration &#8211; there is no need to fill it up with lots of dropdown elements. </p>
<p>So now we are ready to give it structure and style!</p>
<h2>CSS for the Nekkidblogger menu</h2>
<p>One of the keys to efficient CSS is to use the &quot;cascade&quot; as much as possible &#8211; to allow &quot;child-elements&quot; to inherit as much as possible from &quot;parent&quot; elements. So here I don&#8217;t define selectors to the extent that I can avoid it. Also, I try to only style elements once, and then let inheritance take care of as much as possible.</p>
<p>In the following I mark the rules that are structural (makes the menu work as it should) as &#8220;Rule&#8221; and the presentational style rules as &#8220;Style&#8221; in order to clearly separate the two.</p>
<pre><span class="hli">#nekkidblogger ul</span> {padding:0;margin:0;} (<span class="rule">Style 1</span>)</pre>
</p>
<p>This isn&#8217;t really part of the menu, but useful for setting the context. If you use a CSS reset, you don&#8217;t need this. Also, you may prefer simply <code><span class="hli"> ul, li</span> {padding:0;margin:0;}</code>. I use the more specific reset here (for the &quot;nekkidblogger&quot;-id only) since this is a blog where the general rules have been set for other purposes.</p>
<h3><strong>The Top level</strong></h3>
<pre><span class="hli">#nekkidblogger li</span> { list-style:none; position:relative; float:left;
    text-align:center; margin-right:5px; font: 10px verdana,
    sans-serif; } (<span class="rule">Rule 1</span>)</pre>
<p>This is the first structural rule of the menu. Here &quot;<strong>list-style</strong>&quot;, &quot;<strong>position</strong>&quot; and &quot;<strong>float</strong>&quot; are necessary structural elements, while &quot;text-align&quot; and &quot;margin&quot; are presentational. Note that I style the <strong>a</strong>-selector, not the &lt;li&gt;. The &lt;li&gt;-element adapts to its content &#8211; so we don&#8217;t need to define a &quot;width&quot; here for example.</p>
<pre><span class="hli">#nekkidblogger a</span> { display: block; width: 8em; color: black;
     line-height: 30px; text-decoration: none; background: silver;
     border:1px solid #fff; margin: 0 -1px -1px 0; } (<span class="rule">Style 2</span>)</pre>
<p>Here everything is presentational. &quot;<strong>display:block</strong>&quot; is important in order to display the links as boxes. &quot;width&quot;, &quot;height&quot; and the rest is styling. I set the properties of the links here, and then they are inherited by the sub-levels. In your own menu, you may want to style the dropdowns as well.</p>
<pre><span class="hli">#nekkidblogger :hover &gt; a</span> { background:#7B7B7B;
         color:yellow } (<span class="rule">Style 3</span>)</pre>
<p>This is a presentational element only &#8211; we don&#8217;t need to set different properties for the hover state &#8211; but most often one does that in menus to make them look better. Here I style the hovered link as well as the whole hover path instead of just the hovered link (one usually uses simply &quot;a:hover&quot;). I picked up and adapted this neat little trick from the excellent <a href="http://www.cssplay.co.uk/">CSS experiments by Stu Nicolls</a>.</p>
<p>What we have done so far (we have also &quot;set the stage&quot; for the lower levels):
</p>
<ul id="nekkidblogger">
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a></li>
<li><a href="#">Link 3</a></li>
<li><a href="#">Link 4</a></li>
</ul>
<h3 class="clepad"><strong>Second and lower levels</strong></h3>
<p>The rest is purely structural &#8211; no presentational elements, as I simply let the lower levels of the menu inherit everything, including the hover state (see Style 3). However, I will show you how you easily can style the lower levels yourself if you want to:</p>
<h4><strong>A. Style the boxes</strong></h4>
<p>The classes &quot;.level2-.level(n)&quot; provide &quot;hooks&quot; that you can easily use to format the lower levels.</p>
<p>We could, for instance, give a different style to level two and the lower levels &#8211; just style &quot;.level2&quot; and let the lower levels inherit. Or we could style each level separately. For instance:</p>
<pre><span class="hli">#nekkidblogger .level2 a</span> { background: #FFF; height: 25px; etc .. }</pre>
<p>And/or, we could style the lower levels like so: </p>
<pre><span class="hli">#nekkidblogger .level3 a</span> { ... }</pre>
<pre><span class="hli">#nekkidblogger .level4 a</span> { ... }</pre>
<p>OK. Back to the nekkidblogger menu:</p>
<h4><strong>B. Position the dropdown boxes</strong></h4>
<p>The top level is horizontal. We want to drop the second level down vertically from it. We have defined the &lt;li&gt;&#8217;s to be relative, so now we position the dropdown (.level2) in relation to them:</p>
<pre><span class="hli">.level2</span> { position:absolute; top:30px; left:0;  }  (<span class="rule">Rule 2</span>)</pre>
<p>Here &quot;left:0&quot; is default in the good browsers, so we should not need to specify it, but as it for some reason is not so in IE (surprise?), we still must. 30px is the line-height &#8211; see Style 2.</p>
<p>The next two levels &#8211; level 3 and level 4 &#8211; we want to fly out to the right of level 2. 8 em is the width of the <strong>a</strong>-element (see Style 2). I add .08em (about 1px &#8211; the width of the border) for good alignment. So:
</p>
<pre><span class="hli">.level3,.level4</span> { position:absolute; top:0; left:8.08em; } (<span class="rule">Rule 3</span>)</pre>
<h4><strong>C. Dropdowns: Hide and make visible when hover</strong></h4>
<pre><span class="hli">.level2,.level3,.level4</span> {visibility:hidden} (<span class="rule">Rule 4</span>)</pre>
<p>We need to hide all levels separately &#8211; if we let &quot;hidden&quot;-property be inherited, then the &quot;visible&quot;-property will be too, and all levels would show up when we hovered a given level. Also note that if you want to add another level or two to the menu, all you need is to insert the correct classes in the HTML for the list and then add &quot;.level5, .level6&quot; in Rules 3 and 4. So adding N more levels, using the Nekkidblogger menu framework, does not add to the complexity of the CSS.</p>
<pre><span class="hli">#nekkidblogger :hover &gt; ul</span> { visibility:visible; }(<span class="rule">Rule 5</span>)</pre>
<p>Makes the child elements of a &lt;ul&gt;  visible when &lt;li&gt; is hovered (but only the child-elements, not the &quot;grand-children&quot;).  And that&#8217;s all!</p>
<p>Here is the menu: </p>
<div class="menimg">
<ul id="nekkidblogger">
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a>
<ul class="level2">
<li><a href="#">Link 2-1</a></li>
<li><a href="#">Link 2-2</a></li>
<li><a href="#">Link 2-3</a></li>
</ul>
</li>
<li><a href="#">Link 3</a>
<ul class="level2">
<li><a href="#">Link 3-1</a></li>
<li><a href="#">Link 3-2</a>
<ul class="level3">
<li><a href="#">Link 3-2-1</a></li>
<li><a href="#">Link 3-2-2</a>
<ul class="level4">
<li><a href="#">Link 3-2-2-1</a></li>
<li><a href="#">Link 3-2-2-2</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li><a href="#">Link 4</a></li>
</ul>
</div>
<h3><strong>Final remarks</strong></h3>
<p>So, that&#8217;s it. Five &quot;structural&quot; CSS-rules for a multi-level menu (The &#8220;Style&#8221;-rules are purely presentational). The rules are also comparatively very simple, mostly very short, and computationally effective (good for fast page rendering) with minimum use of <a href="http://code.google.com/speed/page-speed/docs/rendering.html#UseEfficientCSSSelectors" title="See Google on this">descendant selectors</a>.</p>
<p>If you examine the <a href="http://nekkidblogger.com/nekkidblogger-menu.html" title="Demo of Nekkidblogger menu">live demo</a> with <a href="http://code.google.com/speed/page-speed/docs/extension.html" title="Read about PageSpeed">Google&#8217;s Page Speed</a> (using  Firefox), and look at the use of efficient selectors, you will find that it has &quot;0 very inefficient rules, 0 inefficient rules, and 2 potentially inefficient uses of :hover&quot;. The &quot;potentially inefficient ones are Style 3 and Rule 5, but they are as simple as can be.</p>
<p>If by comparison you run Page Speed on the <a href="http://www.htmldog.com/articles/suckerfish/dropdowns/example/bones3.html"><em>Son of Suckerfish</em> menu with three dropdowns</a>, which is a very widely used menu and which was published in <em>A List Apart</em>, you will find that it has &quot;7 very inefficient rules, 5 inefficient rules, and 5 potentially inefficient uses of :hover&quot;. So, there is a difference. And if Google&#8217;s Page Speed is worth anything, and if page rendering speed matters, it may well be a difference that matters.</p>
<p>The Nekkidblogger menu has been extensively tested, and works in all major browsers: Chrome, Firefox, Internet Explorer from IE 7 and up, Safari, and Opera. In <a href="http://nekkidblogger.com/nekkidblogger-menu.html" title="The Nekkidblogger menu - demo">the demo</a> I give some more detail and show the fixes necessary to make it work in IE 6.</p>
<p>See <a href="http://nekkidblogger.com/nekkidblogger-menu.html" title="copyright, terms and conditions">Copyright and Terms and Conditions, on demo page, sidebar 1.</a></p>
<p><strong>PS:</strong> In later posts I&#8217;ll show how to make the rightmost flyouts fly left and how to convert this horizontal menu into a <a href="http://nekkidblogger.com/2011/vertical-nekkidblogger-menu-ultra-efficient-css-flyout-menu/" title="Vertical CSS menu">vertical CSS menu</a> by changing only tiny bits of CSS.</p>
<p>&copy;2012 <a href="http://nekkidblogger.com">nekkidblogger</a>. All Rights Reserved.</p>.]]></content:encoded>
			<wfw:commentRss>http://nekkidblogger.com/2011/ultra-efficient-css-html-drop-menu-nekkidblogger-menu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flexible and robust 3 column CSS layout</title>
		<link>http://nekkidblogger.com/2011/flexible-and-robust-3-column-css-layout/</link>
		<comments>http://nekkidblogger.com/2011/flexible-and-robust-3-column-css-layout/#comments</comments>
		<pubDate>Fri, 09 Sep 2011 23:35:11 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Web site layout]]></category>
		<category><![CDATA[Web Standards]]></category>
		<category><![CDATA[3 column CSS layout]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[flexible]]></category>
		<category><![CDATA[robust]]></category>

		<guid isPermaLink="false">http://nekkidblogger.com/?p=578</guid>
		<description><![CDATA[I have just completed a new three column CSS layout designed to be extremely robust and flexible. The major DIVs are build outside in to prevent column overflow, and the layout is designed to degrade very gracefully in narrower viewports. Give it a test by clicking the demo (below is just an image) &#8211; see [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>I have just completed a new three column CSS layout designed to be extremely robust and flexible. The major DIVs are build outside in to prevent column overflow, and the layout is designed to degrade very gracefully in narrower viewports. Give it a test by <a href="http://nekkidblogger.com/css-3col-flex.html" title="demo - robust three column CSS layout">clicking the demo</a> (below is just an image) &#8211; see how the header splits and the sidebars fold under one another as you make the viewport narrower.</p>
<p>It&#8217;s designed for ads in the header and 25o px wide ads in the middle sidebar. Have fun!</p>
<p style="text-align: center;"><img src="/pics/three-column-CSS.jpg" alt="Three column CSS layout" width="500" height="258" /></p>
<p>You can get the markup and the CSS by viewing the source of <a href="http://nekkidblogger.com/css-3col-flex.html" title="Robust and flexible 3 column CSS layout">the demo</a>!</p>
<p>&copy;2012 <a href="http://nekkidblogger.com">nekkidblogger</a>. All Rights Reserved.</p>.]]></content:encoded>
			<wfw:commentRss>http://nekkidblogger.com/2011/flexible-and-robust-3-column-css-layout/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Suckerfish revisited &#8211; CSS/HTML dropdown menu: Barebones</title>
		<link>http://nekkidblogger.com/2011/suckerfish-revisited-csshtml-dropdown-menu-barebones/</link>
		<comments>http://nekkidblogger.com/2011/suckerfish-revisited-csshtml-dropdown-menu-barebones/#comments</comments>
		<pubDate>Tue, 06 Sep 2011 22:49:43 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS menu]]></category>
		<category><![CDATA[dropdown]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Suckerfish]]></category>
		<category><![CDATA[Web design]]></category>
		<category><![CDATA[barebones version]]></category>
		<category><![CDATA[css rules]]></category>
		<category><![CDATA[CSS/HTML]]></category>
		<category><![CDATA[dropdown menu]]></category>
		<category><![CDATA[styling]]></category>
		<category><![CDATA[Suckerfish menu]]></category>
		<category><![CDATA[visibility:hidden]]></category>

		<guid isPermaLink="false">http://www.nekkidblogger.com/?p=538</guid>
		<description><![CDATA[Introduction The Suckerfish menu, first published in A List Apart in 2003, was a major achievement. The authors, Patrick Griffiths and Dan Webb, showed how to build a horizontal dropdown menu with very efficient CSS. It is often referred  to as a CSS-only menu. For browsers that didn&#8217;t support the &#8220;li:hover&#8221; (Internet Explorer &#8211; IE [...]]]></description>
			<content:encoded><![CDATA[<p></p><h2>Introduction</h2>
<p>The Suckerfish menu, first published in <a href="http://www.alistapart.com/articles/dropdowns" target="_blank">A List Apart in 2003</a>, was a major achievement. The authors, Patrick Griffiths and Dan Webb, showed how to build a horizontal dropdown menu with very efficient CSS. It is often referred  to as a CSS-only menu. For browsers that didn&#8217;t support the &#8220;li:hover&#8221; (Internet Explorer &#8211; IE &#8211; 6, of course), the authors provided a JavaScript that made the menu work even there.</p>
<h2>Markup (HTML)</h2>
<p>A standard unordered list (&lt;ul&gt;&lt;li&gt;). It has <code>class="barmenu"</code>.</p>
<div class="fvch-code">
<pre class="fvch-line-numbers">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
</pre>
<pre><span class="html"><span class="html-other-element">&lt;ul class=<span class="html-attribute">&quot;barmenu&quot;</span>&gt;</span>
	<span class="html-other-element">&lt;li&gt;</span><span class="html-anchor-element">&lt;a href=<span class="html-attribute">&quot;#&quot;</span>&gt;</span>Link 1<span class="html-anchor-element">&lt;/a&gt;</span><span class="html-other-element">&lt;/li&gt;</span>
	<span class="html-other-element">&lt;li&gt;</span><span class="html-anchor-element">&lt;a href=<span class="html-attribute">&quot;#&quot;</span>&gt;</span>Link 2<span class="html-anchor-element">&lt;/a&gt;</span>
<span class="html-other-element">&lt;ul&gt;</span>
	<span class="html-other-element">&lt;li&gt;</span><span class="html-anchor-element">&lt;a href=<span class="html-attribute">&quot;#&quot;</span>&gt;</span>Link 2-1<span class="html-anchor-element">&lt;/a&gt;</span><span class="html-other-element">&lt;/li&gt;</span>
	<span class="html-other-element">&lt;li&gt;</span><span class="html-anchor-element">&lt;a href=<span class="html-attribute">&quot;#&quot;</span>&gt;</span>Link 2-2<span class="html-anchor-element">&lt;/a&gt;</span><span class="html-other-element">&lt;/li&gt;</span>
	<span class="html-other-element">&lt;li&gt;</span><span class="html-anchor-element">&lt;a href=<span class="html-attribute">&quot;#&quot;</span>&gt;</span>Link 2-3<span class="html-anchor-element">&lt;/a&gt;</span><span class="html-other-element">&lt;/li&gt;</span>
<span class="html-other-element">&lt;/ul&gt;</span>
<span class="html-other-element">&lt;/li&gt;</span>
	<span class="html-other-element">&lt;li&gt;</span><span class="html-anchor-element">&lt;a href=<span class="html-attribute">&quot;#&quot;</span>&gt;</span>Link 3<span class="html-anchor-element">&lt;/a&gt;</span>
<span class="html-other-element">&lt;ul&gt;</span>
	<span class="html-other-element">&lt;li&gt;</span><span class="html-anchor-element">&lt;a href=<span class="html-attribute">&quot;#&quot;</span>&gt;</span>Link 3-1<span class="html-anchor-element">&lt;/a&gt;</span><span class="html-other-element">&lt;/li&gt;</span>
	<span class="html-other-element">&lt;li&gt;</span><span class="html-anchor-element">&lt;a href=<span class="html-attribute">&quot;#&quot;</span>&gt;</span>Link 3-2<span class="html-anchor-element">&lt;/a&gt;</span><span class="html-other-element">&lt;/li&gt;</span>
	<span class="html-other-element">&lt;li&gt;</span><span class="html-anchor-element">&lt;a href=<span class="html-attribute">&quot;#&quot;</span>&gt;</span>Link 3-3<span class="html-anchor-element">&lt;/a&gt;</span><span class="html-other-element">&lt;/li&gt;</span>
<span class="html-other-element">&lt;/ul&gt;</span>
<span class="html-other-element">&lt;/li&gt;</span>
<span class="html-other-element">&lt;/ul&gt;</span></span></pre>
</div>
<h2>CSS (with comments)</h2>
<h3>The Suckerfish</h3>
<p>The logic of the Suckerfish menu has since been used widely to build menus for web pages. The core of it was provided by the authors in a <a href="http://www.htmldog.com/articles/suckerfish/bones/" target="_blank">barebones version</a>. The Suckerfish dropdown menu uses the following 5 rules to do the job (I have included their original comments as well):</p>
<pre><span class="hli">ul</span> { /* all lists */
    padding: 0; margin: 0; list-style: none; } (<span class="rule">Rule S-1</span>)</pre>
<pre><span class="hli">li</span> { /* all list items */
     float: left; position: relative; width: 10em; }(<span class="rule">Rule S-2</span>)</pre>
<pre><span class="hli">li ul</span> { /* second-level lists */ display: none;
     position: absolute; top: 1em; left: 0; }(<span class="rule">Rule S-3</span>)</pre>
<pre><span class="hli">li&gt;ul</span> { /* to override top and left in browsers other than IE,
  which will position to the top right of the containing li, rather
  than bottom left */ top: auto; left: auto; } (<span class="rule">Rule S-4</span>)</pre>
<pre><span class="hli">li:hover ul, li.over ul</span> { /* lists nested under hovered list items */
     display: block; } (<span class="rule">Rule S-5</span>)</pre>
<p>That&#8217;s it. Five CSS rules for a dropdown. This was a major achievement at the time it was published &#8211; neat, simple, orderly rules and very cross-browser compatible. The question is: Can it be improved on now, almost ten years later, with more standards-compatible browsers and with IE 6 more or less out of the picture? As of July 2011 IE6 is <a href="http://www.w3schools.com/browsers/browsers_explorer.asp" target="_blank">used by 2.3%</a> of users. And IE7 is used by a little more than 4%!</p>
<h3>Modern CSS dropdown &#8211; barebones</h3>
<p>In the following rules you can take out the &#8220;.barmenu&#8221; if you want &#8211; I just need to use a &#8220;class&#8221; here because I have other menus and other unordered lists in this blog, so that I need to use more specific rules.</p>
<pre><span class="hli">.barmenu ul, .barmenu li</span> { /* all lists */
	padding: 0; margin: 0; list-style: none; } (<span class="rule">Rule 1</span>)</pre>
<pre><span class="hli">.barmenu li</span> { position:relative; float:left; width: 5em;
    padding:0 0 1px; } (<span class="rule">Rule 2</span>)</pre>
<p>I usually style the link element rather then the &lt;li&gt;, but since I don&#8217;t style I simply give the &lt;li&gt; a width here. This should go out when the menu is styled. The strange padding is explained below (under Rule 4).</p>
<pre><span class="hli">.barmenu li ul</span> { position:absolute; visibility:hidden;
      top:20px; left:0; }(<span class="rule">Rule 3</span>)</pre>
<p>I usually use use &#8220;visibility: hidden&#8221; and &#8220;visibility: visible&#8221; to hide and unhide the dropdown. &#8220;Visibility&#8221; was introduced in CSS2 and is well supported today. I could also have hidden the dropdown outside the viewport, positioning it absolutely at -999em, which today is another standard method. Or, I could have used &#8220;display:none&#8221;. As it turns out, all the three ways of doing it encounter similar problems in IE7 and IE8.</p>
<p><span id="more-538"></span></p>
<p>&#8220;top&#8221; and &#8220;left&#8221; above are needed for IE7 and IE8, the modern browsers (Opera, Chrome, Firefox, and Safari) do not need them. The modern browsers seem to assume &#8220;left:0&#8243; and a vertical offset equal to the current line height &#8211; both reasonable assumptions. IE, on the other hand, assumes 0 vertical offset and a default margin &lt;ul&gt; or &lt;li&gt; offset, which simply is odd.</p>
<pre><span class="hli">.barmenu :hover &gt; ul</span> { visibility: visible; margin-top:-1px;
  background: #FFF; }(<span class="rule">Rule 4</span>)</pre>
<p>(<strong>PS</strong> 9/23/2011: I have revised and changed <span class="hli">.barmenu li:hover &gt; ul</span> to <span class="hli">.barmenu :hover &gt; ul</span>.) This rule makes the child elements of a &lt;li&gt; visible when &lt;li&gt; is hovered. Note that &#8220;visibility:hidden&#8221; reputedly leads to &#8220;performance problems&#8221; in IE7 and IE8, while the modern browsers seem to handle content hidden with &#8220;visibility: hidden&#8221; quite well.</p>
<p>However, it also contains two &#8220;fixes&#8221; for IE7 and IE8. The first is &#8220;background: #FFF&#8221;. This is not included to give a background (I use white &#8211; #FFF &#8211; here anyway, so the menu inherits that) &#8211; it is there to make the display of the dropdown stable and scrollable in IE7. Without background the submenu appears as long as the mouse hovers over the parent menu item, but once you move the cursor down over the submenu, the submenu disappears. This is not what we want.</p>
<p>I have spent many hours tesing various fixes to this. The usual fixes for IE problems, such as &#8220;zoom:1&#8243; or &#8220;height:1%&#8221; don&#8217;t work here. But background does &#8211; either a color or a background image. Omer Greenwald at <a href="http://www.webtechwise.com/fix-ie7-submenu-hover-problem/" target="_blank">webtechwise.com</a> uses a transparent background image as a fix, and that seems to work just as well.</p>
<p>The other fix used here, which also seems to be required for IE7, is to make certain that the top menu and the dropdown actually &#8220;touch&#8221; one another. If there is a one pixel gap, the dropdown will disappear when you move the cursor down and over the &#8220;gap&#8221; to click the submenu items. The fix for this is to include a padding of 1px at the bottom of the &lt;li&gt; (Rule 2) and then use a negative margin of 1px to move the dropdown up into the top menu (Rule 4).</p>
<p>It is somewhat interesting to note that if you move the dropdown a little too far down &#8211; for instance &#8220;top:25px&#8221; &#8211; the problem returns.</p>
<div class="display">
<ul>
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a>
<ul>
<li><a href="#">Link 2-1</a></li>
<li><a href="#">Link 2-2</a></li>
<li><a href="#">Link 2-3</a></li>
</ul>
</li>
<li><a href="#">Link 3</a>
<ul>
<li><a href="#">Link 3-1</a></li>
<li><a href="#">Link 3-2</a></li>
<li><a href="#">Link 3-3</a></li>
</ul>
</li>
</ul>
</div>
<p>Note that most of the fixes for IE used here are specific to a barebones menu. Once you style the menu, the dropdown is likely to actually touch the top level menu, so that problem disappears. And when you give color to the background &#8211; which you probably will &#8211; you take care of that issue too. (To the right is the list before we apply CSS and turn it into a menu.)</p>
<p>OK. That&#8217;s it. One rule less than the Suckerfish menu, and we don&#8217;t need any java if we don&#8217;t support the soon to be gone IE6. It works as intended in all major browsers as well as IE8 and IE7. To make it work in IE6 will require rewrites, as IE6 does not support the child selector &gt; that I use here. It will also require JavaScript as IE6 only supports the hover property on links, not on lists and other elements.</p>
<p>Here&#8217;s the menu:</p>
<div style="padding-left: 100px;">
<ul class="barmenu">
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a>
<ul>
<li><a href="#">Link 2-1</a></li>
<li><a href="#">Link 2-2</a></li>
<li><a href="#">Link 2-3</a></li>
</ul>
</li>
<li><a href="#">Link 3</a>
<ul>
<li><a href="#">Link 3-1</a></li>
<li><a href="#">Link 3-2</a></li>
<li><a href="#">Link 3-3</a></li>
</ul>
</li>
</ul>
</div>
<p style="padding-top: 15px; clear: both;">So that&#8217;s it. Four CSS-rules for a dropdown menu &#8211; and one of the rules a reset rule (Rule 1). If you have resets in place in your CSS, you probably don&#8217;t need it. So, three rules really.  That&#8217;s all we need with modern browsers! But then, of course, lots of fixes for the older versions of Internet Explorer. What a huge waster of web designer man hours those browsers have been.</p>
<h2>Basic styling</h2>
<p>Usually one styles the links rather than the &lt;li&gt;-items. The advantage is that  by doing it this way, one increases the clickable area of the menu. The &lt;li&gt;-items don&#8217;t need styling &#8211; they simply adapt to the space required by the content.</p>
<pre><span class="hli">.barmenu2 a</span> { display: block; width: 5em; color: black;
  line-height: 25px; text-decoration: none; background: silver;
  text-align: center; } (<span class="rule">Rule A</span>)</pre>
<p>I need to use a different class, as I display both menus here.</p>
<pre><span class="hli">.barmenu2 a:hover</span> { background: #7B7B7B; color: yellow; } (<span class="rule">Rule B</span>)</pre>
<p>If you want to style the dropdown (I don&#8217;t do it here), you can use:</p>
<pre><span class="hli">.barmenu2 li ul a</span> { something .. }, and
<span class="hli">.barmenu2 li ul a:hover</span> { something else } (for the hover)</pre>
<p>And that&#8217;s all. So now I can remove the various fixes (in Rules 2-4) from the barebones example. The only ones I still need are &#8220;top:25px&#8221; (adjusted to 25px as that is the height now) and &#8220;left:0&#8243;. I&#8217;ve also taken out the width in the &lt;li&gt;-rule:</p>
<pre><span class="hli">.barmenu2 li</span>{ position:relative; float:left; } (<span class="rule">Rule 2</span>)
<span class="hli">.barmenu2 li ul</span> { position:absolute; visibility:hidden;
    top:25px; left:0;  } (<span class="rule">Rule 3</span>)
<span class="hli">.barmenu2 :hover &gt; ul</span> { visibility: visible; } (<span class="rule">Rule 4</span>)</pre>
<p>A useful tip on styling menus with hidden dropdowns or flyouts is to simply comment those parts that hide it out and style the menu with the whole menu visible. Here that would simply mean to comment it out like so /* visbility: hidden; */ in Rule 3. When done, you simply remove the comments.</p>
<p>OK. Here is the menu:</p>
<div style="padding-left: 100px;">
<ul class="barmenu2">
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a>
<ul>
<li><a href="#">Link 2-1</a></li>
<li><a href="#">Link 2-2</a></li>
<li><a href="#">Link 2-3</a></li>
</ul>
</li>
<li><a href="#">Link 3</a>
<ul>
<li><a href="#">Link 3-1</a></li>
<li><a href="#">Link 3-2</a></li>
<li><a href="#">Link 3-3</a></li>
</ul>
</li>
</ul>
</div>
<p style="padding-top: 30px; clear: both;">So there it is with some basic styling. Now it works just fine in all browsers, including IE7 and IE8. See the <a href="http://nekkidblogger.com/nekkidblogger-2levelmenu-barebones.html">demo with source and CSS</a>.</p>
<p>Stay tuned for much more on menus!</p>
<p>&copy;2012 <a href="http://nekkidblogger.com">nekkidblogger</a>. All Rights Reserved.</p>.]]></content:encoded>
			<wfw:commentRss>http://nekkidblogger.com/2011/suckerfish-revisited-csshtml-dropdown-menu-barebones/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>phpBB3 so 1980s &#8211; user unfriendly</title>
		<link>http://nekkidblogger.com/2011/phpbb3-so-1980s-user-un-friendly/</link>
		<comments>http://nekkidblogger.com/2011/phpbb3-so-1980s-user-un-friendly/#comments</comments>
		<pubDate>Sat, 16 Jul 2011 20:07:00 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[bbPress plugin]]></category>
		<category><![CDATA[bulletin board]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[phpBB]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[bbPress]]></category>
		<category><![CDATA[mods]]></category>
		<category><![CDATA[phpBB3]]></category>
		<category><![CDATA[search engine]]></category>
		<category><![CDATA[search-friendly URL]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[user unfriendly]]></category>
		<category><![CDATA[userfriendliness]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.nekkidblogger.com/?p=476</guid>
		<description><![CDATA[I&#8217;ve been looking into forum software lately. I want to set up a couple of discussion forums. It seems to me that the most highly recommended among the free, open source bulletin boards is phpBB, now in version 3 &#8211; phpBB3. So I&#8217;ve installed it on a test site and have started to work with [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>I&#8217;ve been looking into forum software lately. I want to set up a couple of discussion forums. It seems to me that the most highly recommended among the free, open source bulletin boards is <a href="http://www.phpbb.com/">phpBB</a>, now in version 3 &#8211; <strong>phpBB3</strong>.</p>
<p><img class="alignright" style="margin: 6px;" title="phpBB logo" src="http://nekkidblogger.com/pics/phpbb-logo.jpg" alt="phpbb logo" width="144" height="80" />So I&#8217;ve installed it on a test site and have started to work with it. And, so that it&#8217;s said, the core functionality of phpBB3 is excellent! Really outstanding. It&#8217;s an excellent bulletin board. And there are a lot of good folks in the community doing an excellent job in developing good mods. However, being used to working with WordPress, I have to say I was shocked. Completely. WordPress is so geared towards making it easy to use. By contrast, with phpBB3 everything is so 1980s: Installing it is OK, not as easy and quick as WordPress, but still not too complicated either. But there it stops.</p>
<p>First of all, the whole attitude surrounding phpBB, including the new phpBB3, is old fashioned: It&#8217;s made by people who can write programs using HTML, CSS, PHP and MySQL <strong>for people who can do all the same things</strong>. The attitude seems to be that if you can&#8217;t do that, you shouldn&#8217;t be using the software. Very little is done, compared to WordPress, to make is <strong>easy to use</strong>.</p>
<p>In WordPress, we have become accustomed to <strong>automatic upgrades</strong> &#8211; just click a button for upgrade, and the system upgrades itself, including the databases. Same thing with themes and plugins: Search for a theme or plugin, find it, read the docs and user reviews, decide you want it, click install, and once installed click &#8220;activate&#8221; and it&#8217;s up and running. <strong>Smooth. Nice. Easy</strong> for people who can&#8217;t program in PHP and/or don&#8217;t want to mess with MySQL.</p>
<p>With phpBB3 it is still 1980-something. There are mods. But you have to either download them to your PC, unpack them, upload them to the site, and <strong>install them manually</strong> or use something the good folks at phpBB call a &#8220;mod-manager&#8221;, called &#8220;<a title="phpBB Auotmod mod-manager" href="http://www.phpbb.com/mods/?from=submenu">Auto-Mod</a>&#8220;. Now,<a href="http://www.phpbb.com/mods/installing/"> manually really means going in and manually changing</a> PHP-files and into MySQL and running scripts or instructions to create new tables, alter existing ones and the like. Very tedious. And you can make mistakes that may have serious consequences and can cause lots of grief.</p>
<p>But the <strong>mod-manager is tedious too</strong>! If you are patient and finally manage to find the instructions for installing it, you will find that they are OK for programmers but make no sense for non-programmers. They say, for instance: &#8220;After uploading the files, you need to run the install script.&#8221; Which script? They don&#8217;t say precisely. How do you run it? They don&#8217;t tell. Lots of people will give up at this point. Why isn&#8217;t it simply integrated in the install of phpBB3? If the plugin and theme installers hadn&#8217;t been integrated into WordPress, they probably would have had tens of millions fewer users.</p>
<p>I actually installed it, and used it to install another mod. Even with the auto-mod installer in place, the instructions still said I had to download and unzip the mod and then upload it to my server. Did all that, navigated though poor instructions again, installed a mod and ended up with more than a screen-full of so-called &#8220;do-it-yourself&#8221;-instructions, which required me to move files, edit PHP-code, and run MySQL-script. What&#8217;s wrong with these folks? <strong>Auto-installation and auto-upgrading is expected</strong> by everyone everywhere these days. No only does WordPress do it &#8211; even Microsoft and Adobe manages that! This really sucks big-time!</p>
<p>Using the <strong>auto-install</strong> was scary business as well. I&#8217;ve tested it out with two mods. The first one <strong>crashed</strong> my board &#8211; I just got a white screen and could not get into it even through back-doors, so I had to wipe and re-upload all system files. The second time I tried, I got the message that the install was &#8220;successful&#8221;, but every time I wanted to go back to the forum I got messages that files were missing, so I ended up having to upload 10 or so files <strong>manually</strong> before it started to work again. Not so good!</p>
<p>There is no objective reason why phpBB3 couldn&#8217;t be as easy to use as WordPress. WordPress plugins and updates overwrite and install new PHP-files and modify the MySQL database. It&#8217;s quite possible &#8211; as WordPress demonstrates &#8211; to do it. But the <strong>emphasis on user friendliness</strong> is not nearly as high among the good people developing phpBB, so the standards for it have not been developed and aren&#8217;t pushed as they are with WordPress. Another sign of the same lack of standards for user friendliness is that many mods conflict with one another: It&#8217;s a big mess for people running the boards, but quite easy to avoid if you devote attention to it.</p>
<p>I was also shocked by the lack of emphasis on SEO in phpBB3. It writes URL&#8217;s like this: &#8220;http://example.com/viewforum.php?f=3&amp;sid=f00744bc867aec5bc739f4ee59364726&#8243; (NB: Not a working URL). Not a very search engine friendly URL, if you ask me. Totally 1980s and totally bad from a Search Engine Optimization (SEO) point of view (also a dimension where WordPress really excels, by the way). Using URLs like that is almost like telling Google &#8220;<strong>I want to be invisible</strong>&#8221; or &#8220;Please don&#8217;t list me on any of the first 20 pages of search results&#8221;. To most webmasters today, being found in by the search engines is imperative. In the 1980s it wasn&#8217;t.</p>
<p>For sake of comparison, on another test site I installed WordPress with the bulletin board <a href="http://wordpress.org/extend/plugins/bbpress/">plugin bbPress</a>. A few clicks, and there it was, up and running. And right out of the box it produces URLs that look like this: http://www.examplesite.com/forums/forum/recent-seo-software-news/ (NB: Not a working URL). The core functionality is not nearly as good, but it will <strong>get traffic</strong> from the search engines.</p>
<p>Also, if you want to<strong> change something</strong>, like put in place a new header image or alter the layout, it&#8217;s a lot of work. The system more or less forces you to do the changes online, while logged in, in a pretty poor editing window without, for instance, search capability. A couple of days ago I sat for hours editing a CSS-file more than 2500 lines long. Without a file-search facility available, that means scrolling up and down hundreds of lines to find the class or id one wants to modify, finding perhaps the color definitions at line 2300 or something and other styles for it at line 350 or whatever &#8211; that&#8217;s bad. And it&#8217;s boring too. And it could have been easy to fix &#8211; if <strong>user friendliness</strong> was a concern, that is.</p>
<p>Of course and predictably, I ended up scrapping the header that came with the system and creating my own from scratch. It simply was easier &#8211; but that&#8217;s not how it ought to be.</p>
<p>So, there you have it, an excellent program that has a <strong>long, long way to go</strong> in terms of user friendliness and that has been built with an <strong>old-fashioned and out-dated philosophy</strong>, so that the platform in reality is <strong>its own worst enemy</strong>. From the outside it looks like a project and community in need of a clearer vision, better prioritizing and improved leadership.</p>
<p>&copy;2012 <a href="http://nekkidblogger.com">nekkidblogger</a>. All Rights Reserved.</p>.]]></content:encoded>
			<wfw:commentRss>http://nekkidblogger.com/2011/phpbb3-so-1980s-user-un-friendly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Change DOCTYPE in the Thesis 1.8 WordPress Theme</title>
		<link>http://nekkidblogger.com/2011/how-change-doctype-in-the-thesis-wordpress-theme/</link>
		<comments>http://nekkidblogger.com/2011/how-change-doctype-in-the-thesis-wordpress-theme/#comments</comments>
		<pubDate>Thu, 23 Jun 2011 01:44:58 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Thesis 1.8 theme]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[XHTML]]></category>
		<category><![CDATA[1.0 Transitional]]></category>
		<category><![CDATA[Doctype]]></category>
		<category><![CDATA[doctype declaration.]]></category>
		<category><![CDATA[HTML 5]]></category>
		<category><![CDATA[Thesis 1.8 WordPress Theme]]></category>

		<guid isPermaLink="false">http://www.nekkidblogger.com/?p=456</guid>
		<description><![CDATA[Thesis 1.8 uses DOCTYPE 1.0 Strict. This is fine if that&#8217;s the right DOCTYPE for the content of your WordPress blog. Otherwise you may want to change it. If you do, there are mainly two options available to you: &#60;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> &#60;!DOCTYPE HTML> The first is 1.0 Transitional, and [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><strong>Thesis 1.8</strong> uses DOCTYPE 1.0 Strict. This is fine if that&#8217;s the right DOCTYPE for the content of your WordPress blog. Otherwise you may want to change it. If you do, there are mainly two options available to you:</p>
<pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>
<pre>&lt;!DOCTYPE HTML></pre>
<p>The first is 1.0 Transitional, and the second and much shorter DOCTYPE declaration is HTML 5. You can read a little about the advantages and disadvantages of each in my previous post about <a href="http://www.nekkidblogger.com/2011/doctype-in-wordpress-how-to-change-doctype/">how to change DOCTYPE in WordPress</a>, which also has links to more informative articles.</p>
<p>Changing DOCTYPE in the <strong>Thesis theme</strong> is a little different from changing it in other themes but just as easy. There are two ways to do it. </p>
<h3>Using custom_functions</h3>
<p>Go to the file &#8220;/wp-content/themes/thesis1_8/custom/custom_functions.php&#8221;. Make a backup of the file. First, for 1.0 Transitional, copy and paste the following into the file and replace the file.</p>
<pre>/* !Custom Doctype */
function custom_doctype() {
    return '&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';
}
add_filter('thesis_doctype','custom_doctype'); </pre>
<p>To change the DOCTYPE to HTML 5, copy, paste and then replace the file after adding the following:</p>
<pre>/* !Custom Doctype */
function custom_doctype() {
    return '&lt;!DOCTYPE html>';
}
add_filter('thesis_doctype','custom_doctype'); </pre>
<p>And that&#8217;s it. I&#8217;ve tested both, and they both change the DOCTYPE the way they should.</p>
<h3>Changing &#8220;frameworks.php&#8221;</h3>
<p>The second, and &#8220;cleaner&#8221; way to change the DOCTYPE of a Thesis 1.8 WordPress blog, is to edit one of the &#8220;core&#8221; files of the Thesis framework, the file &#8220;frameworks.php&#8221;. This is the file that actually assigns DOCTYPE 1.0 Strict in the first place, so changing the DOCTYPE declaration at this point is in a sense more correct, and also cleaner (as you will see), especially in the case of HTML 5. I used this method to change to 1.0 Transitional for this blog.</p>
<p>First, you need to open the file &#8220;/wp-content/themes/thesis1_8/lib/html/frameworks.php&#8221; (it&#8217;s smart to make a backup before you edit it). On the very top of the file you see:</p>
<pre>	echo apply_filters('thesis_doctype', '&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">') . "\n";
?>
&lt;html xmlns="http://www.w3.org/1999/xhtml" &lt;?php language_attributes(); ?>></pre>
<p><strong>1.0 Transitional</strong></p>
<p>For 1.0 Transitional all you need to do is to copy and paste the Transitional DOCTYPE declaration given at the beginning of this post into the first line above (between the apostrophes), like so:</p>
<pre>	echo apply_filters('thesis_doctype', '&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">') . "\n"; </pre>
<p>Then save the file, clear the cache if you use one, and check it.</p>
<p><strong>HTML 5</strong></p>
<p>The correct way to change into DOCTYPE HTML (HTML 5) is to change both the first and the second line in &#8220;frameworks.php&#8221;. The reason is that the &lt;html&gt;-tag in the HTML 5 DOCTYPE is different from the ones for 1.0 Strict and 1.0 Transitional. It is simply an empty tag or a tag that defines language, that is either simply &lt;html&gt; or something like &lt;html lang=&#8221;en&#8221;&gt;.</p>
<p>So now you replace both the lines with the following:</p>
<pre>	echo apply_filters('thesis_doctype', '&lt;!DOCTYPE html>') . "\n";
?>
&lt;html &lt;?php language_attributes(); ?>></pre>
<p>Again, save the file, (clear the cache) and check the result.</p>
<p>That&#8217;s it. Good luck!</p>
<p><strong>PS</strong>: <strong>Full disclosure:</strong> May I add that I am a great fan of the <strong>Thesis theme</strong>, and use it on several sites. I am also an affiliate of DIYThemes because I use it and like it. It&#8217;s a theme I recommend &#8211; fast, easy to customize, and with good support:</p>
<div style="text-align:center; padding:20px;"><a target="_blank" href="http://www.shareasale.com/r.cfm?b=202505&amp;u=522384&amp;m=24570&amp;urllink=&amp;afftrack="><img src="http://www.shareasale.com/image/24570/thesis-300x250-1.png" alt="Thesis Theme for WordPress:  Options Galore and a Helpful Support Community" border="0" /></a></div>
<p>&copy;2012 <a href="http://nekkidblogger.com">nekkidblogger</a>. All Rights Reserved.</p>.]]></content:encoded>
			<wfw:commentRss>http://nekkidblogger.com/2011/how-change-doctype-in-the-thesis-wordpress-theme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Doctype in WordPress &#8211; How to change DOCTYPE</title>
		<link>http://nekkidblogger.com/2011/doctype-in-wordpress-how-to-change-doctype/</link>
		<comments>http://nekkidblogger.com/2011/doctype-in-wordpress-how-to-change-doctype/#comments</comments>
		<pubDate>Mon, 20 Jun 2011 01:11:15 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Social media]]></category>
		<category><![CDATA[Web Standards]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[XHTML]]></category>
		<category><![CDATA[Doctype]]></category>
		<category><![CDATA[Strict]]></category>
		<category><![CDATA[Transitional]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.nekkidblogger.com/?p=426</guid>
		<description><![CDATA[Most WordPress blogs seem to use either 1.0 Strict or 1.0 Transitional. This makes some sense, given that the WordPress engine unfortunately delivers output in XHTML rather than HTML format. Because of this, pure HTML doctypes, such as DOCTYPE 4.01 Transitional, are not good choices for bloggers using WordPress for the moment. However, HTML 5 [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Most WordPress blogs seem to use either 1.0 Strict or 1.0 Transitional. This makes some sense, given that the WordPress engine unfortunately delivers output in <a href="http://codex.wordpress.org/HTML_to_XHTML">XHTML rather than HTML</a> format. Because of this, pure HTML doctypes, such as DOCTYPE 4.01 Transitional, are not good choices for bloggers using WordPress for the moment.</p>
<p>However, HTML 5 is also an alternative, as it&#8217;s syntax is compatible with WordPress: The <em>Twenty Ten theme</em> that was distributed with WordPress 3.0 used DOCTYPE HTML (HTML 5).</p>
<p>In WordPress, DOCTYPE is set by the theme. The developer may choose DOCTYPE on the basis of personal preference or what he or she is most used to working with. Many developers prefer DOCTYPE 1.0 Strict. Some do it because 1.0 Strict means the code meets very strict quality standards. Which, of course, is good news for people wanting to use the theme and probably works as a sales argument.</p>
<p>However, regardless of the choice of the theme developer, it is ultimately the coding style and preferences of the people using the themes in their blogs that determine which DOCTYPE is the right one for a particular blog. If the blog posts are written in a style that is more compatible with 1.0 Transitional, then the DOCTYPE should be transitional as well. If the blog uses plugins and features that are in HTML 5, then most likely the DOCTYPE for the blog should be HTML 5 as well. As the respected WordPress developer <a href="http://alexking.org/blog/2009/08/04/which-doctype-to-use-for-wordpress-themes">Alex King says</a>:</p>
<blockquote><p>The main reason we choose to use XHTML 1.0 Transitional for our WordPress themes is simple: we have no idea what someone might decide to do with it. <img src='http://nekkidblogger.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>It doesn’t matter if the theme validates strictly if the content doesn’t – and with all of the great tools and widgets available for WordPress, it’s pretty easy to add something that breaks your strict validation.</p>
<p>This is something you should consider if you’re a theme developer. Don’t just think about the code you’ve written to build the theme, think about what people using your theme will be doing with it; and make the best choice you can.</p></blockquote>
<p>The point here is not that Alex King prefers 1.0 Transitional, but rather his argument that it doesn&#8217;t matter if the theme validates if the content doesn&#8217;t &#8211; meaning that the most important thing is that the DOCTYPE is right for the blogger and the content of the blog. (See also <a href="http://www.alistapart.com/articles/doctype/">Fix Your Site With the Right DOCTYPE! by Jeffrey Zeldman</a>.)</p>
<p>The choice of DOCTYPE, therefore, is a choice <strong>you</strong> &#8211; as a blogger &#8211; should make. It is also a choice <strong>can</strong> you make, as it is fairly easy to change the DOCTYPE of your WordPress blog.</p>
<h3>DOCTYPES</h3>
<p>W3C has a complete list of <a href="http://www.w3.org/QA/2002/04/valid-dtd-list.html">recommended Doctype declarations</a>, but here are the three most likely and most suited candidates for WordPress blogs:</p>
<pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;</pre>
<pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;</pre>
<pre>&lt;!DOCTYPE HTML&gt;</pre>
<p>The first is 1.0 Strict, the second is 1.0 Transitional, and the third and much shorter one is HTML 5.</p>
<p>Which one to choose is up to you. I use 1.0 Transitional on this blog. Elsewhere I use 1.0 Strict. And I am about to move a couple of blogs over to HTML 5. What I run depends on the content and what I do in a blog or website. In this blog I have some stuff that has deprecated HTML tags, so 1.0 Transitional suits me best. On another blog I have some plugins that will not validate unless I move to HTML 5, so I will do that. The way I see it, the choice of DOCTYPE is a pragmatic choice, one of convenience, not a deep principled choice of coding philosophy. Other people may have a different take on that.</p>
<p>Some references if you want to learn more about DOCTYPES: <a href="http://www.w3.org/TR/2011/WD-html5-diff-20110405/">HTML5 differences from HTML4</a> (W3C), <a href="http://diveintohtml5.org/">Dive into HTML by Dave Pilgrim</a> gives a nice overview of HTML5, see also <a href="http://www.techrepublic.com/article/put-xhtml-10-strict-and-transitional-to-work/5061538">Put XHTML 1.0 Strict and Transitional to work</a>, <a href="http://www.w3schools.com/tags/ref_html_dtd.asp">HTML/XHTML Elements and Valid DTDs</a></p>
<h3>Why not 1.0 Strict</h3>
<p>From a purist point of view it can be argued in favor of other DOCTYPEs than 1.0 Strict. As most browsers actually parse XHTML documents as &#8220;text/html&#8221; and the state of XHTML is somewhat less than unproblematic on the net (see <a href="http://www.webdevout.net/articles/beware-of-xhtml">Beware of XHTML</a>), there is little reason to prefer Strict 1.0 for parsing or rendering reasons. Also, if you want it to, HTML is no less &#8220;clean&#8221; than XHTML &#8211; you can code in lowercase, close all the tags and so on if you want.</p>
<p>From a more practical point of view, 1.0 Transitional or HTML 5 will in many cases be better choices than 1.0 Strict for bloggers:</p>
<ol>
<li>They both allow some tags that are not allowed in 1.0 Strict (deprecated elements and attributes), such as &#8220;target=_blank&#8221; (&#8220;target=&#8221;_blank&#8221; will not validate, but still works just fine in Strict &#8211; the browser makers are more pragmatic than W3C)</li>
<li>The 1.0 Transitional and especially HTML 5 DOCTYPEs provide better platforms for use of embedded multimedia objects such as video and music in blogs and websites</li>
<li>Some of the social media plugins in WordPress (Facebook-plugins especially) will work but not validate unless the DOCTYPE is HTML 5.</li>
<li>If you have ads in your blogs, many types of ads will create huge numbers of validation errors in 1.0 Strict (Amazon ads and links will do that regardless of DOCTYPE &#8211; the W3C validator (and some other ones as well) has an hysterical fit when it sees an ampersand &#8211; &amp; &#8211; that isn&#8217;t written as <code>&amp;amp;</code>, but again the browsers render correctly in this case as well, so you can overlook the validator if you want to)</li>
<li>Also, keep in mind that many ads use the &#8220;iframe&#8221;-tag. This tag is not permitted in 1.0 Strict or 1.1 XHTML. Neither is it permitted in HTML5. So if you have this type of ads, you may want to change the Doctype to 1.0 Transitional.</li>
<li>I suspect many users of WordPress do not and will not adhere to the requirements of Strict 1.0 &#8211; e.g. do not close all tags properly, place inline styles in their posts and the like.</li>
</ol>
<p>There are many other reasons for changing to another DOCTYPE, but these are the ones I view as the most important. But see also <a href="http://www.dailyblogtips.com/why-transitional-doctypes-are-better-for-wordpress-blogs/">Why Transitional Doctypes are Better for WordPress Blogs</a></p>
<h3>How change DOCTYPE in your WordPress blog?</h3>
<p>You need to use either the built-in theme-editor in WordPress or preferably an editor on your local machine and a FTP-program. The file you want to modify is in the WordPress directory where your theme resides and is most often called &#8220;header.php&#8221; (e.g. &#8220;/wp-content/themes/(&#8220;name of your theme&#8221;)/header.php&#8221;). The first thing to do is to make a copy of this file as a backup.</p>
<p>In one of the themes I use the first line in header.php is:</p>
<pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;</pre>
<p>In this case all that is needed is to copy and paste the exact code for the DOCTYPE I want to use from the listing above instead of this one (you want to copy and paste, as it is imperative that the letters are exactly the same), save it and replace the old &#8220;header.php&#8221;.</p>
<p>In the default WordPress 3.0 theme TwentyTen it looks like this:</p>
<div class="fvch-code">
<pre class="fvch-line-numbers">1
2
3
</pre>
<pre><span class="php"><span class="php-operator">?</span><span class="php-operator">&amp;</span>gt;<span class="php-operator">&amp;</span>lt;<span class="php-operator">!</span>DOCTYPE html<span class="php-operator">&amp;</span>gt;
<span class="php-operator">&amp;</span>lt;html <span class="php-operator">&amp;</span>lt; <span class="php-operator">?</span>php language_attributes<span class="php-brackets">(</span><span class="php-brackets">)</span>; <span class="php-operator">?</span><span class="php-operator">&amp;</span>gt;<span class="php-operator">&amp;</span>gt;</span></pre>
</div>
<p>This declares HTML 5, and here it is a matter of replacing the text after <code>?&amp;gt;</code> (which is part of the PHP) on the first line with the DOCTYPE we want, for instance like so:</p>
<div class="fvch-code">
<pre class="fvch-line-numbers">1
2
3
</pre>
<pre><span class="php"><span class="php-operator">?</span><span class="php-operator">&amp;</span>gt;<span class="php-operator">&amp;</span>lt;<span class="php-operator">!</span>DOCTYPE html PUBLIC <span class="php-string">&quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;</span>
<span class="php-string">&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;</span><span class="php-operator">&amp;</span>gt;</span></pre>
</div>
<p>and leave the second line as it was. Again save (and replace on the server), and all is well.</p>
<p>That&#8217;s it. Look in &#8220;header.php&#8221;, find the DOCTYPE declaration, carefully replace it with the one you want, save and replace it on the server, and there you go. If you can&#8217;t find the DOCTYPE declaration in the &#8220;header.php&#8221;, you may need to look in other php-files or get in touch with the developer of your theme. But most often you will find it there.</p>
<p>&copy;2012 <a href="http://nekkidblogger.com">nekkidblogger</a>. All Rights Reserved.</p>.]]></content:encoded>
			<wfw:commentRss>http://nekkidblogger.com/2011/doctype-in-wordpress-how-to-change-doctype/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress 3.2 will be lighter and faster</title>
		<link>http://nekkidblogger.com/2011/wordpress-3-2-will-be-lighter-and-faster/</link>
		<comments>http://nekkidblogger.com/2011/wordpress-3-2-will-be-lighter-and-faster/#comments</comments>
		<pubDate>Fri, 01 Apr 2011 20:40:12 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[Social media]]></category>
		<category><![CDATA[website speed]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[lighter and faster]]></category>
		<category><![CDATA[web site speed]]></category>
		<category><![CDATA[WordPress 3.2]]></category>
		<category><![CDATA[wordpress themes]]></category>

		<guid isPermaLink="false">http://www.nekkidblogger.com/?p=375</guid>
		<description><![CDATA[In a previous post I wrote that for WordPress 3.1 and beyond I would like to see speed increases &#8211; blogs that are meaner and leaner, that load faster. Now it seems I will get what I want. In the WordPress Development Blog, Mark Jaquith writes that the plan for WordPress 3.2 is &#8220;faster, lighter&#8221;. [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>In a previous post I wrote that for WordPress 3.1 and beyond <a title="A Faster WordPress?" href="http://www.nekkidblogger.com/2010/11/wordpress-3-1-and-beyond-what-i-would-like-to-see/">I would like to see speed increases</a> &#8211; blogs that are meaner and leaner, that load faster. Now it seems I will get what I want. In the<a title="WordPress Development Blog" href="http://wpdevel.wordpress.com/2011/03/18/wordpress-3-2-the-plan-faster-lighter/"> WordPress Development Blog</a>, Mark Jaquith writes that the plan for WordPress 3.2 is &#8220;faster, lighter&#8221;. I don&#8217;t think this happens because I wrote about it, but rather because many people, like me, have started to focus more on speed and fast loading of their web sites.</p>
<p><img style="float: right; padding: 6px;" src="/pics/wordpress_logo.png" alt="Wordpress" />There is a good &#8211; excellent actually &#8211; reason for this: Google have officially stated that <a title="More about Web site speed" href="http://css3seo.com/10/improving-web-site-speed-making-your-site-load-faster/" target="_blank">web site speed</a> is one the factors that determine search ranking. While implementing this may require a <a href="http://css3seo.com/11/google-and-the-push-for-faster-web-sites-a-difficult-balancing-act/" target="_blank">balancing act by Google</a>, it is a move that makes a lot of sense. Web site speed is one of the factors that influence whether users like a web site or not &#8211; there is nothing worse than a very slow site. And it is easy to understand why Google doesn&#8217;t want search results with links to very slow sites &#8211; if users get annoyed they will eventually get annoyed with Google as well.</p>
<p>If you ask me, it&#8217;s about time for a lighter and faster WordPress. The current and previous versions of WordPress are quite heavy and require execution of a lot of PHP and a large number of MySQL queries to produce its output (many of the themes and plugins are very slow too, but that will not change in the short term). As a result, most people running WordPress these days use caches that store pure HTML-version of the pages and serve them instead.</p>
<p>I am looking forward to the new version. I love WordPress and eagerly await every new version &#8211; but 3.2 perhaps more  than the previous ones. I hope developers of plugins and themes pick up on the implicit challenge by WordPress and start to focus more on speed as well. Also &#8211; I would love to see WordPress or the WordPress community publish speed rankings of themes and plugins &#8211; as it is you are pretty much left to your own devices when it comes to finding efficient, fast and reliable plugins and themes.</p>
<p>&nbsp;</p>
<p>&copy;2012 <a href="http://nekkidblogger.com">nekkidblogger</a>. All Rights Reserved.</p>.]]></content:encoded>
			<wfw:commentRss>http://nekkidblogger.com/2011/wordpress-3-2-will-be-lighter-and-faster/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML &amp; XHTML DeMYSTiFieD, by Lee Cottrell</title>
		<link>http://nekkidblogger.com/2010/html-xhtml-demystified-by-lee-cottrell/</link>
		<comments>http://nekkidblogger.com/2010/html-xhtml-demystified-by-lee-cottrell/#comments</comments>
		<pubDate>Tue, 28 Dec 2010 04:58:18 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Lee Cottrell]]></category>
		<category><![CDATA[Web design]]></category>
		<category><![CDATA[beginner book]]></category>
		<category><![CDATA[book review]]></category>
		<category><![CDATA[HTML CSS]]></category>
		<category><![CDATA[self-study]]></category>

		<guid isPermaLink="false">http://www.nekkidblogger.com/?p=372</guid>
		<description><![CDATA[HTML &#038; XHTML DeMYSTiFieD is an excellent book for people wanting to learn the basics about how to build web sites by self-study. It is a well designed book that starts right at the beginning – with what HTML and XHTML is – and quickly moves on to show readers how to build their first [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://www.amazon.com/gp/product/0071748040?ie=UTF8&#038;tag=leserglede-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0071748040"><img src="http://www.leserglede.com/pics/51-X4QOXABL._SL160_.jpg" alt="HTML &amp; XHTML DeMystified by Lee Cottrel" hspace="6" vspace="6" border="0" align="left"/></a><img src="http://www.assoc-amazon.com/e/ir?t=leserglede-20&#038;l=as2&#038;o=1&#038;a=0071748040" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><em>HTML &#038; XHTML DeMYSTiFieD</em> is an excellent book for people wanting to learn the basics about how to build web sites by self-study. It is a well designed book that starts right at the beginning – with what HTML and XHTML is – and quickly moves on to show readers how to build their first web pages.
</p>
<p>The author, Lee Cottrell, is a computer teacher at the Bradford School. He has been creating Web pages with HTML since 1993 and teaching it to students for more than 12 years. Throughout this time, Cottrell has learned how to effectively describe HTML’s core elements.
</p>
<p>The book is a practical, self-paced guide to HTML and XHTML. It is hands on from start to finish and gives thorough and more than sufficient guidance on required Web design techniques and technologies. The step-by-step approach is well thought out, and the sequence and progression in this nice little course book seems very appropriate. It shows first how to build a simple web page, and then it teaches you the use of various important yet basic HTML elements like hyperlinks, lists, tables and forms.
</p>
<p>The book also takes some steps beyond the pure HTML and teaches you how to layout and format pages and page elements with CSS, and some neat small Javascript utilities to spice up and make your HTML-page become more interactive and live. Also, Learning HTML and XHTML is full of smart and very useful advice that teaches you to do things the right way from the start, and that – if you follow Cottrell’s advice – will save you a lot of time and worry later one.</p>
<ul>
<li>The book covers Covers HTML, XHTML, HTML5, and CSS
</li>
<li>Develops two stand-alone examples per chapter: one created by the author; the other for you to practice
</li>
<li>Helps you recognize and resolve common HTML errors
</li>
<li>Is an excellent book for self-study</li>
</ul>
<p>At the end of each chapter are review questions and at the end of the book is a final exam– with well-considered questions that provide excellent tools for revealing whether you have digested the materials the way you should or not. In my opinion this is a great book for self-study or for use in a class room for students learning HTML and the basic techniques of web site building for the first time! <em>HTML &#038; XHTML DeMYSTiFieD</em> is a book with hard stuff made really simple!</p>
<div class="linkbox">Links to books by <strong>Lee Cottrell</strong> on <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&#038;location=http%3A%2F%2Fwww.amazon.com%2Fgp%2Fentity%2FLee-Cottrell%2FB001HPCXPC%3Fie%3DUTF8%26ref_%3Dntt_athr_dp_pel_1&#038;tag=leserglede-20&#038;linkCode=ur2&#038;camp=1789&#038;creative=390957">Amazon US</a><img src="https://www.assoc-amazon.com/e/ir?t=leserglede-20&#038;l=ur2&#038;o=1" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />, <a href="http://www.amazon.co.uk/gp/redirect.html?ie=UTF8&#038;location=http%3A%2F%2Fwww.amazon.co.uk%2Fs%3Fie%3DUTF8%26x%3D0%26ref_%3Dnb_sb_noss%26y%3D0%26field-keywords%3Dlee%2520cottrell%26url%3Dsearch-alias%253Daps&#038;tag=wwwleserglede-21&#038;linkCode=ur2&#038;camp=1634&#038;creative=19450">Amazon UK</a><img src="https://www.assoc-amazon.co.uk/e/ir?t=wwwleserglede-21&#038;l=ur2&#038;o=2" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />, and <a href="http://www.amazon.ca/gp/redirect.html?ie=UTF8&#038;location=http%3A%2F%2Fwww.amazon.ca%2Fs%3Fie%3DUTF8%26x%3D0%26ref_%3Dnb_sb_noss%26y%3D0%26field-keywords%3Dlee%2520cottrell%26url%3Dsearch-alias%253Daps&#038;tag=leserglede09-20&#038;linkCode=ur2&#038;camp=15121&#038;creative=390961">Amazon CAN</a><img src="https://www.assoc-amazon.ca/e/ir?t=leserglede09-20&#038;l=ur2&#038;o=15" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />.</div>
<p>&copy;2012 <a href="http://nekkidblogger.com">nekkidblogger</a>. All Rights Reserved.</p>.]]></content:encoded>
			<wfw:commentRss>http://nekkidblogger.com/2010/html-xhtml-demystified-by-lee-cottrell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web Standards Solutions: The Markup and Style Handbook, by Dan Cederholm</title>
		<link>http://nekkidblogger.com/2010/web-standards-solutions-the-markup-and-style-handbook-by-dan-cederholm/</link>
		<comments>http://nekkidblogger.com/2010/web-standards-solutions-the-markup-and-style-handbook-by-dan-cederholm/#comments</comments>
		<pubDate>Sun, 12 Dec 2010 20:19:56 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Dan Cederholm]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Web design]]></category>
		<category><![CDATA[Web site layout]]></category>
		<category><![CDATA[Web Standards]]></category>
		<category><![CDATA[book review]]></category>
		<category><![CDATA[Markup and Style]]></category>
		<category><![CDATA[Web Design book]]></category>
		<category><![CDATA[Web Standards Solutions]]></category>

		<guid isPermaLink="false">http://www.nekkidblogger.com/?p=369</guid>
		<description><![CDATA[This is the second &#8211; and substantially revised and expanded &#8211; edition of Dan Cederholm&#8217;s best-selling Web Standards Solutions. Web Standards is a movement that is gathering strength among Web designers, and is increasingly embraced as the standard technology specifications enforced by the World Wide Web Consortium (W3C) to make sure that web designers and [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>This is the second &#8211; and substantially revised and expanded &#8211;  <a href="http://www.amazon.com/gp/product/1430219203?ie=UTF8&amp;tag=leserglede-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=1430219203"><img src="http://www.leserglede.com/pics2/51ppyq2NroL._SL160_.jpg" border="0" alt="Web Standards Solutions, by Dan Cederholm" hspace="6" vspace="4" align="left" /></a>edition of Dan Cederholm&#8217;s best-selling <em>Web Standards Solutions</em>. Web Standards is a movement that is gathering strength among Web designers, and is increasingly embraced as the standard technology specifications enforced by the World Wide Web Consortium (W3C) to make sure that web designers and browser manufacturers are using the same technology syntax. Dan Cederholm, a very well-known and excellent CSS guru, has long been in the forefront of this movement.</p>
<p>Standard solutions improve consistency, make redesign and changes of web sites easier and add robustness to web sites. Increasing adherence to standards also makes possible a smoother transition to new types of screen and viewing devices, such as screen readers for people with vision impairments, cell phones, PDFs, e-book readers, and what not. HTML, XML, XHTML and CSS are all such technologies.</p>
<p>This is a truly excellent book written by one of the best programmers and designers out there. I have used the previous edition of this book for a long time, and often gone back to it to find inspiration or solutions. A very useful book! And the new version is even better!</p>
<p><em>Web Standards Solutions </em>is a great guide to understanding the advantages you can bring to your web pages by implementing web standards and precisely how to apply them.</p>
<p>Cederholm shows you how can use CSS to lay out your pages in excellent, solid designs that are flexible and look good across viewing platforms, as well as a number of smaller, neat and efficient techniques for producing great looking elements that go into the layout, all equally scalable and easily revisable as the layout itself.</p>
<ul class="style1">
<li>The Expanded edition contains great bonus material.</li>
<li>Teaches how to use Web Standards effectively to build better web sites.</li>
<li>Cederholm&#8217;s &#8220;solutions style&#8221; promotes learning.</li>
</ul>
<p><em>Web Standards Solutions</em> has 16 short chapters, each covering the theory and practice of different web standards concepts and showing multiple solutions to given problems for easy learning. You&#8217;ll learn about multi-column layouts, using image replacement techniques to your best advantage, making the best use of tables and lists, and many more. Cederholm gives you advanced web design techniques and discusses important caveats.</p>
<p>This is a great book for people wanting to learn how to use CSS the right way, who wants good, solid workable and pretty looking solutions, and Web developers and designers wanting to learn standards-based techniques to improve their sites. <em>Web Standards Solutions</em> is very good investment, in my opinion!</p>
<div class="linkbox">Links to books by Dan Cederholm at <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2Fgp%2Fentity%2FDan-Cederholm%2FB001IGJNDK%3Fie%3DUTF8%26ref_%3Dntt%255Fathr%255Fdp%255Fpel%255F1&amp;tag=leserglede-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=390957">Amazon US</a><img style="border: none !important; margin: 0px !important;" src="https://www.assoc-amazon.com/e/ir?t=leserglede-20&amp;l=ur2&amp;o=1" border="0" alt="" width="1" height="1" />, <a href="http://www.amazon.co.uk/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.co.uk%2Fs%3Fie%3DUTF8%26x%3D0%26ref_%3Dnb%255Fss%26y%3D0%26field-keywords%3Ddan%2520cederholm%26url%3Dsearch-alias%253Dstripbooks&amp;tag=wwwleserglede-21&amp;linkCode=ur2&amp;camp=1634&amp;creative=19450">Amazon UK</a><img style="border: none !important; margin: 0px !important;" src="https://www.assoc-amazon.co.uk/e/ir?t=wwwleserglede-21&amp;l=ur2&amp;o=2" border="0" alt="" width="1" height="1" />, and <a href="http://www.amazon.ca/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.ca%2Fs%3Fie%3DUTF8%26redirect%3Dtrue%26search-type%3Dss%26index%3Dbooks-ca%26field-author%3DDan%2520Cederholm&amp;tag=leserglede09-20&amp;linkCode=ur2&amp;camp=15121&amp;creative=390961">Amazon CAN</a><img style="border: none !important; margin: 0px !important;" src="https://www.assoc-amazon.ca/e/ir?t=leserglede09-20&amp;l=ur2&amp;o=15" border="0" alt="" width="1" height="1" />.</div>
<p>&copy;2012 <a href="http://nekkidblogger.com">nekkidblogger</a>. All Rights Reserved.</p>.]]></content:encoded>
			<wfw:commentRss>http://nekkidblogger.com/2010/web-standards-solutions-the-markup-and-style-handbook-by-dan-cederholm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

