<?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>Eklog &#187; CSS</title>
	<atom:link href="http://www.ekstasis.net/log/category/css/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ekstasis.net/log</link>
	<description></description>
	<lastBuildDate>Sun, 13 Sep 2009 21:21:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Buttons</title>
		<link>http://www.ekstasis.net/log/2009/06/11/buttons/</link>
		<comments>http://www.ekstasis.net/log/2009/06/11/buttons/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 22:13:59 +0000</pubDate>
		<dc:creator>mat</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://www.ekstasis.net/log/2009/07/19/buttons/</guid>
		<description><![CDATA[Here&#8217;s some CSS buttons.
These will stretch to fit any amount of text &#8211; even if it gets so large it becomes a banner.
They use just one image &#8211; and have a &#8216;web 2.0&#8242; sheen.
They have an icon (which can be positioned to the left or right)
They have a hover state &#8211; the text and the [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s some CSS buttons.</p>
<p>These will stretch to fit any amount of text &#8211; even if it gets so large it becomes a banner.<br />
They use just one image &#8211; and have a &#8216;web 2.0&#8242; sheen.<br />
They have an icon (which can be positioned to the left or right)<br />
They have a hover state &#8211; the text and the background colour can change. </p>
<p><span id="more-85"></span></p>
<p><a class="btn" href="#nogo"><b><b><b>Shrink-wrapped buttons</b></b></b></a><br />
<a class="btn_grn btn" href="#nogo"><b><b><b><b>Shrink-wrapped buttons</b></b></b></b></a></p>
<p>			<a class="btn_grn2 btn" href="#nogo"><br />
				<b><b><b><b>Shrink-wrapped buttons</b></b></b></b><br />
			</a><br />
			<a class="btn_brwn btn" href="#nogo"><br />
				<b><b><b>..and a final one!</b></b></b><br />
			</a></p>
<div class="clear"></div>
<p>Here&#8217;s the code:</p>
<p>a.btn, <br />
	a.btn:visited {<br />
	float:left; <br />
	background-color: #80c64c; <br />
	background-image: url(/images/blog/btn.png); <br />
	color:#fff; <br />
	text-decoration:none; <br />
	font-size:0.95em; <br />
	clear:both; <br />
	margin:0 0 12px 6px; <br />
	line-height: 1.1; <br />
	letter-spacing: 0;<br />
	}<br />
	a:hover.btn {<br />
	color:#ff0;<br />
	}<br />
	a.btn * {<br />
	display:block; <br />
	font-weight:normal;<br />
	}<br />
	a.btn b {<br />
	margin-left:6px; <br />
	padding:2px 0 0 0; <br />
	background: transparent url(/images/blog/btn.png) right top;<br />
	}<br />
	a.btn b b {<br />
	margin:0 0 0 -6px; <br />
	padding:0 0 0 12px; <br />
	background-position: left bottom;<br />
	}<br />
	a.btn b b b {<br />
	padding:6px 12px 12px 0px; <br />
	margin: 0;<br />
	background-position: right bottom; <br />
	text-indent: -3px;<br />
	}</p>
<p>
	a.btn_grn, <br />
	a.btn_grn:visited {<br />
	background-color: #80c64c;<br />
	}<br />
	a.btn_grn b b b b {<br />
	padding: 0 28px 0 0;<br />
	background-image: url(/images/blog/arrows.png); <br />
	background-position: right center;<br />
	background-repeat: no-repeat; <br />
	}</p>
<p> &lt;a class=&quot;btn&quot; href=&quot;#nogo&quot;&gt;<br />
&lt;b&gt;&lt;b&gt;&lt;b&gt;Shrink-wrapped buttons&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;<br />
&lt;/a&gt;</p>
<p>&lt;a class=&quot;btn_grn btn&quot; href=&quot;#nogo&quot;&gt;<br />
&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;Shrink-wrapped buttons&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;<br />
&lt;/a&gt;</p>
<p> &lt;a class=&quot;btn_grn2 btn&quot; href=&quot;#nogo&quot;&gt;<br />
	&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;Shrink-wrapped buttons&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;<br />
	&lt;/a&gt;<br />
	&lt;a class=&quot;btn_brwn btn&quot; href=&quot;#nogo&quot;&gt;<br />
	&lt;b&gt;&lt;b&gt;&lt;b&gt;..and a final one!&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;<br />
	&lt;/a&gt;</p>
<p>This is an adaption to the work done by:<br/><br />
<a href="http://www.schillmania.com/content/entries/2006/04/more-rounded-corners/">schillmania.com &#8211; More Rounded Corners with CSS<a/><br />
<a href="http://www.456bereastreet.com/lab/bulletproof-shrinkwrapping-buttons/">456bereastreet.com &#8211; Bulletproof shrinkwrapping buttons<a/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ekstasis.net/log/2009/06/11/buttons/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS tags</title>
		<link>http://www.ekstasis.net/log/2009/05/12/css-tags/</link>
		<comments>http://www.ekstasis.net/log/2009/05/12/css-tags/#comments</comments>
		<pubDate>Tue, 12 May 2009 17:52:04 +0000</pubDate>
		<dc:creator>mat</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.ekstasis.net/log/2009/05/12/css-tags/</guid>
		<description><![CDATA[Here&#8217;s some tags. They stretch to fit the text and change state on hover:


tag 1
tag whatever you like
tag three




Here&#8217;s the code and image:

&#60;style type=&#34;text/css&#34;&#62;
	#cssTags ul.tags {
	margin: 0 0 5px 0;
	padding: 0;
	list-style: none;
	background-colour: transparent;
	}
	#cssTags ul.tags li {
	display: inline;
	background: yellow;
	}
	#cssTags ul.tags li a {
	display:block;
	float:left;
	font-size:14px;
        line-height:16px;
	height:20px;
	overflow: hidden;
	margin: 5px 0 0 0;
	padding: [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s some tags. They stretch to fit the text and change state on hover:</p>
<div id="cssTags">
<ul class="tags">
<li><a href="#" rel="tag">tag 1</a></li>
<li><a href="#" rel="tag">tag whatever you like</a></li>
<li><a href="#" rel="tag">tag three</a></li>
</ul>
</div>
<div class="clear"></div>
<p><br/></p>
<p>Here&#8217;s the code and image:</p>
<p><span id="more-81"></span></p>
<p>&lt;style type=&quot;text/css&quot;&gt;<br />
	#cssTags ul.tags {<br />
	margin: 0 0 5px 0;<br />
	padding: 0;<br />
	list-style: none;<br />
	background-colour: transparent;<br />
	}<br />
	#cssTags ul.tags li {<br />
	display: inline;<br />
	background: yellow;<br />
	}</p>
<p>	#cssTags ul.tags li a {<br />
	display:block;<br />
	float:left;<br />
	font-size:14px;<br />
        line-height:16px;<br />
	height:20px;<br />
	overflow: hidden;<br />
	margin: 5px 0 0 0;<br />
	padding: 4px 14px 0 26px;<br />
	text-decoration:none;<br />
	background:transparent url(/images/blog/tag.gif) no-repeat 0 0;<br />
	border-right:1px solid #666666;<br />
	}</p>
<p>#cssTags ul.tags li a:hover {<br />
	background-position: 0 -24px;<br />
	}</p>
<p>&lt;/style&gt;<br />
	&lt;/head&gt;</p>
<p>&lt;body&gt;</p>
<p>&lt;div id=&quot;ccTags&quot;&gt;<br />
	&lt;ul class=&quot;tags&quot;&gt;<br />
	&lt;li&gt;&lt;a href=&quot;#&quot; rel=&quot;tag&quot;&gt;tag 1&lt;/a&gt;&lt;/li&gt;<br />
	&lt;li&gt;&lt;a href=&quot;#&quot; rel=&quot;tag&quot;&gt;tag whatever you like&lt;/a&gt;&lt;/li&gt;<br />
	&lt;li&gt;&lt;a href=&quot;#&quot; rel=&quot;tag&quot;&gt;tag three&lt;/a&gt;&lt;/li&gt;<br />
	&lt;/ul&gt;<br />
	&lt;/div&gt;</p>
<p><img src="/images/blog/tag.gif" alt="tags"/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ekstasis.net/log/2009/05/12/css-tags/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Browser shots</title>
		<link>http://www.ekstasis.net/log/2009/04/27/browser-shots/</link>
		<comments>http://www.ekstasis.net/log/2009/04/27/browser-shots/#comments</comments>
		<pubDate>Mon, 27 Apr 2009 08:57:33 +0000</pubDate>
		<dc:creator>mat</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://www.ekstasis.net/log/2009/04/27/browser-shots/</guid>
		<description><![CDATA[I&#8217;ve created a frame for browser shots &#8211; it&#8217;s the safari browser. All screenshots have to be 300px wide.









 

Here&#8217;s a link to the pre-sliced Photoshop image: mac_browser_sml.psd
Add some extra padding to the bottom and a reflection to the bottom of the browser frame to get that web 2.0 look.
Here&#8217;s the CSS

#browserWrap {
float: left;
margin: 0 [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve created a frame for browser shots &#8211; it&#8217;s the safari browser. All screenshots have to be 300px wide.</p>
<div id="browserWrap">
<div class="browsershot">
<div class="browsershotscroll">
<div class="browsershotscrolltop"><a href="/log/"><img src="/images/blog/website_thumbnail.jpg" width="300" height="263" alt="Eklog" /></a>
<div class="browsershotscrollbot"></div>
</div>
</div>
</div>
</div>
<p> <!-- /#browserWrap --></p>
<div class="clear"></div>
<p>Here&#8217;s a link to the pre-sliced Photoshop image: <a href="/imports/mac_browser_sml.psd" title="Click to download">mac_browser_sml.psd</a></p>
<p>Add some extra padding to the bottom and a reflection to the bottom of the browser frame to get that web 2.0 look.</p>
<h3>Here&#8217;s the CSS</h3>
<p><span id="more-82"></span><br />
#browserWrap {<br />
float: left;<br />
margin: 0 12px 12px 0;<br />
}</p>
<p>#browserWrap .browsershot {<br />
width: 306px;<br />
background: url(images/mac_browser_bot.gif) no-repeat bottom left;<br />
margin: 0;<br />
padding: 0 0 6px 0;<br />
float: left;<br />
position: relative;<br />
}</p>
<p>#browserWrap .browsershot a {<br />
width: 305px;<br />
background: transparent url(images/mac_browser_top.gif) no-repeat top left;<br />
margin: 0;<br />
padding: 20px 0 0 1px;<br />
float: left;<br />
display: block;</p>
<p>}<br />
#browserWrap .browsershotscroll {<br />
width: 306px;<br />
background: transparent url(images/mac_browser_scroll.gif) repeat-y right;<br />
margin: 0;<br />
padding: 0 0 0 10;<br />
float: left;<br />
z-index: 2;<br />
}<br />
#browserWrap .browsershotscrolltop {<br />
background: transparent url(images/mac_browser_scrolltop.gif) no-repeat top right;<br />
margin: 0;<br />
width: 100%;<br />
z-index: 3;<br />
}<br />
#browserWrap .browsershotscrollbot {<br />
width: 6px;<br />
height: 15px;<br />
background: transparent url(images/mac_browser_scrollbot.gif) no-repeat bottom right;<br />
margin: 0;<br />
position: absolute;<br />
bottom: 6px;<br />
right: 0;<br />
z-index: 3;<br />
}<br />
#browserWrap img {<br />
border: 0;<br />
}</p>
<h3>The mark-up</h3>
<p>&lt;div id=&quot;browserWrap&quot;&gt;<br />
&lt;div class=&quot;browsershot&quot;&gt;<br />
&lt;div class=&quot;browsershotscroll&quot;&gt;&lt;div class=&quot;browsershotscrolltop&quot;&gt;<br />
&lt;a href=&quot;/log/&quot;&gt;&lt;img src=&quot;/images/blog/website_thumbnail.jpg&quot; width=&quot;300&quot; height=&quot;263&quot; alt=&quot;Eklog&quot; /&gt;&lt;/a&gt;<br />
&lt;div class=&quot;browsershotscrollbot&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;!&#8211; /.browsershot &#8211;&gt;<br />
&lt;/div&gt; &lt;!&#8211; /#browserWrap &#8211;&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ekstasis.net/log/2009/04/27/browser-shots/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML Email development</title>
		<link>http://www.ekstasis.net/log/2009/01/23/html-email-development/</link>
		<comments>http://www.ekstasis.net/log/2009/01/23/html-email-development/#comments</comments>
		<pubDate>Sat, 24 Jan 2009 00:23:39 +0000</pubDate>
		<dc:creator>mat</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.ekstasis.net/log/2009/07/19/html-email-development/</guid>
		<description><![CDATA[ I&#8217;ve created a presentation about HTML emails.
Contents:

Design tips
Photoshop/Image software tips
Coding tips
coding examples
Structure
Styling for a variety of email clients
Rendering bug fixing
Email delivery software
Testing
Examples of newsletters: Evans, Miss Selfridge, BHS, House of Fraiser, ASOS, M&#038;S

Here&#8217;s a download link: HTML Email development
]]></description>
			<content:encoded><![CDATA[<p><img align="right" src="/images/blog/spam-spreaders.jpg" alt="spam" /> I&#8217;ve created a presentation about HTML emails.</p>
<p>Contents:</p>
<ul>
<li>Design tips</li>
<li>Photoshop/Image software tips</li>
<li>Coding tips</li>
<li>coding examples</li>
<li>Structure</li>
<li>Styling for a variety of email clients</li>
<li>Rendering bug fixing</li>
<li>Email delivery software</li>
<li>Testing</li>
<li>Examples of newsletters: Evans, Miss Selfridge, BHS, House of Fraiser, ASOS, M&#038;S</li>
</ul>
<p>Here&#8217;s a download link: <a href="/imports/HTML_email_development.pdf" title="click to download" />HTML Email development</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ekstasis.net/log/2009/01/23/html-email-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Standards</title>
		<link>http://www.ekstasis.net/log/2008/03/26/standards/</link>
		<comments>http://www.ekstasis.net/log/2008/03/26/standards/#comments</comments>
		<pubDate>Wed, 26 Mar 2008 22:09:49 +0000</pubDate>
		<dc:creator>mat</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://www.ekstasis.net/log/2008/03/26/standards/</guid>
		<description><![CDATA[HTML Markup:

XHTML Strict 1.0 W3C valid markup.
Semantically correct markup &#8211; e.g. use &#60;ul&#62; unordered lists for any list of items.
Common identifiers should be used based on potential HTML classes and hCard microformat.

Cross Browser Valid:

Identical (and fully functional) user experience across browsers. (note: browser differences for font anti-aliasing are expected) &#8211; Internet Explorer 6, 7 &#038; [...]]]></description>
			<content:encoded><![CDATA[<p>HTML Markup:</p>
<ul>
<li>XHTML Strict 1.0 W3C valid markup.</li>
<li>Semantically correct markup &#8211; e.g. use &lt;ul&gt; unordered lists for any list of items.</li>
<li>Common identifiers should be used based on potential HTML classes and hCard microformat.</li>
</ul>
<p>Cross Browser Valid:</p>
<ul>
<li>Identical (and fully functional) user experience across browsers. (note: browser differences for font anti-aliasing are expected) &#8211; Internet Explorer 6, 7 &#038; 8 + Safari 2 &#038; 3 + Firefox 2 &#038; 3 + Google Chrome + Opera 9  for Windows XP | Firefox 2 &#038; 3 + Safari 2 &#038; 3 for Mac OSX.</li>
</ul>
<p>CSS Styling:</p>
<ul>
<li>CSS styles must be completely unobtrusive with no inline styles.</li>
<li>Elements should not be positioned absolutely unless necessary &#8211; All main element blocks should normally be positioned relatively so if new content is added the existing elements would automatically reposition in the flow. Also wherever font-size is increased the layout integrity remains.</li>
</ul>
<p><span id="more-86"></span><br />
Client side scripting:</p>
<ul>
<li>All JavaScript should be unobtrusive and loaded / called through external files &#8211; using IDs or Classes as hooks, no inline JavaScript such as onclick functions.</li>
<li>The existence of Functions and Objects should be tested for before use where practical.</li>
<li>The jQuery library is preferred.</li>
</ul>
<p>Accessibility:</p>
<ul>
<li>JavaScript features are unobtrusive and the dynamic features degrade well with scripting disabled: All content should be accessible with JavaScript disabled including hidden or asynchronously included content. (e.g. Content asynchronously included with AJAX is replaced with a standard link for screen readers or clients with no javaScript.)</li>
<li>Content should be accessible via keyboard for users without mouse control.</li>
<li>Using meaningful ALT text for information images.</li>
<li>Links should have descriptive hyperlink text and titles warning of link actions.</li>
<li>Text colours have adequate contrast for colour blind/challenged users.</li>
<li>Avoid the use of frames, which are difficult for special browsers to interpret.</li>
<li>Keyboard shortcut to main content available.</li>
<li>Labels assigned to form items and forms have accessible design.</li>
</ul>
<p>Usability:</p>
<ul>
<li>Links, buttons &#038; other dynamic elements have hover states, focus states and active states.</li>
<li>AJAX calls include history recording for forward / back buttons and bookmarking / links.</li>
<li>Navigation menu will only activate when the user intends to use it – i.e. user slows the cursor down over a link. The menu is not activated if the cursor is dragged across the menu. (through a delay or hover intent script)</li>
<li>Search field has suggestion. This  is greyed out until the user starts typing.</li>
</ul>
<p>SEO:</p>
<ul>
<li>Site is fully available without JavaScript.</li>
<li>Semantic mark-up with consistent URL, breadcrumb and content titles. Where titles are graphical, &lt;h1&gt; image replacement techniques are used.</li>
<li>CSS coding allows the content to appear before the top and left navigation in the source code. Spiders will arrive at the header then the &lt;h1&gt; tags at the top of the content. They spider the content first then the navigation and footer last &#8211; enhancing SEO.</li>
</ul>
<p>Optimization:</p>
<ul>
<li>Repeating background image layers used for reoccurring design patterns.</li>
<li>Dynamic graphical elements preloaded and highlighted using CSS sprites technique.</li>
<li>AJAX used to pull in optional content where file size may degrade performance.</li>
</ul>
<p>Accessibility issues that are not priority 1 issues and do not fail the legal Accessibility guideline requirements:<br />
- Text input fields with a default value &#8211; Text fields may have a default value &#8211; but only for users with JavaScript enabled (96% of users). This is so that a &#8216;dynamic&#8217; default value can be added that disappears when the user click in the box. This is a superior solution but not 100% accessible to people with disabilities.<br />
- Adjacent links are separated by white space &#8211; CSS is used to separate some adjacent links. This can make it difficult for some older assistive technologies (readers for the blind). This is done to improve performance and ease of future updates. People should update their older assistive technologies.<br />
- Web colour scheme may not be tested against protanope, deuteranope, and tritanope colour-blindness.<br />
- Form fieldsets do not have legends. These are normally catered for by titles, or left out when the design requires.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ekstasis.net/log/2008/03/26/standards/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DHTML tree menu testing</title>
		<link>http://www.ekstasis.net/log/2006/12/19/dhtml-tree-menu-testing/</link>
		<comments>http://www.ekstasis.net/log/2006/12/19/dhtml-tree-menu-testing/#comments</comments>
		<pubDate>Tue, 19 Dec 2006 20:49:02 +0000</pubDate>
		<dc:creator>mat</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[DHTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.ekstasis.net/log/2006/12/19/dhtml-tree-menu-testing/</guid>
		<description><![CDATA[
Testing and evaluating DHTML menu trees.
Each menu included in the list (below) has it&#8217;s own testing area. They&#8217;ve been tested for full functionality within a working &#8216;mini site&#8217; and adapted to demonstrate whether it&#8217;s possible to open nested levels and display the current location without altering the body tag.
Here&#8217;s the list of menus with a [...]]]></description>
			<content:encoded><![CDATA[<div align="center"><img alt="menu tree" title="menu tree" class="reflect rheight20 ropacity40" src="/images/logpics/menutree.jpg" /></div>
<h4>Testing and evaluating DHTML menu trees.</h4>
<p>Each menu included in the list (below) has it&#8217;s own testing area. They&#8217;ve been tested for full functionality within a working &#8216;mini site&#8217; and adapted to demonstrate whether it&#8217;s possible to open nested levels and display the current location without altering the body tag.</p>
<p>Here&#8217;s the list of menus with a link to the test and a link to the original sites:</p>
<table width="100%" cellpadding="0" border="0">
<tr>
<td><strong>Link to test area</strong></td>
<td><strong>Link to original site</strong></td>
</tr>
<tr>
<td><a href="/tests/menu08/">ECMA menu test</a><a href="/tests/menu12/" /></td>
<td><a href="http://juicystudio.com/article/ecmascriptmenu.php">Juicystudio.com menu</a></td>
</tr>
<tr>
<td><a href="/tests/menu08/">Ecommnet menu test</a></td>
<td><a href="http://www.ecommnet.co.uk/test/juicymenu/testthis4.asp">Ecommnet.co.uk menu</a></td>
</tr>
<tr>
<td><a href="/tests/menu12/">PDE menu test</a></td>
<td><a href="http://onlinetools.org/tools/dom-tree-menu-puredom/">Onlinetools.org menu</a></td>
</tr>
<tr>
<td><a href="/tests/menu09/">Splintered menu test</a></td>
<td><a href="http://www.splintered.co.uk/experiments/archives/menu_replace/">Splintered.co.uk menu</a></td>
</tr>
<tr>
<td><a href="/tests/menu03/">DNolan menu test</a></td>
<td><a href="http://www.dnolan.com/code/js/listmenu/">DNolan.com menu</a></td>
</tr>
<tr>
<td><a href="/tests/menu13/">MKTree menu test</a></td>
<td><a href="http://www.mattkruse.com/javascript/mktree/">Mattkruse.com MKTree menu</a></td>
</tr>
<tr>
<td><a href="/tests/menu10/">Simple Tree menu test</a></td>
<td><a href="http://www.dynamicdrive.com/dynamicindex1/navigate1.htm">Dynamicdrive.com menu</a></td>
</tr>
<tr>
<td><a href="/tests/menu05/">Click drop menu test</a></td>
<td><a href="http://bonrouge.com/br.php?page=clickdrop">Bonrouge.com Clickdrop menu</a></td>
</tr>
<tr>
<td><a href="/tests/menu01/">CreateMenu menu test</a></td>
<td><a href="http://www.codingforums.com/showthread.php?t=42084&#038;page=5">Codingforums.com Mike&#8217;s tree</a></td>
</tr>
<tr>
<td><a href="/tests/menu11/">Gazingus menu test</a></td>
<td>Site no longer available</td>
</tr>
</table>
<p>
<span id="more-32"></span></p>
<p>Displaying the &#8216;current location&#8217; is vital for clear site navigation. This feature is not usually included with the original menu source code. In order to test whether it is possible to adapt the menus to include this feature each menu has been set up &#8211; where possible &#8211; to indicate the &#8216;current location&#8217; and automatically open the tree at that level.</p>
<p>Links below include the local test area and the original URL providing the source code.</p>
<p>Only free-of-charge menu systems are included in this evaluation.</p>
<p>Overview of evaluation criteria:</p>
<ul>
<li>Is it accessible? Driveable by keyboard only?</li>
<li>How separate is the content, presentation, and behaviour.</li>
<li>Does it degrade well without JavaScript or CSS?</li>
<li>How easy is it to indicate the &#8216;current location&#8217; of the page selected?</li>
<li>Does it opens and displays current status for an included page &#8211; [e.g. HTML: main.php?page=page1.] i.e. cannot use body tags or code in  section of page?</li>
<li>When clicking on the parent item / title of the section do the nested list items open &#8211; i.e. not just clicking on the graphic which can cause confusion?</li>
<li>Is it xhtml 1.0 strict valid?</li>
</ul>
<p>In order to keep the nested levels visible at a specific location I have used one of two types of server-side functions:</p>
<pre><code><</code>?php
$theuri = $_SERVER['REQUEST_URI']; ?>
<code><</code>?php
if ( ($theuri =="/s01sub1a01.php") or ($theuri ==
"/tests/menu13/section1pages/s01sub1a02.php"))
echo " class=\"liOpen\"";
else echo " class=\"liClosed\""; ?>
</pre>
<p>or</p>
<pre><code><</code><code>?php
if ( ($thisPage=="s01sub1b01")
or ($thisPage=="s01sub1b02") or ($thisPage=="s01sub1b03") )
echo " rel=\"open\""; ?></code></pre>
<p>A better method to use is demonstrated below.<br />
This has not been used in these tests because of the need for<br />
modRewrite using the RewriteEngine:</p>
<pre><code>$lines = split("\n", $menu);
foreach ($lines as $line) {
$current = false;
preg_match('/href="([^" mce_href="([^"]+)"/', $line, $url);
if (substr($_SERVER["REQUEST_URI"], 0, 5) == substr($url[1], 0, 5)) {
$line = str_replace('</code><code><</code>a h', '<code><</code>
<code>a id="current" h', $line); }
echo $line."\n";
}
</code>
</pre>
<p>[Full source code available at: <a title="pregmatch code" href="http://photomatt.net/scripts/intellimenu">http://photomatt.net/</a> ]</p>
<p></p>
<p>or</p>
<pre><code><</code><code>?php
$menu =
file_get_contents("/inc/menu.htm");
$menu = preg_replace("|</code><code><</code>li><code><</code>
<code>a xhref=\"" .
basename($_SERVER['PHP_SELF']) . "\">(.*),/code><code><</code><code>!--[^-->]+></code>
<code><</code><code>/li>|U","</code><code><</code>
<code>li class=\"current\">$1</code><code><</code><code>/li>", $menu);
echo $menu;</code>
<code>?></code></pre>
<p>[Full source code currently lost and code not tested. ]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ekstasis.net/log/2006/12/19/dhtml-tree-menu-testing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PNG transparency rounded corners using images</title>
		<link>http://www.ekstasis.net/log/2006/12/06/png-transparency-rounded-corners-using-images/</link>
		<comments>http://www.ekstasis.net/log/2006/12/06/png-transparency-rounded-corners-using-images/#comments</comments>
		<pubDate>Wed, 06 Dec 2006 22:06:18 +0000</pubDate>
		<dc:creator>mat</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.ekstasis.net/log/?p=33</guid>
		<description><![CDATA[
UPDATE: Schillmaina has produced a new improved solution. See it here.
It seems like there&#8217;s a million and one different solutions for creating round corners for boxes. There&#8217;s a good summary of many of the rounded corners solutions at www.smileycat.com: CSS Rounded Corners &#8216;Roundup&#8217;
That&#8217;s why it&#8217;s surprising to find there&#8217;s no cross-browser solution for rounded corners [...]]]></description>
			<content:encoded><![CDATA[<div align="center"><img title="rounded corners title" alt="rounded corners title" class="reflect rheight20 ropacity40" src="/images/logpics/rndcorners.jpg" /></div>
<p><strong>UPDATE</strong>: Schillmaina has produced a new improved solution. <a href="http://www.schillmania.com/content/projects/even-more-rounded-corners/">See it here.</a></p>
<p>It seems like there&#8217;s a million and one different solutions for creating round corners for boxes. There&#8217;s a good summary of many of the rounded corners solutions at www.smileycat.com: <a href="http://www.smileycat.com/miaow/archives/000044.html">CSS Rounded Corners &#8216;Roundup&#8217;</a></p>
<p>That&#8217;s why it&#8217;s surprising to find there&#8217;s no cross-browser solution for rounded corners using PNG transparent images.</p>
<p><span id="more-33"></span></p>
<p>But by tweaking one of the solutions out there it appears it is possible to get cross-browser solution for <a href="http://www.ekstasis.net/tests/rndcorners/">PNG transparency rounded corners using images. Click the link to see it in action.<br />
</a></p>
<p>One of the closest there is to a working solution can be found at <a href="http://www.schillmania.com/content/entries/2006/04/more-rounded-corners/">Schillmania&#8217;s rounded corners solution</a>.</p>
<p>Unfortunately there&#8217;s was an overlap producing a small imperfection. See <a href="http://www.ekstasis.net/tests/rndcorners/">the test</a> for an image displaying this.</p>
<p>Another downside is that&#8217;s also only possible to use an opaque box with that CSS code (and support IE6) &#8211; only the shadow effect can be transparent. A transparent white box with left border ornamentation isn&#8217;t possible.</p>
<p>The code used in <a href="http://www.ekstasis.net/tests/rndcorners/">the test</a> has been updated to give the following enhancements:</p>
<ol>
<li>It now works in Internet Explorer 7.</li>
<li>Created new code to enable a design which includes border ornamentation on all four sides.</li>
<li>Added Stu Nicholl&#8217;s (<a href="http://www.cssplay.co.uk/">CSSPlay.co.uk</a>) <a href="http://www.cssplay.co.uk/boxes/width2.html">minimum width for Internet Explorer 6</a> solution so that the layout doesn&#8217;t collapse at narrow browser widths.</li>
<li>Used conditional comments to serve Internet Explorer 6 with non transparent GIF images (and a white background for the BODY).</li>
</ol>
<p>Although there are a huge number of rounded corner solutions with much better mark-up and CSS code, designers sometimes need the flexibility of using images, and the png drop show effect.</p>
<p>Unfortunately the <a href="http://www.456bereastreet.com/archive/200505/transparent_custom_corners_and_borders/">JavaScript solution</a> from 456bereastreet.com doesn&#8217;t work in IE7. (See <a href="http://www.ekstasis.net/tests/rndcorners/">the test</a> for an image displaying this.)</p>
<p>There are better solutions for using gif images when the transparent png effect for shadows aren&#8217;t needed:</p>
<p>Check out Franky&#8217;s solution at his <a href="http://home.tiscali.nl/developerscorner/liquidcorners/liquid-corners-playgarden-08b.htm">developerscorner</a>.</p>
<p>And there is the solution from A List Apart: <a href="http://www.alistapart.com/articles/customcorners2/">Creating Custom Corners &#038; Borders Part II</a>.</p>
<p>The CSS used for the box above relies on the more forgiving nature of the black colour. The design only requires an image on the right hand side to give the shadow effect &#8211; on the left no image is needed as it&#8217;s just plain black.</p>
<p>In order to make the opaque design above (from schillmania.com) work in Internet Explorer 7 the following changes were needed:</p>
<p>Added the following CSS to .box .bd .c  : { position: relative; padding-right: 6px; width: 100%; height: 100%;</p>
<p>Then reduced the right margin of .box .bd .c .s by 6px</p>
<p>In order to have <a href="/tests/rndcorners/index.htm#whitecorners">this second design</a> which includes border ornamentation on all four sides &#8211; working in a fairly similar fashion in both modern browsers and Internet Explorer 6 &#8211; the following adaptions to the IE6 style sheet were needed:</p>
<ol>
<li>Crop the middle left border image so it doesn&#8217;t cover the entire width</li>
<li>Move the middle right border image into the main inside DIV &#8211; where the text resides (this meant leaving out the image with the daisies.)</li>
<li>Adjusting the margin on the inside DIV so the middle left boder image can be seen beneath it (margin:0px -4px 0px 14px;)</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.ekstasis.net/log/2006/12/06/png-transparency-rounded-corners-using-images/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Liquid Layouts</title>
		<link>http://www.ekstasis.net/log/2006/11/26/liquid-layouts/</link>
		<comments>http://www.ekstasis.net/log/2006/11/26/liquid-layouts/#comments</comments>
		<pubDate>Sun, 26 Nov 2006 23:14:03 +0000</pubDate>
		<dc:creator>mat</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.ekstasis.net/log/?p=34</guid>
		<description><![CDATA[
This is the web: it moves. We have small screens, wide screens, and a variety of needs for the desktop space on any screen. Fixed layouts are for magazines.
If visitors have a 1024 pixels wide screen &#8211; and they don&#8217;t want to stretch the browser widow across the entire width &#8211; any 1024 pixel wide [...]]]></description>
			<content:encoded><![CDATA[<div align="center"><img class="reflect rheight20 ropacity40" alt="Liquid Layouts" title="Liquid Layouts" src="/images/logpics/liquidlayouts.jpg" /></div>
<p>This is the web: it moves. We have small screens, wide screens, and a variety of needs for the desktop space on any screen. Fixed layouts are for magazines.</p>
<p>If visitors have a 1024 pixels wide screen &#8211; and they don&#8217;t want to stretch the browser widow across the entire width &#8211; any 1024 pixel wide fixed layout means horizontal scrolling &#8211; and that&#8217;s not very nice.</p>
<p>In order to demonstrate liquid or fixed CSS functionality within the page it&#8217;s necessary to have a liquid layout. It&#8217;s even possible to have a liquid elastic layout.</p>
<p>Here&#8217;s a list of some of the best liquid layout tutorials on the web: <a title="Liquid Layout Links" href="/site/cst/css_layout">CSS Liquid Layouts</a>.</p>
<p>Liquid layouts do need a minimum width to stop the design breaking when the browser is narrowed. CSS or JavaScript can be used to do this (<a title="Mix Max Links" href="/site/cst/css_minmax">click here for some links</a>.)</p>
<p>O.K., a rant about liquid layouts within a fixed layout design may be the epitome of irony but hypocrisy is this &#8220;blogger&#8217;s&#8221; speciality. This liquid layout for Wordpress: <a title="Seabeat" href="http://green-beast.com/seabeast/">SeaBeast</a> looks great. It doesn&#8217;t have a minimum width but uses a drop column technique so the design looks good at narrow widths.</p>
<p>Here&#8217;s a couple of liquid layouts with border images to give great flexibility with web page design:</p>
<div style="text-align: center">
<img alt="Eklayout1" title="Eklayout1" src="/images/logpics/eklayout1_screenshot.jpg" />
</div>
<div style="text-align: center"><a title="Eklayout 1" href="/tests/eklayout1/">click to see layout 1</a></div>
<div style="text-align: center">
<img alt="Eklayout 2" title="Eklayout 2" src="/images/logpics/eklayout2_screenshot.jpg" />
</div>
<div style="text-align: center"><a title="Eklayout 2" href="/tests/eklayout2/">click to see layout 2</a></div>
<p>Make like the polar ice caps: go liquid.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ekstasis.net/log/2006/11/26/liquid-layouts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AJAX star rating bar</title>
		<link>http://www.ekstasis.net/log/2006/11/14/ajax-star-rater/</link>
		<comments>http://www.ekstasis.net/log/2006/11/14/ajax-star-rater/#comments</comments>
		<pubDate>Tue, 14 Nov 2006 02:27:25 +0000</pubDate>
		<dc:creator>mat</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.ekstasis.net/log/?p=21</guid>
		<description><![CDATA[This Multiple CSS/AJAX rating bar from http://www.masuga.com/ is the dog&#8217;s blox. Everything is set up so you can just stick as many as you like anywhere in your site. The mark-up for any star rating component is a very simple &#8216;PHP require&#8217; with a unique ID and the JavaScript id pretty unobtrusive. It automatically creates [...]]]></description>
			<content:encoded><![CDATA[<p>This <a href="http://www.masugadesign.com/the-lab/scripts/unobtrusive-ajax-star-rating-bar/">Multiple CSS/AJAX rating bar</a> from <a href="http://www.masuga.com/">http://www.masuga.com/</a> is the dog&#8217;s blox. Everything is set up so you can just stick as many as you like anywhere in your site. The mark-up for any star rating component is a very simple &#8216;PHP require&#8217; with a unique ID and the JavaScript id pretty unobtrusive. It automatically creates an entry in the MySQL table whenever anyone votes. Looks like a good place for design help at <a href="http://www.masugadesign.com/">http://www.masugadesign.com/</a>.</p>
<p><span id="more-21"></span></p>
<p>You can see it in action in a number of my site links pages e.g.: <a href="/web/csr/css_sites">CSS Sites</a>.</p>
<p>If you change the size of the rating bar, be sure to remember to adjust the size of the &#8216;current ratings status&#8217; in the rpc.php and functions.php file. E.g. $current_rating/$count,2)*15. This has to be set twice &#8211; once, as the score is &#8216;re-rendered&#8217; (with no change) if the user has voted already.</p>
<p class="blogtext">If you float the rater using position relative, you may need to make an adjustent for IE6 and IE7. As the image of the stars for current rating is positioned absolutely they enjoy the float in Internet Explorer and appear to the right of the rater. Adding &#8216;left: 0&#8242; is already applied in Mozilla browsers but needs to be added to sort things out for IE.</p>
<p>.unit-rating li.current-rating {<br />
left: 0;<br />
}</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ekstasis.net/log/2006/11/14/ajax-star-rater/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS Hacking tips</title>
		<link>http://www.ekstasis.net/log/2006/11/10/css-hacking-tips/</link>
		<comments>http://www.ekstasis.net/log/2006/11/10/css-hacking-tips/#comments</comments>
		<pubDate>Fri, 10 Nov 2006 18:12:30 +0000</pubDate>
		<dc:creator>mat</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.ekstasis.net/log/?p=17</guid>
		<description><![CDATA[Conditional comments
IE conditional comments ( Websemantics.co.uk &#8211; conditional comments )
The format is:
 Only      IE displays this text if the condition is met  
There are 6 conditions that can be applied (there's a "logical not"      case too):

[if IE] - if above or equal to version [...]]]></description>
			<content:encoded><![CDATA[<h4 class="startitle">Conditional comments</h4>
<h5 class="blogtitle">IE conditional comments ( <a href="http://www.websemantics.co.uk/tutorials/useful_css_snippets/">Websemantics.co.uk &#8211; conditional comments</a> )</h5>
<p>The format is:<br />
<code><</code>!--[if "condition" IE "version number"]<code>></code> Only      IE displays this text if the condition is met  <code><</code>![endif]--<code>></code></p>
<p>There are 6 conditions that can be applied (there's a "logical not"      case too):</p>
<ol>
<li>[if IE] - if above or equal to version 5</li>
<li>[if IE 6] - if equal to version 6</li>
<li>[if lt IE 6] - if less than version 6</li>
<li>[if lte IE 6] - if less than or equal to version 6</li>
<li>[if gt IE 6] - if greater than version 6</li>
<li>[if gte IE 6] - if greater than or equal to version 6</li>
</ol>
<p>Valid version numbers are 5, 5.5, 6 and 7.      (There is support for specific version numbers such as 5.0453.)</p>
<p>For adding a style for IE v5 only:</p>
<p align="left"><code><</code>!--[if IE 5]<code>></code> <code><</code>style type="text/css"<code>></code>@import "IE5_only.css";<code><</code>/style<code>></code>      <code><</code>![endif]--<code>></code></p>
<p>Validators do not check the code inside the comments so take care.</p>
<h4 class="startitle">Internet Explorer 6 hacks</h4>
<h5 class="blogtitle">Min height fast hack ( <a href="http://www.dustindiaz.com/min-height-fast-hack/">Dustindiaz</a> )</h5>
<p>selector {<br />
min-height:500px;<br />
height:auto !important;<br />
height:500px;<br />
}</p>
<p><span id="more-17"></span></p>
<h5 class="blogtitle">Box model hack with wrapper ( <a href="http://www.webreference.com/authoring/style/sheets/layout/advanced/">www.webreference.com</a> )</h5>
<p>The IE box model problem does not affect Internet Explorer 6, which uses the standard box model (provided there exists a doctype to switch the browser into standards mode)</p>
<p>Older versions of Internet Explorer incorrectly calculate the width and height of block level items by including padding values within the boxâ€™s dimensions, rather than adding it outside the box. If you have a div validly specified like this:</p>
<p>div {_ width: 100px;_ padding: 5px;_ border: 5px solid #fff;_ }</p>
<p>The div will be 120 pixels wide in most browsers, but only 100 pixels wide in IE.</p>
<p>The easiest solutions is the box-within-a-box method, which places one div inside another:</p>
<p>div {_ width: 100px;_ }<br />
div .hack {_ padding: 5px;_ border: 5px solid #fff;_ }</p>
<p>This is applied in the following way:<br />
<code><</code>div<code>></code><br />
<code><</code>div class=â€hackâ€<code>></code><br />
Your content goes here<br />
<code><</code>/div<code>></code><br />
<code><</code>div<code>></code></p>
<p>If you've got to set the width of a box, that also needs padding or borders, separate them into two divs, not one. The rule is: For the same block element you might set horizontal margins and width or horizontal margins, horizontal borders and horizontal padding. Avoid declaring width and padding or width and borders for the same block element. Use nesting to achieve the desired visual.</p>
<p>If you want to use bottom or right properties you have to set either the width or height for the parent and it will work in IE.</p>
<p>Opera conflicts more with the W3C's CSS specification, so you need to set the width for the child if you want to use the right property, if you want to use the bottom property you have to set the height for both parent and child.</p>
<p>Floats can cause clearance problems - especially with forms. Solutions: use a DIV around the enclosing DIV set to clear to avoid this in NS6 or set the form line height to less than the DIV's height and clear the DIV below.</p>
<p>Do not use fixed heights. Version 5/6 IE browsers do not support specification of fixed heights. Also min-height is not supported, in v5/6 browsers. IE 5.5 doesn't support min-width, max-width, min-height, max-height.</p>
<p>In forms, set margin:0 for Opera and Netscape. Especially for floats, to minimize margins like IE.</p>
<h5 class="blogtitle">Autoheight and margin collapsing ( <a href="http://www.researchkitchen.de/blog/archives/css-autoheight-and-margincollapsing.php">Researchkitchen.de</a> )</h5>
<p>The Opera styles declare:</p>
<p>body {<br />
margin: 0;<br />
padding: 8px;<br />
}</p>
<p>On the other hand, Mozilla and Internet Explorer assign the following styles:</p>
<p>body {<br />
margin: 8px;<br />
padding: 0;<br />
}<br />
This is only a slight difference, but it has a lot of impact on our example design:</p>
<p>body {<br />
font: 100%/1.5 Georgia, "Times New Roman", Times, serif;<br />
margin: 0;<br />
padding: 8px;<br />
}</p>
<p>Since there is now a padding, the height of body will change. It will be now the distance from the outer top margin edge to the outer bottom margin edge of its normal-flow block-level child.</p>
<h5 class="blogtitle">Expanding box bug ( <a href="http://www.positioniseverything.net/explorer/expandingboxbug.html">Positioniseverything.net</a> )</h5>
<p>IE5/6/win will (incorrectly) expand the width or height of an div (where a fixed height or width have been specified) if the content extends beyond the specified area. (often  due to font size changes) To avoid breaking the layout you can use overflow-x or overflow-y: hidden.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ekstasis.net/log/2006/11/10/css-hacking-tips/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
