<?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>blog.macrominds &#187; Webdesign</title>
	<atom:link href="http://blog.macrominds.de/category/webdesign/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.macrominds.de</link>
	<description></description>
	<lastBuildDate>Thu, 01 Dec 2011 12:36:07 +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>Online: Tiergestützte Pädagogik und Förderung Elisabeth Rathay-Spohr</title>
		<link>http://blog.macrominds.de/2011/09/online-tiergestutzte-padagogik-und-forderung-elisabeth-rathay-spohr/</link>
		<comments>http://blog.macrominds.de/2011/09/online-tiergestutzte-padagogik-und-forderung-elisabeth-rathay-spohr/#comments</comments>
		<pubDate>Tue, 06 Sep 2011 13:49:46 +0000</pubDate>
		<dc:creator>Thomas Praxl</dc:creator>
				<category><![CDATA[Webdesign]]></category>

		<guid isPermaLink="false">http://blog.macrominds.de/?p=382</guid>
		<description><![CDATA[Seit Kurzem online: 
Die Webvisitenkarte für Tiergestützte Pädagogik und Förderung im Vogelsberg von Elisabeth Rathay-Spohr.
Gestaltung (Webdesign und Flyer) und Entwicklung von macrominds.
]]></description>
			<content:encoded><![CDATA[<p>Seit Kurzem online: </p>
<p>Die Webvisitenkarte für <a href="http://www.tiergestuetzte-foerderung-vogelsberg.de/" rel="external">Tiergestützte Pädagogik und Förderung im Vogelsberg</a> von Elisabeth Rathay-Spohr.</p>
<p>Gestaltung (Webdesign und Flyer) und Entwicklung von <a href="http://www.macrominds.de">macrominds</a>.</p>
<div id="attachment_385" class="wp-caption aligncenter" style="width: 810px"><a href="http://www.tiere-unterstuetzen.de" rel="external"><img src="http://blog.macrominds.de/wp-content/uploads/2011/09/flyer.jpg" alt="Zertifizierte Fachkraft für tiergestützte Pädagogik und Förderung" title="Flyer Tiergestützte Pädagogik Dipl. Sozialpädagogin Elisabeth Rathay-Spohr" width="800" height="1600" class="size-full wp-image-385" /></a><p class="wp-caption-text">Zertifizierte Fachkraft für tiergestützte Pädagogik und Förderung</p></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.macrominds.de/2011/09/online-tiergestutzte-padagogik-und-forderung-elisabeth-rathay-spohr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wordpress-Widget: Show limited Categories</title>
		<link>http://blog.macrominds.de/2009/12/wordpress-widget-show-limited-categories/</link>
		<comments>http://blog.macrominds.de/2009/12/wordpress-widget-show-limited-categories/#comments</comments>
		<pubDate>Sun, 06 Dec 2009 15:20:56 +0000</pubDate>
		<dc:creator>Thomas Praxl</dc:creator>
				<category><![CDATA[Webdesign]]></category>

		<guid isPermaLink="false">http://blog.macrominds.de/?p=222</guid>
		<description><![CDATA[Wordpress has a built in functionality to show Categories and provides a built-in widget for that. However, I was missing the option to exclude some categories from this list. Here&#8217;s a widget that allows you to select the categories to be shown.

Download Limited Categories Widget v0.1
Install it like any other plugin by simply uploading the [...]]]></description>
			<content:encoded><![CDATA[<p>Wordpress has a built in functionality to show Categories and provides a built-in widget for that. However, I was missing the option to exclude some categories from this list. Here&#8217;s a widget that allows you to select the categories to be shown.</p>
<p><span id="more-222"></span></p>
<p><a rel="attachment wp-att-224" href="http://blog.macrominds.de/2009/12/wordpress-widget-show-limited-categories/limited-categories-widget/">Download Limited Categories Widget v0.1</a></p>
<p>Install it like any other plugin by simply uploading the extracted zip (the folder) to your wp-content/plugins/ directory.  Don&#8217;t forget to activate the plugin using the admin-web-interface of your blog.</p>
<p>Note: Since &#8220;limited categories&#8221; is a widget, you will need a wordpress-version compatible to widgets. Wordpress 2.2 should work. However, I just tested Wordpress 2.8.6.</p>
<p>If you notice any problems or bugs or if you have suggestions for improvements, just leave a comment.</p>
<p>Please notice that this is version 0.1 of the plugin, so don&#8217;t expect it to have much features or to be very comfortable. I hopefully will have the time to improve this plugin.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.macrominds.de/2009/12/wordpress-widget-show-limited-categories/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What to do when Firefox only prints the first page</title>
		<link>http://blog.macrominds.de/2009/10/what-to-do-when-firefox-only-prints-the-first-page/</link>
		<comments>http://blog.macrominds.de/2009/10/what-to-do-when-firefox-only-prints-the-first-page/#comments</comments>
		<pubDate>Sun, 25 Oct 2009 18:26:44 +0000</pubDate>
		<dc:creator>Thomas Praxl</dc:creator>
				<category><![CDATA[Webdesign]]></category>

		<guid isPermaLink="false">http://blog.macrominds.de/?p=215</guid>
		<description><![CDATA[Here&#8217;s a short article on how to fix this nasty firefox problem:

simply remove any css-setting like

overflow:auto/hidden/scroll , etc

So if you have a css like this:

   @media all{
      html&#123;
         /*fix ugly jumps for horizontally centered content when scrollbar appears*/
   [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a short article on how to fix this nasty firefox problem:<br />
<span id="more-215"></span><br />
simply remove any css-setting like</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">overflow</span><span style="color: #00AA00;">:</span><span style="color: #993333;">auto</span>/<span style="color: #993333;">hidden</span>/<span style="color: #993333;">scroll</span> <span style="color: #00AA00;">,</span> etc</pre></div></div>

<p>So if you have a css like this:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">   <span style="color: #a1a100;">@media all{</span>
      html<span style="color: #00AA00;">&#123;</span>
         <span style="color: #808080; font-style: italic;">/*fix ugly jumps for horizontally centered content when scrollbar appears*/</span>
         overflow-y<span style="color: #00AA00;">:</span><span style="color: #993333;">scroll</span><span style="color: #00AA00;">;</span>
      <span style="color: #00AA00;">&#125;</span>
      <span style="color: #cc00cc;">#content</span> <span style="color: #00AA00;">&#123;</span>
       <span style="color: #808080; font-style: italic;">/*create a separate floating space*/</span>
         <span style="color: #000000; font-weight: bold;">overflow</span><span style="color: #00AA00;">:</span><span style="color: #993333;">auto</span><span style="color: #00AA00;">;</span>
      <span style="color: #00AA00;">&#125;</span>
   <span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>just add the following:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">   <span style="color: #a1a100;">@media print{</span>
      html<span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#content</span><span style="color: #00AA00;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">overflow</span><span style="color: #00AA00;">:</span><span style="color: #993333;">visible</span><span style="color: #00AA00;">;</span>
      <span style="color: #00AA00;">&#125;</span>
   <span style="color: #00AA00;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.macrominds.de/2009/10/what-to-do-when-firefox-only-prints-the-first-page/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>seam carving in photoshop &#8211; content aware scale</title>
		<link>http://blog.macrominds.de/2009/10/seam-carving-in-photoshop-content-aware-scale/</link>
		<comments>http://blog.macrominds.de/2009/10/seam-carving-in-photoshop-content-aware-scale/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 13:30:24 +0000</pubDate>
		<dc:creator>Thomas Praxl</dc:creator>
				<category><![CDATA[Webdesign]]></category>

		<guid isPermaLink="false">http://blog.macrominds.de/?p=197</guid>
		<description><![CDATA[Shai Avidan and Ariel Shamir invented seam carving, which is a technique to change the proportion of an image without loosing or transforming important image elements. This technique has made it into Photoshop CS4. This is how to use it&#8230;
If you want to have a short glance at seam carving itself, you can watch a [...]]]></description>
			<content:encoded><![CDATA[<p>Shai Avidan and Ariel Shamir invented seam carving, which is a technique to change the proportion of an image without loosing or transforming important image elements. This technique has made it into Photoshop CS4. This is how to use it&#8230;<span id="more-197"></span><br />
If you want to have a short glance at seam carving itself, you can watch a video at <a href="http://www.youtube.com/watch?v=6NcIJXTlugc">http://www.youtube.com/watch?v=6NcIJXTlugc</a>.<br />
This screencast shows how to use Content Aware Scale (or seam carving) in Photoshop CS4.</p>

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_contentawarescale_1819297104"
			class="flashmovie"
			width="800"
			height="600">
	<param name="movie" value="http://blog.macrominds.de/wp-content/uploads/2009/10/contentawarescale.swf" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://blog.macrominds.de/wp-content/uploads/2009/10/contentawarescale.swf"
			name="fm_contentawarescale_1819297104"
			width="800"
			height="600">
	<!--<![endif]-->
		
<p><a href="http://adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /></a></p>

	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object>
]]></content:encoded>
			<wfw:commentRss>http://blog.macrominds.de/2009/10/seam-carving-in-photoshop-content-aware-scale/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simple TypeWriter effect for Flash / Actionscript3 v0.1</title>
		<link>http://blog.macrominds.de/2009/06/simple-typewriter-effect-for-flash-actionscript3-v01/</link>
		<comments>http://blog.macrominds.de/2009/06/simple-typewriter-effect-for-flash-actionscript3-v01/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 15:09:44 +0000</pubDate>
		<dc:creator>Thomas Praxl</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Webdesign]]></category>

		<guid isPermaLink="false">http://blog.macrominds.de/?p=51</guid>
		<description><![CDATA[I just implemented a simple type writer effect for flash / actionscript3. In this article I&#8217;m going to show you how to use it. You can download the as3-class and use it for free.

About the design
I wanted to keep the effect simple to use, yet flexible.
So the only thing you need to do is create [...]]]></description>
			<content:encoded><![CDATA[<p>I just implemented a simple type writer effect for flash / actionscript3. In this article I&#8217;m going to show you how to use it. You can download the as3-class and use it for free.<br />
<span id="more-51"></span></p>
<h3>About the design</h3>
<p>I wanted to keep the effect simple to use, yet flexible.</p>
<p>So the only thing you need to do is create a dynamic TextField, type your text, convert it to a MovieClip and assign the BaseClass TypeWriterTextField. That&#8217;s it.</p>
<p>I implemented a few hooks for you to customize the effect or to receive events, when characters are typed (in order to play a sound or something) and when it&#8217;s finished typing characters.</p>
<p>Note however, that I implemented it for a pretty much limited use-case, so it may be limited to simple texts. It can handle linked TextFields, but no HTML-Texts.</p>
<h3>Screencast</h3>
<p>A short screencast showing the usage of standard-TypeWriterTextField:</p>

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_2009-06-11_1733_862769540"
			class="flashmovie"
			width="800"
			height="600">
	<param name="movie" value="http://content.screencast.com/users/theriot/folders/Jing/media/7024f0f4-10ec-4f93-b19e-5f9f094d8c60/2009-06-11_1733.swf" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://content.screencast.com/users/theriot/folders/Jing/media/7024f0f4-10ec-4f93-b19e-5f9f094d8c60/2009-06-11_1733.swf"
			name="fm_2009-06-11_1733_862769540"
			width="800"
			height="600">
	<!--<![endif]-->
		
<p><a href="http://adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /></a></p>

	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object>
<h3>Extending / customizing</h3>
<p>Customizing should be done by extending TypeWriterTextField and overriding methods.</p>
<p>You can adapt the typing speed to your needs, by overriding the following function</p>
<p><code><br />
protected function getTimerDelayMS():Number{<br />
	return 50;<br />
}<br />
</code></p>
<p>The function returns 50ms delay between each character-typing by default, return any value in milliseconds to adapt it.</p>
<p>The following methods can be overriden to react on events:</p>
<p><code><br />
protected function onTypeEvent(typedCharacter:String){<br />
}<br />
protected function onFinishedTyping(){<br />
}<br />
</code></p>
<p>The first method will be called each time, a character is typed and will be passed the character that has just been typed as parameter typedCharacter</p>
<p>The second method will be called once the typing effect finished, when all characters have been typed.</p>
<h3>How it works</h3>
<p>Upon creation, the TypeWriterTextField scans it children. The first TextField instance found will be used to determine which text to type. It&#8217;s text will be stored and then cleared. A timer is used to type the characters. Typing is performed by adding the next character to the original TextField&#8217;s .text-attribute.</p>
<h3>Download</h3>
<p><a href='http://blog.macrominds.de/wp-content/uploads/2009/06/typewritertextfield.as'>typewritertextfield v0.1</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.macrominds.de/2009/06/simple-typewriter-effect-for-flash-actionscript3-v01/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>TinyButStrong: display hierarchies recursively while using objects</title>
		<link>http://blog.macrominds.de/2009/01/tinybutstrong-display-hierarchies-recursively-while-using-objects/</link>
		<comments>http://blog.macrominds.de/2009/01/tinybutstrong-display-hierarchies-recursively-while-using-objects/#comments</comments>
		<pubDate>Wed, 07 Jan 2009 21:15:18 +0000</pubDate>
		<dc:creator>Thomas Praxl</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Webdesign]]></category>

		<guid isPermaLink="false">http://blog.macrominds.de/?p=46</guid>
		<description><![CDATA[TinyButStrong is a template Engine for php. It&#8217;s pretty easy to use, as long as you have simple cases and flat hierarchies, but it can take some time to manage more complex stuff. This article describes how to display a hierarchy of objects (which means nested lists of objects &#8211; thus lists of objects, that [...]]]></description>
			<content:encoded><![CDATA[<p><a title="external site of tiny but strong" href="http://www.tinybutstrong.com/">TinyButStrong</a> is a template Engine for php. It&#8217;s pretty easy to use, as long as you have simple cases and flat hierarchies, but it can take some time to manage more complex stuff. This article describes how to display a hierarchy of objects (which means nested lists of objects &#8211; thus lists of objects, that contain lists of objects).</p>
<p>To read this article, you should have a glance on the TinyButStrong-manual and you should have an idea of the way TinyButStrong works, .<span id="more-46"></span></p>
<p>Let&#8217;s say you have managed to represent your website as a model of php-classes.</p>
<p>You have created a class Document, which provides the method getContentParagraphs() among others. This method returns an array of objects of the type Paragraph.</p>
<p>The class Paragraph provides the method getRichText() (and getTitle(), getSubTitle() and so on).</p>
<p>So a single page on your website can contain a list of n documents with m paragraphs. Paragraphs cannot be represented directly, but due to calling the method getRichText().</p>
<p>The easiest way would be to work with arrays. But let&#8217;s say, you don&#8217;t want to reprocess your clean object-oriented-stuff to tons of arrays, only for a Template-Engine.</p>
<p>Here comes the code. The example classes first (uncomplete, only for you to have an idea):</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">/*DOCUMENT.php*/</span>
<span style="color: #000000; font-weight: bold;">class</span> Document<span style="color: #009900;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$contentParagraphs</span> <span style="color: #339933;">=</span> <span style="color: #990000;">Array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$title</span><span style="color: #339933;">;</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #339933;">&amp;</span>getContentParagraphs<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">contentParagraphs</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #339933;">&amp;</span>getTitle<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">title</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #339933;">...</span>
<span style="color: #009900;">&#125;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">/*PARAGRAPH.php*/</span>
<span style="color: #000000; font-weight: bold;">class</span> Paragraph<span style="color: #009900;">&#123;</span>
 <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$richtext</span><span style="color: #339933;">;</span>
 <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #339933;">&amp;</span>getRichtext<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #b1b100;">return</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">richtext</span><span style="color: #339933;">;</span>
 <span style="color: #009900;">&#125;</span>
 <span style="color: #339933;">...</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>And here&#8217;s how you would manage to implement the presentation with TinyButStrong:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">/*index.php*/</span>
<span style="color: #666666; font-style: italic;">/*your logic already built the model, you retreive an array of Document-objects:*/</span>
<span style="color: #000088;">$documents</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$controler</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getCurrentFolder</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getDocuments</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//Here comes TinyButStrong</span>
<span style="color: #666666; font-style: italic;">//include and initialize the template engine</span>
<span style="color: #b1b100;">include_once</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'tbs/tbs_class_php5.php'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">;</span>
<span style="color: #000088;">$TBS</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> clsTinyButStrong<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;tbs&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">;</span>
<span style="color: #000088;">$TBS</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">LoadTemplate</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'templates/overview.xhtml'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">/*TinyButStrong handles objects, so all we need to do to be able to display our
documents is to make the array $documents visible (giving it the name 'tbsArticleList'),
which is an array of Document-objects:*/</span>
<span style="color: #000088;">$TBS</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">MergeBlock</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'tbsArticleList'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'array'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'documents'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">/*
Here comes the tricky part:
TinyButStrong cannot handle nested blocks (afaik), but needs to be provided so called dynamic
queries. %p1% is a parameter, that must be set in the template itself.
The engine just analyzes any part of the query (the third parameter) and seems not to
care about -&gt; or [] syntax.
The aim of the query is to take the '%p1%'th element of the list documents
(which is a Document-object) and to call the method getContentParagraphs() on it.
*/</span>
<span style="color: #000088;">$TBS</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">MergeBlock</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'tbsParagraphList'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'array'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'documents[%p1%][getContentParagraphs]'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$TBS</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">;</span></pre></div></div>

<p>Here comes the template (without any xhtml, because that just doesn&#8217;t matter here):<br />
Note, that htmlconv=no is set, because I use richtext, which may contain html-tags.<br />
I just don&#8217;t want them to be escaped. Simply skip htmlconv, if you want to escape html-tags.</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;!-- start the list of documents--&gt;
[tbsArticleList;block=begin]
 &lt;!-- display the title of the document / article --&gt;
 [tbsArticleList.getTitle();htmlconv=no]
 &lt;!--start the list of paragraphs for each document, by assigning the parameter p1 the index of
the current article. This is done using the .$ syntax. It is important to wrap extra brackets
around this part, otherwise it will not be evaluated. --&gt;
 [tbsParagraphList;p1=[tbsArticleList.$];block=begin]
  &lt;!-- call the method getRichtext() on the currently iterated paragraph --&gt;
  [tbsParagraphList.getRichtext();htmlconv=no]
 [tbsParagraphList;block=end]
[tbsArticleList;block=end]</pre></div></div>

<p>That&#8217;s it. Pretty simple, he? Just the fact, that the documentation doesn&#8217;t cover it can be annoying..</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.macrominds.de/2009/01/tinybutstrong-display-hierarchies-recursively-while-using-objects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Advanced Faux Columns &#8211; Flexibles Dreispalten-Layout mit Hintergrund-Grafiken</title>
		<link>http://blog.macrominds.de/2007/03/advanced-faux-columns-flexibles-dreispalten-layout-mit-hintergrund-grafiken/</link>
		<comments>http://blog.macrominds.de/2007/03/advanced-faux-columns-flexibles-dreispalten-layout-mit-hintergrund-grafiken/#comments</comments>
		<pubDate>Mon, 19 Mar 2007 18:32:02 +0000</pubDate>
		<dc:creator>Thomas Praxl</dc:creator>
				<category><![CDATA[Webdesign]]></category>

		<guid isPermaLink="false">http://thomaspraxl.de/blog/?p=5</guid>
		<description><![CDATA[Faux Columns sind nett. Aber sie verbieten flexibles Layout. Mit Advanced Faux Columns können auch alle Spalten von flexiblen Layouts mit Hintergrundgrafiken über die volle Höhe versehen werden.
Für flexible Dreispalten-Layouts verwende ich YAML.
Folgendes Layout soll flexibel erzeugt werden:

Die Spalten 1 (links) und 2 (rechts) sollen jeweils 25% der Gesamtbreite einnehmen und mit Hintergrundgrafiken versehen sein. [...]]]></description>
			<content:encoded><![CDATA[<p>Faux Columns sind nett. Aber sie verbieten flexibles Layout. Mit Advanced Faux Columns können auch alle Spalten von flexiblen Layouts mit Hintergrundgrafiken über die volle Höhe versehen werden.<span id="more-5"></span></p>
<p>Für flexible Dreispalten-Layouts verwende ich <a title="Zur Internetpräsenz des CSS-Frameworks YAML" href="http://www.yaml.de"><abbr title="Yet Another Multicolumn Layout">YAML</abbr></a>.</p>
<p>Folgendes Layout soll flexibel erzeugt werden:</p>
<p><img id="image6" src="http://thomaspraxl.de/blog/wp-content/uploads/2007/03/three_columns1Vorschaubild.gif" alt="Flexibles Dreispalten-Layout mit HintergrÃ¼nden" /></p>
<p>Die Spalten 1 (links) und 2 (rechts) sollen jeweils 25% der Gesamtbreite einnehmen und mit Hintergrundgrafiken versehen sein. Die Grafik der Spalte 1 soll sich am rechten Rand der Spalte 1 ausrichten und die Grafik der Spalte 2 am linken Rand der Spalte 2.</p>
<p>Verändert man dann die Größe des Browserfensters und somit die Größe der Spalten bleibt der in der Grafik gezeigte rote Verlauf somit immer am inneren Rand der Spalten.</p>
<p>Der Autor von <abbr title="Yet Another Multicolumn Layout">YAML</abbr>, Dirk Jesse,  verweist in einem Abschnitt zu grafikfreien Spaltentrennern auf <a title="Zum Artikel über Faux Columns auf alistapart.com" href="http://www.alistapart.com/articles/fauxcolumns/"><span title="falsche Spalten oder vorgetäuschte Spalten" lang="en">Faux-Columns</span></a>. Diese Technik ließe sich zwar grundsätzlich für mein Ziel einsetzen, ermöglicht aber kein <span title="flüssig. Hier flexibles Design." lang="en">liquid</span> Design, man ist auf ein fixes Layout festgelegt.</p>
<p>Eine weiteres Problem ist, daß die Spalten selbst nicht als Träger der Hintergrundgrafiken taugen, da sie nur so hoch sind, wie ihr Inhalt. Im YAML-Layout &#8220;layout_3col_vlines_v1.html&#8221;, das ich hierfür einsetze, wird die Spaltenordnung 1-3-2 eingesetzt, was bedeutet, dass nur Spalte 3 garantiert über die volle Höhe aller Spalten geht.</p>
<h3>Die Lösung:</h3>
<p>YAML verwendet ein Div mit der ID main als Eltern-Container für die Spalten.<br />
Dieses Div alleine reicht für die Lösung nicht aus, es wird noch ein zusätzliches umrandendes Div benötigt:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">   &lt;div class=&quot;main&quot;&gt;
      &lt;div class=&quot;main2&quot;&gt;
         &lt;!-- YAML columns --&gt;
      &lt;/div&gt;
   &lt;/div&gt;</pre></div></div>

<p>Folgendes <abbr title="Cascading Stylesheet">CSS</abbr> definiert die Hintergrundgrafiken left_bg.gif und right_bg.gif:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">.main<span style="color: #00AA00;">&#123;</span>
   <span style="color: #000000; font-weight: bold;">background-image</span><span style="color: #00AA00;">:</span><span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">images/left_bg.gif</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
   <span style="color: #000000; font-weight: bold;">background-repeat</span><span style="color: #3333ff;">:repeat-</span>y<span style="color: #00AA00;">;</span>
   <span style="color: #000000; font-weight: bold;">background-position</span><span style="color: #00AA00;">:</span><span style="color: #933;"><span style="color: #cc66cc;">25</span>%</span> <span style="color: #933;"><span style="color: #cc66cc;">0</span>%</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
.main2<span style="color: #00AA00;">&#123;</span>
   <span style="color: #000000; font-weight: bold;">background-image</span><span style="color: #00AA00;">:</span><span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">images/right_bg.gif</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
   <span style="color: #000000; font-weight: bold;">background-repeat</span><span style="color: #3333ff;">:repeat-</span>y<span style="color: #00AA00;">;</span>
   <span style="color: #000000; font-weight: bold;">background-position</span><span style="color: #00AA00;">:</span><span style="color: #933;"><span style="color: #cc66cc;">75</span>%</span> <span style="color: #933;"><span style="color: #cc66cc;">0</span>%</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Der Kern der Sache ist, die Grafiken wie folgt zu erstellen:<br />
Angenommen unsere Spalten haben eine maximale Breite von 100px, die vollständig mit einem Verlauf versehen sein soll, dann müssen unsere Hintergrund-Grafiken eine Breite von 400px besitzen.<br />
In der Grafik left_bg.gif muss der Verlauf ganz links in der Grafik sitzen, der Rest ist transparent.<br />
In der Grafik right_bg.gif muss der Verlauf ganz rechts in der Grafik sitzen, der Rest ist transparent.<br />
Die folgende Grafik verdeutlicht das:</p>
<p><img id="image7" src="http://thomaspraxl.de/blog/wp-content/uploads/2007/03/bgVorschaubild.gif" alt="Aufteilung der Hintergrund-Grafiken" /></p>
<h3>Zum Hintergrund &#8211; oder &#8220;warum ist das so?&#8221;</h3>
<p>background-position ist ein wenig speziell, aber eigentlich genial:<br />
background-position: 50% 50%; definiert, dass das Hintergrundbild zentriert dargestellt wird.</p>
<p>Das bedeutet, dass der Pixel des Hintergrundbildes, der auf 50% der Breite des Hintergrundbildes sitzt, auf 50% der Container-Breite dargestellt wird.</p>
<p>Das bedeutet im Rückschluss:<br />
background-position:25% 0%;<br />
definiert, dass der Pixel des Bildes, der auf 25% der Bildbreite sitzt auf 25% der Container-Breite ausgerichtet wird.<br />
Wenn ich ein Bild rechtsbündig auf 25% der Container-Breite ausrichten will, muss ich es in der vierfachen Größe bereitstellen, als es eigentlich darstellen soll.<br />
Will ich ein Bild linksbündig auf 75% der Container-Breite ausrichten gilt das gleiche.</p>
<p>Nennen wir es <span title="fortgeschrittene vorgetäuschte Spalten" lang="en">Advanced Faux-Columns.</span></p>
<p>Vielleicht hilft das ja dem ein oder anderen.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.macrominds.de/2007/03/advanced-faux-columns-flexibles-dreispalten-layout-mit-hintergrund-grafiken/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

