<?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>RE-Design - Enrico Reinsdorf &#187; design</title>
	<atom:link href="http://www.re-design.de/tag/design/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.re-design.de</link>
	<description>Trainer für Konzeption und Umsetzung von medialen Internet-Projekten</description>
	<lastBuildDate>Fri, 28 Oct 2011 19:26:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Website &#8211; The Lakeside Heritage Society</title>
		<link>http://www.re-design.de/2010/08/31/website-the-lakeside-heritage-society/</link>
		<comments>http://www.re-design.de/2010/08/31/website-the-lakeside-heritage-society/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 21:50:00 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Impressionen]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[screendesign]]></category>
		<category><![CDATA[template]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://www.re-design.de/2010/08/31/website-the-lakeside-heritage-society/</guid>
		<description><![CDATA[lakesideheritage Ähnliche BeiträgeWebsite &#8211; Q&#8217;uchuWebsite &#8211; Watermelon MinistriesTemplate-Engine mit PHPWebsite &#8211; Old Pulteney Row to the PoleTag 14 – Template Class]]></description>
			<content:encoded><![CDATA[<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 10px; display: inline; float: left; padding-top: 0px" id="scid:887EC618-8FBE-49a5-A908-2339AF2EC531:aaf0a97c-a374-48cf-8b70-887a9feb3283" class="wlWriterEditableSmartContent"><a target="_blank" href="http://picasaweb.google.com/eltuctuc/Inspirationen#5526916045829090882"><img style="border: 1px solid #ccc; background-color: white; padding: 5px; margin: 0px" alt="lakesideheritage" src="http://lh4.ggpht.com/_-2so5jqqvAg/TLOM3F8MrkI/AAAAAAAACUA/uPnbumRpq6M/s288/lakesideheritage.jpg" /></a><br /><span style="font-size: x-small">lakesideheritage</span></div>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2010/08/28/website-quchu/" title="Website &#8211; Q&rsquo;uchu">Website &#8211; Q&rsquo;uchu</a></li><li><a href="http://www.re-design.de/2010/08/12/website-watermelon-ministries/" title="Website &#8211; Watermelon Ministries">Website &#8211; Watermelon Ministries</a></li><li><a href="http://www.re-design.de/2007/12/14/template-engine-mit-php/" title="Template-Engine mit <span class="caps">PHP</span>">Template-Engine mit <span class="caps">PHP</span></a></li><li><a href="http://www.re-design.de/2011/01/10/website-old-pulteney-row-to-the-pole/" title="Website &#8211; Old Pulteney Row to the Pole">Website &#8211; Old Pulteney Row to the Pole</a></li><li><a href="http://www.re-design.de/2008/12/14/tag-14-template-class/" title="Tag 14 – Template Class">Tag 14 – Template Class</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2010/08/31/website-the-lakeside-heritage-society/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Website &#8211; Q&#8217;uchu</title>
		<link>http://www.re-design.de/2010/08/28/website-quchu/</link>
		<comments>http://www.re-design.de/2010/08/28/website-quchu/#comments</comments>
		<pubDate>Sat, 28 Aug 2010 21:47:00 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Impressionen]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[screendesign]]></category>
		<category><![CDATA[template]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://www.re-design.de/2010/08/28/website-quchu/</guid>
		<description><![CDATA[Deine individuelle Häkelmütze in Handarbeit mit dem Mützenkonfigurator Ähnliche BeiträgeWebsite &#8211; The Lakeside Heritage SocietyWebsite &#8211; Watermelon MinistriesTemplate-Engine mit PHPWebsite &#8211; Old Pulteney Row to the PoleTag 14 – Template Class]]></description>
			<content:encoded><![CDATA[<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 10px; display: inline; float: left; padding-top: 0px" id="scid:887EC618-8FBE-49a5-A908-2339AF2EC531:4dd9aa7d-c2b8-41df-8d8b-df818becbe4f" class="wlWriterEditableSmartContent"><a target="_blank" href="http://picasaweb.google.com/eltuctuc/Inspirationen#5526915917283412658"><img style="border: 1px solid #ccc; background-color: white; padding: 5px; margin: 0px" alt="Deine individuelle Häkelmütze in Handarbeit mit dem Mützenkonfigurator" src="http://lh3.ggpht.com/_-2so5jqqvAg/TLOMvnEhSrI/AAAAAAAACUA/VXR0Ksy8B0o/s288/Deine%20individuelle%20H%C3%A4kelm%C3%BCtze%20in%20Handarbeit%20mit%20dem%20M%C3%BCtzenkonfigurator-1.jpg" /></a><br /><span style="font-size: x-small">Deine individuelle Häkelmütze in Handarbeit mit dem Mützenkonfigurator</span></div>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2010/08/31/website-the-lakeside-heritage-society/" title="Website &#8211; The Lakeside Heritage Society">Website &#8211; The Lakeside Heritage Society</a></li><li><a href="http://www.re-design.de/2010/08/12/website-watermelon-ministries/" title="Website &#8211; Watermelon Ministries">Website &#8211; Watermelon Ministries</a></li><li><a href="http://www.re-design.de/2007/12/14/template-engine-mit-php/" title="Template-Engine mit <span class="caps">PHP</span>">Template-Engine mit <span class="caps">PHP</span></a></li><li><a href="http://www.re-design.de/2011/01/10/website-old-pulteney-row-to-the-pole/" title="Website &#8211; Old Pulteney Row to the Pole">Website &#8211; Old Pulteney Row to the Pole</a></li><li><a href="http://www.re-design.de/2008/12/14/tag-14-template-class/" title="Tag 14 – Template Class">Tag 14 – Template Class</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2010/08/28/website-quchu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Website &#8211; Watermelon Ministries</title>
		<link>http://www.re-design.de/2010/08/12/website-watermelon-ministries/</link>
		<comments>http://www.re-design.de/2010/08/12/website-watermelon-ministries/#comments</comments>
		<pubDate>Thu, 12 Aug 2010 21:42:00 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Impressionen]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[screendesign]]></category>
		<category><![CDATA[template]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://www.re-design.de/2010/08/12/website-watermelon-ministries/</guid>
		<description><![CDATA[Watermelon Ministries Ähnliche BeiträgeWebsite &#8211; The Lakeside Heritage SocietyWebsite &#8211; Q&#8217;uchuTemplate-Engine mit PHPWebsite &#8211; Old Pulteney Row to the PoleTag 14 – Template Class]]></description>
			<content:encoded><![CDATA[<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 10px; display: inline; float: left; padding-top: 0px" id="scid:887EC618-8FBE-49a5-A908-2339AF2EC531:32b633b4-176a-49d0-bc1f-0440f034c99c" class="wlWriterEditableSmartContent"><a target="_blank" href="http://picasaweb.google.com/eltuctuc/Inspirationen#5526915861165388722"><img style="border: 1px solid #ccc; background-color: white; padding: 5px; margin: 0px" alt="Watermelon Ministries" src="http://lh5.ggpht.com/_-2so5jqqvAg/TLOMsWA8M7I/AAAAAAAACUA/PV1hUNgqYKI/s288/Watermelon%20Ministries%20%C2%BB%20Equipping%20thousands%20to%20reach%20millions-1.jpg" /></a><br /><span style="font-size: x-small">Watermelon Ministries</span></div>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2010/08/31/website-the-lakeside-heritage-society/" title="Website &#8211; The Lakeside Heritage Society">Website &#8211; The Lakeside Heritage Society</a></li><li><a href="http://www.re-design.de/2010/08/28/website-quchu/" title="Website &#8211; Q&rsquo;uchu">Website &#8211; Q&rsquo;uchu</a></li><li><a href="http://www.re-design.de/2007/12/14/template-engine-mit-php/" title="Template-Engine mit <span class="caps">PHP</span>">Template-Engine mit <span class="caps">PHP</span></a></li><li><a href="http://www.re-design.de/2011/01/10/website-old-pulteney-row-to-the-pole/" title="Website &#8211; Old Pulteney Row to the Pole">Website &#8211; Old Pulteney Row to the Pole</a></li><li><a href="http://www.re-design.de/2008/12/14/tag-14-template-class/" title="Tag 14 – Template Class">Tag 14 – Template Class</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2010/08/12/website-watermelon-ministries/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cinema Schulung bei Tools</title>
		<link>http://www.re-design.de/2008/07/01/cinema-schulung-bei-tools/</link>
		<comments>http://www.re-design.de/2008/07/01/cinema-schulung-bei-tools/#comments</comments>
		<pubDate>Tue, 01 Jul 2008 09:30:45 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Schulungen]]></category>
		<category><![CDATA[cinema 4d]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[grundlagen]]></category>
		<category><![CDATA[kwtz]]></category>
		<category><![CDATA[seminar]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=123</guid>
		<description><![CDATA[Am Samstag habe ich eine 2tägige Schulung für Tools Communication gehalten. Da Tools bei Münster ihren Sitz haben, bin ich 2 mal ins schöne Münsterland gefahren. Das besondere an dieser Schulung war, dass der erste Schulungstag von 4 Wochen und der zweite am letzten Samstag war. Es ist nicht gut so lange Pause zwischen diesen [...]]]></description>
			<content:encoded><![CDATA[<p>Am Samstag habe ich eine 2tägige Schulung für <a title="Link zur Homepage" href="http://www.tools-muenster.de/index.php" rel="tag">Tools Communication</a> gehalten. Da Tools bei Münster ihren Sitz haben, bin ich 2 mal ins schöne Münsterland gefahren.</p>
<p>Das besondere an dieser Schulung war, dass der erste Schulungstag von 4 Wochen und der zweite am letzten Samstag war. Es ist nicht gut so lange Pause zwischen diesen Terminen zu haben. In diesem Fall ging es zwar nicht anderes, aber es hat sich wieder mal gezeigt dass es nicht von Vorteil ist. Am 2. Seminartag haben wir fast 2 Stunden nur wiederholt &#8211; hätten jedoch die Zeit besser nutzen können.</p>
<p><span id="more-123"></span></p>
<div class="wlWriterSmartContent" id="scid:51CF81A4-8F44-4a2c-8837-198C090B9994:5c090361-9c6e-4d0d-8f59-e180f9666262" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<p><a href="http://picasaweb.google.com/eltuctuc/REDesign#s5141542605851636514" atomicselection="true"><img style="border-right: 2px; border-top: 2px; border-left: 2px; border-bottom: 2px" height="300" src="http://lh4.ggpht.com/eltuctuc/SGnzmJdeN3I/AAAAAAAAAQw/0nyr9K8L26U/s400/Sofa.jpg" width="400"></a></p>
</div>
<div class="wlWriterSmartContent" id="scid:51CF81A4-8F44-4a2c-8837-198C090B9994:66652806-d9ff-4a73-85bb-0f76a6af1e4b" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<p><a href="http://picasaweb.google.com/eltuctuc/REDesign" atomicselection="true"><img style="border-right: 2px; border-top: 2px; border-left: 2px; border-bottom: 2px" height="300" src="http://lh5.ggpht.com/eltuctuc/SGnzoHdrJ2I/AAAAAAAAAQ4/S8vYMEmENGc/s400/Glasschale.jpg" width="400"></a></p>
</div>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2009/02/06/cinema-4d-einzelcoaching/" title="Einzelcoaching &#8211; Cinema 4D">Einzelcoaching &#8211; Cinema 4D</a></li><li><a href="http://www.re-design.de/2009/01/09/cinema-4d-grundlagen-und-aufbau/" title="Cinema 4D Grundlagen und Aufbau">Cinema 4D Grundlagen und Aufbau</a></li><li><a href="http://www.re-design.de/2011/02/24/javascript-grundlagen-4/" title="JavaScript &ndash; Grundlagen">JavaScript &ndash; Grundlagen</a></li><li><a href="http://www.re-design.de/2010/11/27/flash-grundlagen-und-aufbau/" title="Flash &ndash; Grundlagen und Aufbau">Flash &ndash; Grundlagen und Aufbau</a></li><li><a href="http://www.re-design.de/2010/10/31/flash-grundlagen-4/" title="Flash Grundlagen">Flash Grundlagen</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2008/07/01/cinema-schulung-bei-tools/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dreamweaver-Schulung f&#252;r den Solar Verlag</title>
		<link>http://www.re-design.de/2008/04/26/dreamweaver-schulung-fr-den-solar-verlag/</link>
		<comments>http://www.re-design.de/2008/04/26/dreamweaver-schulung-fr-den-solar-verlag/#comments</comments>
		<pubDate>Sat, 26 Apr 2008 10:47:24 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Schulungen]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[dreamweaver]]></category>
		<category><![CDATA[seminar]]></category>
		<category><![CDATA[verlag]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=125</guid>
		<description><![CDATA[Von Montag bis Mittwoch war ich beim Solar-Verlag in Aachen und habe 6 Teilnehmerinnen eine Einführung in Dreamweaver CS3 gegeben. Es war eine sehr entspannte Schulung, weil das Klima im Verlag sehr harmonisch ist. Die Schwierigkeit in der Schulung war, dass die Teilnehmerinnen bis dato nur mit Frontpage als Entwickler-Tool gearbeitet haben und somit viele [...]]]></description>
			<content:encoded><![CDATA[<p>Von Montag bis Mittwoch war ich beim <a title="Link zur Homepage" href="http://www.photon.de/" rel="tag">Solar-Verlag</a> in Aachen und habe 6 Teilnehmerinnen eine Einführung in <a title="Link zur Website" href="http://www.adobe.com/de/products/dreamweaver/" rel="nofollow">Dreamweaver CS3</a> gegeben. Es war eine sehr entspannte Schulung, weil das Klima im Verlag sehr harmonisch ist.</p>
<p>Die Schwierigkeit in der Schulung war, dass die Teilnehmerinnen bis dato nur mit Frontpage als Entwickler-Tool gearbeitet haben und somit viele neue Features des Webdesigns, wie z.B. das Layouten mit CSS nicht wirklich kannten. Deshalb haben wir gleichzeitig beim Erlernen von Dreamweaver auch noch eine Einführung in CSS und Standard HTML gemacht.</p>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2007/11/11/flexibles-css-layout/" title="flexibles CSS Layout">flexibles CSS Layout</a></li><li><a href="http://www.re-design.de/2008/12/18/dreamweaver-und-css/" title="Dreamweaver und <span class="caps">CSS</span>">Dreamweaver und <span class="caps">CSS</span></a></li><li><a href="http://www.re-design.de/2008/02/25/css-seminar-bei-vva/" title="CSS-Seminar bei VVA">CSS-Seminar bei VVA</a></li><li><a href="http://www.re-design.de/2010/04/11/html-und-css-grundlagen/" title="HTML- und CSS-Grundlagen">HTML- und CSS-Grundlagen</a></li><li><a href="http://www.re-design.de/2010/01/08/dreamweaver-grundlagen/" title="Dreamweaver Grundlagen">Dreamweaver Grundlagen</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2008/04/26/dreamweaver-schulung-fr-den-solar-verlag/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Update meines Systems</title>
		<link>http://www.re-design.de/2008/03/30/update-meines-systems/</link>
		<comments>http://www.re-design.de/2008/03/30/update-meines-systems/#comments</comments>
		<pubDate>Sun, 30 Mar 2008 13:28:32 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=121</guid>
		<description><![CDATA[Seit ein paar Stunden ist WordPress 2.5 drau&#223;en, welches ich zum Anlass genommen habe meine Plugins zu &#252;berarbeiten und das gesamte System zu aktualisieren. Da es leider zur Zeit nur die englische Version gibt sind einige Begrifflichkeiten noch auf englisch, aber ich glaube das ich es demn&#228;chst auf deutsch umstellen kann. Sehr gut finde ich [...]]]></description>
			<content:encoded><![CDATA[<p>Seit ein paar Stunden ist <a title="direkt zum Download" href="http://wordpress.org/download/" rel="rel">WordPress 2.5</a> drau&#223;en, welches ich zum Anlass genommen habe meine Plugins zu &#252;berarbeiten und das gesamte System zu aktualisieren. Da es leider zur Zeit nur die englische Version gibt sind einige Begrifflichkeiten noch auf englisch, aber ich glaube das ich es demn&#228;chst auf deutsch umstellen kann.</p>
<p>Sehr gut finde ich das neue Design von WordPress, welches sich zur alten Version deutlich unterscheidet.</p>
<p><span id="more-121"></span></p>
<p>F&#252;r alle die es interessiert, ver&#246;ffentliche ich hier mal meine verwendeten Plugins und meine interne Statistik.</p>
<h3>Plugins</h3>
<ul>
<li>aktive Plugins</li>
<ul>
<li><a href="http://www.bueltge.de/wp-abbreviation-replacer-plugin/100/">Abbreviation Replacer</a></li>
<li><a href="http://akismet.com/">Akismet</a></li>
<li><a href="http://wordpress.designpraxis.at">File Icons</a></li>
<li><a href="http://www.arnebrachhold.de/redir/sitemap-home/">Google XML Sitemaps</a></li>
<li><a href="http://sw-guide.de/wordpress/plugins/math-comment-spam-protection/">Math Comment Spam Protection</a></li>
<li><a href="http://otaku42.de/2005/06/30/plugin-o42-clean-umlauts/">o42-clean-umlauts</a></li>
<li><a href="http://blog.ftwr.co.uk/wordpress/wp-version-check/">PJW WordPress Version Check</a></li>
<li><a href="http://www.internetwealthmaster.com/wordpress-really-simple-sitemap/">Really Simple Sitemap</a></li>
<li><a href="http://wordpress.org/extend/plugins/simple-tags">Simple Tags</a></li>
<li><a href="http://www.ilfilosofo.com/blog/wp-db-backup">WordPress Database Backup</a></li>
<li><a href="http://www.duechiacchiere.it/wp-slimstat/">WP-SlimStat</a></li>
<li><a href="http://fairyfish.net/2007/09/12/wordpress-23-related-posts-plugin/">WP 2.3 Related Posts</a></li>
<li><a href="http://www.sediyer.com/internet/statistics-wp-23-plug-in-version-41-update/">WP 2.3 statistics</a></li>
</ul>
<li>inaktive Plugins</li>
<ul>
<li><a href="http://putzlowitsch.de/123-multihost">123 Multihost</a></li>
<li><a href="http://putzlowitsch.de/123-no-rewrite-permalink">123 No Rewrite Permalink</a></li>
<li><a href="http://ideasilo.wordpress.com/2007/04/30/contact-form-7/">Contact Form 7</a></li>
<li><a href="http://www.dagondesign.com/articles/sitemap-generator-plugin-for-wordpress/">Dagon Design Sitemap Generator</a></li>
<li><a href="http://urbangiraffe.com/plugins/headspace2/">HeadSpace2</a></li>
<li><a href="http://wordpress.org/#">Hello Dolly</a></li>
<li><a href="http://bueltge.de/wp-landingsites-de-plugin/181/">Landing sites (de)</a></li>
<li><a href="http://urbangiraffe.com/plugins/redirection/">Redirection</a></li>
<li><a href="http://blog.ftwr.co.uk/wordpress/">WP-ContactForm</a></li>
</ul>
</ul>
<h3>Statistik</h3>
<p>Ich habe 51 Beitr&#228;ge in 17 Kategorien, 133 Stichworte und 25 Kommentare.</p>
<ul>
<li>M&#228;rz 2008</li>
<ul>
<li>Hits: 15176</li>
<li>Visits: 1781</li>
</ul>
<li>Februar 2008</li>
<ul>
<li>Hits: 9197</li>
<li>Visits: 1429</li>
</ul>
<li>Januar 2008</li>
<ul>
<li>Hits: 9001</li>
<li>Visits: 1162</li>
</ul>
<li>Dezember 2007</li>
<ul>
<li>Hits: 6710</li>
<li>Visits: 590</li>
</ul>
<li>November 2007</li>
<ul>
<li>Hits: 1558</li>
<li>Visits: 78</li>
</ul>
<li>Oktober 2007</li>
<ul>
<li>Hits: 961</li>
<li>Visits:60</li>
</ul>
</ul>
<p>Laut Google habe ich seit dem 16. Oktober 2007 1.344 eindeutige Besucher gehabt, die durchschnittlich 2:59 Minuten meine Seiten besucht haben und im Durchschnitt 2,52 Seiten gelesen haben.</p>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2010/08/31/website-the-lakeside-heritage-society/" title="Website &#8211; The Lakeside Heritage Society">Website &#8211; The Lakeside Heritage Society</a></li><li><a href="http://www.re-design.de/2010/08/28/website-quchu/" title="Website &#8211; Q&rsquo;uchu">Website &#8211; Q&rsquo;uchu</a></li><li><a href="http://www.re-design.de/2010/08/12/website-watermelon-ministries/" title="Website &#8211; Watermelon Ministries">Website &#8211; Watermelon Ministries</a></li><li><a href="http://www.re-design.de/2008/07/01/cinema-schulung-bei-tools/" title="Cinema Schulung bei Tools">Cinema Schulung bei Tools</a></li><li><a href="http://www.re-design.de/2008/04/26/dreamweaver-schulung-fr-den-solar-verlag/" title="Dreamweaver-Schulung f&#252;r den Solar Verlag">Dreamweaver-Schulung f&#252;r den Solar Verlag</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2008/03/30/update-meines-systems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dozent an der Macromedia Fachhochschule</title>
		<link>http://www.re-design.de/2008/03/25/dozent-an-der-macromedia-fachhochschule/</link>
		<comments>http://www.re-design.de/2008/03/25/dozent-an-der-macromedia-fachhochschule/#comments</comments>
		<pubDate>Tue, 25 Mar 2008 16:08:33 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Schulungen]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[macromedia]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=119</guid>
		<description><![CDATA[Erst sollte ich nur als Gast-Referent bei der Erstellung eines Portals f&#252;r Interface-Design mithelfen, welches aus Basis vom Joomla! umgesetzt werden sollte. Allerdings erkannten wir, Torsten Stapelkamp (Lehrbeauftragter in K&#246;ln), durch die Aufgabenliste f&#252;r das Projekt, schnell das Joomla! nicht unbedingt das beste CMS daf&#252;r ist. Schlie&#223;lich soll das Portal ein lebendiges Werk werden, welches [...]]]></description>
			<content:encoded><![CDATA[<p>Erst sollte ich nur als Gast-Referent bei der Erstellung eines Portals f&#252;r Interface-Design mithelfen, welches aus Basis vom Joomla! umgesetzt werden sollte. Allerdings erkannten wir, Torsten Stapelkamp (Lehrbeauftragter in K&#246;ln), durch die Aufgabenliste f&#252;r das Projekt, schnell das Joomla! nicht unbedingt das beste CMS daf&#252;r ist. Schlie&#223;lich soll das Portal ein lebendiges Werk werden, welches sich durch viele aktive Mitglieder auszeichnet. Also beschlossen wir Drupal daf&#252;r einzusetzen.</p>
<p>Nebenbei stellte Torsten und ich fest, dass ich den Flash Advanced Unterricht f&#252;r dieses Semester &#252;bernehmen kann. Also bin ich jetzt Dozent bei Macromedia und zeige den Studenten wie sie mit ActionScript, nen guten Interface und viel Gedult gute mobile bzw. Webanwendungen erstellen k&#246;nnen.</p>
<p>Ich hoffe es klappt alles so wie ich es mir vorstelle.</p>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2007/12/13/flashvideo-player-einfach-eingesetzt/" title="Flashvideo-Player einfach eingesetzt">Flashvideo-Player einfach eingesetzt</a></li><li><a href="http://www.re-design.de/2010/11/03/flash-programmierung-lr-health-beauty/" title="Flash Programmierung &#8211; LR Health &amp; Beauty">Flash Programmierung &#8211; LR Health &amp; Beauty</a></li><li><a href="http://www.re-design.de/2010/10/28/mobil-games-mit-flash-buch/" title="Mobil Games mit Flash &ndash; Buch">Mobil Games mit Flash &ndash; Buch</a></li><li><a href="http://www.re-design.de/2010/10/28/flash-enginneering-buch/" title="Flash Enginneering &ndash; Buch">Flash Enginneering &ndash; Buch</a></li><li><a href="http://www.re-design.de/2010/05/29/actionscript-3-flex/" title="ActionScript 3 &amp; Flex">ActionScript 3 &amp; Flex</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2008/03/25/dozent-an-der-macromedia-fachhochschule/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Transcending CSS</title>
		<link>http://www.re-design.de/2008/03/01/transcending-css/</link>
		<comments>http://www.re-design.de/2008/03/01/transcending-css/#comments</comments>
		<pubDate>Sat, 01 Mar 2008 13:32:12 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[buch]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[empfehlung]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=116</guid>
		<description><![CDATA[Ein Buch welches mich in letzter Zeit exterm beeindruckt hat, ist Transcending CSS &#8211; Neue kreative Spielr&#228;ume im Webdesign von Andy Clarke und Molly E. Holzschlag. Bemerkenswert finde ich ihre Ansicht &#252;ber die Abw&#228;rtskompatibilit&#228;t von Browsern. Sie sind der Meinung, dass es ruhig erlaubt sein sollte die neuen Features der modernen Browser zu unterst&#252;tzen, solange [...]]]></description>
			<content:encoded><![CDATA[<p>Ein Buch welches mich in letzter Zeit exterm beeindruckt hat, ist <a href="http://www.amazon.de/gp/product/3827325455?ie=UTF8&amp;tag=redes01-21&amp;link_code=as3&amp;camp=2514&amp;creative=9386&amp;creativeASIN=3827325455" name="evtst|a|3827325455">Transcending CSS &#8211; Neue kreative Spielr&#228;ume im Webdesign</a> von Andy Clarke und Molly E. Holzschlag.</p>
<p>Bemerkenswert finde ich ihre Ansicht &#252;ber die Abw&#228;rtskompatibilit&#228;t von Browsern. Sie sind der Meinung, dass es ruhig erlaubt sein sollte die neuen Features der modernen Browser zu unterst&#252;tzen, solange der Benutzer von &#228;lteren Browsern seine gewohnten M&#246;glichkeiten beh&#228;lt.</p>
<p>Weiterhin haben sie in ihrem Buch verschiedene Print-Designs als Vorlage f&#252;r Web-Designs genommen, was mich auf die Idee gebracht hat selber <a title="Umsetzung von Print-Design" href="http://www.re-design.de/workbook/?p=104" rel="tag">Print-Vorlagen im Web</a> nachzubasteln.</p>
<p>Meine bisherigen Artikel findet ihr unter der Kategorie &quot;<a title="Archiv der Kategorie Print-Design" href="http://www.re-design.de/workbook/index.php?cat=127" rel="category">Print-Design</a>&quot;</p>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2008/03/01/little-boxes/" title="Little Boxes">Little Boxes</a></li><li><a href="http://www.re-design.de/2008/03/01/das-website-handbuch/" title="Das Website Handbuch">Das Website Handbuch</a></li><li><a href="http://www.re-design.de/2008/04/26/dreamweaver-schulung-fr-den-solar-verlag/" title="Dreamweaver-Schulung f&#252;r den Solar Verlag">Dreamweaver-Schulung f&#252;r den Solar Verlag</a></li><li><a href="http://www.re-design.de/2008/02/25/css-seminar-bei-vva/" title="CSS-Seminar bei VVA">CSS-Seminar bei VVA</a></li><li><a href="http://www.re-design.de/2008/02/23/vereinfachter-css-import-von-verschiedenen-medien/" title="vereinfachter CSS-Import von verschiedenen Medien">vereinfachter CSS-Import von verschiedenen Medien</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2008/03/01/transcending-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Little Boxes</title>
		<link>http://www.re-design.de/2008/03/01/little-boxes/</link>
		<comments>http://www.re-design.de/2008/03/01/little-boxes/#comments</comments>
		<pubDate>Sat, 01 Mar 2008 13:11:09 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[buch]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[empfehlung]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=115</guid>
		<description><![CDATA[W&#228;hrend des Kurs bei VVA Kommunikation habe ich mir 2 neue B&#252;cher angeschafft. Die gro&#223;e Little Boxes-Box. Webseiten gestalten mit CSS. Grundlagen Little Boxes, Teil 2. Webseiten gestalten mit CSS. Navigation, Inhalte, YAML &#38; mehr Ähnliche BeiträgeTranscending CSSDas Website HandbuchDreamweaver-Schulung f&#252;r den Solar VerlagCSS-Seminar bei VVAvereinfachter CSS-Import von verschiedenen Medien]]></description>
			<content:encoded><![CDATA[<p>W&#228;hrend des <a title="CSS-Seminar bei VVA" href="http://www.re-design.de/workbook/?p=114" rel="tag">Kurs bei VVA Kommunikation</a> habe ich mir 2 neue B&#252;cher angeschafft.</p>
<ol>
<li><a href="http://www.amazon.de/gp/product/3827243513?ie=UTF8&amp;tag=redes01-21&amp;link_code=as3&amp;camp=2514&amp;creative=9386&amp;creativeASIN=3827243513" name="evtst|a|3827243513">Die gro&#223;e Little Boxes-Box. Webseiten gestalten mit CSS. Grundlagen</a></li>
<li><a href="http://www.amazon.de/gp/product/3827243076?ie=UTF8&amp;tag=redes01-21&amp;link_code=as3&amp;camp=2514&amp;creative=9386&amp;creativeASIN=3827243076" name="evtst|a|3827243076">Little Boxes, Teil 2. Webseiten gestalten mit CSS. Navigation, Inhalte, YAML &amp; mehr</a></li>
</ol>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2008/03/01/transcending-css/" title="Transcending CSS">Transcending CSS</a></li><li><a href="http://www.re-design.de/2008/03/01/das-website-handbuch/" title="Das Website Handbuch">Das Website Handbuch</a></li><li><a href="http://www.re-design.de/2008/04/26/dreamweaver-schulung-fr-den-solar-verlag/" title="Dreamweaver-Schulung f&#252;r den Solar Verlag">Dreamweaver-Schulung f&#252;r den Solar Verlag</a></li><li><a href="http://www.re-design.de/2008/02/25/css-seminar-bei-vva/" title="CSS-Seminar bei VVA">CSS-Seminar bei VVA</a></li><li><a href="http://www.re-design.de/2008/02/23/vereinfachter-css-import-von-verschiedenen-medien/" title="vereinfachter CSS-Import von verschiedenen Medien">vereinfachter CSS-Import von verschiedenen Medien</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2008/03/01/little-boxes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Das Website Handbuch</title>
		<link>http://www.re-design.de/2008/03/01/das-website-handbuch/</link>
		<comments>http://www.re-design.de/2008/03/01/das-website-handbuch/#comments</comments>
		<pubDate>Sat, 01 Mar 2008 12:28:41 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[buch]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[empfehlung]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=113</guid>
		<description><![CDATA[Letzte Woche habe ich bei Henkel AG ein Seminar &#252;ber die verschiedenen Web-Technologien gehalten. Dabei habe ich ein Buch sch&#228;tzen gelernt, welches ich zwar schon l&#228;nger habe, aber nie so richtig eingesetzt habe. Ich rede von dem Buch &#34;Das Website Handbuch. Programmierung und Design&#34;. In diesem Buch werden alle wichtigen Web-Technologien beschrieben: HTML CSS JavaScript [...]]]></description>
			<content:encoded><![CDATA[<p>Letzte Woche habe ich <a title="Web-Technologien  bei der Henkel AG" href="http://www.re-design.de/workbook/?p=112" rel="tag">bei Henkel AG ein Seminar</a> &#252;ber die verschiedenen Web-Technologien gehalten. Dabei habe ich ein Buch sch&#228;tzen gelernt, welches ich zwar schon l&#228;nger habe, aber nie so richtig eingesetzt habe. Ich rede von dem Buch &quot;<a href="http://www.amazon.de/gp/product/3827240131?ie=UTF8&amp;tag=redes01-21&amp;link_code=as3&amp;camp=2514&amp;creative=9386&amp;creativeASIN=3827240131" name="evtst|a|3827240131">Das Website Handbuch. Programmierung und Design</a>&quot;.</p>
<p><span id="more-113"></span></p>
<p>In diesem Buch werden alle wichtigen Web-Technologien beschrieben:</p>
<ul>
<li>HTML</li>
<li>CSS</li>
<li>JavaScript</li>
<li>Ajax</li>
<li>PHP</li>
<li>MySQL</li>
<li>CMS</li>
<li>Webdesign</li>
<li>Flash</li>
<li>Suchmaschinen-Optimierung</li>
<li>E-Business</li>
<li>Barrierefreiheit</li>
<li>Hackerschutz</li>
<li>Weblogs</li>
<li>uvm.</li>
</ul>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2008/03/01/transcending-css/" title="Transcending CSS">Transcending CSS</a></li><li><a href="http://www.re-design.de/2008/03/01/little-boxes/" title="Little Boxes">Little Boxes</a></li><li><a href="http://www.re-design.de/2008/04/26/dreamweaver-schulung-fr-den-solar-verlag/" title="Dreamweaver-Schulung f&#252;r den Solar Verlag">Dreamweaver-Schulung f&#252;r den Solar Verlag</a></li><li><a href="http://www.re-design.de/2008/02/25/css-seminar-bei-vva/" title="CSS-Seminar bei VVA">CSS-Seminar bei VVA</a></li><li><a href="http://www.re-design.de/2008/02/23/vereinfachter-css-import-von-verschiedenen-medien/" title="vereinfachter CSS-Import von verschiedenen Medien">vereinfachter CSS-Import von verschiedenen Medien</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2008/03/01/das-website-handbuch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS-Seminar bei VVA</title>
		<link>http://www.re-design.de/2008/02/25/css-seminar-bei-vva/</link>
		<comments>http://www.re-design.de/2008/02/25/css-seminar-bei-vva/#comments</comments>
		<pubDate>Mon, 25 Feb 2008 12:59:28 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Schulungen]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[seminar]]></category>
		<category><![CDATA[workshop]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=114</guid>
		<description><![CDATA[Endlich durfte ich einmal ein Seminar geben, welches sich nicht nur an Anf&#228;nger bzw. Einsteiger richtet, sondern auch mal die fortgeschrittenen Themen behandelt. Bei der VVA Kommunikation in D&#252;sseldorf habe ich &#252;ber das KW Trainingszentrum ein zweiteiliges Seminar &#252;ber die M&#246;glichkeiten von CSS gehalten. Teil 1 war ein zweit&#228;giges Seminar in dem wir folgenden Punkte [...]]]></description>
			<content:encoded><![CDATA[<p>Endlich durfte ich einmal ein Seminar geben, welches sich nicht nur an Anf&#228;nger bzw. Einsteiger richtet, sondern auch mal die fortgeschrittenen Themen behandelt. Bei der <a title="weiter zur Homepage" href="http://www.vva.de/" rel="tag"><abbr title="Vereinigte Verlagsanstalten">VVA</abbr> Kommunikation</a> in D&#252;sseldorf habe ich &#252;ber das <a title="weiter zur Homepage" href="http://www.kwtz.de" rel="tag">KW Trainingszentrum</a> ein zweiteiliges Seminar &#252;ber die M&#246;glichkeiten von <abbr title="Cascading Stylesheet">CSS</abbr> gehalten.</p>
<p><span id="more-114"></span></p>
<p>Teil 1 war ein zweit&#228;giges Seminar in dem wir folgenden Punkte angesprochen haben:</p>
<ul>
<li>semantische HTML-Strukturen</li>
<li><a title="CSS-Import von verschiedenen Medien" href="http://www.re-design.de/workbook/?p=111" rel="tag">Einbindung von externen CSS-Dateien</a></li>
<li><a title="Die Macht der Selektoren" href="http://www.re-design.de/workbook/?p=57" rel="tag">verschiedene Arten von Selektoren</a></li>
<li>Gestaltungsideen f&#252;r Tabellen, Formulare und Listen</li>
<li>Grundaufbau von einem mehrspaltigen Layout</li>
<li>spezielle CSS-Eigenschaften f&#252;r das Print-Design</li>
<li>Design-Richtlinien f&#252;r das mobile Web</li>
</ul>
<p>2 Wochen sp&#228;ter folgte dann ein eint&#228;giger Auffrischungsworkshop. Ziel dieses Seminars war es die in der Praxis verwendeten Ideen aus dem ersten Teil zu diskutieren. Ich habe in diesem Workshop den Teilnehmern ein in Fireworks erstelltes Design gegeben und sie sollten dieses mit den bekannten M&#246;glichkeiten umsetzen. Da bei ihnen ein eigenes CM-System zur Erstellung von Websites benutzt wird, entstanden daraus immer wieder interessante Diskussionen welche Vorgehensweisen die Sinnvollsten w&#228;ren.</p>
<p>Bei diesem Seminar habe auch ich ein paar neue Ideen f&#252;r die Umsetzung von Designs mittels CSS bekommen. Deshalb in dieser Stelle ein gro&#223;es Dankesch&#246;n an alle Kursteilnehmer.</p>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2008/04/26/dreamweaver-schulung-fr-den-solar-verlag/" title="Dreamweaver-Schulung f&#252;r den Solar Verlag">Dreamweaver-Schulung f&#252;r den Solar Verlag</a></li><li><a href="http://www.re-design.de/2007/11/11/flexibles-css-layout/" title="flexibles CSS Layout">flexibles CSS Layout</a></li><li><a href="http://www.re-design.de/2010/10/03/cinema-4d-workshop/" title="Cinema 4D Workshop">Cinema 4D Workshop</a></li><li><a href="http://www.re-design.de/2010/04/11/html-und-css-grundlagen/" title="HTML- und CSS-Grundlagen">HTML- und CSS-Grundlagen</a></li><li><a href="http://www.re-design.de/2009/07/10/html-css-grundlagen/" title="HTML &amp; CSS &#8211; Grundlagen">HTML &amp; CSS &#8211; Grundlagen</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2008/02/25/css-seminar-bei-vva/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>vereinfachter CSS-Import von verschiedenen Medien</title>
		<link>http://www.re-design.de/2008/02/23/vereinfachter-css-import-von-verschiedenen-medien/</link>
		<comments>http://www.re-design.de/2008/02/23/vereinfachter-css-import-von-verschiedenen-medien/#comments</comments>
		<pubDate>Fri, 22 Feb 2008 23:28:50 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=111</guid>
		<description><![CDATA[In meinem letzten Artikel habe ich &#252;ber die Probleme beim Import von externen CSS-Dateien berichtet. Nun habe ich eine vereinfachten Import gefunden, denn das Einbinden von bis zu 6 Dateien bl&#228;ht nicht nur der Quellcode auf, sondern sieht auch irgendwie un&#252;bersichtlich aus. Ich wei&#223;, diese Idee ist nicht unbedingt die neuste, aber sie gef&#228;llt mir [...]]]></description>
			<content:encoded><![CDATA[<p>In meinem letzten Artikel habe ich &#252;ber die Probleme beim <a title="CSS Import macht Probleme" href="http://www.re-design.de/workbook/index.php?p=110" rel="relatesed">Import von externen <abbr title="Cascading Stylesheet">CSS</abbr>-Dateien</a> berichtet. Nun habe ich eine vereinfachten Import gefunden, denn das Einbinden von bis zu 6 Dateien bl&#228;ht nicht nur der Quellcode auf, sondern sieht auch irgendwie un&#252;bersichtlich aus.</p>
<p>Ich wei&#223;, diese Idee ist nicht unbedingt die neuste, aber sie gef&#228;llt mir und deshalb schreibe ich dar&#252;ber</p>
<p><span id="more-111"></span></p>
<p>Also, im Grunde reicht es, wie gehabt, &#252;ber den <code>&lt;link&gt;</code>-Tag die externen <abbr title="Cascading Stylesheet">CSS</abbr>-Dateien einzubinden. Diese mal werden aber nicht alle direkt per Link eingebunden, sondern nur eine zentrale Verwaltungsdatei pro Ausgabemedium, die dann die Restlichen nachl&#228;dt.</p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4">
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   1:</span> <span style="color: #0000ff">&lt;!</span><span style="color: #800000">DOCTYPE</span> <span style="color: #ff0000">html</span> <span style="color: #ff0000">PUBLIC</span> <span style="color: #0000ff">&quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;</span> <span style="color: #0000ff">&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   2:</span> <span style="color: #0000ff">&lt;</span><span style="color: #800000">html</span> <span style="color: #ff0000">xmlns</span><span style="color: #0000ff">=&quot;http://www.w3.org/1999/xhtml&quot;</span> <span style="color: #ff0000">lang</span><span style="color: #0000ff">=&quot;de&quot;</span> <span style="color: #ff0000">xml:lang</span><span style="color: #0000ff">=&quot;de&quot;</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   3:</span> <span style="color: #0000ff">&lt;</span><span style="color: #800000">head</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   4:</span>     <span style="color: #0000ff">&lt;</span><span style="color: #800000">meta</span> <span style="color: #ff0000">http-equiv</span><span style="color: #0000ff">=&quot;Content-Type&quot;</span> <span style="color: #ff0000">content</span><span style="color: #0000ff">=&quot;text/html; charset=utf-8&quot;</span> <span style="color: #0000ff">/&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   5:</span>     <span style="color: #0000ff">&lt;</span><span style="color: #800000">title</span><span style="color: #0000ff">&gt;</span>RE-Design - CSS - externe Stylesheets<span style="color: #0000ff">&lt;/</span><span style="color: #800000">title</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   6:</span>     <span style="color: #0000ff">&lt;</span><span style="color: #800000">link</span> <span style="color: #ff0000">rel</span><span style="color: #0000ff">=&quot;stylesheet&quot;</span> <span style="color: #ff0000">href</span><span style="color: #0000ff">=&quot;screen/zentral.css&quot;</span> <span style="color: #ff0000">type</span><span style="color: #0000ff">=&quot;text/css&quot;</span> <span style="color: #ff0000">media</span><span style="color: #0000ff">=&quot;screen&quot;</span> <span style="color: #0000ff">/&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   7:</span>     <span style="color: #0000ff">&lt;</span><span style="color: #800000">link</span> <span style="color: #ff0000">rel</span><span style="color: #0000ff">=&quot;stylesheet&quot;</span> <span style="color: #ff0000">href</span><span style="color: #0000ff">=&quot;print/zentral.css&quot;</span> <span style="color: #ff0000">type</span><span style="color: #0000ff">=&quot;text/css&quot;</span> <span style="color: #ff0000">media</span><span style="color: #0000ff">=&quot;screen&quot;</span> <span style="color: #0000ff">/&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   8:</span>     <span style="color: #0000ff">&lt;</span><span style="color: #800000">link</span> <span style="color: #ff0000">rel</span><span style="color: #0000ff">=&quot;stylesheet&quot;</span> <span style="color: #ff0000">href</span><span style="color: #0000ff">=&quot;handheld/zentral.css&quot;</span> <span style="color: #ff0000">type</span><span style="color: #0000ff">=&quot;text/css&quot;</span> <span style="color: #ff0000">media</span><span style="color: #0000ff">=&quot;screen&quot;</span> <span style="color: #0000ff">/&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   9:</span> <span style="color: #0000ff">&lt;/</span><span style="color: #800000">head</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  10:</span> <span style="color: #0000ff">&lt;</span><span style="color: #800000">body</span> <span style="color: #ff0000">dir</span><span style="color: #0000ff">=&quot;ltr&quot;</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  11:</span>&#160; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  12:</span> <span style="color: #0000ff">&lt;/</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  13:</span> <span style="color: #0000ff">&lt;/</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span></pre>
</p></div>
</div>
<p>Die zentrale Medien-Datei bekommt dann folgenden Code:</p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4">
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   1:</span> <span style="color: #008000">/* CSS Document */</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   2:</span>&#160; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   3:</span> <span style="color: #cc6633">@import</span> url(<span style="color: #006080">'reset.css'</span>);</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   4:</span> <span style="color: #cc6633">@import</span> url(<span style="color: #006080">'layout.css'</span>);</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   5:</span> <span style="color: #cc6633">@import</span> url(<span style="color: #006080">'design.css'</span>);</pre>
</p></div>
</div>
<p>Es gibt also f&#252;r jedes Ausgabe-Design einen eigenen Style-Ordner in dem dann jeweils eine <abbr title="Cascading Stylesheet">CSS</abbr>-Datei f&#252;r den global Reset, das grundlegende Layout und die weiteren Design-Angaben, wie z.B. Farb- und Typographie-Angaben, definiert werden.</p>
<h4>@Media-Regel</h4>
<p>Ein weitere Ansatz w&#228;re die Nutzung der <code>@import</code>-Regel von <abbr title="Cascading Stylesheet">CSS</abbr>. Diesen habe ich aber leider noch nicht in allen, heutzutage genutzten Browsern getestet. Hierbei reicht es wieder in der <abbr title="Hypertext Markup Language">HTML</abbr>-Datei nur eine externe CSS-Datei einzubinden und in der <abbr title="Cascading Stylesheet">CSS</abbr>-Datei werden die nachzuladenen Datei durch die <code>@media</code>-Regel von einander getrennt.</p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4">
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   1:</span> <span style="color: #0000ff">&lt;!</span><span style="color: #800000">DOCTYPE</span> <span style="color: #ff0000">html</span> <span style="color: #ff0000">PUBLIC</span> <span style="color: #0000ff">&quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;</span> <span style="color: #0000ff">&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   2:</span> <span style="color: #0000ff">&lt;</span><span style="color: #800000">html</span> <span style="color: #ff0000">xmlns</span><span style="color: #0000ff">=&quot;http://www.w3.org/1999/xhtml&quot;</span> <span style="color: #ff0000">lang</span><span style="color: #0000ff">=&quot;de&quot;</span> <span style="color: #ff0000">xml:lang</span><span style="color: #0000ff">=&quot;de&quot;</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   3:</span> <span style="color: #0000ff">&lt;</span><span style="color: #800000">head</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   4:</span>     <span style="color: #0000ff">&lt;</span><span style="color: #800000">meta</span> <span style="color: #ff0000">http-equiv</span><span style="color: #0000ff">=&quot;Content-Type&quot;</span> <span style="color: #ff0000">content</span><span style="color: #0000ff">=&quot;text/html; charset=utf-8&quot;</span> <span style="color: #0000ff">/&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   5:</span>     <span style="color: #0000ff">&lt;</span><span style="color: #800000">title</span><span style="color: #0000ff">&gt;</span>RE-Design - CSS - externe Stylesheets<span style="color: #0000ff">&lt;/</span><span style="color: #800000">title</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   6:</span>     <span style="color: #0000ff">&lt;</span><span style="color: #800000">link</span> <span style="color: #ff0000">rel</span><span style="color: #0000ff">=&quot;stylesheet&quot;</span> <span style="color: #ff0000">href</span><span style="color: #0000ff">=&quot;zentral.css&quot;</span> <span style="color: #ff0000">type</span><span style="color: #0000ff">=&quot;text/css&quot;</span> <span style="color: #0000ff">/&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   7:</span>&#160; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   8:</span> <span style="color: #0000ff">&lt;/</span><span style="color: #800000">head</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   9:</span> <span style="color: #0000ff">&lt;</span><span style="color: #800000">body</span> <span style="color: #ff0000">dir</span><span style="color: #0000ff">=&quot;ltr&quot;</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  10:</span> <span style="color: #0000ff">&lt;/</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  11:</span> <span style="color: #0000ff">&lt;/</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span></pre>
</p></div>
</div>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4">
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   1:</span> <span style="color: #008000">/* CSS Document */</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   2:</span>&#160; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   3:</span> <span style="color: #cc6633">@media</span> screen {</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   4:</span>     <span style="color: #cc6633">@import</span> url(<span style="color: #006080">'screen/reset.css'</span>);</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   5:</span>     <span style="color: #cc6633">@import</span> url(<span style="color: #006080">'screen/layout.css'</span>);</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   6:</span>     <span style="color: #cc6633">@import</span> url(<span style="color: #006080">'screen/design.css'</span>);</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   7:</span> }</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   8:</span>&#160; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   9:</span> <span style="color: #cc6633">@media</span> print {</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  10:</span>     <span style="color: #cc6633">@import</span> url(<span style="color: #006080">'print/reset.css'</span>);</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  11:</span>     <span style="color: #cc6633">@import</span> url(<span style="color: #006080">'print/layout.css'</span>);</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  12:</span>     <span style="color: #cc6633">@import</span> url(<span style="color: #006080">'print/design.css'</span>);</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  13:</span> }</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  14:</span>&#160; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  15:</span> <span style="color: #cc6633">@media</span> handheld {</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  16:</span>     <span style="color: #cc6633">@import</span> url(<span style="color: #006080">'handheld/reset.css'</span>);</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  17:</span>     <span style="color: #cc6633">@import</span> url(<span style="color: #006080">'handheld/layout.css'</span>);</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  18:</span>     <span style="color: #cc6633">@import</span> url(<span style="color: #006080">'handheld/design.css'</span>);</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  19:</span> }</pre>
</p></div>
</div>
<p>Wer in diesem Zusammenhang Erfahrung oder vielleicht Verweise zu weiterf&#252;hrenden Informationen hat, kann ja hier einen Kommentar abgeben.</p>
<p>Auf jeden Fall werde ich nat&#252;rlich an der Sache dran bleiben und &#252;ber neue Erkenntnisse berichten.</p>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2008/04/26/dreamweaver-schulung-fr-den-solar-verlag/" title="Dreamweaver-Schulung f&#252;r den Solar Verlag">Dreamweaver-Schulung f&#252;r den Solar Verlag</a></li><li><a href="http://www.re-design.de/2008/03/01/transcending-css/" title="Transcending CSS">Transcending CSS</a></li><li><a href="http://www.re-design.de/2008/03/01/little-boxes/" title="Little Boxes">Little Boxes</a></li><li><a href="http://www.re-design.de/2008/03/01/das-website-handbuch/" title="Das Website Handbuch">Das Website Handbuch</a></li><li><a href="http://www.re-design.de/2008/02/25/css-seminar-bei-vva/" title="CSS-Seminar bei VVA">CSS-Seminar bei VVA</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2008/02/23/vereinfachter-css-import-von-verschiedenen-medien/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CSS Import macht Probleme</title>
		<link>http://www.re-design.de/2008/02/11/css-import-macht-probleme/</link>
		<comments>http://www.re-design.de/2008/02/11/css-import-macht-probleme/#comments</comments>
		<pubDate>Mon, 11 Feb 2008 12:38:42 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=110</guid>
		<description><![CDATA[Gestern habe ich bei einem Projekt versucht &#252;ber die @import-Regel in CSS externe Dateien nachzuladen und bin auf eine sehr interessant Problematik gesto&#223;en. &#220;blicherweise importieren ja fast alle Webentwickler und -designer ihre externen CSS-Dateien mit dem HTML eigenen Tag &#60;link rel=&#34;stylesheet&#34; href=&#34;path/to/file.css&#34; type=&#34;text/css&#34; /&#62;. Wenn man nur auch noch unterschiedliche Design f&#252;r die verschiedenen Ausgabemedien [...]]]></description>
			<content:encoded><![CDATA[<p>Gestern habe ich bei einem Projekt versucht &#252;ber die <code>@import-Regel</code> in <acronym title="Cascading Stylesheet">CSS</acronym> externe Dateien nachzuladen und bin auf eine sehr interessant Problematik gesto&#223;en.</p>
<p>&#220;blicherweise importieren ja fast alle Webentwickler und -designer ihre externen <acronym title="Cascading Stylesheet">CSS</acronym>-Dateien mit dem <acronym title="Hypertext Markup Language">HTML</acronym> eigenen Tag <code>&lt;link rel=&quot;stylesheet&quot; href=&quot;path/to/file.css&quot; type=&quot;text/css&quot; /&gt;</code>. Wenn man nur auch noch unterschiedliche Design f&#252;r die verschiedenen Ausgabemedien einbinden m&#246;chte, erweitert man diesen Tag mit dem Attribute <code>media=&quot;screen&quot;</code>.</p>
<p>Um eine bessere Trennung im Design zu bekommen, benutze ich 2 <acronym title="Cascading Stylesheet">CSS</acronym>-Dateien. Eine f&#252;r das Layout und eine f&#252;r die Farben und die Typographie. Nun entsteht aber der unsch&#246;ne Umstand, dass ich f&#252;r jedes Ausgabemedium 2 externe Dateien einbinden muss. Wenn ich also f&#252;r den Bildschirm, den Drucker und den mobilen Endger&#228;ten jeweils ein Design entwerfen, so sind das insgesamt 6 externe <acronym title="Cascading Stylesheet">CSS</acronym>-Dateien, plus einer Normalisierungsdatei. All dies &#252;ber den <code>&lt;link&gt;</code>-Tag zu machen, finde ich umst&#228;ndlich.</p>
<p>Sch&#246;ner w&#228;re es doch man k&#246;nnte nur eine externe <acronym title="Cascading Stylesheet">CSS</acronym>-Datei einbinden und der Rest wird dann von ihr geladen. Dann sieht der Quellcode etwas aufger&#228;umter aus.</p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4">
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   1:</span> <span style="color: #0000ff">&lt;!</span><span style="color: #800000">DOCTYPE</span> <span style="color: #ff0000">html</span> <span style="color: #ff0000">PUBLIC</span> <span style="color: #0000ff">&quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;</span> <span style="color: #0000ff">&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   2:</span> <span style="color: #0000ff">&lt;</span><span style="color: #800000">html</span> <span style="color: #ff0000">xmlns</span><span style="color: #0000ff">=&quot;http://www.w3.org/1999/xhtml&quot;</span> <span style="color: #ff0000">lang</span><span style="color: #0000ff">=&quot;de&quot;</span> <span style="color: #ff0000">xml:lang</span><span style="color: #0000ff">=&quot;de&quot;</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   3:</span> <span style="color: #0000ff">&lt;</span><span style="color: #800000">head</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   4:</span> <span style="color: #0000ff">&lt;</span><span style="color: #800000">meta</span> <span style="color: #ff0000">http-equiv</span><span style="color: #0000ff">=&quot;Content-Type&quot;</span> <span style="color: #ff0000">content</span><span style="color: #0000ff">=&quot;text/html; charset=utf-8&quot;</span> <span style="color: #0000ff">/&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   5:</span> <span style="color: #0000ff">&lt;</span><span style="color: #800000">title</span><span style="color: #0000ff">&gt;</span>RE-Design - CSS - @import<span style="color: #0000ff">&lt;/</span><span style="color: #800000">title</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   6:</span> <span style="color: #0000ff">&lt;</span><span style="color: #800000">style</span> <span style="color: #ff0000">type</span><span style="color: #0000ff">=&quot;text/css&quot;</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   7:</span> /*<span style="color: #0000ff">&lt;!</span>[CDATA[*/</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   8:</span>&#160; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   9:</span> @import url('style/import.css');</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  10:</span>&#160; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  11:</span> /*]]<span style="color: #0000ff">&gt;</span>*/</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  12:</span> <span style="color: #0000ff">&lt;/</span><span style="color: #800000">style</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  13:</span> <span style="color: #0000ff">&lt;/</span><span style="color: #800000">head</span><span style="color: #0000ff">&gt;</span></pre>
</p></div>
</div>
<p>Wenn man nun in der <acronym title="Cascading Stylesheet">CSS</acronym>-Datei die restlichen Dateien l&#228;dt, w&#228;re ja alles in Ordnung.</p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4">
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   1:</span> @import url('normalization<span style="color: #cc6633">.css</span>');</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   2:</span>&#160; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   3:</span> @import url('screen_layout<span style="color: #cc6633">.css</span>'<span style="color: #006080">) screen;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   4:</span> @import url('screen_design<span style="color: #cc6633">.css</span>'<span style="color: #006080">) screen;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   5:</span>&#160; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   6:</span> @import url('print_layout<span style="color: #cc6633">.css</span>'<span style="color: #006080">) print;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   7:</span> @import url('print_design<span style="color: #cc6633">.css</span>'<span style="color: #006080">) print;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   8:</span>&#160; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   9:</span> @import url('handheld_layout<span style="color: #cc6633">.css</span>'<span style="color: #006080">) handheld;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  10:</span> @import url('handheld_design<span style="color: #cc6633">.css</span>'<span style="color: #006080">) handheld;</span></pre>
</p></div>
</div>
<p>Doch leider macht an dieser Stelle der Internet Explorer uns wieder einmal einen Strich durch die Rechnung. Denn der ignoriert die <code>@import</code>-Regel wenn sie mit dem Zusatz der Medienausgabe belegt wird. In diesem Fall w&#252;rde also nur die Normalisierungsdatei geladen.</p>
<p>Interessant ist auch, dass mein &#252;ber alles geliebter Opera-Browser nur die <code>screen</code>-Erweiterung versteht und die anderen ignoriert, was bedeutet: er druckt das Screendesign aus.</p>
<h4>Fazit</h4>
<p>Mein Fazit zu diesem Experimentes ist, dass ich <em>leider</em> wieder zur&#252;ck zum <code>&lt;link&gt;</code>-Tag gehen muss, um eine volle Unterst&#252;tzung aller Browser zu haben. Eigentlich schade, denn es ist doch eigentlich eine einfache und bequeme Art zu arbeiten.</p>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2008/01/28/jahresabonnement-des-spotlight-verlag/" title="Jahresabonnement des Spotlight Verlag">Jahresabonnement des Spotlight Verlag</a></li><li><a href="http://www.re-design.de/2008/01/13/umsetzung-von-print-design/" title="Umsetzung von Print-Design">Umsetzung von Print-Design</a></li><li><a href="http://www.re-design.de/2007/12/21/ajax-adressbuch-tutorial-teil-1/" title="AJAX Adressbuch &#8211; Tutorial Teil 1">AJAX Adressbuch &#8211; Tutorial Teil 1</a></li><li><a href="http://www.re-design.de/2007/12/20/button-wieder-neu-entdeckt/" title="Button wieder neu entdeckt">Button wieder neu entdeckt</a></li><li><a href="http://www.re-design.de/2007/12/19/slideshow-mit-einer-html-seite-teil-2/" title="Slideshow mit einer HTML-Seite Teil 2">Slideshow mit einer HTML-Seite Teil 2</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2008/02/11/css-import-macht-probleme/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>AJAX Adressbuch</title>
		<link>http://www.re-design.de/2008/01/29/ajax-adressbuch/</link>
		<comments>http://www.re-design.de/2008/01/29/ajax-adressbuch/#comments</comments>
		<pubDate>Tue, 29 Jan 2008 12:37:43 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Adventskalender 2007]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[adressbuch]]></category>
		<category><![CDATA[adventskalender]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[design]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=107</guid>
		<description><![CDATA[In meinem Adventskalender habe ich ein kleines Tutorial über die Erstellung eines Adressbuch per AJAX geschrieben. Leider waren aber die Demodateien nicht direkt benutzbar. Ich habe sie nun korrigiert und stelle sie euch hiermit zur Verfügung. AJAX Adressbuch 1.1 Bugfix: Ich habe eine SQL-Datei hinzugefügt, um die Datenbank schneller zu installieren. Jetzt muss nur noch [...]]]></description>
			<content:encoded><![CDATA[<p>In meinem <a href="http://www.re-design.de/workbook/?p=103" title="Alle Türchen sind offen">Adventskalender</a> habe ich ein kleines Tutorial über die Erstellung eines <a href="http://www.re-design.de/workbook/?p=89" title="AJAX Adressbuh Tutorial Teil 1">Adressbuch per AJAX</a> geschrieben. Leider waren aber die Demodateien nicht direkt benutzbar. Ich habe sie nun korrigiert und stelle sie euch hiermit zur Verfügung.</p>
<ul>
<li> <a href="http://www.re-design.de/workbook/wp-content/uploads/2008/01/ajax-adressbuch-11.zip" title="AJAX Adressbuch 1.1">AJAX Adressbuch 1.1</a></li>
</ul>
<p>Bugfix:</p>
<ol>
<li>Ich habe eine SQL-Datei hinzugefügt, um  die Datenbank schneller zu installieren. Jetzt muss nur noch in der include-Datei der Zugriff auf die Datenbank geregelt werden.</li>
<li>Der init()-Methode des Adressbuches wird jetzt der Form-Container übergeben, so dass das Adressbuch flexibler auf das DOM reagieren kann.</li>
<li>Die Literal-Namen wurden in eine einheitliche Schreibweise (RED_AdrBook, RED_AJAX) umbenannt.</li>
<li>Eine update-Funktion für bestehende Datensätze wurde hinzugefügt.</li>
<li>Eine Lösch-Funktion wurde hinzugefügt. Deswegen wurde ein delete.php-Script, welches einen Datensatz löscht, angelget.</li>
<li>Die Anzahl der Datensätze und der aktuelle Datensatz wird nun im Interface angezeigt.</li>
</ol>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2007/12/24/ajax-adressbuch-tutorial-teil-4/" title="AJAX Adressbuch &#8211; Tutorial Teil 4">AJAX Adressbuch &#8211; Tutorial Teil 4</a></li><li><a href="http://www.re-design.de/2008/12/21/tag-21-erweiterung-durch-ajax/" title="Tag 21 – Erweiterung durch AJAX">Tag 21 – Erweiterung durch AJAX</a></li><li><a href="http://www.re-design.de/2007/12/24/alle-tuerchen-von-2007-sind-offen/" title="Alle T&#252;rchen von 2007 sind offen">Alle T&#252;rchen von 2007 sind offen</a></li><li><a href="http://www.re-design.de/2007/12/23/ajax-abressbuch-tutorial-teil-3/" title="AJAX Abressbuch &#8211; Tutorial Teil 3">AJAX Abressbuch &#8211; Tutorial Teil 3</a></li><li><a href="http://www.re-design.de/2007/12/22/ajax-adressbuch-tutorial-teil-2/" title="AJAX Adressbuch &#8211; Tutorial Teil 2">AJAX Adressbuch &#8211; Tutorial Teil 2</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2008/01/29/ajax-adressbuch/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Jahresabonnement des Spotlight Verlag</title>
		<link>http://www.re-design.de/2008/01/28/jahresabonnement-des-spotlight-verlag/</link>
		<comments>http://www.re-design.de/2008/01/28/jahresabonnement-des-spotlight-verlag/#comments</comments>
		<pubDate>Mon, 28 Jan 2008 13:43:40 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Print-Design]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[vorlage]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=105</guid>
		<description><![CDATA[Mein erstes Beispiel ist eine ganzseitige Anzeige im monatlich erscheinenden Magazin Ecos des Spotlight Verlags. Sie bewerben darin ihre Jahresabonnements. Obwohl die gedruckte Version nicht besonders aufwendig aussieht, habe ich trotzdem ca. 5 Stunden an der Umsetzung get&#252;ftelt. Aber zu guter Letzt habe ich es geschafft und nur m&#246;chte ich euch das Ergebnis pr&#228;sentieren. Hier [...]]]></description>
			<content:encoded><![CDATA[<p>Mein erstes Beispiel ist eine ganzseitige Anzeige im monatlich erscheinenden <a href="http://www.ecos-online.de/">Magazin Ecos</a> des <a href="http://www.spotlight-verlag.de/">Spotlight Verlags</a>. Sie bewerben darin ihre Jahresabonnements. Obwohl die gedruckte Version nicht besonders aufwendig aussieht, habe ich trotzdem ca. 5 Stunden an der Umsetzung get&#252;ftelt. Aber zu guter Letzt habe ich es geschafft und nur m&#246;chte ich euch das Ergebnis pr&#228;sentieren.</p>
<p><span id="more-105"></span></p>
<p>Hier nun als erstes die gedruckte Version der Anzeige, daneben findet ihr eines Screenshot meine <strike>Online-Version</strike>.</p>
<table cellspacing="0" cellpadding="2" width="720" border="0">
<tbody>
<tr>
<td valign="top" width="360"><a href="http://de.sevenload.com/bilder/cp9LmEk/Spotlight-Abo"><img height="200" alt="Pint Anzeige" src="http://de.sevenload.com/im/cp9LmEk/142x200" width="142" /></a></td>
<td valign="top" align="right" width="360"><a href="http://de.sevenload.com/bilder/pbLArWg/Ecos-Abo"><img height="200" alt="Online Nachbau" src="http://de.sevenload.com/im/pbLArWg/151x200" width="151" /></a></td>
</tr>
</tbody>
</table>
<p><a href="http://de.sevenload.com/bilder/cp9LmEk/Spotlight-Abo"></a></p>
<p><a href="http://de.sevenload.com/bilder/pbLArWg/Ecos-Abo"></a></p>
<p>Ich erspare euch die Darstellung es gesamten HTML-Quellcodes und zeige euch lieber eine gek&#252;rzte Version davon:</p>
<ol class="Sourcecode">
<li><code>&lt;div id=&quot;content&quot;&gt;</code> </li>
<li><code>&#160; &lt;h1&gt;</code> </li>
<li><code>&#160; &lt;ul id=&quot;bonus&quot;&gt;</code> </li>
<li><code>&#160;&#160;&#160; &lt;li&gt;&lt;strong&gt;</code> </li>
<li><code>&#160;&#160;&#160; ...</code> </li>
<li><code>&#160;&#160;&#160; &lt;li&gt;&lt;strong&gt;</code> </li>
<li><code>&#160;&#160;&#160; &lt;ul id=&quot;covers&quot;&gt;</code> </li>
<li><code>&#160;&#160;&#160;&#160;&#160; &lt;li&gt;&lt;img&gt;</code>&#160; </li>
<li><code>&#160;&#160;&#160;&#160;&#160; ...</code> </li>
<li><code>&#160; &lt;h2&gt;</code> </li>
<li><code>&#160; &lt;ul id=&quot;guides&quot;&gt;</code> </li>
<li><code>&#160;&#160;&#160; &lt;li&gt;&lt;img&gt;&lt;cite&gt;</code> </li>
<li><code>&#160;&#160;&#160; ...</code> </li>
<li><code>&#160; &lt;h3&gt;&lt;a&gt;</code> </li>
<li><code>&#160; &lt;p&gt;</code> </li>
<li><code>&#160; &lt;form&gt;</code> </li>
<li><code>&#160;&#160;&#160; &lt;fieldset id=&quot;coupon&quot;&gt;</code> </li>
<li><code>&#160;&#160;&#160;&#160;&#160; &lt;h3&gt;</code> </li>
<li><code>&#160;&#160;&#160;&#160;&#160; &lt;fieldset id=&quot;magazin&quot;&gt;</code> </li>
<li><code>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;h4&gt;</code> </li>
<li><code>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;p&gt;</code> </li>
<li><code>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;ul&gt;</code> </li>
<li><code>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;li&gt;&lt;p&gt;</code> </li>
<li><code>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;ul&gt;</code> </li>
<li><code>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;li&gt;&lt;label&gt;&lt;input&gt;</code> </li>
<li><code>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ...</code> </li>
<li><code>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;li&gt;</code> </li>
<li><code>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;p&gt;&lt;br&gt;&lt;label&gt;&lt;input&gt;</code> </li>
<li><code>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </code><code>&lt;p&gt;</code> </li>
<li><code>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;p&gt;</code> </li>
<li><code>&#160;&#160;&#160;&#160;&#160; &lt;fieldset id=&quot;address&quot;&gt;</code> </li>
<li><code>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;h4&gt;</code> </li>
<li><code>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;p&gt;&lt;label&gt;&lt;input&gt;</code> </li>
<li><code>&#160;&#160;&#160;&#160;&#160;&#160;&#160; ...</code> </li>
<li><code>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;p&gt;</code> </li>
<li><code>&#160;&#160;&#160;&#160;&#160; &lt;fieldset id=&quot;bank&quot;&gt;</code> </li>
<li><code>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;h4&gt;</code> </li>
<li><code>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;p&gt;</code> </li>
<li><code>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;p&gt;&lt;label&gt;&lt;input&gt;</code> </li>
<li><code>&#160;&#160;&#160;&#160;&#160;&#160;&#160; ...</code> </li>
<li><code>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;h5&gt;</code> </li>
<li><code>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;p&gt;</code> </li>
<li><code>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;p&gt;&lt;label&gt;&lt;input&gt;</code> </li>
<li><code>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;p&gt;&lt;label&gt;&lt;input&gt;</code> </li>
<li><code>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;p&gt;&lt;button&gt;</code> </li>
</ol>
<p>Ich hoffe ihr kommt mir der Kurzfassung zurecht. Falls nicht, bitte ich euch eine Kommentar mit Verbesserungen zu hinterlassen. Ist ja mein erster Versuch und ich kann bestimmt auch noch viel von <em>euch</em> lernen.</p>
<p>Wie ihr seht habe ich versucht den Quellcode m&#246;glichst wenig mit zus&#228;tzlicher Beschriftung aufzubl&#228;hen. Damit habe ich es erreicht, dass die <abbr title="Hypertext Markup Language">HTML</abbr>-Datei gerade mal 8800 Byte gro&#223; ist.</p>
<p>Im Head habe ich dann nur noch eine Link zur externen <abbr title="Cascading Style Sheet">CSS</abbr>-Datei gelegt. Diese regelt dann das gesamte Screen-Design. </p>
<ol class="Sourcecode">
<li><code>&lt;link rel=&quot;stylesheet&quot; href=&quot;screen/layout.css&quot; media=&quot;screen&quot; /&gt;</code> </li>
</ol>
<p>Das Design besteht aus insgesamt 4 Datei:</p>
<ol>
<li><strong>normalisation.css        <br /></strong>Hier werden alle Formatierungen die in den verschiedenen Browser unterschiedlich dargestellt werden und/oder mit einer Vorformatierung belegt sind auf einen einheitlichen Normalwert zur&#252;ckgesetzt. </li>
<li><strong>layout.css        <br /></strong>Sie beinhaltet die Positionierung der einzelnen Elemente. </li>
<li><strong>color.css</strong>       <br />Mit dieser Datei wird die Farbwirkung des Designs bestimmt. </li>
<li><strong>typographie.css        <br /></strong>Alle typographischen Regeln sind in hier zusammengefasst. </li>
</ol>
<p>Um alle Dateien zu laden, werden die anderen in die Layout-Datei einfach importiert und dann die Formatierung des Layouts definiert.</p>
<ol class="Sourcecode">
<li><code>@import url(normalisation.css);</code> </li>
<li><code>@import url(color_final.css);</code> </li>
<li><code>@import url(typographie_final.css);</code> </li>
</ol>
<p>Auch hier werde ich nicht den gesamte Code der 4 <abbr title="Cascading Stylesheet">CSS</abbr>-Dateien anzeigen, sondern nur, meiner Meinung nach, die wichtigsten Bereiche. Falls aber dann doch noch Definitionen unklar bleiben, bitte ich euch einfach einen Kommentar zu schreiben.</p>
<h4>Normalisation</h4>
<p>In meinem Artikel <a href="http://www.re-design.de/workbook/?p=50">CSS Layouts am Flie&#223;band</a> habe ich schon mal erkl&#228;rt wie ein <abbr title="Cascading Stylesheet">CSS</abbr>-Datei aussehen k&#246;nnte um alle browserspezifischen Formatierungen zur&#252;ckzusetzen.</p>
<h4>Layout</h4>
<p>In der Layout-Datei werden erstmals die restlichen Dateien eingebunden.</p>
<ol class="Sourcecode">
<li><code>@charset &quot;utf-8&quot;;</code> </li>
<li><code>/* CSS Document */</code> </li>
<li><code>@import url(screen/normalisation.css);</code> </li>
<li><code>@import url(screen/color.css);</code> </li>
<li><code>@import url(screen/typographie.css);</code> </li>
</ol>
<p>Ok, fangen wir mit der generellen Layout-Formatierung an:</p>
<ol class="Sourcecode">
<li><code>html {</code> </li>
<li><code>position:relative;</code> </li>
<li><code>text-align:center;</code> </li>
<li><code>}</code> </li>
<li><code>body {</code> </li>
<li><code>position:relative;</code> </li>
<li><code>width: 920px;</code> </li>
<li><code>margin:0 auto;</code> </li>
<li><code>text-align:left;</code> </li>
<li><code>}</code> </li>
</ol>
<p>Als erstes wird alles was in dem <code>&lt;html&gt;</code>-Tag steht zentriert. Im <code>&lt;body&gt;</code>-Tag wird dann der Inhalt 920px breit formatiert. Gleichzeitig wird dessen Innenleben wieder linksb&#252;ndig gestellt.</p>
<ol class="Sourcecode">
<li><code>#content {</code> </li>
<li<br />
><code>position:relative;</code> </li>
<li><code>width:420px;</code> </li>
<li><code>margin:0 auto;</code> </li>
<li><code>padding:20px;</code> </li>
<li><code>}</code> </li>
<li><code>#covers {</code> </li>
<li><code>width:920px;</code> </li>
<li><code>margin:1em -260px 0;</code> </li>
<li><code>}</code> </li>
<li><code>#covers&gt;li {</code> </li>
<li><code>display:block;</code> </li>
<li><code>float:left;</code> </li>
<li><code>width:120px;</code> </li>
<li><code>margin:0 5px;</code> </li>
<li><code>}</code> </li>
<li><code>#covers img {</code> </li>
<li><code>display:block;</code> </li>
<li><code>}</code> </li>
</ol>
<p>Jetzt wird der eigentliche Content auf eine Breite von 420<abbr title="Pixel">px</abbr> und ein Abstand von 20<abbr title="Pixel">px</abbr> zum Rand eingestellt, so dass eine schmale Spalte entsteht. Da aber die Covers aus der Spalte herausl&#228;uft, habe ich &#252;ber ein negatives Margin diesen Bereich verbreitert. Dann werden noch die einzelnen Listeneintr&#228;ge nebeneinander ausgelistet und die Bild als Blockelement definiert, um die Bildunterschriften unterhalb zu platzieren.</p>
<ol class="Sourcecode">
<li><code>h2 {</code> </li>
<li><code>clear:both;</code> </li>
<li><code>}</code> </li>
<li><code>#guides {</code> </li>
<li><code>width:920px;</code> </li>
<li><code>height:130px;</code> </li>
<li><code>margin:1em -260px 0 -245px;</code> </li>
<li><code>}</code> </li>
<li><code>#guides&gt;li {</code> </li>
<li><code>display:block;</code> </li>
<li><code>float:left;</code> </li>
<li><code>width:120px;</code> </li>
<li><code>margin:0 5px;</code> </li>
<li><code>}</code> </li>
<li><code>#guides img {</code> </li>
<li><code>display:block;</code> </li>
<li><code>margin:0 auto;</code> </li>
<li><code>}</code> </li>
</ol>
<p>Um das Floating der Cover-Liste zu beenden, habe ich die folgende &#220;berschrift mit einem <code>clear</code>-Befahl belegt. Die Darstellung der Guide-Heft ist im Grunde gleich der der Covers, weswegen ich hier nur ein paar kleine &#196;nderungen vorgenommen habe um die kleineren Bild gleich zu positionieren.</p>
<ol class="Sourcecode">
<li><code>#content+h3 {</code> </li>
<li><code>clear:both;</code> </li>
<li><code>text-align:center;</code> </li>
<li><code>margin:1em 0 0;</code> </li>
<li><code>}</code> </li>
<li><code>#content+h3+p {</code> </li>
<li><code>text-align:center;</code> </li>
<li><code>}</code> </li>
</ol>
<p>Die folgende &#220;berschrift und der dazugeh&#246;rige Absatz wird noch mittig gesetzt und dazwischen lasse ich Platz f&#252;r das darzustellende Dreieck.</p>
<ol class="Sourcecode">
<li><code>#coupon {</code> </li>
<li><code>border-top:thick dashed #FFF;</code> </li>
<li><code>margin:1em 0;</code> </li>
<li><code>}</code> </li>
<li><code>fieldset&gt;fieldset {</code> </li>
<li><code>float:left;</code> </li>
<li><code>width:290px;</code> </li>
<li><code>padding:5px;</code> </li>
<li><code>}</code> </li>
<li><code>fieldset&gt;fieldset+fieldset {</code> </li>
<li><code>margin:0 10px;</code> </li>
<li><code>}</code> </li>
<li><code>fieldset&gt;fieldset+fieldset+fieldset {</code> </li>
<li><code>margin:0;</code> </li>
<li><code>}</code> </li>
<li><code>fieldset+p,</code> </li>
<li><code>fieldset+p+p {</code> </li>
<li><code>display:none;</code> </li>
<li><code>}</code> </li>
<li><code>button {</code> </li>
<li><code>clear:both;</code> </li>
<li><code>display:block;</code> </li>
<li><code>float:right;</code> </li>
<li><code>}</code> </li>
</ol>
<p>Zum Schluss noch das Formular mit dem der Besucher ein Abo bestellen kann. Hier habe ich als erstes die gepunktete Linie eingestellt. Alle K&#228;sten innerhalb meines Coupons werden wieder &#252;ber float nach links ausgerichtet und bekommen die gleiche Breite. Als Abschluss habe ich dann noch, anders als im Magazin einen Button mit eingef&#252;gt, um das Formular auch abschicken zu k&#246;nnen.</p>
<h4>Farben</h4>
<p>So, nun komme ich zu den Farbeinstellungen. Da gibt es Gott sei Dank nicht so viel zu erkl&#228;ren.</p>
<ol class="Sourcecode">
<li><code>html {</code> </li>
<li><code>background-color:#FF0;</code> </li>
<li><code>}</code> </li>
<li><code>#content {</code> </li>
<li><code>background-color:#F00;</code> </li>
<li><code>color:#FFF;</code> </li>
<li><code>}</code> </li>
</ol>
<p>Klar das erstmal der gesamte Hintergrund gelb und die Spalte rot wird.</p>
<ol class="Sourcecode">
<li><code>#covers&gt;li {</code> </li>
<li><code>color:#000;</code> </li>
<li><code>}</code> </li>
<li><code>#covers li+li+li {</code> </li>
<li><code>color:#FFF;</code> </li>
<li><code>}</code> </li>
<li><code>#covers li+li+li+li+li+li {</code> </li>
<li><code>color:#000;</code> </li>
<li><code>}</code> </li>
</ol>
<p>Beim genauen hinsehen wird man feststellen, dass in der Liste der verschiedenen Covers die ersten beiden und die beiden letzten Texte schwarz und der Rest wei&#223; geschrieben ist. Um den Quelltext nicht unn&#246;tig mit Klassen aufzubl&#228;hen, habe ich mich f&#252;r eine klassenfreie Variante entschieden.</p>
<ol class="Sourcecode">
<li><code>#address input,</code> </li>
<li><code>#bank input {</code> </li>
<li><code>background-color:inherit;</code>&#160; </li>
<li><code>color:#900;</code> </li>
<li><code>border:none;</code> </li>
<li><code>border-bottom:thin solid #000;</code> </li>
<li><code>}</code> </li>
<li><code>#address input:focus,</code> </li>
<li><code>#bank input:focus {</code> </li>
<li><code>background-color:#FF0;</code> </li>
<li><code>outline:thin solid #000;</code> </li>
<li><code>border-bottom:none;</code> </li>
<li><code>}</code> </li>
</ol>
<p>Um die Eingabefelder nicht nach typischen Webformular-Feldern aussehen zu lassen, habe ich diesen nur einen unteren Rahmen gegeben und die Hintergrundfarbe dem der Fieldsets angepasst.</p>
<h4>Typographie</h4>
<p>Auch bei den typografischen Einstellungen gibt es keine besonderen &#220;berraschungen.</p>
<ol class="Sourcecode">
<li><code>body {</code> </li>
<li><code>font: 82%/1.5 &quot;Lucida Grande&quot;, &quot;Lucida Sans Unicode&quot;, Verdana, sans-serif;</code> </li>
<li><code>}</code> </li>
<li><code>h1 {</code> </li>
<li><code>font-size:450%;</code> </li>
<li><code>line-height:1.1em;</code> </li>
<li><code>text-indent:.15em;</code> </li>
<li><code>font-weight:bold;</code> </li>
<li><code>}</code> </li>
<li><code>strong {</code> </li>
<li><code>font-weight:bold;</code> </li>
<li><code>font-size:130%;</code> </li>
<li><code>}</code> </li>
<li><code>h5 {</code> </li>
<li><code>display:inline;</code> </li>
<li><code>}</code> </li>
</ol>
<p>Beim Designen der Schriften habe ich versucht die Schriftart und Schriftgr&#246;&#223;e dem Printprodukt anzupassen, um auch Zeilenumbr&#252;che gleich zu halten. Da ich nicht genau wei&#223; welche Schriftart der Designer verwendet hat und da ja auch nicht jede Schriftart im Web unterst&#252;tzt wird, habe ich mich f&#252;r Lucida Grande entschieden. Man m&#246;ge es mir verzeihen.</p>
<p>In der Haupt&#252;berschrift musste ich die erste Zeile ein wenig einr&#252;cken, um die beiden Zeilen genau zueinander auszurichten. Die fettgedruckten Texte in der Ausz&#228;hlung sind dann leider auch nicht nur fett sondern leicht gr&#246;&#223;er dargestellt, so dass dieses mit ber&#252;cksichtigt wurde. Auch ist die kleine Wiederspruchsrecht-&#220;berschrift nicht in einer separaten Zeilen, sondern der folgende Absatz beginnt direkt dahinter.</p>
<h3>Fazit</h3>
<p>Obwohl ich am Anfang diese Anzeige als relativ leicht empfunden habe, erwies sich das detailgetreue Gestalten doch als kleine Herausforderung.</p>
<p>Aber es hat nicht nur Spa&#223; gemacht dieses Design umzusetzen, sondern brachte mir euch neue Sichtweisen und L&#246;sungsans&#228;tze beim Gestalten von Websites.</p>
<h3>Update 17. M&#228;rz 2008</h3>
<p>Ich habe gerade mit der Online-Redaktion des Verlages gesprochen, da sie verwundert<br />
waren ihre Anzeige online zu sehen. Da bei der Erstellung der Online-Anzeige nicht die Darstellung von alten Browsern ber&#252;cksichtigt wurden, waren sie verwundert, dass ihre Anzeige so schlecht aussieht.</p>
<p>Zur Zeit wird jetzt gekl&#228;rt, ob eine Umsetzung ihrer Anzeige zu Demonstrationszwecken von ihnen gew&#252;nscht ist. Und so lange ist die Online-Version leider nicht verf&#252;gbar.</p>
<h3>Update 25. M&#228;rz 2008</h3>
<p>Endlich habe ich eine Antwort vom Verlag bekommen, was mit meiner nachgebauten Anzeige passieren soll. Leider ist die Chefin meiner Ansprechpartnerin im Verlag absolut nicht damit einverstanden, dass die Anzeige zu Demonstrationszwecken genutzt wird. Auch wenn dadurch kostenlos Werbung (mit Verlinkung) gemacht wird.</p>
<p style="font-weight: bold; color: #ff0000">Deshalb hier nochmals der Hinweis, dass HTML-Version nichts mit dem Spotlight-Verlag zu tun hat und dieser sich ausdr&#252;cklich davon distanziert.</p>
<p>Um auch nicht mehr &#252;ber Google gefunden zu werden, habe ich mich entschlossen das Beispiel umziehen zu lassen und zus&#228;tzlich mit einem Passwortschutz belegt. Alle weiteren Experimente auf dieser Website findet ihr jetzt im <a href="http://www.re-design.de/weblabor" rel="tag">Weblabor</a>. Um im Ordner Print-Designs die verschiedenen Beispiele anzusehen, m&#252;sst ihr euch mit dem Benutzernamen &quot;<strong>gast</strong>&quot; und dem Passwort &quot;<strong>zugang</strong>&quot; anmelden, dann k&#246;nnt ihr auch <a href="http://weblabor.re-design.de/print-designs/Ecos-Abo/index.html">das Beispiel</a> wiedersehen. Ich hoffe dadurch ist</p>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2008/02/11/css-import-macht-probleme/" title="CSS Import macht Probleme">CSS Import macht Probleme</a></li><li><a href="http://www.re-design.de/2008/01/13/umsetzung-von-print-design/" title="Umsetzung von Print-Design">Umsetzung von Print-Design</a></li><li><a href="http://www.re-design.de/2007/12/21/ajax-adressbuch-tutorial-teil-1/" title="AJAX Adressbuch &#8211; Tutorial Teil 1">AJAX Adressbuch &#8211; Tutorial Teil 1</a></li><li><a href="http://www.re-design.de/2007/12/20/button-wieder-neu-entdeckt/" title="Button wieder neu entdeckt">Button wieder neu entdeckt</a></li><li><a href="http://www.re-design.de/2007/12/19/slideshow-mit-einer-html-seite-teil-2/" title="Slideshow mit einer HTML-Seite Teil 2">Slideshow mit einer HTML-Seite Teil 2</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2008/01/28/jahresabonnement-des-spotlight-verlag/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Umsetzung von Print-Design</title>
		<link>http://www.re-design.de/2008/01/13/umsetzung-von-print-design/</link>
		<comments>http://www.re-design.de/2008/01/13/umsetzung-von-print-design/#comments</comments>
		<pubDate>Sun, 13 Jan 2008 08:08:52 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Print-Design]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[print]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=104</guid>
		<description><![CDATA[Inspiriert durch das Lesen des Buches CSS Transcending, wo die Autoren Andy Clarke und Molly E. Holzschlag in mehreren guten Beispielen zeigten wie man schöne Print-Designs ins Internet übertragen kann. Das Ganze verband er natürlich mit valide und gut strukturierten Quellcode. Beflügelt durch die gute Resonanz meines Adventskalenders 2007 möchte ich eine weitere Rubrik in [...]]]></description>
			<content:encoded><![CDATA[<p>Inspiriert durch das Lesen des Buches CSS Transcending, wo die Autoren Andy Clarke und Molly E. Holzschlag in mehreren guten Beispielen zeigten wie man schöne Print-Designs ins Internet übertragen kann. Das Ganze verband er natürlich mit valide und gut strukturierten Quellcode.</p>
<p>Beflügelt durch die gute Resonanz meines Adventskalenders 2007 möchte ich eine weitere Rubrik in meinem Arbeitsbuch eröffnen. In ihr möchte ich, in <strike>hoffentlich</strike> regelmäßigen Abständen, Seiten-Designs aus Zeitungen, Zeitschriften oder Magazinen in eine Webdesign-Fassung bringen. Das bedeutet ich werde mir eine gut gestaltete Seite aussuchen und versuchen sie dann ins Internet zu übertragen.</p>
<p>Es ist nicht nur erstaunlich sondern auch faszinierend was man mit den Internet-Technologien und den heutigen, modernen Browsern erschaffen kann. Dabei werde ich versuchen mich auf XHTML, CSS und JavaScript zu beschränken und möglichst sinnvoll, nicht aufgeblähten und gut strukturierten Quellcode zu verwenden.</p>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2008/02/11/css-import-macht-probleme/" title="CSS Import macht Probleme">CSS Import macht Probleme</a></li><li><a href="http://www.re-design.de/2008/01/28/jahresabonnement-des-spotlight-verlag/" title="Jahresabonnement des Spotlight Verlag">Jahresabonnement des Spotlight Verlag</a></li><li><a href="http://www.re-design.de/2007/12/21/ajax-adressbuch-tutorial-teil-1/" title="AJAX Adressbuch &#8211; Tutorial Teil 1">AJAX Adressbuch &#8211; Tutorial Teil 1</a></li><li><a href="http://www.re-design.de/2007/12/20/button-wieder-neu-entdeckt/" title="Button wieder neu entdeckt">Button wieder neu entdeckt</a></li><li><a href="http://www.re-design.de/2007/12/19/slideshow-mit-einer-html-seite-teil-2/" title="Slideshow mit einer HTML-Seite Teil 2">Slideshow mit einer HTML-Seite Teil 2</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2008/01/13/umsetzung-von-print-design/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Alle T&#252;rchen von 2007 sind offen</title>
		<link>http://www.re-design.de/2007/12/24/alle-tuerchen-von-2007-sind-offen/</link>
		<comments>http://www.re-design.de/2007/12/24/alle-tuerchen-von-2007-sind-offen/#comments</comments>
		<pubDate>Mon, 24 Dec 2007 00:29:38 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[2007]]></category>
		<category><![CDATA[adventskalender]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=103</guid>
		<description><![CDATA[Zum Schluss mein Adventsreihe m&#246;chte ich euch nochmals eine gesamten &#220;berblick &#252;ber die ver&#246;ffentlichten Artikel geben: Designer vergessen die Gestaltung Deutendes Design der Inhalte Beschriftung von Containern flexible Layouts mit CSS Der gescannte Text Small Screen Browser Design Icons helfen bei der Orientierung CSS Layouts am Flie&#223;band Die Macht der Selektoren Suchmaschinenoptimierung (SEO) Redirect hilft [...]]]></description>
			<content:encoded><![CDATA[<p>Zum Schluss mein Adventsreihe m&#246;chte ich euch nochmals eine gesamten &#220;berblick &#252;ber die ver&#246;ffentlichten Artikel geben:</p>
<ol>
<li><a href="http://www.re-design.de/workbook/?p=33">Designer vergessen die Gestaltung</a> </li>
<li><a href="http://www.re-design.de/workbook/?p=37">Deutendes Design der Inhalte</a> </li>
<li><a href="http://www.re-design.de/workbook/?p=42">Beschriftung von Containern</a> </li>
<li><a href="http://www.re-design.de/workbook/?p=35">flexible Layouts mit CSS</a> </li>
<li><a href="http://www.re-design.de/workbook/?p=44">Der gescannte Text</a> </li>
<li><a href="http://www.re-design.de/workbook/?p=48">Small Screen Browser Design</a> </li>
<li><a href="http://www.re-design.de/workbook/?p=38">Icons helfen bei der Orientierung</a> </li>
<li><a href="http://www.re-design.de/workbook/?p=50">CSS Layouts am Flie&#223;band</a> </li>
<li><a href="http://www.re-design.de/workbook/?p=57">Die Macht der Selektoren</a> </li>
<li><a href="http://www.re-design.de/workbook/?p=58">Suchmaschinenoptimierung (SEO)</a> </li>
<li><a href="http://www.re-design.de/workbook/?p=60">Redirect hilft bei Ver&#228;nderungen</a> </li>
<li><a href="http://www.re-design.de/workbook/?p=61">dynamische Linkliste bringt mehr Usability</a> </li>
<li><a href="http://www.re-design.de/workbook/?p=65">Flashvideo-Player einfach eingesetzt</a> </li>
<li><a href="http://www.re-design.de/workbook/?p=71">Template-Engine mit PHP</a> </li>
<li><a href="http://www.re-design.de/workbook/?p=32">AJAX-Klasse, einfach gebaut</a> </li>
<li><a href="http://www.re-design.de/workbook/?p=73">schnelle Erstellung von XML mit PHP</a> </li>
<li><a href="http://www.re-design.de/workbook/?p=76">Mit JavaScript DOM erzeugen</a> </li>
<li><a href="http://www.re-design.de/workbook/?p=81">Slideshow mit einer HTML-Seite Teil 1</a> </li>
<li><a href="http://www.re-design.de/workbook/?p=82">Slideshow mit einer HTML-Seite Teil 2</a> </li>
<li><a href="http://www.re-design.de/workbook/?p=88">Button wieder neu entdeckt</a> </li>
<li><a href="http://www.re-design.de/workbook/?p=89">AJAX Adressbuch &#8211; Tutorial Teil 1</a> </li>
<li><a href="http://www.re-design.de/workbook/?p=91">AJAX Adressbuch &#8211; Tutorial Teil 2</a> </li>
<li><a href="http://www.re-design.de/workbook/?p=96">AJAX Abressbuch &#8211; Tutorial Teil 3</a> </li>
<li><a href="http://www.re-design.de/workbook/?p=101">AJAX Adressbuch &#8211; Tutorial Teil 4</a> </li>
</ol>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2007/12/06/small-screen-browser-design/" title="Small Screen Browser Design">Small Screen Browser Design</a></li><li><a href="http://www.re-design.de/2008/04/26/dreamweaver-schulung-fr-den-solar-verlag/" title="Dreamweaver-Schulung f&#252;r den Solar Verlag">Dreamweaver-Schulung f&#252;r den Solar Verlag</a></li><li><a href="http://www.re-design.de/2008/03/01/transcending-css/" title="Transcending CSS">Transcending CSS</a></li><li><a href="http://www.re-design.de/2008/03/01/little-boxes/" title="Little Boxes">Little Boxes</a></li><li><a href="http://www.re-design.de/2008/03/01/das-website-handbuch/" title="Das Website Handbuch">Das Website Handbuch</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2007/12/24/alle-tuerchen-von-2007-sind-offen/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>AJAX Adressbuch &#8211; Tutorial Teil 4</title>
		<link>http://www.re-design.de/2007/12/24/ajax-adressbuch-tutorial-teil-4/</link>
		<comments>http://www.re-design.de/2007/12/24/ajax-adressbuch-tutorial-teil-4/#comments</comments>
		<pubDate>Mon, 24 Dec 2007 00:00:28 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Adventskalender 2007]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[adressbuch]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=101</guid>
		<description><![CDATA[Nun ist es soweit, heute ist Weihnachten und das letzte Türchen hat sich geöffnet. Der letzte Teil meine Adressbuches steht noch aus und das möchte ich euch jetzt geben. Es ist der serverseitige Teil meine kleinen Weanwendung. Ich habe dazu eine mySQL-Datenbank angelegt und greife mit PHP auf den Datenbestand zu. Ähnlich wie in Teil [...]]]></description>
			<content:encoded><![CDATA[<p>Nun ist es soweit, heute ist Weihnachten und das letzte Türchen hat sich geöffnet. Der letzte Teil meine Adressbuches steht noch aus und das möchte ich euch jetzt geben. Es ist der serverseitige Teil meine kleinen Weanwendung. Ich habe dazu eine <a href="http://www.mysql.com">mySQL-Datenbank</a> angelegt und greife mit PHP auf den Datenbestand zu.</p>
<p><span id="more-101"></span></p>
<p>Ähnlich wie in <a title="AJAX Adressbuch Teil 2" href="http://www.re-design.de/workbook/?p=91">Teil 2</a> und <a title="AJAX Adressbuch Teil 3" href="http://www.re-design.de/workbook/?p=96">Teil 3</a> werde ich mehrere Datei benutzen um alles geordnet zu haben. Aber als erstes die Scripte zum Erzeugen der Datenbank und des Datenbestandes.</p>
<ol class="Sourcecode">
<li><code>CREATE DATABASE `demodb` DEFAULT CHARACTER SET latin1 COLLATE latin1_general_ci; USE `demodb`;</code></li>
</ol>
<ol class="Sourcecode">
<li><code>CREATE TABLE `mitarbeiter` (</code></li>
<li><code> `id` int(11) NOT NULL auto_increment,</code></li>
<li><code> `nachname` varchar(255) NOT NULL,</code></li>
<li><code> `vorname` varchar(255) NOT NULL,</code></li>
<li><code> `email` varchar(255) NOT NULL,</code></li>
<li><code> `telefon` varchar(255) NOT NULL,</code></li>
<li><code>PRIMARY KEY (`id`)</code></li>
<li><code>); </code></li>
</ol>
<p>Also <a title="phpMyAdmin | MySQL Database Administration Tool" href="http://www.phpmyadmin.net">phpMyAdmin</a>, das ultimative Datenbank-Tool, öffnen und die Codes einfügen. Dazu noch einen Datenbank-Benutzer und ein dazugehöriges Passwort anlegen. In meinem Fall heißt der Benutzer &#8220;<code>demouser</code>&#8221; und sein Passwort ist &#8220;<code>password</code>&#8220;.</p>
<p>Als nächstes lege ich mir immer eine PHP-Datei an, die die Verbindung zur Datenbank regelt. Somit muss ich die Daten nicht in jedes Script hineinschreiben.</p>
<ol class="Sourcecode">
<li><code>&lt;?php</code></li>
<li><code>$connect = mysql_connect('localhost', 'demouser', 'password');</code></li>
<li><code>mysql_select_db('mitarbeiter', $connect);</code></li>
<li><code>?&gt;</code></li>
</ol>
<p>In der Variable <code>$connect</code> wird dann die Verbindung zum Datenbank-Server gespeichert und kann von nun an genutzt werden. Ich habe hier der Einfachheit halber auf Fehlermeldungen verzichtet.</p>
<ol class="Sourcecode">
<li><code>header('Content-Type: text/xml');</code></li>
<li><code>$xml = new DOMDocument('1.0', 'utf-8');</code></li>
<li><code>$root = $xml-&gt;createElement('mitarbeiter');</code></li>
<li><code>$xml-&gt;appendChild($root);</code></li>
<li></li>
<li></li>
<li><code>echo $xml-&gt;saveXML();</code></li>
</ol>
<p>Um mit PHP eine <abbr title="Extensable Markup Language">XML</abbr>-Ausgabe zu erzeugen, reicht der obige Quellcode. Wichtig dabei ist das der richtige Header an den Browser geschickt wird.</p>
<p>Danach wird ein XML-Objekt mit dem Zeichensatz &#8220;utf-8&#8243; generiert. Weiterhin wird ein Hauptknoten erzeugt und an das XML-Dokument dran gehangen. Zum Schluss alles an den Browser geschickt.</p>
<p>Soweit die Grundstruktur der XML-Ausgabe. Aber es fehlen ja noch die eigentlichen Inhalte aus der Datenbank.</p>
<ol class="Sourcecode">
<li><code>&lt;?php</code></li>
<li><code>include_once('include.php');</code></li>
<li></li>
<li><code>$sql = 'SELECT * FROM personen ORDER BY nachname';</code></li>
<li><code>$result = mysql_query($sql, $connect);</code></li>
<li><code>while($rs = mysql_fetch_assoc($result))</code></li>
<li><code>{</code></li>
<li><code> $nachname = $xml-&gt;createElement('nachname');</code></li>
<li><code> $nachname-&gt;appendChild($xml-&gt;createTextNode(iconv('iso-8859-1','utf-8',$rs['nachname'])));</code></li>
<li><code> $vorname = $xml-&gt;createElement('vorname');</code></li>
<li><code> $vorname-&gt;appendChild($xml-&gt;createTextNode(iconv('iso-8859-1','utf-8',$rs['vorname'])));</code></li>
<li><code> $email = $xml-&gt;createElement('email');</code></li>
<li><code> $email-&gt;appendChild($xml-&gt;createTextNode(iconv('iso-8859-1','utf-8',$rs['email'])));</code></li>
<li><code> $telefon = $xml-&gt;createElement('telefon');</code></li>
<li><code> $telefon-&gt;appendChild($xml-&gt;createTextNode(iconv('iso-8859-1','utf-8',$rs['telefon'])));</code></li>
<li><code> $person = $xml-&gt;createElement('person');</code></li>
<li><code> $person-&gt;setAttribute('id', $rs['id']);</code></li>
<li><code> $person-&gt;appendChild($nachname);</code></li>
<li><code> $person-&gt;appendChild($vorname);</code></li>
<li><code> $person-&gt;appendChild($email);</code></li>
<li><code> $person-&gt;appendChild($telefon);</code></li>
<li><code> $root-&gt;appendChild($person);</code></li>
<li><code>}</code></li>
<li></li>
<li><code>mysql_close($connect);</code></li>
<li><code>?&gt;</code></li>
</ol>
<p>Dazu binde ich als erstes die externe Datei zum Verbinden mit dem Datenbank-Server ein. Danach speichere ich das <abbr title="Structed Query Language">SQL</abbr>-Statement in einer Variablen zwischen und hole von der Datenbank alle Ergebnisse dieser Anfrage.</p>
<p>In der darauffolgenden <code>while</code>-Schleife werden neue Knoten erzeugt und an den Root dran gehangen. Dabei setzt sich der Nachname-Knoten z.B. wie folgt zusammen. Ich erzeuge als erstes einen <code>&lt;nachname&gt;</code>-Tag und hänge dann mit der <code>createTextNode()</code>-Methode einen Text-Knoten dran. Den Text den ich da dran hänge, konvertiere ich zuvor noch mit der <code>iconv()</code>-Funktion in den richtigen Zeichensatz. Zum Schluss hänge ich dem <code>&lt;person&gt;</code>-Tag alle Unterknoten dran.</p>
<p>Soweit die Ausgabe zum Browser, bzw. zu JavaScript und meiner <abbr title="Asyncron JavaScript and XML">AJAX</abbr>-Klasse. Was noch fehlt ist ein Script um Daten von JavaScript in Empfang zu nehmen und in die Datenbank einzufügen.</p>
<ol class="Sourcecode">
<li><code>&lt;?php</code></li>
<li><code>include('include.php');</code></li>
<li><code>$sql = sprintf('REPLACE INTO personen SET</code></li>
<li><code> id=%d, </code></li>
<li><code> nachname="%s", </code></li>
<li><code> vorname="%s", </code></li>
<li><code> email="%s",</code></li>
<li><code> telefon="%s"'</code></li>
<li><code> ,$_POST['f0'],$_POST['f1'],$_POST['f2'],$_POST['f3'],$_POST['f4']);</code></li>
<li><code>mysql_query($sql, $connect);</code></li>
<li><code>mysql_close();</code></li>
<li><code>?&gt;</code></li>
</ol>
<p>Auch hier ist der Quellcode sehr überschaubar. Als erstes binde ich wieder Das Script zum Erzeugen einer Verbindung zum Datenbank-Server ein. Dann speichere ich wieder in einer Variablen das SQL-Statement zwischen. Um ein korrektes Ergebnis zu bekommen, verwende ich hier die sprinf()-Funktion. Diese bietet mir eine kleiner Kontrolle über die übergebenen Werte. Zum Schluss schicke ich das Ganze nur noch an der Server und fertig ist das Einfügen neuer oder das Ändern von bestehenden Datensätzen. Ich verwende dazu immer ganz gern das REPLACE-Statement. Wenn dieses Statement keine ID besitzt wird ein neuer Datensatz erzeugt, ansonsten wird der Bestehende verändert.</p>
<ul>
<li><a title="komplettes Set" href="ftp://weblabor.re-design.de/AJAX-Adressbuch.zip">Download</a></li>
</ul>
<p>So und das war es auch schon mit der serverseitigen Programmierung. Gerade mal 3 kleine Script brauche ich hier um der ganzen Webanwendung auch das Speichern auf dem Server bzw. das Einlesen von Daten hinzuzufügen.</p>
<p>Ich hoffe es hat euch gefallen 24 meist kleine Beträge aus meinen Arbeitsalltag zu lesen. Ich gebe zu, es war nicht immer leicht die Texte rechtzeitig fertig zu stellen und ich verspreche, wie immer und alle, nächstes Jahr rechtzeitig mit den Vorbereitungen zu beginnen.</p>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2008/01/29/ajax-adressbuch/" title="AJAX Adressbuch">AJAX Adressbuch</a></li><li><a href="http://www.re-design.de/2007/12/23/ajax-abressbuch-tutorial-teil-3/" title="AJAX Abressbuch &#8211; Tutorial Teil 3">AJAX Abressbuch &#8211; Tutorial Teil 3</a></li><li><a href="http://www.re-design.de/2007/12/22/ajax-adressbuch-tutorial-teil-2/" title="AJAX Adressbuch &#8211; Tutorial Teil 2">AJAX Adressbuch &#8211; Tutorial Teil 2</a></li><li><a href="http://www.re-design.de/2007/12/21/ajax-adressbuch-tutorial-teil-1/" title="AJAX Adressbuch &#8211; Tutorial Teil 1">AJAX Adressbuch &#8211; Tutorial Teil 1</a></li><li><a href="http://www.re-design.de/2009/03/04/einzelcoaching-php-xml-schulung/" title="Einzelcoaching &ndash; PHP-XML Schulung">Einzelcoaching &ndash; PHP-XML Schulung</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2007/12/24/ajax-adressbuch-tutorial-teil-4/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>AJAX Abressbuch &#8211; Tutorial Teil 3</title>
		<link>http://www.re-design.de/2007/12/23/ajax-abressbuch-tutorial-teil-3/</link>
		<comments>http://www.re-design.de/2007/12/23/ajax-abressbuch-tutorial-teil-3/#comments</comments>
		<pubDate>Sun, 23 Dec 2007 00:00:24 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Adventskalender 2007]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[Webanwendung]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=96</guid>
		<description><![CDATA[Im dritten Teil meines Tutorials möchte ich euch zeigen wie ich per JavaScript eine Verbindung zum Server aufbaue und Daten zum Server schicke bzw. vom Server hole. Durch die Beschreibung in Teil 1 und Teil 2 meines Tutorials habe ich hoffentlich eine gute Basis geschaffen einen Schritt weiter zu gehen. Ok, als erstes wieder einmal [...]]]></description>
			<content:encoded><![CDATA[<p>Im dritten Teil meines Tutorials möchte ich euch zeigen wie ich per JavaScript eine Verbindung zum Server aufbaue und Daten zum Server schicke bzw. vom Server hole. Durch die Beschreibung in <a title="AJAX Adressbuch Teil 1" href="http://www.re-design.de/workbook/?p=89">Teil 1</a> und <a title="AJAX Adressbuch Teil 2" href="http://www.re-design.de/workbook/?p=91">Teil 2</a> meines Tutorials habe ich hoffentlich eine gute Basis geschaffen einen Schritt weiter zu gehen.</p>
<p><span id="more-96"></span></p>
<p>Ok, als erstes wieder einmal die Zusammenfassung aller Eigenschaften und Methoden der RED-Ajax-Objektes.</p>
<ol class="Sourcecode">
<li><code>// JavaScript Document</code></li>
<li><code>var RED_Ajax =</code></li>
<li><code>{</code></li>
<li><code> req : null,</code></li>
<li><code> url : null,</code></li>
<li><code> method : 'GET',</code></li>
<li><code> async : false,</code></li>
<li><code> body : null,</code></li>
<li><code> headers : [],</code></li>
<li><code> timer : null,</code></li>
<li><code> responseXML : null,</code></li>
<li><code> responseText : null,</code></li>
<li><code> init : function()</code> <code>{</code> <code>},</code></li>
<li><code> run : function()</code> <code>{</code> <code>},</code></li>
<li><code> header : function() </code><code>{</code><code>},<br />
</code></li>
<li><code> response : function()</code> <code>{</code><code>},<br />
</code></li>
<li><code> callback : function() {},</code></li>
<li><code> update : function() {},</code></li>
<li><code> error : function()</code> <code>{</code> <code>}</code></li>
<li><code>}</code></li>
</ol>
<p>Ich werde jetzt nicht alle Eigenschaften im Detail erklären, denn das passiert auf jeden Fall noch bei der Erklärung der einzelnen Methoden. Ich fange lieber direkt mit den Methoden an.</p>
<ol class="Sourcecode">
<li><code> init : function()</code></li>
<li><code> {</code></li>
<li><code> this.req = (window.XMLHttpRequest)</code></li>
<li><code> ?</code></li>
<li><code> new XMLHttpRequest()</code></li>
<li><code> :</code></li>
<li><code> ((window.ActiveXObject)</code></li>
<li><code> ?</code></li>
<li><code> new ActiveXObject('Microsoft.XMLHTTP')</code></li>
<li><code> :</code></li>
<li><code> null</code></li>
<li><code> );</code></li>
<li></li>
<li><code> if(this.req != null)</code></li>
<li><code> {</code></li>
<li><code> this.req.onreadystatechange = this.response;</code></li>
<li><code> }</code></li>
<li><code> },</code></li>
</ol>
<p>Wie immer gibt es bei mir eine <code>init()</code>-Methode. Diese hier legt in der reg-Eigenschaft ein Objekt ab, welche eine Verbindung zum Server aufbauen kann. Da jeder Browser ein anderes Objekt dazu benutzt, muss hier immer erst noch geprüft werden ob das ganze auch funktioniert. Wenn alles geklappt hat wird noch auf den readystatechange-Event ein Methodenverweise gemacht.</p>
<ol class="Sourcecode">
<li><code> run : function(u,m,f,b)</code></li>
<li><code> {</code></li>
<li><code> this.method = m || this.method;</code></li>
<li><code> this.async = f || this.async;</code></li>
<li><code> this.body = b || this.body;</code></li>
<li><code> this.url = u;</code></li>
<li><code> if(this.req != null)</code></li>
<li><code> {</code></li>
<li><code> this.req.open(this.method, this.url, this.async);</code></li>
<li><code> if(this.headers.length &gt; 0)</code></li>
<li><code> {</code></li>
<li><code> for(var i=0; i&lt;this.headers.length; i+=2)</code></li>
<li><code> {</code></li>
<li><code> this.req.setRequestHeader(this.headers[i], this.headers[i+1]);</code></li>
<li><code> }</code></li>
<li><code> }</code></li>
<li><code> this.req.send(this.body);</code></li>
<li><code> }</code></li>
<li><code> },</code></li>
</ol>
<p>Um dann aber auch die eigentlichen Daten vom bzw. zum Server zu schicken gibt es die <code>run()</code>-Methode. Ihr kann bis zu 4 Parameter mit übergeben werden, wobei der erste, die <abbr title="Uniform Resource Location">URL</abbr>-Angabe, nur Pflicht ist. Die weiteren Parameter sind die Übertragungsmethode (<code>GET</code> oder <code>POST</code>), ob die Ubertragung synchron (<code>true</code>) oder asynchron (<code>false</code>) stattfinden soll und der beim Senden mitgelieferte Body.</p>
<p>Bevor der Request aber geschickt wird, werden die im Vorfeld gesetzte Header-Angaben verarbeitet.</p>
<ol class="Sourcecode">
<li><code> header : function(k,v)</code></li>
<li><code> {</code></li>
<li><code> if(k != null)</code></li>
<li><code> {</code></li>
<li><code> this.headers.push(k);</code></li>
<li><code> this.headers.push(v);</code></li>
<li><code> }</code></li>
<li><code> }, </code></li>
</ol>
<p>Um eine Header-Angabe, die später mit übertragen werden soll, zu setzten, reicht es die <code>header()</code>-Methode mit ihren beiden Parametern <code>key</code> und <code>value</code> aufzurufen.</p>
<ol class="Sourcecode">
<li><code> response : function()</code></li>
<li><code> {</code></li>
<li><code> var a = ajax.req;</code></li>
<li><code> switch(a.readyState)</code></li>
<li><code> {</code></li>
<li><code> case 1:</code></li>
<li><code> break;</code></li>
<li><code> case 2:</code></li>
<li><code> this.timer = window.setTimeout(this.error, 10000);</code></li>
<li><code> break;</code></li>
<li><code> case 3: </code></li>
<li><code> this.timer = window.setTimeout(this.error, 10000);</code></li>
<li><code> break;</code></li>
<li><code> case 4:</code></li>
<li><code> window.clearTimeout(this.timer);</code></li>
<li><code> if(a.status==200 || a.statusText=='OK')</code></li>
<li><code> {</code></li>
<li><code> RED_Ajax.responseXML = a.responseXML;</code></li>
<li><code> RED_Ajax.responseText = a.responseText;</code></li>
<li><code> RED_Ajax.callback();</code></li>
<li><code> }</code></li>
<li><code> }</code></li>
<li><code> }, </code></li>
</ol>
<p>Beim Ausführen der Sende- bzw. Empfang-Vorganges durchläuft das Verbindungsobjekt verschiedene Stadien, die in der <code>response()</code>-Methode geprüft werden. Folgende Stati gibt es:</p>
<ol>
<li>Das Verbindungsobjekt existiert aber die <code>open()</code>-Methode wurde noch nicht aufgerufen.</li>
<li>Die <code>send()</code>-Methode wurde noch nicht ausgeführt.</li>
<li>Die <code>send()</code>-Methode wurde zwar ausgeführt, aber der Server hat noch nichts zurück geschickt.</li>
<li>Der Server hat angefangen Daten zu übermitteln, aber ist damit noch nicht fertig.</li>
<li>Der Übermittlungsvorgang wurde beendet und alle Date sind angekommen.</li>
</ol>
<p>Um den Übertragungsvorgang auch irgendwann abzubrechen, falls ein Fehler aufgetreten ist, habe ich im Status 2 und 3 eine Timeout eingefügt und hebe ihn im Status 4 wieder auf, da da ja alles angekommen ist. Wenn dann auch noch der Server mit &#8220;alles ok&#8221; übertragen hat, dann werden die übertragenen Werte einmal als reine Text und als <abbr title="Extentable Markup Language">XML</abbr>-Objekt abgespeichert. Zum Schluss rufe ich nur noch die <code>callback()</code>-Methode auf.</p>
<ol class="Sourcecode">
<li><code> callback : function(){},</code></li>
<li><code> update : function(){}</code>,</li>
</ol>
<p>Meine <code>callback()</code>-Methode ist ein sogenannter Huck und muss erst noch definiert werden. Ich habe deshalb offen gelassen, weil die Verarbeitung der übertragenen Daten sehr unterschiedlich sein kann. In Teil 2 habe ich erklärt wo und wie man diese Definition einsetzt.</p>
<p>Auch habe ich eine <code>update()</code>-Methode zwar eingesetzt, aber noch nicht definiert. Hier lasse ich mir die Möglichkeit offen zu einem späteren Zeitpunkt einen zyklischen Aufruf des Server zu bauen.</p>
<ol class="Sourcecode">
<li><code> error : function()</code></li>
<li><code> {</code></li>
<li><code> alert('Die Zeit ist um!');</code></li>
<li><code> this.req.abort();</code></li>
<li><code> }</code></li>
</ol>
<p>Meine letzte Methode ist die <code>error()</code>-Methode. Sie dient ausschließlich dazu bei zu langen Ladezeiten diesen Vorgang abzugrechen.</p>
<p>Wie immer gibt es zum Schluss den Download der beschriebenen Dateien:</p>
<ul>
<li><a title="RED_AJAX Datei" href="ftp://weblabor.re-design.de/AJAX-Adressbuch.zip">RED_AJAX Datei</a></li>
</ul>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2007/12/22/ajax-adressbuch-tutorial-teil-2/" title="AJAX Adressbuch &#8211; Tutorial Teil 2">AJAX Adressbuch &#8211; Tutorial Teil 2</a></li><li><a href="http://www.re-design.de/2007/12/21/ajax-adressbuch-tutorial-teil-1/" title="AJAX Adressbuch &#8211; Tutorial Teil 1">AJAX Adressbuch &#8211; Tutorial Teil 1</a></li><li><a href="http://www.re-design.de/2007/12/24/ajax-adressbuch-tutorial-teil-4/" title="AJAX Adressbuch &#8211; Tutorial Teil 4">AJAX Adressbuch &#8211; Tutorial Teil 4</a></li><li><a href="http://www.re-design.de/2007/12/19/slideshow-mit-einer-html-seite-teil-2/" title="Slideshow mit einer HTML-Seite Teil 2">Slideshow mit einer HTML-Seite Teil 2</a></li><li><a href="http://www.re-design.de/2007/12/18/slideshow-mit-einer-html-seite-teil-1/" title="Slideshow mit einer HTML-Seite Teil 1">Slideshow mit einer HTML-Seite Teil 1</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2007/12/23/ajax-abressbuch-tutorial-teil-3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>AJAX Adressbuch &#8211; Tutorial Teil 2</title>
		<link>http://www.re-design.de/2007/12/22/ajax-adressbuch-tutorial-teil-2/</link>
		<comments>http://www.re-design.de/2007/12/22/ajax-adressbuch-tutorial-teil-2/#comments</comments>
		<pubDate>Sat, 22 Dec 2007 00:00:22 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Adventskalender 2007]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=91</guid>
		<description><![CDATA[Nachdem ich gestern erklärt habe wie die HTML-Datei, das dazugehörige CSS-Design und die XML-Datenstruktur aufgebaut sind, werde ich mich nun der clientseitigen Programmierung widmen. Die Programmierung besteht hier nun aus 2 JavaScript-Dateien. Die eine ist für die Verarbeitung der Daten und die andere regelt die Übertragung zum und vom Server. Fangen wir nun mir der [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem ich <a title="AJAX Adressbuch Teil 1" href="http://www.re-design.de/2007/12/21/ajax-adressbuch-tutorial-teil-1/">gestern</a> erklärt habe wie die <abbr title="Hypertext Markup Language">HTML</abbr>-Datei, das dazugehörige <abbr title="Cascading Style Sheet">CSS</abbr>-Design und die <abbr title="Extentable Markup Language">XML</abbr>-Datenstruktur aufgebaut sind, werde ich mich nun der clientseitigen Programmierung widmen.</p>
<p>Die Programmierung besteht hier nun aus 2 JavaScript-Dateien. Die eine ist für die Verarbeitung der Daten und die andere regelt die Übertragung zum und vom Server.</p>
<p><span id="more-91"></span></p>
<p>Fangen wir nun mir der Verarbeitung an. Um in diesem Stadium der Programmierung nicht schon die serverseitigen Scripte geschrieben zu haben, arbeite ich immer mit einer Demo-XML-Datei.</p>
<ol class="Sourcecode">
<li><code>// JavaScript Document</code></li>
<li><code>var RED_Adrbook = </code></li>
<li><code>{</code></li>
<li><code> data : [],</code></li>
<li><code> alerts : </code><code>{</code> <code>},</code></li>
<li><code> zeiger : 0,</code></li>
<li><code> init : function()</code><code>{</code> <code>},</code></li>
<li><code> loadXML : function()</code> <code>{ </code><code>},</code></li>
<li><code> loadData : function(xml)</code> <code>{</code> <code>},</code></li>
<li><code> loadEvents : function()</code> <code>{</code> <code>},</code></li>
<li><code> loadSlides : function()</code> <code>{</code> <code>},</code></li>
<li><code> pager : function()</code> <code>{</code> <code>},</code></li>
<li><code> add : function()</code> <code>{</code> <code>},</code></li>
<li><code> insert : function()</code> <code>{</code> <code>},</code></li>
<li><code> edit : function()</code> <code>{},</code></li>
<li><code> update : function() </code><code>{</code><code>},</code></li>
<li><code> remove : function() {</code><code>}</code></li>
<li><code>}</code></li>
</ol>
<p>Wie schon bei den letzten Beispielen verwende ich bei solcher Programmierung gerne Literale. Die Eingenschaft data dient dann später dazu alle vom Server bekommen Kontakte in einen einzigen Array zu sammeln. Über die Eigenschaft zeiger wird dann das Weiterschalten zum nächsten Mitarbeiter geregelt. Die letzte Eigenschaft innerhalb des Objektes verwende ich um Meldungen vom System an den Benutzer zu kapseln. Ich habe mir dazu ein Unterobjekt angelegt.</p>
<p>Kommen wir nun zu den einzelnen Methoden des Obejktes:</p>
<ol class="Sourcecode">
<li><code> init : function()</code></li>
<li><code> {</code></li>
<li><code> RED_Ajax.init();</code></li>
<li><code> this.loadXML();</code></li>
<li><code> },</code></li>
</ol>
<p>In fast jedem Objekt lege ich eine <code>init()</code>-Methode an, um alle wichtigen Prozesse zu starten, die vor der eigentlichen Benutzung durch den Anwender gebraucht werden. In diesem Fall ist das die Vorbereitung der Verbindung zum Server und dann das Laden der XML-Daten vom Server.</p>
<ol class="Sourcecode">
<li><code> loadXML : function()</code></li>
<li><code> {</code></li>
<li><code> RED_Ajax.callback = function()</code></li>
<li><code> {</code></li>
<li><code> RED_Adrbook.loadData(this.responseXML);</code></li>
<li><code> };</code></li>
<li><code> RED_Ajax.run('mitarbeiter.xml','GET',false);</code></li>
<li><code> },</code></li>
</ol>
<p>Um die empfangen XML-Daten auch später zu verarbeiten, muss der Huck, also die <code>callback()</code>-Methode des RED_AJAX-Objektes definiert werden. Ich rufe hier die <code>loadData()</code>-Methode des <code>RED_AdrBook</code> auf und übergebe ihr die empfangenen XML-Werte. Nach allen Vorbereitungen rufe ich die <code>run()</code>-Methode auf und übergebe ihr als erstes die zu ladende Datei, dann mit welcher Methode die Übertragung stattfinden soll und zum Schluss ob es sich um eine synchrone Übertragung handelt. Nur selten ändern sich die beiden letzten Werte.</p>
<ol class="Sourcecode">
<li><code> loadData : function(xml)</code></li>
<li><code> {</code></li>
<li><code> this.data = [];</code></li>
<li><code> var personen = xml.getElementsByTagName('person');</code></li>
<li><code> for(var i=0; i&lt;personen.length; i++)</code></li>
<li><code> {</code></li>
<li><code> var person = {</code></li>
<li><code> Nachname : personen[i].childNodes[0].firstChild.nodeValue,</code></li>
<li><code> Vorname : personen[i].childNodes[1].firstChild.nodeValue,</code></li>
<li><code> Email : personen[i].childNodes[2].firstChild.nodeValue,</code></li>
<li><code> Telefon : personen[i].childNodes[3].firstChild.nodeValue,</code></li>
<li><code> ID : personen[i].getAttribute('id')</code></li>
<li><code> };</code></li>
<li><code> this.data.push(person);</code></li>
<li><code> }</code></li>
<li><code> this.loadEvents();</code></li>
<li><code> this.loadSlides();</code></li>
<li><code> },</code></li>
</ol>
<p>Nachdem alle Daten vom Server übertragen wurden, kann die eigentliche Verarbeitung beginnen. Als erstes leere ich den Array und hole mir aus den übergebenen Wert einen Array mit allen Mitarbeitern. Diesen Array durchlaufe ich und erzeuge mir ein eigenes Personen-Objekt zur späteren besseren Verarbeitung. Dieses Personen-Objekt wird dann im Data-Array abgespeichert.</p>
<p>Zum Schluss müssen natürlich noch die Events für die Buttons festgelegt werden und das aktuelle Slide, also der aktuelle, hier der erste, Mitarbeiter angezeigt werden.</p>
<ol class="Sourcecode">
<li><code> loadEvents : function()</code></li>
<li><code> {</code></li>
<li><code> document.getElementById('btn_next').onclick = function() </code><code>{</code></li>
<li><code> RED_Adrbook.pager(true);</code></li>
<li><code> }</code></li>
<li><code> document.getElementById('btn_prev').onclick = function() {</code></li>
<li><code> RED_Adrbook.pager(false);</code></li>
<li><code> }</code></li>
<li><code> document.getElementById('btn_edit').onclick = function() {</code></li>
<li><code> RED_Adrbook.edit();</code></li>
<li><code> </code><code>}</code></li>
<li><code> document.getElementById('btn_add').onclick = function() {</code></li>
<li><code> RED_Adrbook.add();</code></li>
<li><code> }</code></li>
<li><code> document.getElementById('btn_remove').onclick = function() {</code></li>
<li><code> RED_Adrbook.remove();</code></li>
<li><code> }</code></li>
<li><code> },</code></li>
</ol>
<p>Das festlegen welche Funktionen welcher Button hat ist recht einfach, da es dafür separate Methoden gibt.</p>
<ol class="Sourcecode">
<li><code> loadSlides : function()</code></li>
<li><code> {</code></li>
<li><code> var s = document.getElementById('RED_Book').getElementsByTagName('span');</code></li>
<li><code> s[0].innerHTML = this.zeiger;</code></li>
<li><code> s[1].innerHTML = this.data[this.zeiger]['Nachname'];</code></li>
<li><code> s[2].innerHTML = this.data[this.zeiger]['Vorname'];</code></li>
<li><code> s[4].innerHTML = this.data[this.zeiger]['Telefon'];</code></li>
<li><code> var link = '&lt;a href="mailto:';</code></li>
<li><code> link += this.data[this.zeiger]['Email'];</code></li>
<li><code> link += '"&gt;';</code></li>
<li><code> link += this.data[this.zeiger]['Email'];<br />
</code></li>
<li><code> link += '&lt;/a&gt;';</code></li>
<li><code> s[3].innerHTML = link;</code></li>
<li><code> },</code></li>
</ol>
<p>Bei Laden des aktuelle Slides werden als erstes alle <code>&lt;span&gt;</code>-Tags aus dem Formular mit der ID <code>RED_Book</code> in eine Array geladen. Dann werden die Daten aus dem aktuellen Silde per <code>innerHTML</code> in die Spans zugewiesen. Das <code>this.zeiger</code> immer den aktuellen Zeiger repräsentiert ist das ganze kein größeres Problem. Selbst eine <code>mailto:</code>-Link zu erzeugen stellt keine große Hürde da.</p>
<ol class="Sourcecode">
<li><code> pager : function(d)</code></li>
<li><code> {</code></li>
<li><code> if(d)</code></li>
<li><code> {</code></li>
<li><code> (this.zeiger == this.data.length-1) ?alert(this.alerts.last) :this.zeiger++; </code></li>
<li><code> }</code></li>
<li><code> else</code></li>
<li><code> {</code></li>
<li><code> (this.zeiger == 0) ?alert(this.alerts.first) :this.zeiger--;</code></li>
<li><code> }</code></li>
<li><code> this.loadSlides();</code></li>
<li><code> },</code></li>
</ol>
<p>Für der vor und zurück Blättern gibt es eine kleine und einfache Methode, die als erstes prüft wo der Zeiger steht und am Ende bzw. am Anfang der Liste diesen korrigiert. Dann wird noch per <code>loadSlides()</code>-Methode der richtige Mitarbeiter angezeigt.</p>
<ol class="Sourcecode">
<li><code> add : function()</code></li>
<li><code> {</code></li>
<li><code> var s = document.getElementById('RED_Book').getElementsByTagName('span');</code></li>
<li><code> s[0].innerHTML = 'neuer Datensatz';</code></li>
<li><code> s[0].innerHTML += '&lt;input type="hidden" name="f0" value="" /&gt;';</code></li>
<li><code> s[1].innerHTML = '&lt;input type="text" name="f1" /&gt;';</code></li>
<li><code> s[2].innerHTML = '&lt;input type="text" name="f2" /&gt;';</code></li>
<li><code> s[3].innerHTML = '&lt;input type="text" name="f3" /&gt;';</code></li>
<li><code> s[4].innerHTML = '&lt;input type="text" name="f4" /&gt;';</code></li>
<li><code> s[4].innerHTML += '&lt;br /&gt;';s[4].innerHTML += '&lt;input type="button" id="btn_save" value="speichern" /&gt;';</code></li>
<li><code> s[4].innerHTML += '&lt;input type="button" id="btn_cancel" value="abbrechen" /&gt;';</code></li>
<li><code> document.getElementById('btn_save').onclick = function()</code> <code>{</code></li>
<li><code> RED_Adrbook.insert(document.getElementById('RED_Book'));</code></li>
<li><code> };</code></li>
<li><code> document.getElementById('btn_cancel').onclick = function()</code> <code>{</code></li>
<li><code> RED_Adrbook.loadSlides();</code></li>
<li><code> };</code></li>
<li><code> document.getElementsByTagName('input')[1].focus();</code></li>
<li><code> },</code></li>
</ol>
<p>In der <code>add()</code>-Methode werden die Inhalte der <code>&lt;span&gt;</code>-Tags gelöscht und durch leere Eingabefelder erstetzt. Zusätzlich wird ein Speichern- und Cancel-Button eingefügt und ihnen natürlich auch noch die richtige Funktionalität zugewiesen. Zum Schluss bekommt das erste Eingabefeld den Focus, so dass der Anwender direkt losschreiben kann.</p>
<ol class="Sourcecode">
<li><code> insert : function(form)</code></li>
<li><code> {</code></li>
<li><code> var inputs = form.getElementsByTagName('input');</code></li>
<li><code> var body = 'f0='+escape(inputs[0].value)+'&amp;'+</code> <code>'f1='+escape(inputs[1].value)+'&amp;'+</code> <code>'f2='+escape(inputs[2].value)+'&amp;'+</code> <code>'f3='+escape(inputs[3].value)+'&amp;'+</code> &#8216;<code>f4='+escape(inputs[4].value);</code></li>
<li><code> RED_Ajax.callback = function()</code></li>
<li><code> {</code></li>
<li><code> RED_Adrbook.loadXML();</code></li>
<li><code> };</code></li>
<li><code> RED_Ajax.header('Content-Type', 'application/x-www-form-urlencoded');</code></li>
<li><code> RED_Ajax.run('eingabe.php','POST',false,body);</code></li>
<li><code> },</code></li>
</ol>
<p>Um die neu eingefügten, bzw. später geänderten Daten auch an der Server und damit in die Datenbank zu schreiben, wird beim Klick auf den Speichern-Button die <code>insert()</code>-Methode aufgerufen. Sie lädt alle Eingabefelder und fügt sie zu einem langen String mit <abbr title="Uniform Resource Location">URL</abbr>-konformer Schreibweise zusammen. Dann wird eine neue <code>callback()</code>-Methode des RED_Ajax-Objektes definiert, der Header zum Übertragen von Formular-Daten geändert und die Date an das Verarbeitungsscript gesendet. Nach dem Senden wird wiederum die <code>loadXML()</code>-Methode aufgerufen, um die neuen Daten vom Server abzufragen und anzugeigen.</p>
<ol class="Sourcecode">
<li><code> edit : function()</code> <code>{},</code></li>
<li><code> update : function(form) </code><code>{</code><code>},</code></li>
<li><code> remove : function() {</code><code>}</code></li>
<li><code>}</code></li>
</ol>
<p>Bleiben zum Schluss noch 3 weiter Methoden übrig. Als kleine Herausforderung habe ich mir überlegt diese von euch selber erstellen zu lassen. Das ist auch gar nicht so schwer.</p>
<p>Z.B. ähnelt die <code>edit()</code>-Methode ja der <code>add()</code>-Methode, nur dass hier jetzt noch die Daten des aktuellen Mitgliedes eingefügt werden müssen. Auch die <code>update()</code>-Methode ist nur eine abgewandelte Version der <code>insert()</code>-Methode und bei der <code>remove()</code>-Methode brauch ja nur die aktuelle ID an den Server übermittelt werden, um den richtigen Datansatz zu löschen. Ich glaube fest daran, dass das jeder Lesen schaffen kann.</p>
<p>Hier nochmals die gesamte JavaScript-Datei zum Download.</p>
<ul>
<li><a title="Adressbuch-Datei" href="http://weblabor.re-design.de/AJAX-Adressbuch.zip">Adressbuch-Datei</a></li>
</ul>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2007/12/23/ajax-abressbuch-tutorial-teil-3/" title="AJAX Abressbuch &#8211; Tutorial Teil 3">AJAX Abressbuch &#8211; Tutorial Teil 3</a></li><li><a href="http://www.re-design.de/2007/12/21/ajax-adressbuch-tutorial-teil-1/" title="AJAX Adressbuch &#8211; Tutorial Teil 1">AJAX Adressbuch &#8211; Tutorial Teil 1</a></li><li><a href="http://www.re-design.de/2007/12/19/slideshow-mit-einer-html-seite-teil-2/" title="Slideshow mit einer HTML-Seite Teil 2">Slideshow mit einer HTML-Seite Teil 2</a></li><li><a href="http://www.re-design.de/2007/12/18/slideshow-mit-einer-html-seite-teil-1/" title="Slideshow mit einer HTML-Seite Teil 1">Slideshow mit einer HTML-Seite Teil 1</a></li><li><a href="http://www.re-design.de/2007/12/24/ajax-adressbuch-tutorial-teil-4/" title="AJAX Adressbuch &#8211; Tutorial Teil 4">AJAX Adressbuch &#8211; Tutorial Teil 4</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2007/12/22/ajax-adressbuch-tutorial-teil-2/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>AJAX Adressbuch &#8211; Tutorial Teil 1</title>
		<link>http://www.re-design.de/2007/12/21/ajax-adressbuch-tutorial-teil-1/</link>
		<comments>http://www.re-design.de/2007/12/21/ajax-adressbuch-tutorial-teil-1/#comments</comments>
		<pubDate>Fri, 21 Dec 2007 00:00:56 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Adventskalender 2007]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[Webanwendung]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=89</guid>
		<description><![CDATA[Nun möchte ich euch wieder einmal ein Tutorial schenken in dem ich zeigt wie man eine kleine Mini-Webanwendung erstellt. Da ich euch letztens schon mal eine kleine Slideshow mit HTML, CSS (Teil 1) und JavaScript (Teil 2) gezeigt habe, glaube ich dass dieses hier auch sehr interessant sein dürfte. In diesem Tutorial möcht ich euch [...]]]></description>
			<content:encoded><![CDATA[<p>Nun möchte ich euch wieder einmal ein Tutorial schenken in dem ich zeigt wie man eine kleine Mini-Webanwendung erstellt. Da ich euch letztens schon mal eine kleine Slideshow mit <abbr title="Hypertext MArkup Language">HTML</abbr>, <abbr title="Cascading Style Sheet">CSS</abbr> (<a title="Slideshow mit einer HTML-Seite Teil 1" href="http://www.re-design.de/2007/12/18/slideshow-mit-einer-html-seite-teil-1/">Teil 1</a>) und JavaScript (<a title="Slideshow mit einer HTML-Seite Teil 2" href="http://www.re-design.de/2007/12/19/slideshow-mit-einer-html-seite-teil-2/">Teil 2</a>) gezeigt habe, glaube ich dass dieses hier auch sehr interessant sein dürfte.</p>
<p>In diesem Tutorial möcht ich euch die Entwicklung, bzw. die wichtigsten Schritt zum Erstellen eines Web-Adressbuches zeigen. Dabei habe ich alles in 3 Teile aufgeteilt. Dass heißt heute zeige ich euch das Interface der Webanwendung, also die HTML-Datei und das dazugehörige Design. Morgen gibt es dann die clientseitige und übermorgen die serverseitige Programmierung.</p>
<p><span id="more-89"></span></p>
<ol class="Sourcecode">
<li><code>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;</code></li>
<li><code>&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;</code></li>
<li><code>&lt;head&gt;</code></li>
<li><code>&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;</code></li>
<li><code>&lt;title&gt;RE-Design - AJAX - Adressbuch&lt;/title&gt;</code> <code><br />
</code></li>
<li><code>&lt;link rel="stylesheet" href="adressbook.css" type="text/css" media="screen" /&gt;</code></li>
<li><code>&lt;/head&gt;</code></li>
<li><code>&lt;body&gt;</code></li>
<li><code> &lt;div class="RED_Adrbook"&gt;</code></li>
<li><code> &lt;h1&gt;Adressbuch Demo&lt;/h1&gt;</code></li>
<li><code> &lt;noscript&gt;</code></li>
<li><code> &lt;p&gt;Ohne JavaScript ist hier nix los.&lt;/p&gt;</code></li>
<li><code> &lt;/noscript&gt;</code></li>
<li><code> &lt;form id="RED_Book"&gt;</code></li>
<li><code> &lt;table&gt;</code></li>
<li><code> &lt;tr&gt;</code></li>
<li><code> &lt;th&gt;ID:&lt;/th&gt;</code></li>
<li><code> &lt;td&gt;&lt;span&gt;&lt;/span&gt;&lt;/td&gt;</code></li>
<li><code> &lt;/tr&gt;</code></li>
<li><code> &lt;tr&gt;</code></li>
<li><code> &lt;th&gt;Name:&lt;/th&gt;</code></li>
<li><code> &lt;td&gt;&lt;span&gt;&lt;/span&gt;&lt;/td&gt;</code></li>
<li><code> &lt;/tr&gt;</code></li>
<li><code> &lt;tr&gt;</code></li>
<li><code> &lt;th&gt;Vorname:&lt;/th&gt;</code></li>
<li><code> &lt;td&gt;&lt;span&gt;&lt;/span&gt;&lt;/td&gt;</code></li>
<li><code> &lt;/tr&gt;</code></li>
<li><code> &lt;tr&gt;</code></li>
<li><code> &lt;th&gt;Email:&lt;/th&gt;</code></li>
<li><code> &lt;td&gt;&lt;span&gt;&lt;/span&gt;&lt;/td&gt;</code></li>
<li><code> &lt;/tr&gt;</code></li>
<li><code> &lt;tr&gt;</code></li>
<li><code> &lt;th&gt;Telefon:&lt;/th&gt;</code></li>
<li><code> &lt;td&gt;&lt;span&gt;&lt;/span&gt;&lt;/td&gt;</code></li>
<li><code> &lt;/tr&gt;</code></li>
<li><code> &lt;/table&gt;</code></li>
<li><code> &lt;ul class="RED_Buttons"&gt;</code></li>
<li><code> &lt;li&gt;&lt;a id="btn_prev"&gt;previous&lt;/a&gt;&lt;/li&gt;</code></li>
<li><code> &lt;li&gt;&lt;a id="btn_next"&gt;next&lt;/a&gt;&lt;/li&gt;</code></li>
<li><code> &lt;li&gt;&lt;a id="btn_edit"&gt;edit&lt;/a&gt;&lt;/li&gt;</code></li>
<li><code> </code><code>&lt;li&gt;&lt;a id="btn_add"&gt;add&lt;/a&gt;&lt;/li&gt;</code></li>
<li><code> &lt;li&gt;&lt;a id="btn_remove"&gt;delete&lt;/a&gt;&lt;/li&gt;</code></li>
<li><code> &lt;/ul&gt;</code></li>
<li><code> &lt;/form&gt;</code></li>
<li><code> &lt;/div&gt;</code></li>
<li><code>&lt;/body&gt;</code></li>
<li><code>&lt;/html&gt;</code></li>
</ol>
<p>Wie ihr seht ist in diesem Quellcode keine besonderen Tricks enthalten. An Anfang lade ich noch das externe Design. Die gesamte Anwendung ist dann in eine <code>&lt;div&gt;</code>-Container gebettet und die einzelnen Ein- und Ausgabefelder sind in eine Tabelle integriert. Dort wo später die Ein- und Ausgabe erfolgen soll habe ich <code>&lt;span&gt;</code>-Tags gesetzt um später einfacher per JavaScript darauf zu zugreifen.</p>
<p>Die Button zur Steuerung dieser Anwendung habe ich dann unterhalb der Tabelle un eine Liste leget. Es sind einfache Links, die aber kein Ziel haben. Klar sie sollen ja auch nicht irgendwohin anderes gehen!</p>
<ol class="Sourcecode">
<li><code>@charset "utf-8";</code></li>
<li><code>/* CSS Document */</code></li>
<li><code>body</code></li>
<li><code>{</code></li>
<li><code> margin:0 auto;</code></li>
<li><code> padding:0;</code></li>
<li><code> text-align:center;</code></li>
<li><code> width:28em;</code></li>
<li><code>}</code></li>
<li><code>th, td</code></li>
<li><code>{</code></li>
<li><code> vertical-align:top;</code></li>
<li><code>}</code></li>
</ol>
<p>Als erstes lege ich in der CSS-Datei fest wie die gesamte Seite auszusehen hat. Dabei beschränke ich mich hier erstmal nur auf die Zentrierung des Inhaltes und die Definierung der Gesamtbreite. Weiterhin werden alle Zellen der Tabelle vertikal oben ausgerichtet.</p>
<ol class="Sourcecode">
<li><code>.RED_Adrbook</code></li>
<li><code>{</code></li>
<li><code> margin: 1em 0 0;</code></li>
<li><code> padding:1em;</code></li>
<li><code> background-color:#fc3;</code></li>
<li><code> border:thin solid #960;</code></li>
<li><code> text-align:left;</code></li>
<li><code> font-family: Verdana, Arial, Helvetica, sans-serif;</code></li>
<li><code>}</code></li>
<li><code>.RED_Book table {</code></li>
<li><code> width:28em;</code></li>
<li><code> border-collapse:collapse;</code></li>
<li><code>}</code></li>
<li><code>.RED_Book th</code></li>
<li><code>{</code></li>
<li><code> text-align:left;</code></li>
<li><code> width: 6em;</code></li>
<li><code>}</code></li>
<li><code>.RED_Book h1</code></li>
<li><code>{</code></li>
<li><code> font-size:1.0em;</code></li>
<li><code> text-decoration:underline;</code></li>
<li><code>}</code></li>
</ol>
<p>Als nächstes definiere ich das Aussehen des eigentlichen Adressbuches. Hier wird die allgemeine Schriftart, Hintergrundfarbe etc. angegeben. Zusätzlich mache ich Angaben über die Breite der Tabellen und ihre Tabellenköpfe. Als letztes lege ich noch das Aussehen der Überschrift meiner Anwendung fest.</p>
<ol class="Sourcecode">
<li><code>.RED_Buttons</code></li>
<li><code>{</code></li>
<li><code> margin:1em 0 0;</code></li>
<li><code> padding:0;</code></li>
<li><code>}</code></li>
<li><code>.RED_Buttons li</code></li>
<li><code>{</code></li>
<li><code> margin:0;</code></li>
<li><code> padding:0;</code></li>
<li><code> list-style-type:none;</code></li>
<li><code> display:inline;</code></li>
<li><code>}</code></li>
</ol>
<p>Nun zur Button-Liste, auch hier verwende ich nur rudimentäre Formatierung. Alle Buttons sollen nebeneinander und nicht untereinander stehen. Am einfachsten geht das mit dem <code>inline</code>-Wert der <code>display</code>-Eigenschaft.</p>
<ol class="Sourcecode">
<li><code>#btn_prev,</code></li>
<li><code>#btn_next,</code></li>
<li><code>#btn_edit,</code></li>
<li><code>#btn_add,</code></li>
<li><code>#btn_remove,</code></li>
<li><code>#btn_save,</code></li>
<li><code>#btn_cancel</code></li>
<li><code>{</code></li>
<li><code> cursor:pointer;</code></li>
<li><code> padding:.2em;</code></li>
<li><code> background-color:#c63;</code></li>
<li><code> color:#fff;</code></li>
<li><code> text-decoration:none;</code></li>
<li><code> border:thin outset;<br />
</code></li>
<li><code> font-weight:normal;</code></li>
<li><code>}</code></li>
<li><code>#btn_prev:hover,</code></li>
<li><code>#btn_next:hover,</code></li>
<li><code>#btn_edit:hover,</code></li>
<li><code>#btn_add:hover,</code></li>
<li><code>#btn_remove:hover,</code></li>
<li><code>#btn_save:hover,</code></li>
<li><code>#btn_cancel:hover</code></li>
<li><code>{</code></li>
<li><code> background-color:#804000;</code></li>
<li><code>}</code></li>
<li><code>#btn_prev:active,</code></li>
<li><code>#btn_next:active,</code></li>
<li><code>#btn_edit:active,</code></li>
<li><code>#btn_add:active,</code></li>
<li><code>#btn_remove:active,</code></li>
<li><code>#btn_save:active,</code></li>
<li><code>#btn_cancel:active</code></li>
<li><code>{</code></li>
<li><code> border:thin inset;</code></li>
<li><code>}</code></li>
</ol>
<p>Zum Schluss nach das Aussehen der eigentlichen Buttons. Da es ja offiziell Links sind, wird ihre Darstellung komplett geändert. Zusätzlich bekommen sie noch eine <code>hover</code>- und einen <code>active</code>-Effekt, um das Feeling einer Interaktion weiter zu unterstützen.</p>
<ol class="Sourcecode">
<li><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;</code></li>
<li><code>&lt;mitarbeiter&gt;</code></li>
<li><code> &lt;person id="1"&gt;</code></li>
<li><code> &lt;nachname&gt;Reinsdorf&lt;/nachname&gt;</code></li>
<li><code> &lt;vorname&gt;Enrico&lt;/vorname&gt;</code></li>
<li><code> &lt;email&gt;enrico@re-design.de&lt;/email&gt;</code></li>
<li><code> &lt;telefon&gt;0177 - 2822557&lt;/telefon&gt;</code></li>
<li><code> &lt;/person&gt;</code></li>
<li><code> &lt;person id="2"&gt;</code></li>
<li><code> &lt;nachname&gt;Doe&lt;/nachname&gt;</code></li>
<li><code> &lt;vorname&gt;John&lt;/vorname&gt;</code></li>
<li><code> &lt;email&gt;john@doe.com&lt;/email&gt;</code></li>
<li><code> &lt;telefon&gt;0123 - 1234567&lt;/telefon&gt;</code></li>
<li><code> &lt;/person&gt;</code></li>
<li><code> &lt;person id="3"&gt;</code></li>
<li><code> &lt;nachname&gt;Doe&lt;/nachname&gt;</code></li>
<li><code> &lt;vorname&gt;Jane&lt;/vorname&gt;</code></li>
<li><code> &lt;email&gt;jane@doe.de&lt;/email&gt;</code></li>
<li><code> &lt;telefon&gt;0123 - 1234567&lt;/telefon&gt;</code></li>
<li><code> &lt;/person&gt;</code></li>
<li><code>&lt;/mitarbeiter&gt; </code></li>
</ol>
<p>Als letztes möchte ich euch noch die <abbr title="Extensible Markup Language">XML</abbr>-Datei zeigen, die ich zur ersten Verarbeitung in der Anwendung benutzt habe. Späte wird diese komplett dynamisch von <abbr title="PHP: Hypertext Preprocessor">PHP</abbr> bzw. in ähnlicher Form von JavaScript, erzeugt. Und spielt in der finalen Version keine große Rolle mehr.</p>
<p>Zum Schluss noch die gerade besprochenen Dateien zum Download:</p>
<ul>
<li><a title="direkt zum Download" href="ftp://weblabor.re-design.de/AJAX-Adressbuch.zip">Download</a></li>
</ul>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2007/12/23/ajax-abressbuch-tutorial-teil-3/" title="AJAX Abressbuch &#8211; Tutorial Teil 3">AJAX Abressbuch &#8211; Tutorial Teil 3</a></li><li><a href="http://www.re-design.de/2007/12/22/ajax-adressbuch-tutorial-teil-2/" title="AJAX Adressbuch &#8211; Tutorial Teil 2">AJAX Adressbuch &#8211; Tutorial Teil 2</a></li><li><a href="http://www.re-design.de/2007/12/19/slideshow-mit-einer-html-seite-teil-2/" title="Slideshow mit einer HTML-Seite Teil 2">Slideshow mit einer HTML-Seite Teil 2</a></li><li><a href="http://www.re-design.de/2007/12/18/slideshow-mit-einer-html-seite-teil-1/" title="Slideshow mit einer HTML-Seite Teil 1">Slideshow mit einer HTML-Seite Teil 1</a></li><li><a href="http://www.re-design.de/2008/02/11/css-import-macht-probleme/" title="CSS Import macht Probleme">CSS Import macht Probleme</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2007/12/21/ajax-adressbuch-tutorial-teil-1/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Button wieder neu entdeckt</title>
		<link>http://www.re-design.de/2007/12/20/button-wieder-neu-entdeckt/</link>
		<comments>http://www.re-design.de/2007/12/20/button-wieder-neu-entdeckt/#comments</comments>
		<pubDate>Thu, 20 Dec 2007 00:00:15 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Adventskalender 2007]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[button]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=88</guid>
		<description><![CDATA[Schon seit längerem wusste ich das es den &#60;button&#62;-Tag gibt, aber erst jetzt habe ich seine Vielseitigkeit erkannt und schätzen gelernt. Diesen Tag gibt es schon seit der HTML 4.0 Version. Bis dahin konnten die Designer immer nur über den &#60;input&#62;-Tag mit den type-Attribut Buttons erzeugen. Zulässige Werte um einen Button zu erzeugen sind submit, [...]]]></description>
			<content:encoded><![CDATA[<p>Schon seit längerem wusste ich das es den <code>&lt;button&gt;</code>-Tag gibt, aber erst jetzt habe ich seine Vielseitigkeit erkannt und schätzen gelernt.</p>
<p>Diesen Tag gibt es schon seit der <abbr title="Hypertext Markup Language">HTML</abbr> 4.0 Version. Bis dahin konnten die Designer immer nur über den <code>&lt;input&gt;</code>-Tag mit den <code>type</code>-Attribut Buttons erzeugen. Zulässige Werte um einen Button zu erzeugen sind <code>submit</code>, <code>reset</code> und <code>image</code>, Erst ab der 4er Version von HTML bezeichnet man Buttons auch in ihrer Bezeichnung so was sie auch tatsächlich sind, nämlich Buttons. Und das Schöne daran ist, sie funktionieren zusätzlich auch noch in allen gängigen Browsern.</p>
<p><span id="more-88"></span></p>
<p>Die Syntax um einen Button zu erzeugen ist recht simple. Man setzt einfach um das was ein Button werden soll den <code>&lt;button&gt;</code>-Tag und gibt, wie auch beim <code>&lt;input&gt;</code>-Tag, im <code>type</code>-Attribute einen der drei Werte <code>submit</code>, um das Formular abzuschicken, <code>reset</code>, um das Formular auf den Orginalzustand zurückzusetzen, oder <code>button</code>, um ein freiprogrammierbares Element zu bekommen, ein.</p>
<ol class="Sourcecode">
<li><code>&lt;button type="button" onclick="alert('Oh Wundern es geht!')"&gt;Drück mich&lt;/button&gt;</code></li>
</ol>
<p><button onclick="alert('Oh Wundern es geht!')">Drück mich</button></p>
<p>Das ist schon das ganze Geheimnis zur Verwendung von Buttons. Nun kann man fast beliebig viel in diesen Container hinsetzen. Es gibt nur zwei Ausnahmen die nicht funktioniert. Erstens, da der Button selbst schon eine Art Verweis ist, dürfen in ihm keine Verweis erzeugende Elemente eingesetzt werden. Und zweitens, da der Button meistens für Formulare genutzt wird, darf in ihm keine weiteren Formular-Elemente verwendet werden.</p>
<p>Weiterhin ist zu Beachten, dass ein <code>submit</code>- bzw. <code>reset</code>-Button natürlich nun innerhalb eines Formulares funktioniert und der frei definierbare nur mit aktiviertem JavaScript.</p>
<p>Hier nun ein paar schöne Beispiele für die freie Verwendbarkeit solcher Buttons. Dabei habe ich die <abbr title="Cascading Style Sheet">CSS</abbr>-Formatierung der Einfachheit inline gesetzt.</p>
<ol class="Sourcecode">
<li><code>&lt;button type="button" style="padding:1em"&gt;Klick mich!&lt;/button&gt;</code></li>
</ol>
<p><button style="padding: 1em">Klick mich!</button></p>
<ol class="Sourcecode">
<li><code>&lt;button type="button" style=""&gt;</code></li>
<li><code>&lt;image src="icon.png" width="100" height="100" alt="Abschicken" /&gt;</code></li>
<li><code>&lt;/button&gt;</code></li>
</ol>
<p><button><img src="/Demo/Button/Mail-Button.png" alt="Abschicken" height="100" width="100" /></button></p>
<ol class="Sourcecode">
<li><code>&lt;button type="button" style=""&gt;</code></li>
<li><code>    &lt;style type="text/css"&gt;td:hover{background-color:#99CC00;&lt;/style&gt;</code></li>
<li><code>    &lt;table style="border-collapse:collapse;"&gt;</code></li>
<li><code>    &lt;tr&gt;</code></li>
<li><code>        &lt;th scope="col"&gt;Spalte 1&lt;/th&gt;</code></li>
<li><code>        &lt;th scope="col"&gt;Spalte 2&lt;/th&gt;</code></li>
<li><code>        &lt;th scope="col"&gt;Spalte 3&lt;/th&gt;</code></li>
<li><code>    &lt;/tr&gt;</code></li>
<li><code>    &lt;tr&gt;</code></li>
<li><code>        &lt;td&gt;Inhalt 1&lt;/td&gt;</code></li>
<li><code>        &lt;td&gt;Inhalt 2&lt;/td&gt;</code></li>
<li><code>        &lt;td&gt;Inhalt 3&lt;/td&gt;</code></li>
<li><code>    &lt;/tr&gt;</code></li>
<li><code>    &lt;tr&gt;</code></li>
<li><code>        &lt;td&gt;Inhalt 4&lt;/td&gt;</code></li>
<li><code>        &lt;td&gt;Inhalt 5&lt;/td&gt;</code></li>
<li><code>        &lt;td&gt;Inhalt 6&lt;/td&gt;</code></li>
<li><code>    &lt;/tr&gt;</code></li>
<li><code>    &lt;/table&gt;</code></li>
<li><code>&lt;/button&gt; </code></li>
</ol>
<p><button></p>
<style type="text/css">td:hover{background-color:#99cc00;</style>
<table style="border-collapse: collapse">
<tr>
<th scope="col">Spalte 1</th>
<th scope="col">Spalte 2</th>
<th scope="col">Spalte 3</th>
</tr>
<tr>
<td>Inhalt 1</td>
<td>Inhalt 2</td>
<td>Inhalt 3</td>
</tr>
<tr>
<td>Inhalt 4</td>
<td>Inhalt 5</td>
<td>Inhalt 6</td>
</tr>
</table>
<p></button></p>
<p>Interessant ist, dass die <code>hover</code>-Angabe z.Z. ausschließlich beim <abbr title="Internet Explorer">IE</abbr> funktioniert.</p>
<ol class="Sourcecode">
<li><code>&lt;button type="button" style="width:20em;padding:1em;text-align:left"&gt;</code></li>
<li><code>&lt;h4&gt;Lizenzvertrag&lt;/h4&gt;</code></li>
<li><code>&lt;p&gt;Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis ligula lorem, consequat eget, tristique nec, auctor quis, purus. Vivamus ut sem. Fusce aliquam nunc vitae purus. Aenean viverra malesuada libero. Fusce ac quam. Donec neque. Nunc venenatis enim nec quam. Cras faucibus, justo vel accumsan aliquam, tellus dui fringilla quam, in condimentum augue lorem non tellus. Pellentesque id arcu non sem placerat iaculis. Curabitur posuere, pede vitae lacinia accumsan, enim nibh elementum orci, ut volutpat eros sapien nec sapien. Suspendisse neque arcu, ultrices commodo, pellentesque sit amet, ultricies ut, ipsum. Mauris et eros eget erat dapibus mollis. Mauris laoreet posuere odio. Nam ipsum ligula, ullamcorper eu, fringilla at, lacinia ut, augue. Nullam nunc.&lt;/p&gt;</code></li>
<li><code>&lt;/button&gt;</code></li>
</ol>
<p><button style="padding: 1em; width: 20em; text-align: left"></p>
<h4>Lizenzvertrag</h4>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis ligula lorem, consequat eget, tristique nec, auctor quis, purus. Vivamus ut sem. Fusce aliquam nunc vitae purus. Aenean viverra malesuada libero. Fusce ac quam. Donec neque. Nunc venenatis enim nec quam. Cras faucibus, justo vel accumsan aliquam, tellus dui fringilla quam, in condimentum augue lorem non tellus. Pellentesque id arcu non sem placerat iaculis. Curabitur posuere, pede vitae lacinia accumsan, enim nibh elementum orci, ut volutpat eros sapien nec sapien. Suspendisse neque arcu, ultrices commodo, pellentesque sit amet, ultricies ut, ipsum. Mauris et eros eget erat dapibus mollis. Mauris laoreet posuere odio. Nam ipsum ligula, ullamcorper eu, fringilla at, lacinia ut, augue. Nullam nunc.</p>
<p></button></p>
<p>Leider versteht der IE die Breitenangabe im Style nicht.</p>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2008/02/11/css-import-macht-probleme/" title="CSS Import macht Probleme">CSS Import macht Probleme</a></li><li><a href="http://www.re-design.de/2008/01/28/jahresabonnement-des-spotlight-verlag/" title="Jahresabonnement des Spotlight Verlag">Jahresabonnement des Spotlight Verlag</a></li><li><a href="http://www.re-design.de/2008/01/13/umsetzung-von-print-design/" title="Umsetzung von Print-Design">Umsetzung von Print-Design</a></li><li><a href="http://www.re-design.de/2007/12/21/ajax-adressbuch-tutorial-teil-1/" title="AJAX Adressbuch &#8211; Tutorial Teil 1">AJAX Adressbuch &#8211; Tutorial Teil 1</a></li><li><a href="http://www.re-design.de/2007/12/19/slideshow-mit-einer-html-seite-teil-2/" title="Slideshow mit einer HTML-Seite Teil 2">Slideshow mit einer HTML-Seite Teil 2</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2007/12/20/button-wieder-neu-entdeckt/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Slideshow mit einer HTML-Seite Teil 2</title>
		<link>http://www.re-design.de/2007/12/19/slideshow-mit-einer-html-seite-teil-2/</link>
		<comments>http://www.re-design.de/2007/12/19/slideshow-mit-einer-html-seite-teil-2/#comments</comments>
		<pubDate>Wed, 19 Dec 2007 00:00:45 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Adventskalender 2007]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[literal]]></category>
		<category><![CDATA[s5]]></category>
		<category><![CDATA[slideshow]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=82</guid>
		<description><![CDATA[Nachdem ich gestern im ersten Teil den Aufbau der HTML-Seite und das Design mit CSS beschrieben habe, folgt nun die Programmierung das Ganzen. Es ist gar nicht so schwer wie man Denken könnte. Nur ganze 4 Funktionen brauche ich für meine einfache Slideshow. Die gesamte Funktionalität habe ich in ein eigenes Objekt gekapselt, um eine [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem ich gestern <a href="http://www.re-design.de/workbook/?p=81">im ersten Teil</a> den Aufbau der HTML-Seite und das Design mit <abbr title="Cascading Style Sheet">CSS</abbr> beschrieben habe, folgt nun die Programmierung das Ganzen. Es ist gar nicht so schwer wie man Denken könnte. Nur ganze 4 Funktionen brauche ich für meine einfache Slideshow.</p>
<p><span id="more-82"></span></p>
<p>Die gesamte Funktionalität habe ich in ein eigenes Objekt gekapselt, um eine übersichtlichere, einfach erweiterbare und flexible Programmierung zu haben. Für solchen Kapseln benutze ich fast immer Literale.</p>
<ol class="Sourcecode">
<li><code>var RED_Slideshow = {</code></li>
<li><code>    slides   : [],</code></li>
<li><code>    current  : 0,</code></li>
<li><code>    messages : {</code></li>
<li><code>                   first : 'Sie sind am Anfang.',</code></li>
<li><code>                   last : 'Sie sind am Ende der Präsentation.'</code></li>
<li><code>               },</code></li>
<li><code>    init     : function(element)</code> <code>{</code> <code>}</code> <code>,</code></li>
<li><code>    load     : function() {},</code></li>
<li><code>    goto     : function(d) </code><code>{</code><code>},</code></li>
<li><code>    create   : function() {</code><code>}</code></li>
<li><code>};</code></li>
</ol>
<p>Zusätzlich zu den 4 Funktion gibt es noch 3 Eigenschaften. In der Eigenschaft <code>slides</code> werden die anzuzeigenden Slides zwischengespeichert um sie schnell ein- und auszublenden. Die Eigenschaft <code>current</code> repräsentiert das aktuelle Slide welches gerade angezeigt wird und in der Eigenschaft messages existiert ein Unterobjekt welches Meldungen beinhaltet, die im Verlauf der Benutzung dem Betrachter angezeigt werden können.</p>
<p>Mit der Methode init wird die Anwendung gestartet. Sie sucht dabei im angegebenen Container die Slides.</p>
<ol class="Sourcecode">
<li><code>init : function(element)</code></li>
<li><code>{</code></li>
<li><code>    var div = document.getElementById(element).getElementsByTagName('div');</code></li>
<li><code>    for(var i=0; i&lt;div.length; i++)</code></li>
<li><code>    {</code></li>
<li><code>        if(div[i].className == 'slide')</code></li>
<li><code>        {</code></li>
<li><code>            this.slides.push(div[i]);</code></li>
<li><code>        }</code></li>
<li><code>    }</code></li>
<li></li>
<li><code>    this.load();</code></li>
<li><code>    this.create(); </code></li>
<li></li>
<li><code>    document.getElementById('helper').onclick = function()</code></li>
<li><code>    {</code></li>
<li><code>        slideshow.goto(+1);</code></li>
<li><code>    }</code></li>
<li><code>},</code></li>
</ol>
<p>Als erstes werden die <code>&lt;div&gt;</code>-Tages innerhalb des Containers gesucht, der Klassenname überprüft und dann in die Eigenschaft slides abgelegt. Dann rufe ich die <code>load()</code>-Methode auf, um das aktuelle Slide anzuzeigen. Danach lasse ich über die <code>create()</code>-Methode die dynamische Navigation erzeugen.</p>
<p>Zum Schluss füge ich dem Objekt mit der <abbr title="Identifikation">ID</abbr> helper einen Klick-Event hinzu. Dies soll nur verdeutlichen, wie auch ohne Buttons navigiert werden kann.</p>
<ol class="Sourcecode">
<li><code>load : function()</code></li>
<li><code>{</code></li>
<li><code>    for(var i=0; i&lt;this.slides.length; i++)</code></li>
<li><code>    {</code></li>
<li><code>        this.slides[i].style.display = 'none';</code></li>
<li><code>    }</code></li>
<li><code>    this.slides[this.current].style.display = 'block';</code></li>
<li><code>},</code></li>
</ol>
<p>Die <code>load()</code>-Methode ist super einfach. In ihr durchlaufe ich den Array mit den Slides und füge einen Style hinzu, der alle Slides unsichtbar schaltet. Zum Schluss wird dann das aktuelle Slide explizit auf sichtbar gesetzt.</p>
<p>Damit habe ich eine Methode die bei jedem Aufruf immer das aktuelle Slide anzeigt und alle anderen auf Unsichtbar setzt. So kann diese Methode später auch das Anzeigen von Slides außerhalb der Reihenfolge benutzt werden.</p>
<ol class="Sourcecode">
<li><code>create : function()</code></li>
<li><code>{</code></li>
<li><code>    var form = document.createElement('form');</code></li>
<li><code>    form.setAttribute('id', 'navigation');</code></li>
<li></li>
<li><code>    var btn1 = document.createElement('button');</code></li>
<li><code>    btn1.setAttribute('type', 'button');</code></li>
<li><code>    btn1.setAttribute('id', 'btn_prev');</code></li>
<li><code>    btn1.appendChild(document.createTextNode('zurück'));</code></li>
<li><code>    btn1.onclick = function()</code></li>
<li><code>    {</code></li>
<li><code>        </code><code>RED_Slideshow.goto(-1);</code></li>
<li><code>    }</code></li>
<li></li>
<li><code>    var btn2 = document.createElement('button');</code></li>
<li><code>    btn2.setAttribute('type', 'button');</code></li>
<li><code>    btn2.setAttribute('id', 'btn_next');</code></li>
<li><code>    btn2.appendChild(document.createTextNode('nächster'));</code></li>
<li><code>    btn2.onclick = function()</code></li>
<li><code>    {</code></li>
<li><code>        </code><code>RED_Slideshow.goto(+1);</code></li>
<li><code>    </code><code>}</code></li>
<li></li>
<li><code>    form.appendChild(btn1);</code></li>
<li><code>    form.appendChild(btn2);</code></li>
<li></li>
<li><code>    var body = document.getElementsByTagName('body')[0];</code></li>
<li><code>    var footer = document.getElementById('footer');</code></li>
<li></li>
<li><code>    body.insertBefore(form, footer);</code></li>
<li><code>}</code></li>
</ol>
<p>Nun zu der umfangreichsten Methode, da sie die dynamische Navigation erzeugt. Ich habe mich hier für ein kleines Formular entschieden, welches einfache Buttons beinhaltet. Ich erzeugt also zunächst den &lt;form&gt;-Tag und dann die 2 Buttons. Weiterhin fügt ich diesen Buttons noch Klick-Events hinzu, die wiederum eine Literal-Methode aufrufen.</p>
<p>Hier ist auf jeden Fall zu beachten, dass man nicht mit dem Schlüsselwort <code>this</code> arbeitet. Denn würde ich im Klick-Event <code>this</code> verwenden, dann würde sich das <code>this</code> auf den jeweiligen Button beziehen und nicht auf das Literal. Deshalb gehe ich den Umweg über den direkten Aufruf der Literal-Methode.</p>
<p>Zum Schluss setze ich das Formular vor meinen Fußbereich ein, in dem ich als erstes eine Verweis auf den <code>&lt;body&gt;</code>-Tag  und dann einen Verweis auf den Fußbereich erzeuge.</p>
<ol class="Sourcecode">
<li><code>goto : function(d)</code></li>
<li><code></code><code>{</code></li>
<li><code>    this.current += d;</code></li>
<li><code>    if(this.current == this.slides.length)</code></li>
<li><code>    {</code></li>
<li><code>        //alert(this.messages.last);</code></li>
<li><code>        this.current = 0;</code></li>
<li><code>    }</code></li>
<li><code>    if(this.current &lt; 0)</code></li>
<li><code>    {</code></li>
<li><code>        //alert(this.message.first);</code></li>
<li><code>        this.current = this.slides.length-1;</code></li>
<li><code>    }</code></li>
<li><code>    this.load();</code></li>
<li><code>},</code></li>
</ol>
<p>Die letzte Methode ist für die Navigation bestimmt. Ihr wird entweder der Wert 1 oder -1 übergeben. Dieser Parameter wird zum aktuellen Zähler hinzugefügt.</p>
<p>Als nächstes überprüft die Methode, ob das Ende oder der Anfang der Slideshow erreicht ist und setzt dann eigenständig den Zähler auf den passenden Wert um einen Schleifen-Vorgang zu erzeugen.</p>
<p>Zum Schluss ruft die Methode die <code>load()</code>-Methode auf, um das neue Slide auch anzuzeigen.</p>
<p>Damit ist auch schon das gesamte Slideshow-Literal erklärt. Es fehlt nur die Einbindung dieses Scriptes in die HTML-Datei und der Aufruf der Initialisierung mit der Parameter-Übergabe wo die Slides in der HTML-Datei liegen.</p>
<ol class="Sourcecode">
<li><code>// JavaScript Document</code></li>
<li><code>&lt;script type="text/javacript" src="RED_Slideshow.js"&gt;&lt;/script&gt;</code></li>
<li><code>&lt;script type="text/javascript"&gt;</code></li>
<li><code>//&lt;!{CDATA[</code></li>
<li><code>window.onload = function()</code></li>
<li><code>{</code></li>
<li><code>    RED_Slideshow.init('body');</code></li>
<li><code>};</code></li>
<li><code>//]]&gt;</code></li>
<li><code>&lt;/script&gt;</code></li>
</ol>
<p>Da wir mit der <code>create()</code>-Methode ein neues <abbr title="Document Object Model">DOM</abbr>-Objekt mit der ID navigation erzeugen, habe ich meine CSS-Datei um folgende Formatierung erweitert.</p>
<ol class="Sourcecode">
<li><code>#navigation {</code></li>
<li><code>    position:absolute;</code></li>
<li><code>    bottom:3em;</code></li>
<li><code>    border:1px solid;</code></li>
<li><code>    width:50%;</code></li>
<li><code>    height:2em;</code></li>
<li><code>    margin:auto;</code></li>
<li><code>    text-align:center;</code><code> </code><code></code></li>
<li><code>    z-index:2;</code></li>
<li><code>    left:25%;</code></li>
<li><code>}</code></li>
</ol>
<h4>Downloads</h4>
<ul>
<li><a href="http://www.re-design.de/workbook/wp-content/uploads/2007/12/demo2.html" rel="download">HTML-Datei</a></li>
<li><a href="http://www.re-design.de/workbook/wp-content/uploads/2007/12/red_slideshow.css">CSS-Datei</a></li>
<li><a href="http://www.re-design.de/workbook/wp-content/uploads/2007/12/red_slideshow.js">JavaScript-Datei</a></li>
<li><a href="http://www.re-design.de/workbook/wp-content/uploads/2007/12/slideshow-praesentation.zip">komplettes Set</a></li>
</ul>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2007/12/18/slideshow-mit-einer-html-seite-teil-1/" title="Slideshow mit einer HTML-Seite Teil 1">Slideshow mit einer HTML-Seite Teil 1</a></li><li><a href="http://www.re-design.de/2007/12/22/ajax-adressbuch-tutorial-teil-2/" title="AJAX Adressbuch &#8211; Tutorial Teil 2">AJAX Adressbuch &#8211; Tutorial Teil 2</a></li><li><a href="http://www.re-design.de/2007/12/21/ajax-adressbuch-tutorial-teil-1/" title="AJAX Adressbuch &#8211; Tutorial Teil 1">AJAX Adressbuch &#8211; Tutorial Teil 1</a></li><li><a href="http://www.re-design.de/2010/12/20/html5-buch/" title="HTML5 &ndash; Buch">HTML5 &ndash; Buch</a></li><li><a href="http://www.re-design.de/2008/02/11/css-import-macht-probleme/" title="CSS Import macht Probleme">CSS Import macht Probleme</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2007/12/19/slideshow-mit-einer-html-seite-teil-2/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Slideshow mit einer HTML-Seite Teil 1</title>
		<link>http://www.re-design.de/2007/12/18/slideshow-mit-einer-html-seite-teil-1/</link>
		<comments>http://www.re-design.de/2007/12/18/slideshow-mit-einer-html-seite-teil-1/#comments</comments>
		<pubDate>Tue, 18 Dec 2007 00:00:12 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Adventskalender 2007]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[literal]]></category>
		<category><![CDATA[s5]]></category>
		<category><![CDATA[slideshow]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=81</guid>
		<description><![CDATA[Im nächsten Beispiel möchte ich zeigen wie man mit JavaScript wunderbar das DOM einer HTML-Datei ändern kann. Dazu habe ich mich für den Nachbau von S5 entschieden. Im ersten Teil werde ich den Aufbau der HTML- und CSS-Datei erklären, um dann morgen in die JavaScript-Programmierung einzusteigen. Fangen wir mit dem HTML an. Den Aufbau habe [...]]]></description>
			<content:encoded><![CDATA[<p>Im nächsten Beispiel möchte ich zeigen wie man mit JavaScript wunderbar das <abbr title="Document Object Model">DOM</abbr> einer <abbr title="Hypertext Markup Language">HTML</abbr>-Datei ändern kann. Dazu habe ich mich für den Nachbau von <abbr title="simples, standardbasiertes Slideshowsystem"><a href="http://yatil.de/s5/" title="zur deutsche Übersetzung von S5" target="_blank">S5</a></abbr> entschieden. Im ersten Teil werde ich den Aufbau der HTML- und <abbr title="Cascading Style Sheet">CSS</abbr>-Datei erklären, um dann morgen in die JavaScript-Programmierung einzusteigen.</p>
<p><span id="more-81"></span></p>
<p>Fangen wir mit dem HTML an. Den Aufbau habe ich bewusst nicht sehr komplex gestaltet, um die spätere Programmierung einfach zu halten. Im Grunde besteht die Datei aus 5 Hauptkontainern:</p>
<ol>
<li>header<br />
Hier besteht die Möglichkeit der Präsentation eine Überschrift und eine Tagline zu geben.</li>
<li>body<br />
Dieser Bereich enthält alle Slides die nacheinander angezeigt werden. Zusätzlich wird hier auch ein <code>&lt;noscript&gt;</code>-Tag eingebunden, um den Benutzern darauf hinzuweisen, dass die Präsentation nicht wie vorgesehen funktionieren kann bei deaktiviertem JavaScript.</li>
<li>helper<br />
Der helper-Bereich ist für zusätzliche Informationen vorgesehen und am Anfang noch leer.</li>
<li>navigation<br />
Dieser wird erst durch JavaScript erzeugt und beinhaltet die Navigationselemente.</li>
<li>footer<br />
Im letzen Bereich kann Platz für weitere Angaben, wie z.B. rechtliche Hinweise, genutzt werden.</li>
</ol>
<p>Hier nun de gesamte Quellcode mit gekürzten Texten:</p>
<ol class="Sourcecode">
<li><code>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;</code></li>
<li><code>&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;</code></li>
<li><code>&lt;head&gt;</code></li>
<li><code>&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;</code></li>
<li><code>&lt;title&gt;RE-Design - JavaScript - Slideshow Präsentation&lt;/title&gt;</code></li>
<li><code>&lt;link rel="stylesheet" href="ssp.css" type="text/css" media="screen" /&gt;</code></li>
<li><code>&lt;script type="text/javascript" src="ssp.js"&gt;&lt;/script&gt;</code></li>
<li><code>&lt;script type="text/javascript"&gt;</code></li>
<li><code>/*&lt;!CDATA[*/</code></li>
<li><code>window.onload = function()</code></li>
<li><code>{</code></li>
<li><code>    slideshow.init();</code></li>
<li><code>}</code></li>
<li><code>/*]]&gt;*/</code></li>
<li><code>&lt;/script&gt;</code></li>
<li><code>&lt;/head&gt;</code></li>
<li><code>&lt;body&gt;</code></li>
<li><code>&lt;div id="header"&gt;</code></li>
<li><code>    &lt;h1&gt;Powerpoint Präsentation&lt;/h1&gt;</code></li>
<li><code>    &lt;h2&gt;Eine Slideshow mit JavaScript&lt;/h2&gt;</code></li>
<li><code>&lt;/div&gt;</code></li>
<li><code>&lt;div id="body"&gt;</code></li>
<li><code>    &lt;noscript&gt;</code></li>
<li><code>    &lt;p&gt;Sie brauchen unbedingt JavaScript, um die ganze Funktionalität benutzen zu können.&lt;/p&gt;</code></li>
<li><code>    &lt;/noscript&gt;</code></li>
<li><code>    &lt;div class="slide"&gt;</code></li>
<li><code>    &lt;h3&gt;Slide 1&lt;/h3&gt;</code></li>
<li><code>    &lt;p&gt;Lorem ipsum dolor sit amet, consectetuer adipiscing elit ... Nullam nunc.&lt;/p&gt;</code></li>
<li><code>    &lt;p&gt;Sed et lectus in massa imperdiet tincidunt ... Etiam mi libero, luctus nec, blandit ac, rutrum ac, lectus.&lt;/p&gt;</code></li>
<li><code>    &lt;/div&gt;</code></li>
<li><code>    &lt;div class="slide"&gt;</code></li>
<li><code>    &lt;h3&gt;Slide 2&lt;/h3&gt;</code></li>
<li><code>    &lt;p&gt;Lorem ipsum dolor sit amet, consectetuer adipiscing elit ... Nullam nunc.&lt;/p&gt;</code></li>
<li><code>    &lt;p&gt;Sed et lectus in massa imperdiet tincidunt ... Etiam mi libero, luctus nec, blandit ac, rutrum ac, lectus.&lt;/p&gt;</code></li>
<li><code>    &lt;p&gt;Morbi consequat felis vitae enim ... Mauris aliquam dui eget purus.&lt;/p&gt;</code></li>
<li><code>    &lt;p&gt;Sed ut metus sed wisi commodo viverra ... Curabitur a turpis at ligula lobortis cursus.&lt;/p&gt;</code></li>
<li><code>    &lt;/div&gt;</code></li>
<li><code>    &lt;div class="slide"&gt;</code></li>
<li><code>    &lt;h3&gt;Slide 3&lt;/h3&gt;</code></li>
<li><code>    &lt;p&gt;Lorem ipsum dolor sit amet, consectetuer adipiscing elit ... Nullam nunc.&lt;/p&gt;</code></li>
<li><code>    &lt;p&gt;Sed et lectus in massa imperdiet tincidunt ... Etiam mi libero, luctus nec, blandit ac, rutrum ac, lectus.&lt;/p&gt;</code></li>
<li><code>    &lt;/div&gt;</code></li>
<li><code>&lt;/div&gt;</code></li>
<li><code>&lt;div id="helper"&gt;&lt;/div&gt;</code></li>
<li><code>&lt;div id="footer"&gt;</code></li>
<li><code>    © 2007 - &lt;a href="http://www.re-design.de"&gt;RE-Design&lt;/a&gt;</code></li>
<li><code>&lt;/div&gt;</code></li>
<li><code>&lt;/body&gt;</code></li>
<li><code>&lt;/html&gt;</code></li>
</ol>
<p>Als nächstes erkläre ich die wichtigsten Punkte in der CSS-Datei</p>
<ol class="Sourcecode">
<li><code>@charset "utf-8";</code></li>
<li><code>/* CSS Document */</code></li>
<li></li>
<li><code>body {</code></li>
<li><code>margin:0;</code></li>
<li><code>padding:0;</code></li>
<li><code>font: 16px/130% normal normal Arial, Helvetica, sans-serif;</code></li>
<li><code>background-color:#b3d1e1;</code></li>
<li><code>}</code></li>
</ol>
<p>Als erstes die Body-Formatierung. Hier wird der Abstand zum Rand auf Null gesetzt, um jeden Platz der da ist auch zu nutzen. Zusätzlich habe ich Anpassungen an der Typographie vorgenommen und die Basis-Hintergrundfarbe eingestellt.</p>
<ol class="Sourcecode">
<li><code>#header {</code></li>
<li><code>position:absolute;</code></li>
<li><code>overflow:hidden;</code></li>
<li><code>top:0;</code></li>
<li><code>width:100%;</code></li>
<li><code>height:6em;</code></li>
<li><code>background-color:#069;</code></li>
<li><code>color:#fff;</code></li>
<li><code>padding:0 1em;</code></li>
<li><code>}</code></li>
</ol>
<p>Der Kopfbereich wird absolut links oben platziert. Mit einer relative Höhe wird fester Platz für ihn reserviert. Weiterhin habe ich eine passende Hintergrund- und Schriftfarbe festgelegt. Um absolut positionierte Layer auch über die gesamte Breite fließen zu lassen wird die Breite auf 100% gesetzt.</p>
<ol class="Sourcecode">
<li><code>#body {</code></li>
<li><code>position:absolute;</code></li>
<li><code>overflow:auto;</code></li>
<li><code>top:6em;</code></li>
<li><code>bottom:4em;</code></li>
<li><code>width:100%;</code></li>
<li><code>}</code></li>
</ol>
<p>Auch der mittlere Präsentationsbereich ist absolut positioniert. Um keine Überlappung mit die Kopfbereich zu erhalten, fängt der Layer erst dort an wo der Kopfbereich endet. Gleiche habe ich auch für den Fußbereich eingestellt.</p>
<ol class="Sourcecode">
<li><code>#footer {</code></li>
<li><code>position:absolute;</code></li>
<li><code>overflow:hidden;</code></li>
<li><code>height:3em;</code></li>
<li><code>bottom:0;</code></li>
<li><code>width:100%;</code></li>
<li><code>padding:.5em 1em;</code></li>
<li><code>background-color:#069;</code></li>
<li><code>}</code></li>
</ol>
<p>Ähnlich wie der Kopfbereich wird auch der Fußbereich eine feste Positionierung zugewiesen. Allerdings im unteren Bereich des Browsers. Dabei musste ich darauf achten, dass die Höhe des Fußbereiches sich aus der Layerhöhe plus dem Innenabstand des Layers zusammensetzt.</p>
<ol class="Sourcecode">
<li><code>#helper {</code></li>
<li><code>position:absolute;</code></li>
<li><code>overflow:hidden;</code> <code></code></li>
<li><code>width:50%;</code></li>
<li><code>height:2em;</code></li>
<li><code>bottom:3em;</code></li>
<li><code>left:25%;</code></li>
<li><code>z-index:2;</code></li>
<li><code>}</code></li>
</ol>
<p>Zwar ist in meinem helper-Layer noch nichts drin aber platzieren kann ich ihn auf jeden Fall schon mal. Das besondere daran ist, dass ich ihn über den Fußbereich halb überlappen lassen wollte. Um dieses zu erreichen muss über die z-index-Eigenschaft der Layer vor dem nachfolgenden Fußbereich gelegt werden.</p>
<ol class="Sourcecode">
<li><code>.slide {</code></li>
<li><code>margin:1em;</code></li>
<li><code>}</code></li>
</ol>
<p>Die Formatierung der einzelnen Slides habe ich nicht großartig verändert, um dem Umfang der CSS-Datei möglichst übersichtlich zu halten. Es ist aber jeder Zeit möglich, den einzelnen Slides über IDs ein individuells Design zu geben.</p>
<p>Und morgen <a href="http://www.re-design.de/workbook/?p=82" title="Slideshow mit einer HTML-Seite">im Teil 2</a> beschreibe ich die JavaScript-Programmierung die nötig ist um dem Ganzen Leben einzuhauchen.</p>
<h4>Downloads</h4>
<li><a href="http://www.re-design.de/workbook/wp-content/uploads/2007/12/demo2.html" rel="download">HTML-Datei</a></li>
<li><a href="http://www.re-design.de/workbook/wp-content/uploads/2007/12/red_slideshow.css">CSS-Datei</a></li>
<li><a href="http://www.re-design.de/workbook/wp-content/uploads/2007/12/red_slideshow.js">JavaScript-Datei</a></li>
<li><a href="http://www.re-design.de/workbook/wp-content/uploads/2007/12/slideshow-praesentation.zip">komplettes Set</a></li>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2007/12/19/slideshow-mit-einer-html-seite-teil-2/" title="Slideshow mit einer HTML-Seite Teil 2">Slideshow mit einer HTML-Seite Teil 2</a></li><li><a href="http://www.re-design.de/2007/12/22/ajax-adressbuch-tutorial-teil-2/" title="AJAX Adressbuch &#8211; Tutorial Teil 2">AJAX Adressbuch &#8211; Tutorial Teil 2</a></li><li><a href="http://www.re-design.de/2007/12/21/ajax-adressbuch-tutorial-teil-1/" title="AJAX Adressbuch &#8211; Tutorial Teil 1">AJAX Adressbuch &#8211; Tutorial Teil 1</a></li><li><a href="http://www.re-design.de/2010/12/20/html5-buch/" title="HTML5 &ndash; Buch">HTML5 &ndash; Buch</a></li><li><a href="http://www.re-design.de/2008/02/11/css-import-macht-probleme/" title="CSS Import macht Probleme">CSS Import macht Probleme</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2007/12/18/slideshow-mit-einer-html-seite-teil-1/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Mit JavaScript DOM erzeugen</title>
		<link>http://www.re-design.de/2007/12/17/mit-javascript-xml-erzeugen/</link>
		<comments>http://www.re-design.de/2007/12/17/mit-javascript-xml-erzeugen/#comments</comments>
		<pubDate>Sun, 16 Dec 2007 23:00:25 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Adventskalender 2007]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Container]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[dom-scripting]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=76</guid>
		<description><![CDATA[Hier nun ein weiterer Artikel zum Thema XML-Erzeugung mit Web-Programmiersprachen. Im Gegensatz zu gestern konzentriere ich mich heute auf das Erstellen mit JavaScript. Aber auch das ist nicht sehr schwierig. Anders als bei PHP gibt es in JavaScript keine direkte DOM-Objekte, sondern alles muss über das document-Objekt laufen. Auch hier gibt es nur ein paar [...]]]></description>
			<content:encoded><![CDATA[<p>Hier nun ein weiterer Artikel zum Thema <abbr title="Extensible Markup Language">XML</abbr>-Erzeugung mit Web-Programmiersprachen. Im Gegensatz zu gestern konzentriere ich mich heute auf das Erstellen mit JavaScript. Aber auch das ist nicht sehr schwierig.</p>
<p>Anders als bei <abbr title="PHP: Hypertext Preprocessor">PHP</abbr> gibt es in JavaScript keine direkte <abbr title="Document Object Model">DOM</abbr>-Objekte, sondern alles muss über das document-Objekt laufen. Auch hier gibt es nur ein paar wichtige Methoden die man kennen sollte:</p>
<ul>
<li>document.createElement();</li>
<li>document.createTextNode();</li>
<li>element.appendChild();</li>
<li>element.setAttribute();</li>
</ul>
<p><span id="more-76"></span><br />
Ich habe mir als Beispiel überlegt in einen <code>&lt;div&gt;</code>-Container eine ähnline Mitarbeiter-Liste zu erzeugen wie gestern mit PHP. Hier nun erstmal der Quellcode der <abbr title="Hypertext Markup Language">HTML</abbr>-Datei:</p>
<ol class="Sourcecode">
<li><code>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" ?="?">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</a>&gt; </code></li>
<li><code>&lt;html xmlns="<a href="http://www.w3.org/1999/xhtml" ?="?">http://www.w3.org/1999/xhtml"</a>&gt; </code></li>
<li><code>&lt;head&gt; </code></li>
<li><code>&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt; </code></li>
<li><code>&lt;title&gt;RED - JavaScript - XML-Loader&lt;/title&gt; </code></li>
<li><code>&lt;script language="javascript" type="text/javascript" src="red_xml.js"&gt;&lt;/script&gt; </code></li>
<li><code>&lt;script language="javascript" type="text/javascript"&gt; </code></li>
<li><code>window.onload = function() </code></li>
<li><code>{ </code></li>
<li><code>    RED_DOM.create('container'); </code></li>
<li><code>} </code></li>
<li><code>&lt;/script&gt; </code></li>
<li><code>&lt;/head&gt; </code></li>
<li><code>&lt;body&gt; </code></li>
<li><code>&lt;div id="container"&gt;&lt;/div&gt; </code></li>
<li><code>&lt;/body&gt; </code></li>
<li><code>&lt;/html&gt;</code></li>
</ol>
<p>Wie man deutlich sehen kann, wird nach dem Laden des Dokumente die Methode meiner Objectes aufgerufen und als Parameter die <abbr title="Identifikation">ID</abbr> des Containers übergeben.</p>
<p>In diesen Container wird nun die Mitarbeiterliste erzeugt.</p>
<ol class="Sourcecode">
<li><code>var RED_DOM =</code></li>
<li><code>{</code></li>
<li><code>create : function(node)</code></li>
<li><code>{</code></li>
<li><code>    var dom = document.getElementById(node);</code></li>
</ol>
<p>Als erstes erzeuge ich einen Verweis auf das Element.</p>
<ol class="Sourcecode" start="start">
<li><code>    var mitarbeiter = dom.appendChild(document.createElement('ul'));</code></li>
</ol>
<p>Dann füge ich eine ungeordnete Liste hinzu.</p>
<ol class="Sourcecode" start="start">
<li><code>    var person = mitarbeiter.appendChild(document.createElement('li'));</code></li>
<li><code>    person.setAttribute('id','2007-12-15-RE');</code></li>
</ol>
<p>Danach wird ein neuer Listeneintrag generiert und mit einer ID versehen.</p>
<ol class="Sourcecode" start="start">
<li><code>    var vorname = person.appendChild(document.createElement('span'));</code></li>
<li><code>    vorname.appendChild(document.createTextNode('Enrico')); </code></li>
<li><code>    var nachname = person.appendChild(document.createElement('span'));</code></li>
<li><code>    nachname.appendChild(document.createTextNode('Reinsdorf'));</code></li>
</ol>
<p>Der Vor- und Nachname wird, um ihn zu kapseln in einen <code>&lt;span&gt;</code>-Tag gelegt.</p>
<ol class="Sourcecode" start="start">
<li><code>    var contacts = person.appendChild(document.createElement('ul'));</code></li>
<li><code>    var email = contacts.appendChild(document.createElement('li'));</code></li>
<li><code>    email = email.appendChild(document.createElement('a'));</code></li>
<li><code>    email.setAttribute('href', 'mailto:enrico@re-design.de');</code></li>
<li><code>    email.appendChild(document.createTextNode('enrico@re-design.de'));</code></li>
</ol>
<p>Um alle Kontakt auflisten zu können, erzeuge ich eine weitere Unterliste. In die die Email als Verweis abgelegt wird.</p>
<ol class="Sourcecode" start="start">
<li><code>    var telefon = contacts.appendChild(document.createElement('li'));</code></li>
<li><code>    telefon.setAttribute('class', 'mobil');</code></li>
<li><code>    var vorwahl = telefon.appendChild(document.createElement('span'));</code></li>
<li><code>    vorwahl.appendChild(document.createTextNode('0177'));</code></li>
<li><code>    var nummer = telefon.appendChild(document.createElement('span'));<br />
</code></li>
<li><code>    nummer.appendChild(document.createTextNode('2822557'));</code></li>
<li><code>}<br />
</code></li>
<li><code>}</code> ;</li>
</ol>
<p>Zum Schluss füge ich noch die Listeneintrag für die Telefonnummer hinzu, welcher sich wiederum in 2 <code>&lt;span&gt;</code>-Tags aufsplittet.</p>
<p>Wie man erkennen kan ist der Ablauf dem von PHP sehr ähnlich. Was das spätere Arbeiten mit <abbr title="Asyncron JavaScript And XML">AJAX</abbr> sehr erleichtert. Auch verhält sich ActionScript fast gleich, da es ähnlich strukturiert ist wie JavaScript.</p>
<ul>
<li><a href="http://www.re-design.de/workbook/wp-content/uploads/2007/12/demo1.html" title="HTML-Datei">HTML-Datei</a></li>
<li><a href="http://www.re-design.de/workbook/wp-content/uploads/2007/12/red_xml.js" title="JavaScript-Datei">JavaScript-Datei</a></li>
<li><a href="http://www.re-design.de/workbook/wp-content/uploads/2007/12/js-xml-creater.zip" title="komplettes Set">komplettes Set</a></li>
</ul>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2007/12/16/schnelle-erstellung-mit-mit-php/" title="schnelle Erstellung von XML mit PHP">schnelle Erstellung von XML mit PHP</a></li><li><a href="http://www.re-design.de/2007/12/23/ajax-abressbuch-tutorial-teil-3/" title="AJAX Abressbuch &#8211; Tutorial Teil 3">AJAX Abressbuch &#8211; Tutorial Teil 3</a></li><li><a href="http://www.re-design.de/2007/12/22/ajax-adressbuch-tutorial-teil-2/" title="AJAX Adressbuch &#8211; Tutorial Teil 2">AJAX Adressbuch &#8211; Tutorial Teil 2</a></li><li><a href="http://www.re-design.de/2007/12/19/slideshow-mit-einer-html-seite-teil-2/" title="Slideshow mit einer HTML-Seite Teil 2">Slideshow mit einer HTML-Seite Teil 2</a></li><li><a href="http://www.re-design.de/2007/12/18/slideshow-mit-einer-html-seite-teil-1/" title="Slideshow mit einer HTML-Seite Teil 1">Slideshow mit einer HTML-Seite Teil 1</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2007/12/17/mit-javascript-xml-erzeugen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>schnelle Erstellung von XML mit PHP</title>
		<link>http://www.re-design.de/2007/12/16/schnelle-erstellung-mit-mit-php/</link>
		<comments>http://www.re-design.de/2007/12/16/schnelle-erstellung-mit-mit-php/#comments</comments>
		<pubDate>Sat, 15 Dec 2007 23:00:18 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Adventskalender 2007]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[dom-scripting]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=73</guid>
		<description><![CDATA[Das Verarbeiten von XML-Daten ist zwar prinzipiell sehr einfach, wenn man die Verarbeitung komplett mit dem DOM macht, aber trotzdem möchte ich hier und jetzt das Thema aufgreifen. In den späteren Artikeln meines Adventskalenders werde ich immer mal wieder serverseitiges Erzeugen und Verarbeiten von XML-Daten brauchen, weswegen hier die Basis gelegt werden soll. Im Prinzip [...]]]></description>
			<content:encoded><![CDATA[<p>Das Verarbeiten von <abbr title="Extensible Markup Language">XML</abbr>-Daten ist zwar prinzipiell sehr einfach, wenn man die Verarbeitung komplett mit dem <abbr title="Document Object Model">DOM</abbr> macht, aber trotzdem möchte ich hier und jetzt das Thema aufgreifen. In den späteren Artikeln meines Adventskalenders werde ich immer mal wieder serverseitiges Erzeugen und Verarbeiten von XML-Daten brauchen, weswegen hier die Basis gelegt werden soll.</p>
<p><span id="more-73"></span><br />
Im Prinzip gibt es in PHP nur 3 wichtige DOM-Klassen:</p>
<ol>
<li>DOMDocument</li>
<li>DOMElement</li>
<li>DOMNode</li>
</ol>
<p>Wobei</p>
<p>Um eine XML-Struktur von folgender Syntax zu schaffen, reicht ein relativ einfaches Script.</p>
<ol class="Sourcecode">
<li><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;</code></li>
<li><code>&lt;mitarbeiter&gt;</code></li>
<li><code>    &lt;person nr="2007-12-15-RE"&gt;</code></li>
<li><code></code><code>        &lt;nachname&gt;Reinsdorf&lt;/nachname&gt;</code></li>
<li><code></code><code>        &lt;vorname&gt;Enrico&lt;/vorname&gt;</code></li>
<li><code></code><code>        &lt;contacts&gt;</code></li>
<li><code>            &lt;email&gt;enrico@re-design.de&lt;/email&gt;</code></li>
<li><code>            &lt;telefon type="mobil"&gt;</code></li>
<li><code>                &lt;vorwahl&gt;0177&lt;/vorwahl&gt;</code></li>
<li><code>                &lt;nummer&gt;2822557&lt;/nummer&gt;</code></li>
<li><code>            &lt;/telefon&gt;</code></li>
<li><code></code><code>        &lt;/contacts&gt;</code></li>
<li><code>    &lt;/person&gt;</code></li>
<li><code>    &lt;person nr="2007-04-01-MM"&gt;</code></li>
<li><code>        &lt;nachname&gt;Mustermann&lt;/nachname&gt;</code></li>
<li><code>        &lt;vorname&gt;Max&lt;/vorname&gt;</code></li>
<li><code>        &lt;contacts&gt;</code></li>
<li><code>            &lt;email&gt;max@mustermann.de&lt;/email&gt;</code></li>
<li><code>            &lt;telefon type="büro"&gt;</code></li>
<li><code>                &lt;vorwahl&gt;1234&lt;/vorwahl&gt;</code></li>
<li><code>                &lt;nummer&gt;1234567&lt;/nummer&gt;</code></li>
<li><code>            &lt;/telefon&gt;</code></li>
<li><code>        &lt;/contact&gt;</code></li>
<li><code>    &lt;/person&gt;</code></li>
<li><code>&lt;/mitarbeiter&gt; </code></li>
</ol>
<p>Diese XML-Datei beinhaltet 2 Personen mit den dazugehörigen Vor- und Zuname und den Kontaktmöglichkeiten per Email und per Telefon.</p>
<p>Hier nur das <abbr title="PHP: Hypertext Preprocessor">PHP</abbr>-Script zum Erzeugen diese XML-Datenstruktur.</p>
<ol class="Sourcecode">
<li><code>&lt;?php</code></li>
<li><code>header('content-type: text/xml charset=utf-8');</code></li>
<li><code>/* @var $dom DOMDocument */</code></li>
<li><code>/* @var $mitarbeiter DOMElement */</code></li>
<li><code>/* @var $person DOMElement */</code></li>
<li><code>/* @var $contacts DOMElement */</code></li>
<li><code>/* @var $telefon DOMElement */</code></li>
</ol>
<p>Als erstes wird über die <code>header</code>-Funktion der richtige Inhaltstyp festgelegt, so dass die Browser auch die Sonderzeichen korrekt anzeigen können. Die weiteren Kommentare dienen nur meinem Zend-Studio zur Hilfe.</p>
<ol class="Sourcecode" start="start">
<li><code>$dom = new DOMDocument('1.0', 'utf-8');</code></li>
</ol>
<p>Als nächste wird ein neues DOM-Dokument angelegt.</p>
<ol class="Sourcecode" start="start">
<li><code>$mitarbeiter = $dom-&gt;appendChild(new DOMElement('mitarbeiter'));</code></li>
</ol>
<p>In dieses DOM-Objekt wird ein erster Knoten hineingelegt.</p>
<ol class="Sourcecode" start="start">
<li><code>$person = $mitarbeiter-&gt;appendChild(new DOMElement('person'));</code></li>
<li><code>$person-&gt;setAttribute('id','2007-12-16-RE');</code></li>
<li><code>$person-&gt;appendChild(new DOMElement('vorname','Enrico'));</code></li>
<li><code>$person-&gt;appendChild(new DOMElement('nachname','Reinsdorf'));</code></li>
</ol>
<p>Dann wird dem <code>&lt;mitarbeiter&gt;</code>-Knoten ein Unterknoten <code>person</code> hinzugefügt. Diesem Knoten wird ein Attribute und 2 Unterknoten mit direkten Texten zugewiesen.</p>
<ol class="Sourcecode" start="start">
<li><code>$contacts = $person-&gt;appendChild(new DOMElement('contacts'));</code></li>
<li><code>$contacts-&gt;appendChild(new DOMElement('email','enrico@re-design.de'));</code></li>
<li></li>
<li><code>$telefon = $contacts-&gt;appendChild(new DOMElement('telefon'));</code></li>
<li><code>$telefon-&gt;setAttribute('type','mobil');</code></li>
<li><code>$telefon-&gt;appendChild(new DOMElement('vorwahl','0177'));</code></li>
<li><code>$telefon-&gt;appendChild(new DOMElement('nummer','2822557'));</code></li>
</ol>
<p>Zum Schluss wird der <code>&lt;person&gt;</code>-Knoten mit dem Unterknoten contacts erweitert. Dieser erhält wiederum einem einfachen Unterknoten email und einem komplexen Unterknoten für die Telefonnummer.</p>
<ol class="Sourcecode" start="start">
<li><code>$person = $mitarbeiter-&gt;appendChild(new DOMElement('person'));</code></li>
<li><code>$person-&gt;setAttribute('id','2007-04-01-MM');</code></li>
<li></li>
<li><code>$person-&gt;appendChild(new DOMElement('vorname','Max'));</code></li>
<li><code>$person-&gt;appendChild(new DOMElement('nachname','Mustermann'));</code></li>
<li></li>
<li><code>$contacts = $person-&gt;appendChild(new </code><code>DOMElement('contacts'));</code></li>
<li><code>$contacts-&gt;appendChild(new DOMElement('email','max@mustermann.de'));</code></li>
<li></li>
<li><code>$telefon = $contacts-&gt;appendChild(new DOMElement('telefon'));</code></li>
<li><code>$telefon-&gt;setAttribute('type','büro');</code></li>
<li><code>$telefon-&gt;appendChild(new DOMElement('vorwahl','1234'));</code></li>
<li><code>$telefon-&gt;appendChild(new DOMElement('nummer','1234567'));</code></li>
</ol>
<p>Das ganz nun nochmals für die 2. Person. In späteren Script wird natürlich diese Zusammenstellung über eine Schleife erstellt und nicht, wie ich es jetzt gemacht habe von Hand.</p>
<ol class="Sourcecode" start="start">
<li><code>echo $dom-&gt;saveXML();</code></li>
<li><code>?&gt;</code></li>
</ol>
<p>Als Abschluss gebe ich das DOM-Object als XML-Datenformat an den Browser aus.</p>
<ul>
<li><a href="http://www.re-design.de/workbook/wp-content/uploads/2007/12/create_dom.php" title="PHP-XML-Datei">PHP-Datei</a></li>
<li><a href="http://www.re-design.de/workbook/wp-content/uploads/2007/12/mitarbeiter.xml" title="XML-Datei">XML-Datei</a></li>
<li><a href="http://www.re-design.de/workbook/wp-content/uploads/2007/12/xml-wrapper.zip" title="komplettes Set">komplettes Set</a></li>
</ul>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2007/12/17/mit-javascript-xml-erzeugen/" title="Mit JavaScript DOM erzeugen">Mit JavaScript DOM erzeugen</a></li><li><a href="http://www.re-design.de/2009/03/04/einzelcoaching-php-xml-schulung/" title="Einzelcoaching &ndash; PHP-XML Schulung">Einzelcoaching &ndash; PHP-XML Schulung</a></li><li><a href="http://www.re-design.de/2007/12/24/ajax-adressbuch-tutorial-teil-4/" title="AJAX Adressbuch &#8211; Tutorial Teil 4">AJAX Adressbuch &#8211; Tutorial Teil 4</a></li><li><a href="http://www.re-design.de/2007/12/14/template-engine-mit-php/" title="Template-Engine mit <span class="caps">PHP</span>">Template-Engine mit <span class="caps">PHP</span></a></li><li><a href="http://www.re-design.de/2007/12/13/flashvideo-player-einfach-eingesetzt/" title="Flashvideo-Player einfach eingesetzt">Flashvideo-Player einfach eingesetzt</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2007/12/16/schnelle-erstellung-mit-mit-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AJAX-Klasse, einfach gebaut</title>
		<link>http://www.re-design.de/2007/12/15/ajax-klasse-einfach-gebaut/</link>
		<comments>http://www.re-design.de/2007/12/15/ajax-klasse-einfach-gebaut/#comments</comments>
		<pubDate>Fri, 14 Dec 2007 23:00:19 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Adventskalender 2007]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[beispiel]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[klasse]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=32</guid>
		<description><![CDATA[Bei der Erstellung von moderen Websites spielt AJAX eine immer wichtigere Rolle. In diesem Tutorial möchte ich euch eine kleine JavaScript-Klasse vorstellen. Diese Klasse kann dann Grundlage für weiter tolle Webanwendungen sein kann. Die einfache und trotzdem flexible Verwendung der erstellten Klasse lag mir dabei besonders am Herzen. Verwendung der AJAX-Klasse Eingebunden und verwendet wird [...]]]></description>
			<content:encoded><![CDATA[<p>Bei der Erstellung von moderen Websites spielt AJAX eine immer wichtigere Rolle. In diesem Tutorial möchte ich euch eine kleine JavaScript-Klasse vorstellen. Diese Klasse kann dann Grundlage für weiter tolle Webanwendungen sein kann.</p>
<p>Die einfache und trotzdem flexible Verwendung der erstellten Klasse lag mir dabei besonders am Herzen.<br />
<span id="more-32"></span></p>
<h3>Verwendung der AJAX-Klasse</h3>
<p>Eingebunden und verwendet wird die Klasse über folgende Befehle:</p>
<ol class="Sourcecode">
<li><code>&lt;script type="text/javascript" src="ajax.js"&gt;&lt;/script&gt; </code></li>
<li><code>&lt;script type="text/javascript"&gt; </code></li>
<li><code>//&lt;![CDATA[ </code></li>
<li><code>function afterLoad(xml) </code></li>
<li><code>{ </code></li>
<li><code>    alert(xml.toString()); </code></li>
<li><code>} </code></li>
<li><code>ajax.callback = function() </code></li>
<li><code>{ </code></li>
<li><code>    afterLoad(this.responseXML); </code></li>
<li><code>} </code></li>
<li><code>  </code></li>
<li><code>ajax.init(); </code></li>
<li><code>ajax.load('getXML.php'); </code></li>
<li><code>  </code></li>
<li><code>//]]&gt; </code></li>
<li><code>&lt;/script&gt;</code></li>
</ol>
<p>Wie ihr seht ist diese Verarbeitung sehr einfach einzusetzen. Als erstes muss natürlich die Klasse in das HTML-Dokument eingebunden werden. Dann legt man fest was passieren soll, wie die Daten verarbeiter werden sollen. Zusätzlich sollte man in der eigentlichen Klasse definieren das diese Funktion auch aufgerufen wird, sonst passiert gar nichts. Dazu habe ich einen sogenannten Hock vordefiniert, der dann einfach mit Funktionalität gefüllt wird. Zum Schluß initialisiert man nur nach die Klasse, um das XMLHttpRequest-Objekt anzulegen und läd dann die entsprechende Datei von Server. Fertig ist ist ein flexibles Ladesystem per JavaScript.</p>
<h3>Detail zur AJAX-Klasse</h3>
<p>Natürlich möchte ich euch auch noch den Inhalt meiner Klasse kurz präsentieren, denn ich denke dadurch wird der Ausbau ud die Erweiterung relativ einfach.</p>
<ol class="Sourcecode">
<li><code>var ajax = { </code></li>
<li><code>    req             : null, </code></li>
<li><code>    url             : null, </code></li>
<li><code>    method          : 'GET', </code></li>
<li><code>    async           : false, </code></li>
<li><code>    responseXML     : null, </code></li>
<li><code>    responseText    : null, </code></li>
<li><code>    init : function() </code></li>
<li><code>        { </code></li>
<li><code>            try </code></li>
<li><code>            { </code></li>
<li><code>                this.req = new XMLHttpRequest(); </code></li>
<li><code>            } </code></li>
<li><code>            catch(e) </code></li>
<li><code>            { </code></li>
<li><code>                try </code></li>
<li><code>                { </code></li>
<li><code>                    this.req = new ActiveXObject('Microsoft.XMLHTTP'); </code></li>
<li><code>                } </code></li>
<li><code>                catch(e) </code></li>
<li><code>                { </code></li>
<li><code>                    this.req = null; </code></li>
<li><code>                } </code></li>
<li><code>            } </code></li>
<li><code>            if(this.req != null) </code></li>
<li><code>            { </code></li>
<li><code>                this.req.onreadystatechange = this.response; </code></li>
<li><code>            } </code></li>
<li><code>        }, </code></li>
<li><code>    load : function(u,m,a) </code></li>
<li><code>        { </code></li>
<li><code>            this.url = u; </code></li>
<li><code>            this.method = m || this.method; </code></li>
<li><code>            this.async = a || this.async; </code></li>
<li><code>            if(this.req != null) </code></li>
<li><code>            { </code></li>
<li><code>                this.req.open(this.method,this.url,this.async); </code></li>
<li><code>                this.req.send(); </code></li>
<li><code>            } </code></li>
<li><code>        }, </code></li>
<li><code>    response : function() </code></li>
<li><code>        { </code></li>
<li><code>            var a = ajax.req; </code></li>
<li><code>            if(a.readyState == 4) </code></li>
<li><code>            { </code></li>
<li><code>                if(a.status==0 || a.status==200 || a.statusText=='OK') </code></li>
<li><code>                { </code></li>
<li><code>                    ajax.responseXML = a.responseXML; </code></li>
<li><code>                    ajax.responseText = a.responseText; </code></li>
<li><code>                    ajax.callback(); </code></li>
<li><code>                } </code></li>
<li><code>            } </code></li>
<li><code>        }, </code></li>
<li><code>    callback : function(){} </code></li>
<li><code>};</code></li>
</ol>
<p>Ich habe mich bei der Erstellung der Klasse für Literal-Objekt entschieden, da ich die Verwendbarkeit dadurch als sehr einfach empfinde und das Instanzieren des Objektes entfällt.</p>
<h4>Eigenschaften der Klasse</h4>
<ul>
<li><strong>req</strong><br />
Hier wird später das XMLHttpRequest-Objekt abgespeichert, welches ja für den Verbindungsaufbau zu Datenquellen nötig ist.</li>
<li><strong>url</strong><br />
Um später die URL auch in einem regelmäßigen Verfahren immer wieder abzurufen, wird sie in dieser Eigenschaft abgespeichert.</li>
<li><strong>method</strong><br />
Auch wird für weitere Verwendung die Übertragungsmethode als Eigenschaft festgehalten. Mögliche sinnvolle Werte sind in diesem Fall HEAD, PUT und GET, wobei letzteres der Defaultwert ist.</li>
<li><strong>async</strong><br />
Um eine synchrone Übertragen der Daten ein zustellen, setzt man diese Eigenschaft auf true.</li>
<li><strong>responseXML</strong> und <strong>responseText</strong><br />
In diesen beiden Eigenschaften wird nach erfolgreicher Übertragung der Daten die Ergebnis gespeichert. Einmal als normale Zeichenkette und einmal als ein XML-Objekt.</li>
</ul>
<h4>Methoden der Klasse</h4>
<ul>
<li><strong>init()</strong><br />
Diese Methode sollte immer vor allen anderen Methodenaufrufen benutzt werden, da sie das XMLHttpREquest instanziert und gleichzeitig wird festgelegt, dass die response()-Methode beim Statuswechsel aufgerufen werden soll.</li>
<li><strong>load(u,m,a)</strong><br />
Durch die 3 übergebenen Parameter wird als erstes die URL der Datenquelle, die Übertragungsmethode und synchrone oder asynchrone Art festgelegen. Dann wird die Datenquelle geladen.</li>
<li><strong>response()</strong><br />
In dieser Methode wird der Status der Übertragung und der Status des Übertragenen überprüft. Im Erfolgsfall werden die übertragenen Daten in die entsprechenen Eigenschaften übertragen und die callback()-Methode aufgerufen.</li>
<li><strong>callback()</strong><br />
Dieser Hock dient zur flexiblen Benutzung der Klassen. Mit dem Überschreiben der leeren Funktion bestimmt man extern was mit dem Daten nach dem Laden geschehen soll.</li>
</ul>
<h4>Download der Dateien</h4>
<ul>
<li><a href="http://www.er-design.de/Downloads/AJAX-Klasse/ajax.js">AJAX-Klasse</a></li>
<li><a href="http://www.er-design.de/Downloads/AJAX-Klasse/ajax.html">HTML-Datei </a></li>
<li><a href="http://www.er-design.de/Downloads/AJAX-Klasse/ajax-klasse.zip">Kompletes Beispiel als ZIP-Datei</a></li>
</ul>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2007/12/12/dynamische-linkliste-bringt-mehr-usability/" title="dynamische Linkliste bringt mehr Usability">dynamische Linkliste bringt mehr Usability</a></li><li><a href="http://www.re-design.de/2007/12/23/ajax-abressbuch-tutorial-teil-3/" title="AJAX Abressbuch &#8211; Tutorial Teil 3">AJAX Abressbuch &#8211; Tutorial Teil 3</a></li><li><a href="http://www.re-design.de/2007/12/22/ajax-adressbuch-tutorial-teil-2/" title="AJAX Adressbuch &#8211; Tutorial Teil 2">AJAX Adressbuch &#8211; Tutorial Teil 2</a></li><li><a href="http://www.re-design.de/2008/12/13/ajax-php-schulung-in-stuttgart/" title="AJAX &ndash; PHP Schulung in Stuttgart">AJAX &ndash; PHP Schulung in Stuttgart</a></li><li><a href="http://www.re-design.de/2008/01/29/ajax-adressbuch/" title="AJAX Adressbuch">AJAX Adressbuch</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2007/12/15/ajax-klasse-einfach-gebaut/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Toolbar-Programmierung bei Joomla</title>
		<link>http://www.re-design.de/2007/12/14/toolbar-programmierung-bei-joomla/</link>
		<comments>http://www.re-design.de/2007/12/14/toolbar-programmierung-bei-joomla/#comments</comments>
		<pubDate>Fri, 14 Dec 2007 09:11:04 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[joomla]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=72</guid>
		<description><![CDATA[Joomla ist schon ne Sache f&#252;r sich. Wieder einmal habe ich nach l&#228;ngere Suche eine Merkw&#252;rdigkeit herausgefunden, die mir so nicht nicht wirklich klar war. Ich schreibe gerade an einer Kalender-Komponente. Diese hat 2 Bereiche zur Verwaltung. Einmal gibt es da die Auflistung der Termine und es soll die Auflistung von Kategorien geben in denen [...]]]></description>
			<content:encoded><![CDATA[<p>Joomla ist schon ne Sache f&#252;r sich. <a title="Joomla - Illegale Variable" href="http://www.re-design.de/workbook/?p=34" rel="relativ">Wieder einmal</a> habe ich nach l&#228;ngere Suche eine Merkw&#252;rdigkeit herausgefunden, die mir so nicht nicht wirklich klar war.</p>
<p>Ich schreibe gerade an einer Kalender-Komponente. Diese hat 2 Bereiche zur Verwaltung. Einmal gibt es da die Auflistung der Termine und es soll die Auflistung von Kategorien geben in denen sich die Termine befinden. Dazu habe ich nun im Admin-Bereich 2 Icons in die Toolbar gelegt und ein eigenes JavaScript geschrieben, denn das Icon f&#252;r die Termine &#252;bergibt 2 Werte:</p>
<ol class="Sourcecode">
<li><code>&lt;a class=&quot;toolbar&quot; href=&quot;javascript:submitbutton('list', 'dates');&quot;&gt;Termine&lt;/a&gt;</code> </li>
</ol>
<p>In dem JavaScript habe ich dann folgenden Code geschrieben:</p>
<ol class="Sourcecode">
<li><code>function submitbutton(task, section)</code> </li>
<li><code>{</code> </li>
<li><code>&#160;&#160;&#160; document.adminForm.task.value=task;</code> </li>
<li><code>&#160;&#160;&#160; document.adminForm.section.value=section;</code> </li>
<li><code>&#160;&#160;&#160; try {</code> </li>
<li><code>&#160;&#160;&#160;&#160;&#160;&#160;&#160; document.adminForm.onsubmit();</code> </li>
<li><code>&#160;&#160;&#160;&#160;&#160;&#160;&#160; }</code> </li>
<li><code>&#160;&#160;&#160; catch(e){}</code> </li>
<li><code>&#160;&#160;&#160; document.adminForm.submit();</code> </li>
<li><code>} </code></li>
</ol>
<p>Ganz so wie es Joomla braucht. Klar habe ich noch eine unsichtbares Feld f&#252;r der Wert section erstellt. Nun ist aber bei mir zuhause beim Ausf&#252;hren des Scriptes der Apache-Server immer abgest&#252;rzt und ich wusste eine sehr lange Zeit nicht warum. Bis ich aus Verzweiflung den Namen der unsichtbaren Feldes ge&#228;ndert habe. Nun hei&#223;t es area und alles funktioniert. Anscheinend wird der Wert section schon in Joomla anderweitig gebraucht und blockiert dadurch das korrekte Ausf&#252;hren des Scriptes.</p>
<p>Ich hoffe, ich konnte euch mit dieser kleinen Feststellung helfen.</p>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2008/03/25/dozent-an-der-macromedia-fachhochschule/" title="Dozent an der Macromedia Fachhochschule">Dozent an der Macromedia Fachhochschule</a></li><li><a href="http://www.re-design.de/2007/12/23/ajax-abressbuch-tutorial-teil-3/" title="AJAX Abressbuch &#8211; Tutorial Teil 3">AJAX Abressbuch &#8211; Tutorial Teil 3</a></li><li><a href="http://www.re-design.de/2007/12/22/ajax-adressbuch-tutorial-teil-2/" title="AJAX Adressbuch &#8211; Tutorial Teil 2">AJAX Adressbuch &#8211; Tutorial Teil 2</a></li><li><a href="http://www.re-design.de/2007/12/19/slideshow-mit-einer-html-seite-teil-2/" title="Slideshow mit einer HTML-Seite Teil 2">Slideshow mit einer HTML-Seite Teil 2</a></li><li><a href="http://www.re-design.de/2007/12/18/slideshow-mit-einer-html-seite-teil-1/" title="Slideshow mit einer HTML-Seite Teil 1">Slideshow mit einer HTML-Seite Teil 1</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2007/12/14/toolbar-programmierung-bei-joomla/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Template-Engine mit PHP</title>
		<link>http://www.re-design.de/2007/12/14/template-engine-mit-php/</link>
		<comments>http://www.re-design.de/2007/12/14/template-engine-mit-php/#comments</comments>
		<pubDate>Thu, 13 Dec 2007 23:00:08 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Adventskalender 2007]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[klasse]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[template]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=71</guid>
		<description><![CDATA[Immer wieder brauche ich für das Erstellen von komplexeren Webanwendungen eine kleine Template-Engine. Ich könnte dann zwar auf bestehende Syteme wie z.B. Smarty oder PatTemplate. Ich habe mir schon vor langer Zeit ein kleines Script zusammengeschrieben und möchte es heute hier mit euch teilen. Es ist ja Weihnachten. Zuerst einmal die grundlegende Vorgehensweise. Die sich [...]]]></description>
			<content:encoded><![CDATA[<p>Immer wieder brauche ich für das Erstellen von komplexeren Webanwendungen eine kleine Template-Engine. Ich könnte dann zwar auf bestehende Syteme wie z.B. Smarty oder PatTemplate. Ich habe mir schon vor langer Zeit ein kleines Script zusammengeschrieben und möchte es heute hier mit euch teilen. Es ist ja Weihnachten.</p>
<p><span id="more-71"></span><br />
Zuerst einmal die grundlegende Vorgehensweise. Die sich auf meiner Sicht heraus als sehr einfach erweist.</p>
<ol class="Sourcecode">
<li><code>$tpl = new Template('path/to/template/directory/');</code></li>
<li><code>$tpl-&gt;load('file.name');</code></li>
<li><code>$tpl-&gt;set('##KEYWORD##', 'Replace String');</code></li>
<li><code>$tpl-&gt;write();</code></li>
</ol>
<p>Klar das ich als erstes die Template-Klasse instazieren muss. Dies tue ich mit der gleichzeitigen Übergabe der Template-Ordners. Als nächstes lade ich dann die eigentliche Template-Datei. Und dann gebe ich allen Keywords, also Schlüsselworten, die ich im Template gebrauche einen Wert. Zum Schluss schicke ich das Template zum Browser.</p>
<p>Bestimmt gibt es jetzt noch viele Einwände was man noch einbauen könnte oder sollte, was noch alles fehlt und nicht berücksichtige wird, aber ich glaube gerade diese Einfachheit macht die Klasse so schnell nutzbar.</p>
<p>Das Template, welches geladen wird und später dann an den Browser geschickt wird, ist eine reine <abbr title="Hypertext Markup Language">HTML</abbr>-Datei. Ich brauche also keine spezielle Konfiguration meines Editors um die Template-Dateien zu öffnen. Ich nutze einfach normale HTML-Dateien und dort wo der dynamische Text hinkommen soll definiere ich ein Schlüsselwort, welches folgende Syntax hat: <code>##UPPERCASE_WORD##</code>.</p>
<p>Nun zu meiner eigentlichen Template-Klasse. Sie besitzt mehr als die oben gezeigten Funktionalitäten.</p>
<p>Folgendes kann in dieser Klasse genutzt werden:</p>
<dl>
<dt><code>RED_Template($path=null)</code> </dt>
<dd>Dies ist der Konstruktor der einen Pfad zum Template-Ordner erwartet. Falls die Parameter leer bleibt wird auf Root-Ebene ein Default-Ordner als Stammverzeichnis für die Templates genutzt. </dd>
<dt><code>load($file)</code> </dt>
<dd>Diese Methode lädt die Template-Datei in die Klassen-Eigenschaft <code>$source</code> falls sie vorhanden ist. Falls sie nicht existiert wird in die Klassen-Eigenschaft <code>$error</code> eine Fehlermeldung geschrieben und der Wert false zurück gegeben. </dd>
<dt><code>reload()</code> </dt>
<dd>Es kommt immer wieder vor, dass die geladene Template-Datei erneut geladen werden muss. Dabei habe ich mir aber überlegt, dass es überflüssig und Ressourcen verschwendend ist, wenn sie tatsächlich erneut geladen werden müsste. Deshalb wird beim ersten Laden der Datei eine Kopie in eine weitere Klassen-Eigenschaft <code>$cache</code> abgelegt. So muss hier nur noch ein Überschrieben die <code>$source</code>-Eigenschaft stattfinden. </dd>
<dt><code>setSource($src='')</code> </dt>
<dd>Diese Methode benutze ich kaum. Ich habe sie nur eingebaut, um die Möglichkeit zu haben nach dem laden der Template-Datei eine andere Datei zu laden. Das ist aber bis jetzt noch nie vorgekommen. </dd>
<dt><code>set($key, $value)</code> </dt>
<dd>Hier nun die wichtigste Methode. Hier werden die Schlüsselbegriff und ihre Werte in einen Array gesammelt um später eingesetzt zu werden. </dd>
<dt><code>replace()</code> </dt>
<dd>Mit der relace-Methode werden die gesammelten Schlüsselbegriffe in das geladene Templat eingesetz, bzw. die Schüsselbegriffe durch ihre Werte ersetzt. Diese Methode sollte eigentlich niemals direkt aufgerufen werden, aber da es in PHP 4 noch keine Zugriffsrechte für Variablen gab habe ich sie einfach so geschrieben. </dd>
<dt><code>get($source=false)</code> </dt>
<dd>Um mit der ersetzten Template-Datei in PHP weiterarbeiten zu können, habe ich eine <code>get</code>-Methode eingefügt, die nicht direkt das Template an den Browser gibt. Mit dem Parameter <code>$source</code> kann ich bestimmen ob ich den lesbaren Quellcode haben möchte oder lieber doch die benutzbaren Quellcode. </dd>
<dt><code>write($source=false)</code> </dt>
<dd>In vielen Fällen möchte ich aber dass das Template direkt an den Browser gesendet wird. Die <code>write()</code>-Methode ruft eigentlich nur die <code>get()</code>-Methode auf und reicht der Parameter weiter. </dd>
<dt><code>error($msg)</code> </dt>
<dd>Alle Fehlermeldungen werde mit dieser Methode in einem Array gesammelt um ihn später abrufen zu können. es wäre z.B. auch denkbar, dass diese Fehler dann in eine Logdatei umgeleitet werden. </dd>
<dt><code>getError()</code> </dt>
<dd>Meine letzte Funktion gibt immer die letzte Fehlermeldung aus dem Array zurück. </dd>
</dl>
<p>Mit diesem System wäre es z.B. sehr einfach einzelne HTML-Blöcke in Template-Dateien auszulagen und sie dann nacheinander in sich zu laden um so eine komplette Ausgabe zu kommen.</p>
<ol class="Sourcecode">
<li><code>$news = load_all_news();</code></li>
<li><code>$content = '';</code></li>
<li><code></code></li>
<li><code>$tpl = new Template('nachrichten/template/');</code></li>
<li><code>$tpl-&gt;load('nachricht.html');</code></li>
<li><code></code></li>
<li><code>foreach($news as $item)</code></li>
<li><code>{</code></li>
<li><code></code><code>$tpl-&gt;set('##TITLE##', Sitem-&gt;title);</code></li>
<li><code></code><code>$tpl-&gt;set('##TEASER##', Sitem-&gt;teaser);</code></li>
<li><code></code><code>$tpl-&gt;set('##DATE##', Sitem-&gt;date);</code></li>
<li><code></code><code>$tpl-&gt;set('##MORELINK##', Sitem-&gt;link);</code></li>
<li><code></code></li>
<li><code>$content = </code><code>$tpl-&gt;get();</code></li>
<li><code></code></li>
<li><code></code><code>$tpl-&gt;replace();</code></li>
<li><code>}</code></li>
<li><code>$tpl-&gt;load('uebersicht.html');</code></li>
<li><code>$tpl-&gt;set('##HEADLINE##', 'Aktuelle Meldungen');</code></li>
<li><code>$tpl-&gt;set('##CONTENT##', $content)</code></li>
<li><code>$tpl-&gt;write();</code></li>
</ol>
<ul>
<li></li>
<p>Hier der Download meiner PHP Template Klasse</p>
<li><a href="http://www.re-design.de/workbook/wp-content/uploads/2007/12/classtemplate.php" title="Template-Klasse">Template-Klasse</a></li>
</ul>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2010/08/31/website-the-lakeside-heritage-society/" title="Website &#8211; The Lakeside Heritage Society">Website &#8211; The Lakeside Heritage Society</a></li><li><a href="http://www.re-design.de/2010/08/28/website-quchu/" title="Website &#8211; Q&rsquo;uchu">Website &#8211; Q&rsquo;uchu</a></li><li><a href="http://www.re-design.de/2010/08/12/website-watermelon-ministries/" title="Website &#8211; Watermelon Ministries">Website &#8211; Watermelon Ministries</a></li><li><a href="http://www.re-design.de/2008/12/14/tag-14-template-class/" title="Tag 14 – Template Class">Tag 14 – Template Class</a></li><li><a href="http://www.re-design.de/2007/12/24/ajax-adressbuch-tutorial-teil-4/" title="AJAX Adressbuch &#8211; Tutorial Teil 4">AJAX Adressbuch &#8211; Tutorial Teil 4</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2007/12/14/template-engine-mit-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Flashvideo-Player einfach eingesetzt</title>
		<link>http://www.re-design.de/2007/12/13/flashvideo-player-einfach-eingesetzt/</link>
		<comments>http://www.re-design.de/2007/12/13/flashvideo-player-einfach-eingesetzt/#comments</comments>
		<pubDate>Wed, 12 Dec 2007 23:00:34 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Adventskalender 2007]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=65</guid>
		<description><![CDATA[Nachdem ich gestern mit einem kleinen JavaScript Link durch Fußnoten in einem Text ersetzt und eine Linkliste hinzugefügt habe, zeige ich heute eine weiter Möglichkeit nicht alles von Hand zu erstellen. Ich fand es schon immer umständlich für jedes FLV-Video einen eigenen Video-Player zu erstellen. Es wäre doch schönen wenn man nur einen Player nutzen [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem ich gestern mit <a href="http://www.re-design.de/workbook/?p=61" title="direkt zum Artikel" rel="related">einem kleinen JavaScript</a> Link durch Fußnoten in einem Text ersetzt und eine Linkliste hinzugefügt habe, zeige ich heute eine weiter Möglichkeit nicht alles von Hand zu erstellen.</p>
<p>Ich fand es schon immer umständlich für jedes FLV-Video einen eigenen Video-Player zu erstellen. Es wäre doch schönen wenn man nur einen Player nutzen müsste und ihn über externe Parameter steuern könnte, z.B. welches Video er anzeigen sollte.</p>
<p><span id="more-65"></span><br />
Mit diesem kleinen Tool-Set habe ich versucht diese Idee umzusetzen. Wie aber funktioniert das ganze nun? Als erstes erstmal eine Auflistung aller Beteiligten:</p>
<ul>
<li>videoplayer.html</li>
<li>Video-Player.swf</li>
<li>videos.xml</li>
<li>videos
<ul>
<li>test-01.flv</li>
<li>test-02.flv</li>
<li>test-03.flv</li>
</ul>
</li>
</ul>
<h3>Der Vorgang</h3>
<p>Wie habe ich mir nun den Ablauf vorgestellt? Nun, ich dachte mir ich übergebe per GET an den Videoplayer eine ID. Mit dieser ID sucht der Videoplayer in der XML-Datei den Knoten mit allen wichtigen Informationen. So einfach.</p>
<h3>Aufbau der XML-Datei</h3>
<p>Dieser ist relativ. Es gibt das Root-Verzeichnis und dann die Unterknoten die mit dem id-Attribut versehen werden. In diesen Unterknoten werden alle weiteren Informationen eingebunden die der Videoplayer braucht.</p>
<ol class="Sourcecode">
<li><code>&lt;?xml version="1.0" encoding="utf-8"?&gt; </code></li>
<li><code>&lt;videos&gt;</code></li>
<li><code>&lt;video id="2007-12-13"&gt;</code></li>
<li><code>&lt;name&gt;Test 1&lt;/name&gt;</code></li>
<li><code>&lt;source&gt;videos/test_01.flv&lt;/source&gt;</code></li>
<li><code>&lt;/video&gt;</code></li>
<li><code>&lt;video id="2007-12-24"&gt;</code></li>
<li><code>&lt;name&gt;Test 2&lt;/name&gt;</code></li>
<li><code>&lt;source&gt;videos/test_02.flv&lt;/source&gt;</code></li>
<li><code>&lt;/video&gt;</code></li>
<li><code>&lt;video id="2007-12-01"&gt;</code></li>
<li><code>&lt;name&gt;Test 3&lt;/name&gt;</code></li>
<li><code>&lt;source&gt;videos/test_03.flv&lt;/source&gt;</code></li>
<li><code>&lt;/video&gt;</code></li>
<li><code>&lt;/videos&gt;</code></li>
</ol>
<p>Der ActionScript</p>
<h3></h3>
<p>Hier wird als erstes der übergebene Parameter in eine globale Variable geladen. Dann die XML-Datei geholt. Die Knoten werden über eine for-Schleifen durchlaufen und die IDs mit dem Parameter verglichen.</p>
<ol class="Sourcecode">
<li><code>_root.onLoad = function()</code></li>
<li><code>{</code></li>
<li><code>if (_level0.file_id == undefined) {</code></li>
<li><code>_global.id = 0;</code></li>
<li><code>} else {</code></li>
<li><code></code><code>_global.id = _level0.file_id;</code></li>
<li><code>}</code></li>
<li><code>status_txt.text = _global.id;</code></li>
<li><code>status_txt.text += 'n';</code></li>
<li><code>var xml:XML = new XML();</code></li>
<li><code>xml.ignoreWhite = true;</code></li>
<li><code></code><code>xml.onLoad = function(s:Boolean)</code></li>
<li><code>{</code></li>
<li><code>if(s)</code></li>
<li><code>{</code></li>
<li><code>status_txt.text += 'loadedn'; </code></li>
<li><code>var nodes:XMLNode = this.firstChild; </code></li>
<li><code>for(var i:Number=0; i&lt;nodes.childNodes.length; i++) </code></li>
<li><code>{ </code></li>
<li><code>var node:XMLNode = nodes.childNodes[i]; </code></li>
<li><code>if(node.attributes['id'] == _global.id) </code></li>
<li><code>{ </code></li>
<li><code>status_txt.text += node.childNodes[0].firstChild.nodeValue; </code></li>
<li><code>status_txt.text += 'n'; </code></li>
<li><code>status_txt.text += node.childNodes[1].firstChild.nodeValue; </code></li>
<li><code>myPlayer.contentPath = node.childNodes[1].firstChild.nodeValue; </code></li>
<li><code>} </code></li>
<li><code>} </code></li>
<li><code>} </code></li>
<li><code>} </code></li>
<li><code>xml.load('videos.xml'); </code></li>
<li><code>};</code></li>
</ol>
<p>Zum Schluss nur noch die Videos in das angegebene Verzeichnis ablegen und glücklich sein.</p>
<ul>
<li><a href="http://www.re-design.de/workbook/wp-content/uploads/2007/12/video-player.html" title="HTML-Datei">HTML-Datei</a></li>
<li><a href="http://www.re-design.de/workbook/wp-content/uploads/2007/12/videos.xml" title="XML-Datei">XML-Datei</a></li>
<li><a href="http://www.re-design.de/workbook/wp-content/uploads/2007/12/player.fla" title="Flasch-Datei">Flasch-Datei</a></li>
<li><a href="http://www.re-design.de/workbook/wp-content/uploads/2007/12/player.swf" title="SWF-Datei">SWF-Datei</a></li>
<li><a href="http://www.re-design.de/workbook/wp-content/uploads/2007/12/flash-video.zip" title="komplettes Set">komplettes Set</a></li>
</ul>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2008/03/25/dozent-an-der-macromedia-fachhochschule/" title="Dozent an der Macromedia Fachhochschule">Dozent an der Macromedia Fachhochschule</a></li><li><a href="http://www.re-design.de/2010/11/03/flash-programmierung-lr-health-beauty/" title="Flash Programmierung &#8211; LR Health &amp; Beauty">Flash Programmierung &#8211; LR Health &amp; Beauty</a></li><li><a href="http://www.re-design.de/2010/10/28/mobil-games-mit-flash-buch/" title="Mobil Games mit Flash &ndash; Buch">Mobil Games mit Flash &ndash; Buch</a></li><li><a href="http://www.re-design.de/2010/10/28/flash-enginneering-buch/" title="Flash Enginneering &ndash; Buch">Flash Enginneering &ndash; Buch</a></li><li><a href="http://www.re-design.de/2010/05/29/actionscript-3-flex/" title="ActionScript 3 &amp; Flex">ActionScript 3 &amp; Flex</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2007/12/13/flashvideo-player-einfach-eingesetzt/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>dynamische Linkliste bringt mehr Usability</title>
		<link>http://www.re-design.de/2007/12/12/dynamische-linkliste-bringt-mehr-usability/</link>
		<comments>http://www.re-design.de/2007/12/12/dynamische-linkliste-bringt-mehr-usability/#comments</comments>
		<pubDate>Tue, 11 Dec 2007 23:00:26 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Adventskalender 2007]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[beispiel]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[link-generator]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=61</guid>
		<description><![CDATA[Heute möchte ich euch ein kleines JavaScript geben, welches aus einem vorgegebenen &#60;div&#62;-Container alles Links extrahiert und sie als Linkliste am Ende des Containers anhängt. Hier gibt es das Demo. Warum macht es Sinn eine solche Linkliste zu erstellen? Nun fast jeder der sich mit benutzerfreundlichen Websites auseinandersetzt weiß, dass Links innerhalb von Fließtext den [...]]]></description>
			<content:encoded><![CDATA[<p>Heute möchte ich euch ein kleines JavaScript geben, welches aus einem vorgegebenen <code>&lt;div&gt;</code>-Container alles Links extrahiert und sie als Linkliste am Ende des Containers anhängt. Hier gibt es das <a title="weiter zur Demonstration" rel="demo" href="http://weblabor.re-design.de/Linklist/demo.html">Demo</a>.</p>
<p>Warum macht es Sinn eine solche Linkliste zu erstellen? Nun fast jeder der sich mit benutzerfreundlichen Websites auseinandersetzt weiß, dass Links innerhalb von Fließtext den Lesefluss stören. Außerdem kann es möglich sein Leser zu verlieren, wenn sie den Links innerhalb des Textes folgen und nicht wieder zurück kommen. Es ist besser erst am Ende des Textes alle im Text empfohlenen Links aufzulisten.<br />
<span id="more-61"></span><br />
Leider kann es sehr mühselig sein, die Passagen im Text mit Fußnoten zu kennzeichnen und dann im unteren Bereich eine Linkliste mit Ankerpunkten zu erstellen. Sowas kann wunderbar JavaScript mit einem Automatismus übernehmen.</p>
<h3>Einbindung des Link-Generators</h3>
<p>Ich habe mir überlegt, dass die Einbindung möglichst einfach sein sollte. Deshalb habe ich ein externes Script geschrieben, welches eine Variable mit einem Literal erzeugt. Dieses Script muss nur in die eigene Website eingebunden werden und ein Event festgelegt werden, wann die Abarbeitung beginnen soll.</p>
<ol class="Sourcecode">
<li><code>&lt;script src="RED_LinkGenerator.js" type="text/javascript"&gt;&lt;/script&gt;</code></li>
<li><code>&lt;script type="text/javascript"&gt;</code></li>
<li><code>//&lt;![CDATA[</code></li>
<li><code>window.onload = function()</code></li>
<li><code>{</code></li>
<li><code>var content = document.getElementById('content');</code></li>
<li><code>RED_LinkGenerator.init(content);</code></li>
<li><code>RED_LinkGenerator.writeList();</code></li>
<li><code>}</code></li>
<li><code>//]]&gt;</code></li>
<li><code>&lt;/script&gt;</code></li>
</ol>
<p>Als Übergabeparameter für die Initialisierung wird der Container gewählt in dem die Links enthalten sind. Hier z.B. der <code>&lt;div&gt;</code>-Container mit der ID <dfn>content</dfn>. Als nächstes muss nur noch die <code>writeList()</code>-Methode ausgeführt werden und das Script erzeugt am Ende des übergebenen Containers eine sortierte Liste.</p>
<p>Ich habe extra diesen Vorgang in 2 Schritte unterteilt, um flexibel zu bleiben, denn ich kann mir vorstellen später eine Methode zu schreiben, die in einen komplett anderen Container die Liste schreibt oder auch einfach nur den Array zurückgibt.</p>
<h3>Der Link-Generator selbst</h3>
<p>Ich werde jetzt hier nicht jeden einzelnen Schritt erklären. Ich versuche mich auf die wichtigsten Punkte zu beschränken.</p>
<h4>Die Initialisierung</h4>
<p>Hier wird einfach nur der übergebene Container abgespeichert.</p>
<ol class="Sourcecode">
<li><code>init: function(content)</code></li>
<li><code>{</code></li>
<li><code>this.container = content;</code></li>
<li><code>},</code></li>
</ol>
<h4>Die Methode <code>writeList()</code></h4>
<ol class="Sourcecode">
<li><code>writeList: function()</code></li>
<li><code>{</code></li>
<li><code>var nodes = this.container.getElementsByTagName('A');</code></li>
<li><code>var ol = document.createElement('OL');</code></li>
<li><code>for(var n=nodes.length-1, f=nodes.length; n&gt;=0; n--, f--)</code></li>
<li><code>{</code></li>
<li><code>var parent = nodes[n].parentNode;</code></li>
<li><code>var a = document.createElement('A');</code></li>
<li><code>a.setAttribute('href', '#a_'+n);</code></li>
<li><code>a.appendChild(document.createTextNode('['+f+']'));</code></li>
<li><code>var foot = document.createElement('SUB');</code></li>
<li><code>foot.appendChild(a);</code></li>
<li><code>var span = document.createElement('SPAN');</code></li>
<li><code>span.appendChild(document.createTextNode(nodes[n].firstChild.nodeValue));</code></li>
<li><code>span.appendChild(foot);</code></li>
<li><code>var li = document.createElement('LI');</code></li>
<li><code>var a = document.createElement('A');</code></li>
<li><code>a.appendChild(document.createTextNode(nodes[n].firstChild.nodeValue));</code></li>
<li><code>a.setAttribute('href', nodes[n].href);</code></li>
<li><code>a.setAttribute('id', 'a_'+n);</code></li>
<li><code>li.appendChild(a);</code></li>
<li><code>this.list.push(li);</code></li>
<li><code>parent.insertBefore(span, nodes[n]);</code></li>
<li><code>parent.removeChild(nodes[n+1]);</code></li>
<li><code>}</code></li>
<li><code>for(var n=this.list.length-1; n&gt;=0;n--)</code></li>
<li><code>{</code></li>
<li><code>ol.appendChild(this.list[n]);</code></li>
<li><code>}</code></li>
<li><code>this.container.appendChild(ol);</code></li>
<li><code>}</code></li>
</ol>
<p>In Zeile 15 werden aus dem Text alle Link gesucht und in Zeile 16 schon mal ein <abbr title="Hypertext Markup Language">HTML</abbr>-Knoten für die sortierte Liste angelegt.</p>
<p>Danach wird über eine <code>for</code>-Schleife alle Link-Knoten von hinten nach vorne verarbeitet, die Erklärung folgt später. Dabei wird als Erstes ein Verweis auf den Eltern-Knoten gespeichert und dann ein Link als Fußnote generiert (Zeile 22 &#8211; 27).</p>
<p>Diese Fußnote wird zusammen mit dem Linktext in einen neuen <code>&lt;span&gt;</code>-Tag gestellt (Zeile 29 &#8211; 31).</p>
<p>Danach wird der Listeneintrag mit einer Kopie des Orginallinks erzeugt (Zeile 33 &#8211; 39). Dieser Listeneintrag wird erstmal in einem Array zwischengespeichert.</p>
<p>Anschließend wird der Span-Knoten vor dem eigentlichen Link eingesetzt (Zeile 42) und der Link gelöscht (Zeile 43). Dabei muss aber darauf geachtet werden, dass in der Variablen <var>nodes</var> ein Verweis auf alle Links innerhalb des Container ist und wenn wie hier ein neuer Link, die Fußnote, hinzukommt auch die Anzahl der Links innerhalb des Textes steigt. Deshalb muss beim Löschen <code>n+1</code> gerechnet werden. Durch diese dynamische Änderung der Menge der Links im Array hat mich auch veranlasst von hinten nach vorne zu arbeiten, denn dadurch wird der Löschvorgang vereinfacht.</p>
<p>Zum Schluss muss nur noch die geordnete Liste erzeugt werden. Da aber die Links im Array in der verkehrten Reihenfolge stehen, habe ich wieder von hinten nach vorne gearbeitet, um die richtige Reihenfolge zu bekommen (Zeile 45 &#8211; 48).</p>
<h4>Fazit</h4>
<p>Ich hoffe ich konnte mit diesem kleine Beispiel zeige, wie JavaScript das Arbeiten im Web erleichtern kann. Keine Ahnung ob das schon ein Ansatz von Web 2.0 ist, aber ich finde der Automatismus kann sich schon sehen lassen.</p>
<ul>
<li><a title="komplettes Set" href="http://weblabor.re-design.de/linklist.zip">Download</a></li>
</ul>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2007/12/15/ajax-klasse-einfach-gebaut/" title="AJAX-Klasse, einfach gebaut">AJAX-Klasse, einfach gebaut</a></li><li><a href="http://www.re-design.de/2007/12/23/ajax-abressbuch-tutorial-teil-3/" title="AJAX Abressbuch &#8211; Tutorial Teil 3">AJAX Abressbuch &#8211; Tutorial Teil 3</a></li><li><a href="http://www.re-design.de/2007/12/22/ajax-adressbuch-tutorial-teil-2/" title="AJAX Adressbuch &#8211; Tutorial Teil 2">AJAX Adressbuch &#8211; Tutorial Teil 2</a></li><li><a href="http://www.re-design.de/2007/12/19/slideshow-mit-einer-html-seite-teil-2/" title="Slideshow mit einer HTML-Seite Teil 2">Slideshow mit einer HTML-Seite Teil 2</a></li><li><a href="http://www.re-design.de/2007/12/18/slideshow-mit-einer-html-seite-teil-1/" title="Slideshow mit einer HTML-Seite Teil 1">Slideshow mit einer HTML-Seite Teil 1</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2007/12/12/dynamische-linkliste-bringt-mehr-usability/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Redirect hilft bei Ver&#228;nderungen</title>
		<link>http://www.re-design.de/2007/12/11/redirect-hilft-bei-veraenderungen/</link>
		<comments>http://www.re-design.de/2007/12/11/redirect-hilft-bei-veraenderungen/#comments</comments>
		<pubDate>Mon, 10 Dec 2007 22:00:08 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Adventskalender 2007]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=60</guid>
		<description><![CDATA[Dieses Thema hatte ich schon lange im Kopf, hatte aber leider noch nie Zeit gefunden darüber einmal detaillierter zu schreiben. Nun aber, dadurch das mich heut fast alle Browser mit den Thema CSS 3 im Stich gelassen haben, habe ich die Zeit und den Platz gefunden darüber zu berichte. Ein Website kann noch so gut [...]]]></description>
			<content:encoded><![CDATA[<p>Dieses Thema hatte ich schon lange im Kopf, hatte aber leider noch nie Zeit gefunden darüber einmal detaillierter zu schreiben. Nun aber, dadurch das mich heut fast alle Browser mit den Thema <abbr title="Cascading Style Sheet">CSS</abbr> 3 im Stich gelassen haben, habe ich die Zeit und den Platz gefunden darüber zu berichte.</p>
<p>Ein Website kann noch so gut geplant sein, im Laufe der Zeit werden sich immer wieder die Strukturen und damit die <abbr title="Uniform Resource Identifier">URI</abbr>s von Ressourcen ändern. Das ist ganz normal. Normal ist auch, dass solche Ressourcen Spuren im Web hinterlassen haben. Zum einen natürlich in Suchmaschinen, die diese indexiert haben. Zusätzlich habe vielleicht aber auch Besucher diese Adressen in ihren sozialen Netzwerken wie <a href="http://del.icio.us" title="weiter zur Homepage" rel="tag">del.icio.us</a>, <a href="http://www.mister-wong.de/" title="weiter zur Homepage" rel="tag">Mister Wong</a>, <a href="http://www.yigg.de/" title="weiter zur Homepage" rel="tag">Yigg</a> oder <a href="http://www.google.com/bookmarks/" title="weiter zur Homepage" rel="tag">Google Bookmarks</a> oder aber ganz normal als Favorit abgespeichert. Wenn sich nun die Adressierung ändert, sollten natürlich Besucher die noch zur alten Adressen wollen weitergeleitet werden. Und genau da kommt die <strong>Apache Direktive</strong> <code>redirect</code> ins Spiel.</p>
<p><span id="more-60"></span><br />
Per Definition ist folgende Syntax zulässig:</p>
<ol class="Sourcecode">
<li><code>Redirect [Status] &lt;Pfad&gt; &lt;URI&gt;</code></li>
</ol>
<p>Aber wohin schreibt man diese Zeile? Ganz einfach! In die <code>.htaccess</code>-Datei in das Hauptverzeichnis seines Webspaces.</p>
<p>Und was bedeutet Sie? Auch das ist ganz einfach! <code>redirect</code> bedeutet wir wollen einen Weiterleitung definieren. Mit dem Status, der optional ist, gibt man den Weiterleitungsstatus an. Es gibt verschiedene Stati:</p>
<dl>
<dt><strong><code>301 Moved Permanently</code> </strong></dt>
<dd>Die Ressource ist dauerhaft unter einer anderen URI erreichbar. Dadurch wird z.B. direkt bei Suchmaschinen veranlasst, dass die Adresse im Index aktualisiert wird. </dd>
<dt><strong><code>302 Temp</code> </strong></dt>
<dd>Die Ressource ist vorübergehend unter einer anderen URI erreichbar. </dd>
<dt><strong><code>403 Forbidden</code> </strong></dt>
<dd>Der Zugriff auf die Ressource wird verweigert. Durch eine Weiterleitung können störende Fehlermeldungen des Servers korrigiert werden. </dd>
<dt><strong><code>404 File not Found</code> </strong></dt>
<dd>Die Ressource wird unter der URI nicht gefunden. Sinnvolle Weiterleitung wäre z.B. auf die interne Suche, um dort die Ressource zu finden. </dd>
<dt><strong><code>410 Gone</code> </strong></dt>
<dd>Die Ressource existiert nicht mehr. Bei vielen Suchmaschinen wird dadurch der Verweis zur Ressource aus dem Index gelöscht. </dd>
</dl>
<p>Da der Status ein optionaler Wert ist, kann man ihn auch weglassen, dabei wird dann aber der Default-Wert <code>302</code> eingesetzt.</p>
<p>Unter dem Pfad gibt man die angefragte Ressource an und bei der URI schreibt man dann die neue Adresse als absoluten Pfad auf.</p>
<p>Um das Ganze etwas besser zu verdeutlichen hier ein kleines Beispiel. Eine zum Download hinterlegte Datei wird aus dem Download-Ordner dauerhaft in den Projekt-Ordner verschoben:</p>
<ol class="Sourcecode">
<li><code>Redirect 301 /Downloads/Software.exe http://www.re-design.de/Projekt/Download/Software.exe</code></li>
</ol>
<p>Eine weitere nützliche Hilfe bietet die serverseitige Weiterleitung bei unterschiedlichen Schreibweisen der Adressierung bzw. bei Tippfehlern. Beim nächsten Beispiel leiten alle Angaben auf die gleiche URI weiter:</p>
<ol class="Sourcecode">
<li><code>Redirect 301 /Kontakt.html http://www.re-design.de/kontakt.html</code></li>
<li><code>Redirect 301 /kontakt.htm http://www.re-design.de/kontakt.html</code></li>
<li><code>Redirect 301 /contact.html http://www.re-design.de/kontakt.html</code></li>
<li><code>Redirect 301 /contact.htm http://www.re-design.de/kontakt.html</code></li>
<li><code>Redirect 301 /contact/ http://www.re-design.de/kontakt.html</code></li>
</ol>
<p>Zusätzlich hat natürlich die serverseitige Weiterleitung gegenüber der clientseitigen Weiterleitung durch JavaScript oder mit der Meta-Angabe <code>refresh</code>, dass Suchmaschinen bei der Weiterleitung keine Doorway-Seite vermuten, da sie diesen gesamten Vorgang nicht mitbekommen.</p>
<p>Um jetzt nicht umdständliche Weiterleitungslisten zu schreiben, gibt es die Apache Direktive <code>redirectMatch</code>. In dieser kann man mit regulären Ausdrücken arbeiten und so mit Suchmustern die verschieden Schreibweisen abfangen. Aber das ist nicht unbedingt Thema dieses Artikel und würde zu weit schon in die Tiefe gehen. Es soll lediglich als Ausblick dienen, genauso wie die Apache Direktive <code>mod_rewrite</code> die ich vielleicht in einem späteren Artikel genauer behandeln werden.</p>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2008/04/26/dreamweaver-schulung-fr-den-solar-verlag/" title="Dreamweaver-Schulung f&#252;r den Solar Verlag">Dreamweaver-Schulung f&#252;r den Solar Verlag</a></li><li><a href="http://www.re-design.de/2008/03/01/transcending-css/" title="Transcending CSS">Transcending CSS</a></li><li><a href="http://www.re-design.de/2008/03/01/little-boxes/" title="Little Boxes">Little Boxes</a></li><li><a href="http://www.re-design.de/2008/03/01/das-website-handbuch/" title="Das Website Handbuch">Das Website Handbuch</a></li><li><a href="http://www.re-design.de/2008/02/25/css-seminar-bei-vva/" title="CSS-Seminar bei VVA">CSS-Seminar bei VVA</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2007/12/11/redirect-hilft-bei-veraenderungen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CSS 3-Unterst&#252;tzung der Browser</title>
		<link>http://www.re-design.de/2007/12/10/css-3-unterstuetzung-der-browser/</link>
		<comments>http://www.re-design.de/2007/12/10/css-3-unterstuetzung-der-browser/#comments</comments>
		<pubDate>Mon, 10 Dec 2007 15:37:16 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[layout]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=59</guid>
		<description><![CDATA[Ich wollte heute eigentlich einen Artikel über die Möglichkeiten von CSS 3 schreiben. Aber leider sind die interessanten Thema nicht mit den Windows Browsern behandelbar. Egal ob ich nun Firefox 2.0.0.11, Internet Explorer 7.0.6000, Opera 9.23, Flock 1.0.3 oder Safari 3.0.4 benutze. Fast alle zeigen nichts an. Einzig der Safari hat mir multiple Hintergründe angezeigt. [...]]]></description>
			<content:encoded><![CDATA[<p>Ich wollte heute eigentlich einen Artikel über die Möglichkeiten von CSS 3 schreiben. Aber leider sind die interessanten Thema nicht mit den Windows Browsern behandelbar. Egal ob ich nun Firefox 2.0.0.11, Internet Explorer 7.0.6000, Opera 9.23, Flock 1.0.3 oder Safari 3.0.4 benutze. Fast alle zeigen nichts an. Einzig der Safari hat mir multiple Hintergründe angezeigt.</p>
<p>Was ich hier vorstellen wollte, waren neben die Hintergründen das Spaltensystem und die Zusätzlichen Möglichkeiten von Rahmen. All diese Dinge funktionierten überhaupt noch nicht. Eigentlich sehr schade, denn dadurch wären viel Umstände im Designen von Websites Geschichte.</p>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2007/12/08/css-layouts-am-fliessband/" title="CSS Layouts am Fließband">CSS Layouts am Fließband</a></li><li><a href="http://www.re-design.de/2007/12/07/icons-helfen-bei-der-orientierung/" title="Icons helfen bei der Orientierung">Icons helfen bei der Orientierung</a></li><li><a href="http://www.re-design.de/2007/12/04/flexible-layouts-mit-css/" title="flexible Layouts mit CSS">flexible Layouts mit CSS</a></li><li><a href="http://www.re-design.de/2007/11/11/flexibles-css-layout/" title="flexibles CSS Layout">flexibles CSS Layout</a></li><li><a href="http://www.re-design.de/2008/04/26/dreamweaver-schulung-fr-den-solar-verlag/" title="Dreamweaver-Schulung f&#252;r den Solar Verlag">Dreamweaver-Schulung f&#252;r den Solar Verlag</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2007/12/10/css-3-unterstuetzung-der-browser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Suchmaschinenoptimierung (SEO)</title>
		<link>http://www.re-design.de/2007/12/10/suchmaschinenoptimierung-seo/</link>
		<comments>http://www.re-design.de/2007/12/10/suchmaschinenoptimierung-seo/#comments</comments>
		<pubDate>Sun, 09 Dec 2007 22:00:19 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Adventskalender 2007]]></category>
		<category><![CDATA[mediales internet]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[optimierung]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[suchmaschinen]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=58</guid>
		<description><![CDATA[Schon viele Autoren haben sich über das Thema SEO ausgelassen. Auch ich möchte an dieser Stelle alle für mich wichtigen Punkte in einer Top 10 Liste zusammenfassen. Besucher wollen nur qualifizierten Inhalt Durch Schlüsselbegriffe den Inhalt definieren interne und externe Verlinkung zählen Seitentitel geben den Inhalt vor Missgunst vermeiden Fehlerseite bieten Möglichkeiten Maschinen lieben Technik [...]]]></description>
			<content:encoded><![CDATA[<p>Schon viele Autoren haben sich über das Thema <abbr title="Search Engine Optimized">SEO</abbr> ausgelassen. Auch ich möchte an dieser Stelle alle für mich wichtigen Punkte in einer <strong>Top 10</strong> Liste zusammenfassen.</p>
<ol>
<li>Besucher wollen nur qualifizierten <strong>Inhalt</strong></li>
<li>Durch <strong>Schlüsselbegriffe</strong> den Inhalt definieren</li>
<li>interne und externe <strong>Verlinkung</strong> zählen</li>
<li><strong>Seitentitel</strong> geben den Inhalt vor</li>
<li><strong>Missgunst</strong> vermeiden</li>
<li><strong>Fehlerseite</strong> bieten Möglichkeiten</li>
<li>Maschinen lieben <strong>Technik</strong></li>
<li>Besucher lieben <strong>Klicks</strong></li>
<li>Den <strong>richtigen Platz</strong> finden</li>
<li><strong>Sitemap</strong></li>
</ol>
<p>Diese Liste soll als Hilfsmittel dazu dienen, dass die eigene Website von Suchmaschinen besser gelistet wird. Dabei stell ich aber auch immer wieder fest, dass nicht alle Punkte aus der Liste ohne weiteres umzusetzen sind.</p>
<p><span id="more-58"></span></p>
<h3>Inhaltserzeugung</h3>
<p>Klar ist &#8220;<strong>Content is King</strong>&#8220;. Nur wer qualifizierten und dabei noch interessanten Inhalt auf seiner Website präsentiert, wird auch regelmäßig Besucher begrüßen können. Vor allem spricht sich das rum und bringt zusätzliche Besucher. Selbst Macher von Firmenwebseiten sollten sich überlegen welchen Mehrwert sie den Besucher bieten können außer der eigentlichen Firmenpräsents. Ein kleines Tool online oder zum Download zieht Besucher immer wieder auf die Seite. Oder eine interessante Linkliste mit Informationen die regelmäßig aktualisiert und verbessert wird.</p>
<p>Außerdem misst Google z.B. die Verweildauer der Suchenden auf der Website und ermittelt unter anderem daraus die Plazierung. Deshalb ist ein Interessanter, lesenswerte oder benutzbarer Inhalt auch für die Plazierung in Suchmaschinen gut.</p>
<p>Auf jeden Fall sollte jedem Website-Betreiber klar sein, dass eine Website nichts statisches ist wie ein Printprodukt, sondern regelmäßig überwacht und aktualisiert werden sollte.</p>
<h3>Schlüsselbegriffe gezielt einsetzen</h3>
<p>Jeder einzelne Seite innerhalb der Website sollte einen klaren Inhalt haben. Zu diesem Inhalt sollte man sich 4 bis 6 Begriffe aussuchen. Also markante Worte die den Inhalt widerspiegeln. Diese <strong>Schlüsselbegriffe</strong> werden dann auf der Seite an strategisch wichtigen Punkte benutzt um den Suchmaschinen klarzumachen, dass man darunter gefunden werden möchte.</p>
<p>Zu den wichtigen Punkten gehören auf jeden Fall der <strong>Seitentitel</strong>, der <strong>Dateiname</strong> der Seite und die <strong>Überschriften</strong>, ja selbst im <strong>Alternativtext der Bilder</strong> bzw. der Dateiname der Bilder. Eine gute Wiederholfrequenz liegt bei ca. 5 %. Man sollte aber beachten nicht über 8 % zu kommen, denn sonst macht das die Suchmaschinen misstrauisch.</p>
<h3>Mehrwert durch Verlinkung</h3>
<p>Jede eingehende Verlinkung zeigt der Suchmaschine, dass diese Seite interessant ist. Dazu zählten zum Teil auch die Verlinkungen von der eigenen Seite. Das bedeutet <strong>Querlinks</strong> innerhalb der eigenen Seite geben nicht nur dem Besucher nette Möglichkeiten surfen, sondern steigern auch die Plazierung bei Suchmaschinen.</p>
<p>Aber wichtiger als die interne Verlinkung ist sind die Links von anderen Websites. Deshalb ist es wichtig Verlinkungen aus der gesamten digitalen Welt zu sammeln. Dadurch überträgt sich nicht nur die Beliebtheit der verlinkenden Websites zum Teil mit auf die Eigene, sondern bringt auch gleichzeitig neue Besucher, die bei gutem Inhalt natürlich auch wieder Links setzen.</p>
<h4>Spuren hinterlassen</h4>
<p>Nicht jeder gute Inhalt einer Website wird gleich auch von der Welt gefunden und besucht. Am besten ist wenn man dem Ganzen etwas nachhilft. Hat man was interessantes zu bieten, kann man z.B. in einschlägigen Foren darauf aufmerksam machen. Überhaupt sollte man immer seine Webadresse mit angeben, wenn man im Internet etwas schreibt.</p>
<p>In <strong>Weblogs</strong> kann man z.B. auf themenspezifische Artikel reagieren und eine Antwort schreiben. Dabei sollte man immer wenn es angeboten wird seine Website mit angeben, denn dadurch schafft man einen externen Link zu sich selbst. Das gleiche gilt für Beiträge in <strong>Foren</strong>. In den meisten kann man sich anmelden und eine Signatur festlegen. Dort sollte unbedingt auch die Website mit angegeben werden und natürlich auch fleißig Einträge machen. Nicht nur dass dadurch die Anzahl von externen Links zunimmt, sondern wenn die Einträge eine gute Qualität haben werden auch darüber Besucher kommen.</p>
<p>Auch sind Profile im Internet keine schlechte Idee Spuren und somit Verweise auf die eigene Website zu hinterlassen. Es gibt viele Online-Netzwerke in denen man ein eigenes, öffentlich zugängliches Profil anlegen kann, zum Beispiel bei <a href="https://www.xing.com/profile/Enrico_Reinsdorf" title="zu meinem Profil in Xing" rel="tag">Xing</a> oder <a href="http://www.studivz.net/" title="zur Homepage von StudiVZ" rel="tag">StudiVZ</a>, aber auch <a href="http://eltuctuc.googlepages.com/" title="zu meiner Website von Google" rel="tag">Google</a>, <a href="http://netzklasse.spaces.live.com/" title="zu meinem Space bei Windows Live" rel="tag">Windows Live</a> oder <a href="http://de.geocities.com/enrico.reinsdorf/%20index.html" title="zu meinem Profil bei GeoCities-Yahoo" rel="tag">Yahoo</a>.</p>
<h3>Wissenswertes zum Seitentitel</h3>
<p>Der Seitentitel gehört für Suchmaschinen zu den wichtigsten Erkennungsmerkmalen. Deshalb sollten Webdesigner bzw. Webredakteure besonderen Wert auf den richtigen Inhalt legen. Grob gesagt sollte der Titel ein komprimierte Zusammenfassung des Inhaltes sein, also mit wenigen Worte das sagen was dem Besucher erwartet.</p>
<p>Dabei sollte man aber einiges Beachten. Zum Beispiel sollte man auf eine Zeichenlänge von max. 50 Buchstaben beschränken und der Seitentitel sollte eindeutig sein, also nur einmal in dieser Form auf der Website vorkommen.</p>
<h3>Spam, Doorway oder Cloaking</h3>
<p>Einmal aus einer Suchmaschine rausgeflogen, ist es sehr schwer wieder mit der selben Domain reinzukommen.</p>
<h4>Spam</h4>
<p>Klar, wer Spam-Mails verschickt ist nicht beliebt. Kommt man auf eine sogenannte schwarze Liste von Spammern, dann hat das auch Auswirkungen auf die Website unter dieser Domain. Deshalb sollte man darauf achten, dass auf der einen Seite der eigene Server vor Missbrauch von andern Spammern geschützt ist. Sie versuchen oft über andere Domains ihre lästige Post zu verschicken. Auf der anderen Seite sollte man selber nicht anfangen massenhaft Mails, z.B. über Outlook, zu verschicken.</p>
<h4>Doorway</h4>
<p>Hinter dem Begriff <a href="http://de.wikipedia.org/wiki/Doorway" title="genauere Erklärung" rel="tag">Doorway</a> verbirgt sich ein Verfahren eine Suchmaschinen optimierte HTML-Seite zu erstellen, die aber für den Betrachter keinen Inhalt bietet und nur dazu dient die Suchmaschine zu überlisten und die Betrachter auf die eigentliche Website weiterzuführen.</p>
<h4>Cloaking</h4>
<p>Beim <a href="http://de.wikipedia.org/wiki/Cloaking" title="genauere Erklärung" rel="tag">Cloaking</a> wird beim Besuch des Suchmaschinen-Robots ein anderer Inhalt präsentiert als das was die Besucher der Website selbst sehen.</p>
<h4>Fehlerseiten sind Hilfen</h4>
<p>Die bekannteste Fehlerseite ist wohl die mit dem Status <strong>404</strong> (File not found). Es kann immer mal wieder vorkommen das Seiten nicht erreichbar sind, z.B. durch Umbenennung der Dateien oder Umstrukturierung der Website. Aber warum dem Besucher dann nur einen Fehlertext anbieten wenn man bei den meisten Providern eigene Fehlerseiten erstellen kann? Zum Beispiel wäre es möglich auf solchen Seiten ein <strong>Inhaltsverzeichnis</strong> und/oder eine <strong>Suche</strong> anzubieten, so dass der Besucher auf jeden Fall weiterkommt und nicht entmutigt die Seite verlässt. Auch schafft man dadurch weiter interne Verlinkungen.</p>
<h3>Aus technischer Sicht</h3>
<p>Maschinen, gerade Suchmaschinen können nur vernünftig arbeiten, wenn die Seiten auch technisch in Ordnung sind. Das bedeutet die HTML-Seiten sollten <strong>fehlerfrei</strong> und <strong>valide</strong> sein. Alle unnötigen Quellcode, wie z.B. CSS und JavaScript sollte zusätzlich ausgelagert werden. Dadurch werden die Dateien nicht nur schlanker und werde deshalb schneller geladen, sondern der Text innerhalb der Seite bekommt auch mehr an Gewichtung.</p>
<p>Außerdem sollte gerade die Navigation, also Verlinkungen, über keine andere Technik als mit HTML erzeugt werden, denn nur so können die Suchmaschinen sie auch optimal benutzen.</p>
<h3>3 Klicks vom Ziel</h3>
<p>Bei der Planung der Navigationsstruktur sollte man berücksichtigen, dass die Besucher mit möglichst wenigen Klicks an ihrem Ziel angekommen sind. Am besten wenn sie das mit nur <strong>3 Klicks</strong> schaffen, deshalb sollte man immer bei der Planung die Zielgruppe mit einbeziehen.</p>
<h3>Durch Verzeichnisse sich positionieren</h3>
<p>Sowohl <a href="http://de.dir.yahoo.com/" title="zum Yahoo Verzeichnis" rel="tag">Yahoo</a> als auch <a href="http://www.google.de/dirhp?hl=de" title="zum Google Verzeichnis" rel="tag">Google</a> bieten dem Website-Betreiber die Möglichkeit seine eigene Website unter einem Verzeichnis zu platzieren. Aber es gibt auch noch das <a href="http://www.dmoz.org/" title="zum ODP Verzeichnis" rel="tag">Open Directory Project</a>, welche nicht direkt von einem Unternehmen betreut wird. Auch hierüber werden Besucher und natürlich auch Suchmaschinen kommen. Zusätzlich kann die Website dann auch außerhalb ihrer eigenen Informationsangaben in eine Bereich bzw. Branche gesteckt werden, was zu einer leichter Identifikation beiträgt.</p>
<h3>Überschicht durch ein Inhaltsverzeichnis</h3>
<p>Gerade bei einer komplexen Website ist es hilfreich ein <strong>Inhaltsverzeichnis</strong> dem Besucher anzubieten. Durch die Auflistung alle Seiten der Website kann nicht nur der Besucher schnell an sein gewünschtes Ziel kommen, sondern die Suchmaschine auch. Auch schwer zugängliche, weil in der Navigationshierachie weit unter liegenden Seiten bekommen dadurch ein bisschen mehr Gewichtung.</p>
<h3>Fazit</h3>
<p>Mit dieser kleinen Auflistung hoffe ich etwas mehr Licht ins schwierige und komplexe Thema der Suchmaschinenoptimierung geschaffen zu haben. Ich weiß das es noch viel mehr und detailierter Informationen bedarf, um das Optimum zu erreichen. Gerade Kunden und Betreuern von Websites sollte mit diesem Artikel ein Hilfestellung an die Hand gegeben werden.</p>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2007/12/07/icons-helfen-bei-der-orientierung/" title="Icons helfen bei der Orientierung">Icons helfen bei der Orientierung</a></li><li><a href="http://www.re-design.de/2008/04/26/dreamweaver-schulung-fr-den-solar-verlag/" title="Dreamweaver-Schulung f&#252;r den Solar Verlag">Dreamweaver-Schulung f&#252;r den Solar Verlag</a></li><li><a href="http://www.re-design.de/2008/03/01/transcending-css/" title="Transcending CSS">Transcending CSS</a></li><li><a href="http://www.re-design.de/2008/03/01/little-boxes/" title="Little Boxes">Little Boxes</a></li><li><a href="http://www.re-design.de/2008/03/01/das-website-handbuch/" title="Das Website Handbuch">Das Website Handbuch</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2007/12/10/suchmaschinenoptimierung-seo/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>CSS Layouts am Fließband</title>
		<link>http://www.re-design.de/2007/12/08/css-layouts-am-fliessband/</link>
		<comments>http://www.re-design.de/2007/12/08/css-layouts-am-fliessband/#comments</comments>
		<pubDate>Fri, 07 Dec 2007 23:00:07 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Adventskalender 2007]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[gestaltung]]></category>
		<category><![CDATA[layout]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=50</guid>
		<description><![CDATA[Immer wieder werden ähnlich bzw. gleiche Layouts beim Webdesign gebraucht. Ich habe einmal versucht eine relative einfaches Framework zur schnellen Erzeugung von verschiedenen Layouts zu erstellen. Um die Verwaltung des Framework einfach zu halten, habe ich mich dazu entschlossen die CSS-Dateien aufzuteilen. In der HTML-Datei existieren zwar nur 3 relative Verlinkungen zu den jeweiligen Ausgabedesigns, [...]]]></description>
			<content:encoded><![CDATA[<p>Immer wieder werden ähnlich bzw. gleiche Layouts beim Webdesign gebraucht. Ich habe einmal versucht eine relative einfaches Framework zur schnellen Erzeugung von verschiedenen Layouts zu erstellen.</p>
<p>Um die Verwaltung des Framework einfach zu halten, habe ich mich dazu entschlossen die CSS-Dateien aufzuteilen. In der HTML-Datei existieren zwar nur 3 relative Verlinkungen zu den jeweiligen Ausgabedesigns, aber für jedes Design sind dann weitere 3 Dateien zuständig. Um die Designs flexibel administrieren zu können, benutze ich eine Layout-Datei für die Positionierung der Boxen, eine Color-Datei für die Farbgebung und eine Typographie-Datei für die Texteinstellung.</p>
<p><span id="more-50"></span><br />
Der Aufbau der HTML-Datei ist nach den Semantik-Regel wohlgeformt und besteht aus der üblichen 3 großen Bereichen: Kopf, Körper und Fuß. Um innerhalb des Körpers mit bis zu 3 Spalten arbeiten zu können, existieren dort eine Content-, Navigations- und Marginal-Box.</p>
<p>Hier die Originalstruktur der HTML-Datei:</p>
<ol class="Sourcecode">
<li><code>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;</code></li>
<li><code>&lt;html xmlns="http://www.w3.org/1999/xhtml" lang="de xml:lang="de"&gt;</code></li>
<li><code>&lt;head&gt;&lt;/head&gt;</code></li>
<li><code>&lt;body&gt;</code></li>
<li><code>&lt;div id="header"&gt;&lt;/div&gt;</code></li>
<li><code>&lt;div id="body"&gt;</code></li>
<li><code>    &lt;div id="wrapper"&gt;</code></li>
<li><code>        &lt;div id="content"&gt;&lt;/div&gt;</code></li>
<li><code>    &lt;/div&gt;</code></li>
<li><code>    &lt;div id="navigation"&gt;&lt;/div&gt;</code></li>
<li><code>    &lt;div id="marginal"&gt;&lt;/div&gt;</code></li>
<li><code>&lt;/div&gt;</code></li>
<li><code>&lt;div id="footer"&gt;&lt;/div&gt;</code></li>
<li><code>&lt;/body&gt;</code></li>
<li><code>&lt;/html&gt;</code></li>
</ol>
<p>Um die 3 benötigten Design-Dateien in die HTML-Datei zu laden, importiert die verlinkten Style-Datei die restlichen Dateien:</p>
<ol class="Sourcecode">
<li><code>@charset "utf-8″;</code></li>
<li><code>/* Screen Style Document */</code></li>
<li></li>
<li><code>@import url("reset.css");</code></li>
<li><code>@import url("screen/layout.css");</code></li>
<li><code>@import url("screen/color.css");</code></li>
<li><code>@import url("screen/typographie.css");</code></li>
</ol>
<p>Die mit importierte Reset-Datei normalisiert die von Browsern vorgegebene Formatierung.</p>
<ol class="Sourcecode">
<li><code>body, div, dl, <abbr title="deutsch">dt. </abbr>dl, ul, ol, li, h1, h2, h3, h4, h5, h6, </code></li>
<li><code>pre, form, fieldset, input, p, blockoute, th, td </code></li>
<li><code>{margin:0;padding:0} </code></li>
<li><code>h1, h2, h3, h4, h5, h6 </code></li>
<li><code>{font-size:100%} </code></li>
<li><code>ol, ul </code></li>
<li><code>{list-style:none} </code></li>
<li><code>address, caption, cite, code, dfn, em, strong, th, var </code></li>
<li><code>{font-style:normal;font-weight:normal} </code></li>
<li><code>table </code></li>
<li><code>{border-collapse:collapse;border-spacing:0;font-size:100%}</code></li>
<li><code>fieldset, img </code></li>
<li><code>{border:0} </code></li>
<li><code>caption, th </code></li>
<li><code>{text-align:left} </code></li>
<li><code>q:before, q:after </code></li>
<li><code>{content:""}</code></li>
</ol>
<p>Ich habe schließlich, um die Flexibilität des Frameworks zu demonstrieren, für das Layout, die Farben und die Typographie jeweils 3 Versionen erstellt. Dadurch stehen mal eben 18 verschiedene Darstellungen nur alleine für das Screen-Design zur Verfügung. Wenn man nun mit dem gleichen Verfahren auch noch verschiedene Print- und SSB-Darstellungen erzeugt, hat man wirklich schnelle und effektive Fließbandarbeit.</p>
<ul>
<li><a href="http://www.re-design.de/workbook/wp-content/uploads/2007/12/layout.html">HTML-Datei</a></li>
<li><a href="http://www.re-design.de/workbook/wp-content/uploads/2007/12/screen.css">Screen-Datei</a></li>
<li><a href="http://www.re-design.de/workbook/wp-content/uploads/2007/12/layout_01.css">Layout-Datei</a></li>
<li><a href="http://www.re-design.de/workbook/wp-content/uploads/2007/12/color.css">Color-Datei</a></li>
<li><a href="http://www.re-design.de/workbook/wp-content/uploads/2007/12/typographie.css">Typographie-Datei</a></li>
<li><a href="http://www.re-design.de/workbook/wp-content/uploads/2007/12/layout-galery.zip">komplettes Set</a></li>
</ul>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2007/12/10/css-3-unterstuetzung-der-browser/" title="CSS 3-Unterst&#252;tzung der Browser">CSS 3-Unterst&#252;tzung der Browser</a></li><li><a href="http://www.re-design.de/2007/12/04/flexible-layouts-mit-css/" title="flexible Layouts mit CSS">flexible Layouts mit CSS</a></li><li><a href="http://www.re-design.de/2007/12/03/beschriftung-von-containern/" title="Beschriftung von Containern">Beschriftung von Containern</a></li><li><a href="http://www.re-design.de/2007/12/01/designer-vergessen-die-gestaltung/" title="Designer vergessen die Gestaltung">Designer vergessen die Gestaltung</a></li><li><a href="http://www.re-design.de/2007/11/11/flexibles-css-layout/" title="flexibles CSS Layout">flexibles CSS Layout</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2007/12/08/css-layouts-am-fliessband/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Icons helfen bei der Orientierung</title>
		<link>http://www.re-design.de/2007/12/07/icons-helfen-bei-der-orientierung/</link>
		<comments>http://www.re-design.de/2007/12/07/icons-helfen-bei-der-orientierung/#comments</comments>
		<pubDate>Thu, 06 Dec 2007 23:00:01 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Adventskalender 2007]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[attribut]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[optimierung]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=38</guid>
		<description><![CDATA[Die Zeiten in denen sich Verlinkungen einfach nur unterstrichen präsentierten ist schon längst vorbei. Das Kennzeichnen der unterschiedlichsten Arten von Verlinkungen gibt es schon eine ganze Weile. Spätesten seit der Einführung der Attribut-Selektoren in CSS 2.1 stand der Verwendung von Icons für spezielle Verlinkungen nichts mehr im Wege. Ja, ja, ich weiß das die nicht [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.re-design.de/workbook/wp-content/uploads/2007/11/icon_set.png" alt="Icon-Set" align="left" />Die Zeiten in denen sich Verlinkungen einfach nur unterstrichen präsentierten ist schon längst vorbei. Das Kennzeichnen der unterschiedlichsten Arten von Verlinkungen gibt es schon eine ganze Weile. Spätesten seit der Einführung der Attribut-Selektoren in <a href="http://www.w3.org/TR/CSS21/" title="Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification" rel="tag"><acronym titel="Cascading Style Sheets" lang="en">CSS</acronym> 2.1</a> stand der Verwendung von Icons für spezielle Verlinkungen nichts mehr im Wege.</p>
<p>Ja, ja, ich weiß das die nicht alle Browser dieses Feature unterstützen. Besonders der heutzutage noch oft verwendete <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=1e1550cb-5e5d-48f5-b02b-20b602228de6&amp;DisplayLang=en">Internet Explorer 6</a> macht dem Ganzen einen großen Strich durch die Rechnung. Aber warum müssen deswegen die Benutzer von neueren Browsern darauf verzichten? OK Schluss mit mit dem leidigen Thema der verschiedenen Browser-Versionen. Auf zu der Formatierung von schönen, manchmal auch bunten Verlinkung.</p>
<p><span id="more-38"></span></p>
<ol class="Sourcecode">
<li><code>a[href$=".pdf"], </code></li>
<li><code>a[href$=".txt"], </code></li>
<li><code>a[href$=".zip"], </code></li>
<li><code>a[href$=".mp3"], a[href$=".wma"], </code></li>
<li><code>a[href$=".mpg"], a[href$=".mpeg"],a[href$=".wmv"], </code></li>
<li><code>a[href$=".swf"], </code></li>
<li><code>a[href$=".xls"], a[href$="ods"], </code></li>
<li><code>a[href$=".doc"], a[href$="odt"], </code></li>
<li><code>a[href*="rss2"], a[href*="rss"], a[href*="feed"], </code></li>
<li><code>a[href|="mailto:"], a[href|="skype:"], a[href|="msnim:"], </code></li>
<li><code>{ </code></li>
<li><code>padding-bottom:2px; </code></li>
<li><code>padding-left:22px; </code></li>
<li><code>padding-top:2px; </code></li>
<li><code>background:transparent; </code></li>
<li><code>}</code></li>
</ol>
<p>Als erstes habe ich nur alle relevanten Links mit einem Innenabstand versehen und die Hintergrundfarbe auf transparent gestellt. Dabei bedeutet der Selektor mit dem Dollarzeichen ($) <abbr title="zum Beispiel" lang="de">z.B.</abbr> das alle Links die im <code>href</code>-Attribut mit dem angegebenen Wert enden formatiert werden. Bei der Schreibweise mit dem Stern (*) sucht man irgend ein Vorkommen des Wertes und die Kombination mit dem Pipe (|) selektiert nur Links die mit den Wert beginnen.</p>
<ol class="Sourcecode" start="start">
<li><code>a[href$=".pdf"] </code></li>
<li><code>{ </code></li>
<li><code>background: url(images/acrobat.png) no-repeat scroll left center; </code></li>
<li><code>} </code></li>
<li><code>a[href$=".txt"] </code></li>
<li><code>{ </code></li>
<li><code>background: url(images/text.png) no-repeat scroll left center; </code></li>
<li><code>} </code></li>
<li><code>a[href$=".zip"] </code></li>
<li><code>{ </code></li>
<li><code>background: url(images/archive.png) no-repeat scroll left center; </code></li>
<li><code>} </code></li>
<li><code>a[href$=".mp3"], a[href$=".wma"] </code></li>
<li><code>{ </code></li>
<li><code>background: url(images/audio.png) no-repeat scroll left center; </code></li>
<li><code>} </code></li>
<li><code>a[href$=".mpg"], a[href$=".mpeg"], a[href$=".wmv"] </code></li>
<li><code>{ </code></li>
<li><code>background: url(images/video.png) no-repeat scroll left center; </code></li>
<li><code>} </code></li>
<li><code>a[href$=".swf"] </code></li>
<li><code>{ </code></li>
<li><code>background: url(images/flash.png) no-repeat scroll left center; </code></li>
<li><code>} </code></li>
<li><code>a[href$=".xls"], a[href$=".ods"] </code></li>
<li><code>{ </code></li>
<li><code>background: url(images/table.png) no-repeat scroll left center; </code></li>
<li><code>} </code></li>
<li><code>a[href$=".doc"], a[href$=".rtf"], a[href$=".odt"] </code></li>
<li><code>{ </code></li>
<li><code>background: url(images/document.png) no-repeat scroll left center; </code></li>
<li><code>} </code></li>
<li><code>a[href*="feed"], a[href*="rss"] </code></li>
<li><code>{ </code></li>
<li><code>background: url(images/feed.png) no-repeat scroll left center; </code></li>
<li><code>} </code></li>
<li><code>a[href|="mailto:"] </code></li>
<li><code>{ </code></li>
<li><code>background: url(images/mail.png) no-repeat scroll left center; </code></li>
<li><code>} </code></li>
<li><code>a[href|="skype:"] </code></li>
<li><code>{ </code></li>
<li><code>background: url(images/skype.png) no-repeat scroll left center; </code></li>
<li><code>} </code></li>
<li><code>a[href|="msnim:"] </code></li>
<li><code>{ </code></li>
<li><code>background: url(images/messenger.png) no-repeat scroll left center; </code></li>
<li><code>}</code></li>
</ol>
<p>Danach definiere ich für jede Verlinkungsart ein Hintergrundbild, welche sind nicht wiederholt, die Ausrichtung links mittig ist und nicht mitscrollt. Fertig ist die schöne, bunte Linkwelt. Und das super Gute daran ist, dass Browser die diese Art der Selektierung nicht kennen einfach ihren gewohnten Standard zeigen und alle zufrieden sind.</p>
<p>Zum Schluss hier nochmals die Dateien zum Download:</p>
<ul>
<li><a href="http://www.er-design.de/workbook/wp-content/uploads/2007/11/icon.css" title="CSS-Datei">CSS-Datei</a></li>
<li><a href="http://www.er-design.de/workbook/wp-content/uploads/2007/11/icons.zip" title="Zip-Datei">Icons als Zip-Datei</a></li>
</ul>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2007/12/10/css-3-unterstuetzung-der-browser/" title="CSS 3-Unterst&#252;tzung der Browser">CSS 3-Unterst&#252;tzung der Browser</a></li><li><a href="http://www.re-design.de/2007/12/10/suchmaschinenoptimierung-seo/" title="Suchmaschinenoptimierung (SEO)">Suchmaschinenoptimierung (SEO)</a></li><li><a href="http://www.re-design.de/2008/04/26/dreamweaver-schulung-fr-den-solar-verlag/" title="Dreamweaver-Schulung f&#252;r den Solar Verlag">Dreamweaver-Schulung f&#252;r den Solar Verlag</a></li><li><a href="http://www.re-design.de/2008/03/01/transcending-css/" title="Transcending CSS">Transcending CSS</a></li><li><a href="http://www.re-design.de/2008/03/01/little-boxes/" title="Little Boxes">Little Boxes</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2007/12/07/icons-helfen-bei-der-orientierung/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Small Screen Browser Design</title>
		<link>http://www.re-design.de/2007/12/06/small-screen-browser-design/</link>
		<comments>http://www.re-design.de/2007/12/06/small-screen-browser-design/#comments</comments>
		<pubDate>Wed, 05 Dec 2007 22:00:45 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Adventskalender 2007]]></category>
		<category><![CDATA[optimierung]]></category>
		<category><![CDATA[2007]]></category>
		<category><![CDATA[adventskalender]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[mobiles web]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=48</guid>
		<description><![CDATA[Erst wollte ich den Artikel PDA-Design nennen, aber nachdem ich mich näher mit der Materie befasst habe wurde mir klar, dass das Thema umfangreicher ist. Trotzdem es nur spärliche Informationen über dieses Thema im Netz gibt, möchte ich es versuchen meine Erkenntnisse euch kund zu tun. Das schön am mobilem Web ist, dass es schon [...]]]></description>
			<content:encoded><![CDATA[<p>Erst wollte ich den Artikel <abbr title="Personal Digital Assistant">PDA</abbr>-Design nennen, aber nachdem ich mich näher mit der Materie befasst habe wurde mir klar, dass das Thema umfangreicher ist. Trotzdem es nur spärliche Informationen über dieses Thema im Netz gibt, möchte ich es versuchen meine Erkenntnisse euch kund zu tun.</p>
<p>Das schön am mobilem Web ist, dass es schon seit 1997 <abbr title="Wireless Application Protocol"><a href="http://de.wikipedia.org/wiki/WAP" title="Wikipedia">WAP</a></abbr> als Übertragungsprotokol und <abbr title="Wireless Markup Language"><a href="http://de.wikipedia.org/wiki/Wireless_Markup_Language" title="Wikipedia">WML</a></abbr> als Sprache gibt. Aber leider hat sich dieses nicht wirklich durchgesetzt. Seit Oktober 2001 gibt es jetzt <abbr title="Extended Hypertext Markup Language Mobil Profil"><a href="http://de.wikipedia.org/wiki/XHTML-MP" title="Wikipedia">XHTML-MP</a></abbr> als neue Sprache für das sogenannt WAP 2.0. Damit lassen sich theoretisch ganz gut Websites für mobile Endgeräte bauten. Und um das ganze auch noch nett aussehen zu lassen, gibt <abbr title="Wireless Casacading Style Sheet">WCSS</abbr>.</p>
<p><span id="more-48"></span></p>
<h3>Mobile Web Best Practices 1.0</h3>
<p>Das deutsche W3C hat dieses Jahr ein kleinen Guide herausgebracht, welches die wichtigsten Praktiken im Umgang mit dem mobilem Web herausstellt. Ich habe hier diese Punkte aufgegriffen und die dahinter stehenden Aussagen mal mit meinen eigenen Worten versucht zu erklären:</p>
<dl>
<dt><a href="http://www.w3.org/2007/02/mwbp_flip_cards#design_for_one_web"><strong>Gestalten</strong> für das Eine Web</a>  </dt>
<dt>
</dt>
<dd>Durch die kleineren Displays gerade für bei den Mobiltelefonen muss nicht nur das Design dementsprechend angepasst werden, sondern auch der eigentliche Inhalt. Durch diese Übergreifende Optimierung der Inhalte schafft man es die Kosten für die Erstellung zu minimieren und gleichzeitig mit Ausgabemedien zu unterstützen, was wiederum mehr Besucher auf die Seite bringt.  </dd>
<dt><a href="http://www.w3.org/2007/02/mwbp_flip_cards#rely_on_web_standards"><strong>Einhalten</strong> der Webstandards</a>  </dt>
<dd>Ich habe keine Ahnung wie viele unterschiedliche Mobiltelefone es weltweit gibt. Aber ich glaube fast jedes hat seine eigene Spezifikation. Ich glaube es ist noch schlimmer als bei den verschiedenen Browser, es gibt einfach noch keine Normierung. Gerade deshalb sollte man sich als Designer unbedingt an die aktuellen Standards halten und valide Dokumente erzeugen. Denn nur so kann man eine technische Zugänglichkeit gewährleisten.  </dd>
<dt><a href="http://www.w3.org/2007/02/mwbp_flip_cards#stay_away_from_known_hazards"><strong>Vermeiden</strong> von Problemen</a>  </dt>
<dd>Durch die unterschiedlichen Displaysgrößen von Mobiltelefonen ist es fast ausgeschlossen mit festen Designs zu arbeiten. In den meisten Fällen kommt man mit flexiblen Designs die sich an der Breite des Displays orientieren besser klar. Das einspaltige Layout ist z.B. heutzutage ein sehr beliebtes Design. Man sollte aber auch Popups, Frames (auch IFrames) und Image Maps vermeiden da diese in den seltensten Fällen vernünftig funktionieren.  </dd>
<dt><a href="http://www.w3.org/2007/02/mwbp_flip_cards#be_cautious_of_device_limitations"><strong>Beachten</strong> der Gerätelimits</a>  </dt>
<dd>Gerade die Unterstützung von zusätzlicher Web-Technologie kann bei vielen Geräten nicht vorausgesetzt werden. Viele unterstützen z.B. kein JavaScript. Was zur Folge hat, dass auch keine Cookies unterstützt werden. Selbst der Einsatz von speziellen Schriftarten kann schon zu Problemen führen, wenn diese im Gerät nicht installiert sind.  </dd>
<dt><a href="http://www.w3.org/2007/02/mwbp_flip_cards#optimize_navigation"><strong>Optimieren</strong> der Navigation</a>  </dt>
<dd>Alle z.Z. auf dem Markt befindlichen Geräte besitzen keine Maus. Die Navigation erfolgt in den meisten Fällen über die Tastatur oder einen Touchscreen. Man sollte deshalb auf eine möglichst einfach zu bedienende Navigation achten. Durch die Vergabe von Tastatur-Nummer für wichtige Sprungziele und Funktionen kann die Benutzbarkeit deutlich erhöht werden. Auch sollten Einstiegseiten eine möglichst einfach einzugebende <abbr title="Uniform Resource Identifiern">URI</abbr> haben und Verlinkungen zu anderen Ressourcen eine Angabe über das Format enthalten.  </dd>
<dt><a href="http://www.w3.org/2007/02/mwbp_flip_cards#check_graphics_and_colors"><strong>Prüfen</strong> von Grafik &amp; Farben</a>  </dt>
<dd>Nicht jedes Grafikformat was im Internet funktioniert kann auch auf mobilen Ausgabegeräten angezeigt werden. Hinzukommt, dass bei einigen Geräten zu große Grafiken einfach nicht angezeigt werden. Deshalb sollte man immer einen aussagekräftigen Alternativtext mit angeben. Auch ist zu beachten, dass Handys und PDAs sehr häufig im Freien benutzt werden und dadurch feine Nuancen im Bild verloren gehen.  </dd>
<dt><a href="http://www.w3.org/2007/02/mwbp_flip_cards#keep_it_small"><strong>Minimieren</strong> der Größe</a>  </dt>
<dd>Klar sollte sein, dass jeder Gewinn bei der Reduzierung von Dateigrößen zählt. Also sollte man nicht nur die Grafiken und zusätzlichen Ressourcen möglichst klein halten sondern auch die eigentliche Inhaltsseite und das dazugehörige CSS. Alles was nicht unbedingt gebraucht für die Formatierung gebraucht wird, sollte auch am besten gar nicht erst mit zum Endgerät übertragen werden.  </dd>
<dt><a href="http://www.w3.org/2007/02/mwbp_flip_cards#use_the_network_sparingly"><strong>Sparen</strong> am Datentransfer</a>  </dt>
<dd>Zusätzliche vermeidbare Übertragungen sollte man auf jeden Fall unterbinden. Zum Beispiel sind clientseitige, automatische Weiterleitungen auch über den Server regelbar. Auch können Verbindungen zu externen Ressourcen, z.B. Wetterbericht, sehr langsam sein und sollten deshalb vermieden werden.  </dd>
<dt><a href="http://www.w3.org/2007/02/mwbp_flip_cards#help_and_guide_user_input"><strong>Helfen</strong> bei Nutzereingaben</a>  </dt>
<dd>Freie Nutzereingaben können gerade bei Handys sehr umständlich sein. Besser ist es in diesem Zusammenhang wenn man hier mit Vorgaben arbeitet. Dadurch hält man die Tastendrücke relativ klein. Bei Formularfeldern hilft es den Benutzer ungemein, wenn es eine eindeutige, aussagekräftige Beschriftung existiert.  </dd>
<dt><a href="http://www.w3.org/2007/02/mwbp_flip_cards#think_of_users_on_the_go"><strong>Planen</strong> für mobile Nutzer</a>  </dt>
<dd>Anders als beim Surfen über den normalen PC, wo man sich manchmal von einer Seite zur nächsten treiben lässt, wollen die Benutzer des mobilen Webs schnell und gezielt zu ihren Informationen. In den meisten Fällen wissen sie schon wo sie die Information finden, z.B. Bahnauskunft. Deshalb sollte der Inhalt bei mobilen Angeboten immer eine klare, nutzungsorientierte Sprache haben, der Seitentitle kurz und aussagekräftig sein, wichtige Inhalte von den weniger Wichtigen stehen und die Ablenkung von eigentlichen Inhalt möglichst gering ausfallen.</dd>
</dl>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2007/12/24/alle-tuerchen-von-2007-sind-offen/" title="Alle T&#252;rchen von 2007 sind offen">Alle T&#252;rchen von 2007 sind offen</a></li><li><a href="http://www.re-design.de/2008/04/26/dreamweaver-schulung-fr-den-solar-verlag/" title="Dreamweaver-Schulung f&#252;r den Solar Verlag">Dreamweaver-Schulung f&#252;r den Solar Verlag</a></li><li><a href="http://www.re-design.de/2008/03/01/transcending-css/" title="Transcending CSS">Transcending CSS</a></li><li><a href="http://www.re-design.de/2008/03/01/little-boxes/" title="Little Boxes">Little Boxes</a></li><li><a href="http://www.re-design.de/2008/03/01/das-website-handbuch/" title="Das Website Handbuch">Das Website Handbuch</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2007/12/06/small-screen-browser-design/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Der gescannte Text</title>
		<link>http://www.re-design.de/2007/12/05/der-gescannte-text/</link>
		<comments>http://www.re-design.de/2007/12/05/der-gescannte-text/#comments</comments>
		<pubDate>Tue, 04 Dec 2007 22:00:57 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Adventskalender 2007]]></category>
		<category><![CDATA[optimierung]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[suchmaschinen]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=44</guid>
		<description><![CDATA[Fast jeder professionelle Website-Ersteller weiß, dass die Texte für das Web anderen Regeln unterworfen sind als die der Printmedien. Aber oft bekomme ich mit wie einfach der fertiger Text aus einer Broschüre genommen wird und in die HTML-Seite kopiert wird. Oft mit der Begründung, dass die Texte ja von einem professionellen Texter erstellt worden sind. [...]]]></description>
			<content:encoded><![CDATA[<p>Fast jeder professionelle Website-Ersteller weiß, dass die Texte für das Web anderen Regeln unterworfen sind als die der Printmedien. Aber oft bekomme ich mit wie einfach der fertiger Text aus einer Broschüre genommen wird und in die <acronym title="Hypertext Markup Language"><abbr title="Hypertext Markup Language">HTML</abbr></acronym>-Seite kopiert wird. Oft mit der Begründung, dass die Texte ja von einem professionellen Texter erstellt worden sind. Warum sollte man trotzdem die Texte mediengerecht aufbereiten?</p>
<p>Internetbenutzer sind meist auf der Suche nach Informationen. Sie haben dabei aber nur sehr wenig Zeit. Deshalb scannen sie die HTML-Seite nur nach wichtigen Schlagwörtern. Vergleichbar ist das mit dem Betrachten eines Plakates beim Vorbeifahren und zwar auf der Autobahn.</p>
<p><span id="more-44"></span><br />
Dieser Artikel richtet sich besonders an die Redakteure von Websites, denn meistens wird der Text nicht vom Webdesigner oder -entwickler geschrieben sondern vom Kunden bzw. von einem Mitarbeiter des Kunden. Klar versucht man als Auftragnehmer erstmal die Texte zu überarbeiten also mediengerecht aufzubereiten, aber später, gerade bei einem <abbr title="Content Management System">CMS</abbr>, ist das Sache des Kunden selbst.</p>
<h4>Schreibstil &amp; Wortwahl</h4>
<p>Wählen sie ihren Schreibstil mit Bedacht. Nichts ist schlimmer als die falsche Wahl der Worte. Es sollte klar sein, dass ein Text für eine Klassik-Website eine andere Zielgruppe hat, als die von einer Jugendzeitschrift. Und deshalb sollte auch der Schreibstil dem angepasst sein. Aber wie kann man nun den Stil der Zielgruppe herausfinden? Am besten versucht man sich in die Situation der Zielgruppe hineinzuversetzen. Das gelingt am besten in dem man sich mit Zeitungen und Zeitschriften der Zielgruppe besorgt. Auch hilft es immer wieder Sendungen im Fernsehen bzw. im Radio zu verfolgen. Nach einer relativ kurzen Zeit bekommt man ein gutes Gespür für die richtigen Worte.</p>
<p>Doch aufgepasst, wenn man sich nicht genau in dem <a href="http://de.wikipedia.org/wiki/Metier">Metier</a> auskennt merken das die Leser recht schnell. Dann lieber jemanden Fragen der aus der Szene kommt oder einen neutralen Stil benutzen.</p>
<h4>Leser sind Suchmaschinen</h4>
<p>Ähnlich wie eine Suchmaschine die Text nach Schlüsselworten absucht, machen das die Leser auch. Wenn der Leser also die HTML-Seite scannt, dann sucht er nach Wörtern die zu seiner Suchen passen. Ein kleines Beispiel: Geht man im Internet auf die Suche nach einem guten Sommerurlaub, dann sind Worte wie Reise, Urlaub, Sonne aber auch exclusiv, billig, allinclusive wohl am ehesten passend.</p>
<p>Wenn diese Worte dann auch noch möglichst früh im Text erscheinen ist die Chance dass der Betrachter weiterliest sehr hoch und das wollen wir doch eigentlich erreichen oder? Um solche Begriff im Text noch etwas mehr an Bedeutung gewinnen zu lassen, kann man sie zusätzlich entweder fett oder kursiv erscheinen lassen. Dann fallen sie noch mehr auf und Suchmaschinen finden diese Worte auch noch bedeutender. In diesem Zusammenhang sind auch Auflistungen sehr praktisch. Sie vermitteln in einer schnellen Übersicht alles wichtige.</p>
<h4>Satzbau</h4>
<p>Ich weiß zwar dass ich dazu neige ellenlange Sätze zu bilden. Und ich weiß auch dass das Falsch ist und nicht dem entspricht was ich hier gleich schreiben werden. Aber&#8230;</p>
<p>Das Lesen am Bildschirm ist sehr anstrengend und man sollte deshalb sich möglichst kurz halten. Das beinhaltet natürlich auch die Länge des Satzes selbst. Je kürzer der Satz ist um so einfacher kann er gelesen werden. Hinzu kommt noch, dass er dadurch auch verständlicher wird. Um z.B. die Verständlichkeit eines Text zu ermitteln gibt es den <a href="http://de.wikipedia.org/wiki/Lesbarkeitsindex">Lesbarkeitsindex</a> von Rudolf Flesch und über <a href="http://www.leichtlesbar.ch/html/">einen kleinen Test</a> kann man relativ gut heraus finden für welches Niveau der Text geschrieben ist.</p>
<h4>Der kurz Einstieg</h4>
<p>Jeder Text (Aufsatz) den wir schreiben hat einen klaren Aufbau. Einleitung, Hauptteil und zum Schluss eine Zusammenfassung. Bei Texten für das Internet sollte man aber so nicht unbedingt schreiben, denn dann würde man erst alles lesen müssen um das Ergebnis des Textes zu bekommen. So viel Zeit habe leider nur sehr Wenige die im Internet etwas suchen. Deshalb sollte man den Aufbau in etwa umkehren. Als erstes sollte man mit einer Zusammenfassung des Inhaltes beginnen und dann diese Zusammenfassung erklären. Die Leser im Internet wollen immer erst wissen um was es geht um dann genaueres zu erfahren. Aber selbst bei der ausführlichen Erklärung der einleitenden Zusammenfassung sollte man sich kurz halten. Steve Krug, einer der führenden Uability-Experten, schrieb in seinem Buch &#8220;<a href="http://www.amazon.de/gp/product/3826615956?ie=UTF8&amp;tag=redes01-21&amp;linkCode=as2&amp;camp=1638&amp;creative=6742&amp;creativeASIN=3826615956">Don&#8217;t make me think! Web Usability: Das intuitive Web</a><img src="http://www.assoc-amazon.de/e/ir?t=redes01-21&amp;l=as2&amp;o=3&amp;a=3826615956" style="border-style: none ! important; margin: 0px" border="0" height="1" width="1" />&#8221; folgendes: <cite>Streichen Sie die Hälfte der Wörter auf jeder Seite, und kürzen Sie dann den Rest um die Hälfte.</cite> Ein recht wahre Aussage finde ich.</p>
<p>Was gehört nur alles in eines Text und was nicht. Am besten versuchen sie die wichtigsten W-Fragen zu beantworten: wer, was, wie, wann, wo, warum und aufblähende Füllworte wie: schon, übrigens, also, noch, demnach zu vermeiden.</p>
<h4>lebendig schreiben &amp; positive Gefühle wecken</h4>
<p>Auch hier bin ich nicht unbedingt der Beste. Mit dem lebendigen Schreiben ist vor allem das Vermeiden eines Passives gemeint. Schreiben sie lieber in einer aktiven Form. Man sollte eher dem Leser direkt ansprechen, z.B. &#8220;drücke hier um den Download zu starten&#8221;. Auch helfen konkreten Beispielen, die in der Vergangenheit passiert sind, dem Leser besser sich in das Geschehen hineinzuversetzen. Bei einer Referenzliste könnten z.B. Zitate von zufriedenen Kunden neben den Projekten stehen. Dadurch wirken die Beispiele lebendiger und näher. Zugleich bekommt der Besucher der Website ein positiveres Gefühl beim Lesen, was oft zu einer glaubwürdigeren Darstellung der gesamten Website verhilft.</p>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2007/12/10/suchmaschinenoptimierung-seo/" title="Suchmaschinenoptimierung (SEO)">Suchmaschinenoptimierung (SEO)</a></li><li><a href="http://www.re-design.de/2010/08/31/website-the-lakeside-heritage-society/" title="Website &#8211; The Lakeside Heritage Society">Website &#8211; The Lakeside Heritage Society</a></li><li><a href="http://www.re-design.de/2010/08/28/website-quchu/" title="Website &#8211; Q&rsquo;uchu">Website &#8211; Q&rsquo;uchu</a></li><li><a href="http://www.re-design.de/2010/08/12/website-watermelon-ministries/" title="Website &#8211; Watermelon Ministries">Website &#8211; Watermelon Ministries</a></li><li><a href="http://www.re-design.de/2010/01/15/free-monitor-for-google/" title="Free Monitor for Google">Free Monitor for Google</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2007/12/05/der-gescannte-text/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>flexible Layouts mit CSS</title>
		<link>http://www.re-design.de/2007/12/04/flexible-layouts-mit-css/</link>
		<comments>http://www.re-design.de/2007/12/04/flexible-layouts-mit-css/#comments</comments>
		<pubDate>Mon, 03 Dec 2007 23:00:30 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Adventskalender 2007]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[flexibel]]></category>
		<category><![CDATA[grundgerüst]]></category>
		<category><![CDATA[layout]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=35</guid>
		<description><![CDATA[Websites sollten sich immer dem Benutzer anpassen, so zumindest steht es in vielen Dokumentationen über Benutzerfreundlichkeiten. Aber was ist damit eigentlich gemeint? Welche Anpassung braucht der Benutzer bzw. will er überhaupt haben? Welche ist die Richtige? Die einfachste Lösung ein Layout für die Website zu erstellen ist mit festen Größenangaben zu arbeiten. Sie ist aber [...]]]></description>
			<content:encoded><![CDATA[<p>Websites sollten sich immer dem Benutzer anpassen, so zumindest steht es in vielen Dokumentationen über Benutzerfreundlichkeiten. Aber was ist damit eigentlich gemeint? Welche Anpassung braucht der Benutzer bzw. will er überhaupt haben? Welche ist die Richtige?</p>
<p>Die einfachste Lösung ein Layout für die Website zu erstellen ist mit festen Größenangaben zu arbeiten. Sie ist aber auch am Unflexibelsten, denn das Layout kann sich dann nicht den Bedürfnissen des Betrachters anpassen. Viele heutige Design haben als Maßeinheit für ihr Layout Pixel. Der große Vorteil liegt in der genauen Platzierung von Elementen, wie z.B. Spalten oder aber auch Designelemente wie Hintergrundbilder. Der große Nachteil liegt aber auch gerade in diesen festen Größenangaben. Und hier setzen die flexiblen Design an.</p>
<p><span id="more-35"></span></p>
<h3>Probleme mit Pixeln und Prozenten</h3>
<p>Eine gute Möglichkeit ein flexibles Layout zu entwerfen und trotzdem gewisse Gestaltungsproportionen einhalten zu können besteht darin, die Maßeinheiten EM zu nutzen. Ein EM ist die einfache Größe eine Großbuchstabens. Die Maßeinheit Pixel hat den klaren Nachteil, des eine Spalte die mit 200 Pixel definiert ist immer 200 Pixel breit ist, egal ob der Betrachter seine Schrift vergrößert, weil er einen großen Monitor benutzt oder verkleinert. Nun könnte man aber die Spaltenbreite in Prozent angeben. Auch hier entsteht das gleiche Problem wie bei den Pixeln. Die Spalte bleibt immer z.B. 20% von der gesamten Browserbreite breit, auch wenn man die Schrift vergrößert oder verkleinert. Der Vorteil gegenüber dem Pixel-Layout liegt in der flexiblen Anpassung an die verschiedenen Monitorgrößen. 20% bei einer Auflösung von 1024 * 768 ist deutlich breiter als bei einer Auflösung von 800 * 600.</p>
<h3>Layout mit EM</h3>
<p>Mein Ansatz ist es nun zwar eine feste Breite wie bei der Pixelangabe zu benutzen, aber diese Breite richtet sich immer nach der Schriftgröße. Wenn also ein Betrachter bei seiner Monitorauflösung von 1280*800 die Darstellung einer Website als zu klein empfindet, dann kann es durch eine schnelle Anpassung der Schriftgröße dieses wunderbar korrigieren. Umgekehrt geht dieses natürlich auch. Ist die Website für 1024*768 optimiert und ein Betrachter besitzt nur 800*600. Dann kann er schnell und meist auch sehr einfach die Schriftgröße seines Browsers ändern und alles ist wieder bestens. In den meisten Browser kann man durch betätigen der Plus- bzw. Minustaste mit gleichzeitigen drücken der STRG-Taste die Schrift des Browsers anpassen.</p>
<h3>Wie könnte nun z.B. ein solches 3-spaltiges Layout aussehen?</h3>
<p>Als erstes möchte ich die Grundstruktur der HTML-Seite erklären. Dazu erstmal das DOM der Seite</p>
<pre>body
 +div#page
   +div#header
   | +div#head
   | +div#bar
   +div#body
   | +div#main
   | | +div#content
   | | +div#left
   | +div#right
   +div#footer</pre>
<p>Bei der Identifizierung der einzelnen Container habe ich auf Eindeutigkeit geachtet. Es sollte hoffentlich klar werden was wofür ist. Um eine schnell umsetzbare 3-Spaltigkeit zu bekommen, habe ich die linke Spalte und den eigentlichen Inhalts-Container zusammengefasst. Somit habe ich auch erreicht, dass der Inhalt noch vor den restlichen Spalten im Quelltext steht, was wiederum Suchmaschinen als angenehm empfinden, da das wichtige am Anfang steht.</p>
<h4>Das CSS-Grundgerüst</h4>
<ol class="Sourcecode">
<li><code>* {margin:0;padding:0;}</code></li>
<li><code>body {</code></li>
<li><code>font:14px/130% "Lucida Grande", "Lucida Sans Unicode", Sans-Serif;</code></li>
<li><code>background-color:#666;</code></li>
<li><code>color:#fff;</code></li>
<li><code>text-align:center;</code></li>
<li><code>}</code></li>
</ol>
<p>Hier ist nichts weiter überraschendes dabei. Erwähnen möchte ich nur, dass die gesamte Seite in der horizontalen Mitte ausgerichtet ist. Weswegen ich die Eigenschaft text-align auf center gesetzt habe.</p>
<ol class="Sourcecode">
<li><code>#page {</code></li>
<li><code>width:68em;</code></li>
<li><code>margin:0 auto;</code></li>
<li><code>text-align:left;</code></li>
<li><code>background-color:#fff;</code></li>
<li><code>color:#000;</code></li>
<li><code>}</code></li>
</ol>
<p>Die Gesamtbreite der Seite entspricht hier also 68 Großbuchstaben. Das entspricht ungefähr 120 Zeichen. Um die Seite auch mittig zu platzieren wurde der linke und rechte Außenabstand der Wert auto zugewiesen. Zusätzlich wurde der Text wieder linksbündig ausgerichtet.</p>
<ol class="Sourcecode">
<li><code>#header {</code></li>
<li><code>background:#333;</code></li>
<li><code>color:#fff;</code></li>
<li><code>height:8em;</code></li>
<li><code>}</code></li>
<li><code>#body {</code></li>
<li><code>clear:both;</code></li>
<li><code>}</code></li>
<li><code>#footer {</code></li>
<li><code>clear:both;</code></li>
<li><code>background:#333;</code></li>
<li><code>color:#fff;</code></li>
<li><code>height:3em;</code></li>
<li><code>}</code></li>
</ol>
<p>Auch die Container head, body und footer enthalten nichts überraschendes. Nur das der body- und der footer-Container mit der Eigenschaft clear und den Wert both für das Aufheben der float-Eigenschaft der vorhergehenden Container zuständig sind.</p>
<ol class="Sourcecode">
<li><code>#main {</code></li>
<li><code>float:left;</code></li>
<li><code>width:52em;</code></li>
<li><code>}</code></li>
<li><code>#left {</code></li>
<li><code>float:left;</code></li>
<li><code>width:15em;</code></li>
<li><code>}</code></li>
<li><code>#content {</code></li>
<li><code>float:right;</code></li>
<li><code>width:45em;</code></li>
<li><code>}</code></li>
<li><code>#right {</code></li>
<li><code>float:right;</code></li>
<li><code>width:15em;</code></li>
<li><code>}</code></li>
</ol>
<p>Nun formatiert man den mittleren Teil. Als erstes wird dieser in 2 Teile getrennt. Der Main-Container wird nach links gelegt und der Right-Container dementsprechend nach rechts. Zusammen ergibt sich eine Breite die gleich ist mit der Gesamtbreite des Page-Containers. Innerhalb des Main-Containers wird wiederum der Platz in 2 Spalten aufgeteilt, so dass diese Gesamtbreite der Breite des Main-Containers entspricht.</p>
<p>Zum Schluss die komplette CSS-Formatierung:</p>
<ol class="Sourcecode">
<li><code>* {margin:0;padding:0;}</code></li>
<li><code>body {</code></li>
<li><code>font:14px/130% "Lucida Grande", "Lucida Sans Unicode", Sans-Serif;</code></li>
<li><code>background-color:#666;</code></li>
<li><code>color:#fff;</code></li>
<li><code>text-align:center;</code></li>
<li><code>}</code></li>
<li><code>#page {</code></li>
<li><code>width:68em;</code></li>
<li><code>margin:0 auto;</code></li>
<li><code>text-align:left;</code></li>
<li><code>background-color:#fff;</code></li>
<li><code>color:#000;</code></li>
<li><code>}</code></li>
<li><code>#header {</code></li>
<li><code>background:#333;</code></li>
<li><code>color:#fff;</code></li>
<li><code>height:8em;</code></li>
<li><code>}</code></li>
<li><code>#body {</code></li>
<li><code>clear:both;</code></li>
<li><code>}</code></li>
<li><code>#footer {</code></li>
<li><code>clear:both;</code></li>
<li><code>background:#333;</code></li>
<li><code>color:#fff;</code></li>
<li><code>height:3em;</code></li>
<li><code>}</code></li>
<li><code>#main {</code></li>
<li><code>float:left;</code></li>
<li><code>width:52em;</code></li>
<li><code>}</code></li>
<li><code>#left {</code></li>
<li><code>float:left;</code></li>
<li><code>width:15em;</code></li>
<li><code>}</code></li>
<li><code>#content {</code></li>
<li><code>float:right;</code></li>
<li><code>width:45em;</code></li>
<li><code>}</code></li>
<li><code>#right {</code></li>
<li><code>float:right;</code></li>
<li><code>width:15em;</code></li>
<li><code>}</code></li>
</ol>
<p>und die Downloads der Dateien:</p>
<ul>
<li><a href="http://www.re-design.de/workbook/wp-content/uploads/2007/12/demo.html" title="HTML-Datei">HTML-Datei</a></li>
<li><a href="http://www.re-design.de/workbook/wp-content/uploads/2007/12/style.css" title="CSS-Datei">CSS-Datei</a></li>
<li><a href="http://www.re-design.de/workbook/wp-content/uploads/2007/12/komplett.zip" title="komplettes Set">komplettes Set</a></li>
</ul>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2007/11/11/flexibles-css-layout/" title="flexibles CSS Layout">flexibles CSS Layout</a></li><li><a href="http://www.re-design.de/2007/12/10/css-3-unterstuetzung-der-browser/" title="CSS 3-Unterst&#252;tzung der Browser">CSS 3-Unterst&#252;tzung der Browser</a></li><li><a href="http://www.re-design.de/2007/12/08/css-layouts-am-fliessband/" title="CSS Layouts am Fließband">CSS Layouts am Fließband</a></li><li><a href="http://www.re-design.de/2007/12/03/beschriftung-von-containern/" title="Beschriftung von Containern">Beschriftung von Containern</a></li><li><a href="http://www.re-design.de/2008/04/26/dreamweaver-schulung-fr-den-solar-verlag/" title="Dreamweaver-Schulung f&#252;r den Solar Verlag">Dreamweaver-Schulung f&#252;r den Solar Verlag</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2007/12/04/flexible-layouts-mit-css/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Beschriftung von Containern</title>
		<link>http://www.re-design.de/2007/12/03/beschriftung-von-containern/</link>
		<comments>http://www.re-design.de/2007/12/03/beschriftung-von-containern/#comments</comments>
		<pubDate>Sun, 02 Dec 2007 23:00:04 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Adventskalender 2007]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[attribut]]></category>
		<category><![CDATA[branding]]></category>
		<category><![CDATA[Container]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[gestaltung]]></category>
		<category><![CDATA[grundgerüst]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[navigation]]></category>
		<category><![CDATA[tagline]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/2007/12/03/beschriftung-von-containern/</guid>
		<description><![CDATA[Fast jeder kennt wohl das Problem nichts mehr zu finden wenn es nicht richtig beschriftet wurde. Auch ich suche immer wieder nach den verschiedensten Dinge und das nicht nur im Web oder auf meinen Schreibtisch, sondern auch im gesamten Büro. Aber darum soll es in diesem Artikel nicht gehen. Viel mehr möchte ich mal kurz [...]]]></description>
			<content:encoded><![CDATA[<p>Fast jeder kennt wohl das Problem nichts mehr zu finden wenn es nicht richtig beschriftet wurde. Auch ich suche immer wieder nach den verschiedensten Dinge und das nicht nur im Web oder auf meinen Schreibtisch, sondern auch im gesamten Büro. Aber darum soll es in diesem Artikel nicht gehen. Viel mehr möchte ich mal kurz meine Gedanken über die sinnvolle Benennung von Containern beim Layouten los werden.</p>
<p>Eine sinnvolle und immer wiederkehrende Beschriftung von Container man natürlich nicht nur beim Arbeiten in einem Team, sondern bringt auch für einen selbst mehr Sicherheit. Dabei sollte immer darauf geachtet werden den HTML-Code nicht unnötig aufzublähen. Gerade im mobilen Web sind kline Datenmengen Gold wert.</p>
<p><span id="more-42"></span></p>
<h4>Welche Komponenten können bei einem Weblayout vorkommen?</h4>
<p>Da wäre wohl als erstes der <strong>Kopfbereich</strong> einer Website zu nennen. Dann gibt es auf jeden Fall noch die <strong>Navigationen</strong>, natürlich den eigentlichen <strong>Inhalt</strong> und als Abschluss benutzen viel Designer einen <strong>Fußbereich</strong>. Jeder von diesen Bereichen besitzt dann natürlich noch Unterbereiche.</p>
<p>Doch bevor ich die einzelnen Bereiche definiere, lege ich einen <code>&lt;div&gt;</code>-Container mit einem <code>id</code>-Attribute an, um die gesamte Markup besser koordinieren zu können.</p>
<h5>Kopfbereich</h5>
<p>Fangen wir mal mit dem Kopfbereich an. Hier sollte die allgemeinen, aber wichtigsten Information bezüglich der Website stehen. Das wäre dann wohl der Website-Titel und die Tagline. Diese kennzeichne ich immer mit den <code>&lt;h1&gt;</code>- und <code>&lt;h2&gt;</code>-Tags, um ihre Wichtigkeit zu verdeutlichen. Die Tagline, also der Untertitel der Website hat in den meisten Fällen irgendetwas mit einer Aussage zu tun, weswegen ich dafür oft den <code>&lt;blockquote&gt;</code>-Tag benutze. Auch könnte hier schon eine erste Aufzählung der Bereiche der Website aufgelistet werden. Meist werden diese Bereiche auch noch mit verlinkt. Über den Kopfbereich bekommt die einzelne HTML-Seite seine Markierung zu welcher Website sie gehört. Man nennt das auch das Branding.</p>
<h5>Navigationen</h5>
<p>Auf einer HTML-Seite gibt es verschiedene Navigationen, weshalb ich sie immer mit einem <code>class</code>-Attribute zusammenfasse. Trotzdem hat jede Navigation ihre eigene Semantik und deshalb erweitere ich jede Navigation mit einem <code>id</code>-Attribute. Doch welche Tags benutze ich bei den verschiedene Navigationen? Das kommt ganz auf ihren Inhalt an.</p>
<p>Um bei einer Sprachsteuerung bzw. einem PDA-Design schnell an die richtigen Stellen zu springen beginnt bei mir jeder &lt;body&gt;-Tag mit einer <strong>Skip-Navigation</strong> hier verwende ich oft eine unsortierte List, da ja auch der Inhalt der Liste keiner bestimmten Sortierung folgt.</p>
<p>Auch die <strong>Servicenavigation</strong>, wo es die Möglichkeit gibt schnell zur Kontaktseite, zum Impressum bzw. zum Inhaltsverzeichnis zu springen, folgt keiner bestimmten Reihenfolge, weswegen ich auch da einen <code>&lt;ul&gt;</code>-Tag bevorzuge.</p>
<p>In der <strong>Pfadnavigation</strong> wird symbolisch der Weg nach oben zur Homepage definiert. Um die Verschachtelung auch semantisch richtig zu definieren reicht eine unsortierte, in sich verschachtelte Liste mit immer nur einem Eintrag pro Ebene.</p>
<p>Die <strong>Bereichsnavigation</strong> hat natürlich immer ein bestimmte Reihenfolge, auch wenn der Benutzer nicht unbedingt diese befolgen muss. Deshalb kann es nur eine sortierte Liste sein.</p>
<p>Auch sollte am Ende eines jeden Inhaltes die Verweise in einer Liste nochmals zusammengefasst werden. Hier kann man wunderbar das Auftauchen im Text als Sortierung der <strong>Fußnoten</strong> in einer sortierten Liste mit einem <code>&lt;ol&gt;</code>-Tag nutzen.</p>
<p>Alle weiteren Navigationen, wie z.B. die Sprachauswahl, sind dann fast immer unsortiert und somit eignet sich der <code>&lt;ul&gt;</code>-Tag ideal dafür.</p>
<h5>Inhalt</h5>
<p>Leider würde es den Rahmen des Artikels sprengen, wenn alle möglichen Arten von Inhalten aufzählen würde. Vielleicht werde ich darüber später einen separaten Artikel schreiben. Deshalb an dieser Stelle nur soviel, idealer Weise fasst man diesen Bereich mit einem <code>&lt;div&gt;</code>-Container zusammen um gezielt Formatierung nur dort anbringe nur können.</p>
<h5>Fußbereich</h5>
<p>Im Fußbereich können Kontaktangaben bzw. rechtliche Hinweise oder auch eine weitere Servicenavigation untergebracht werden. Um die unterschiedlichsten Contaner ideal zusammenzufassen lohnt sich wiederum ein <code>&lt;div&gt;</code>-Container.</p>
<h4>Beispiel</h4>
<ol class="Sourcecode">
<li><code>&lt;body dir="ltr"&gt;</code></li>
<li><code>&lt;div id="page"&gt;</code></li>
<li><code>&lt;ul id="skip" class="navigation"&gt;</code></li>
<li><code>&lt;li&gt;&lt;a href="#area"&gt;Navigation&lt;/a&gt;&lt;/li&gt;</code></li>
<li><code>&lt;li&gt;&lt;a href="#content"&gt;Inhalt&lt;/a&gt;&lt;/li&gt;</code></li>
<li><code>&lt;li&gt;&lt;a href="#service"&gt;Service&lt;/a&gt;&lt;/li&gt;</code></li>
<li><code>&lt;li&gt;&lt;a href="#footer"&gt;Adressangabe und rechlicher Hinweis&lt;/a&gt;&lt;/li&gt;</code></li>
<li><code>&lt;/ul&gt;</code></li>
<li><code>&lt;div id="branding"&gt;</code></li>
<li><code>&lt;h1&gt;Websitetiel&lt;/h1&gt;</code></li>
<li><code>&lt;h2&gt;Tagline&lt;/h2&gt;</code></li>
<li><code>&lt;ol id="area" class="navigation"&gt;</code></li>
<li><code>&lt;li&gt;&lt;a href="#"&gt;Hauptkategorie&lt;/a&gt;&lt;/li&gt;</code></li>
<li><code>&lt;li&gt;&lt;a href="#"&gt;Hauptkategorie&lt;/a&gt;</code></li>
<li><code>&lt;ol&gt;</code></li>
<li><code>&lt;li&gt;&lt;a href="#"&gt;Unterkategorie&lt;/a&gt;&lt;/li&gt;</code></li>
<li><code>&lt;li&gt;&lt;a href="#"&gt;Unterkategorie&lt;/a&gt;&lt;/li&gt;</code></li>
<li><code>&lt;/ol&gt;</code></li>
<li><code>&lt;/li&gt;</code></li>
<li><code>&lt;li&gt;&lt;a href="#"&gt;Hauptkategorie&lt;/a&gt;</code></li>
<li><code>&lt;ol&gt;</code></li>
<li><code>&lt;li&gt;&lt;a href="#"&gt;Unterkategorie&lt;/a&gt;</code></li>
<li><code>&lt;ol&gt;</code></li>
<li><code>&lt;li&gt;&lt;a href="#"&gt;Unterkategorie&lt;/a&gt;&lt;/li&gt;</code></li>
<li><code>&lt;li&gt;&lt;a href="#"&gt;Unterkategorie&lt;/a&gt;&lt;/li&gt;</code></li>
<li><code>&lt;/ol&gt;</code></li>
<li><code>&lt;/li&gt;</code></li>
<li><code>&lt;li&gt;&lt;a href="#"&gt;Unterkategorie&lt;/a&gt;&lt;/li&gt;</code></li>
<li><code>&lt;/ol&gt;</code></li>
<li><code>&lt;/li&gt;</code></li>
<li><code>&lt;/ol&gt;</code></li>
<li><code>&lt;/div&gt;</code></li>
<li><code>&lt;div id="body"&gt;</code></li>
<li><code>&lt;ul id="path" class="navigation"&gt;</code></li>
<li><code>&lt;li&gt;&lt;a href="#"&gt;Startseite&lt;/a&gt;</code></li>
<li><code>&lt;ul&gt;</code></li>
<li><code>&lt;li&gt;&lt;a href="#"&gt;Hauptkategorie&lt;/a&gt;</code></li>
<li><code>&lt;ul&gt;</code></li>
<li><code>&lt;li&gt;Unterkategie&lt;/li&gt;</code></li>
<li><code>&lt;/ul&gt;</code></li>
<li><code>&lt;/li&gt;</code></li>
<li><code>&lt;/ul&gt;</code></li>
<li><code>&lt;/li&gt;</code></li>
<li><code>&lt;/ul&gt;</code></li>
<li><code>&lt;div id="content"&gt;</code></li>
<li><code>&lt;h2&gt;Seitentitel&lt;/h2&gt;</code></li>
<li><code>&lt;p&gt;Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vestibulum rhoncus ligula non nisi. Proin mauris ligula, dignissim vitae, aliquet at, luctus eu, nisl. Aliquam eget justo non augue adipiscing pretium. Vestibulum eget lacus eget massa varius viverra. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Integer mi. Donec et justo id erat pulvinar lobortis. Suspendisse faucibus, risus sed dictum viverra, orci sapien malesuada arcu, pharetra aliquet ligula libero sit amet magna. Sed non neque. Aliquam mi. Cras in tortor. Nunc feugiat. Aliquam dolor pede, tristique et, accumsan id, semper eget, sapien. Proin non metus nec arcu sollicitudin gravida. Vestibulum feugiat tristique velit. Vestibulum tincidunt nisl a nisl. Ut feugiat pede nec tortor.&lt;/p&gt;</code></li>
<li><code>&lt;p&gt;Suspendisse adipiscing euismod metus. Ut in urna. Sed tortor. Phasellus pellentesque turpis ornare tortor. Praesent ac nunc. In hac habitasse platea dictumst. Ut pulvinar tempor leo. Aenean dignissim, enim vel tristique adipiscing, enim mauris porta nisl, eget faucibus risus massa ac ante. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Quisque quis nisl non neque ornare vulputate.&lt;/p&gt;</code></li>
<li><code>&lt;h3&gt;Hauptüberschrift&lt;/h3&gt;</code></li>
<li><code>&lt;p&gt;Pellentesque suscipit odio at sapien. Nullam iaculis vehicula augue. Aenean sodales viverra massa. In in leo. Morbi venenatis ullamcorper ipsum. Aliquam lobortis, eros quis pulvinar porta, felis libero sodales enim, sit amet placerat tortor felis nec sem. Integer dapibus ultrices quam. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis accumsan. Fusce ac ligula.&lt;/p&gt;</code></li>
<li><code>&lt;h4&gt;Unterüberschrift&lt;/h4&gt;</code></li>
<li><code>&lt;p&gt;Phasellus pellentesque massa at turpis. Vestibulum libero orci, fringilla sit amet, tempus sed, imperdiet vitae, nunc. Sed mollis elit at arcu. Proin euismod porttitor urna. Sed vitae tortor. Maecenas et nisi vitae pede tincidunt lacinia. Vestibulum adipiscing pede porttitor diam. Curabitur eleifend justo quis purus. Duis pretium dui sed elit. Cras laoreet lorem a ipsum.&lt;/p&gt;</code></li>
<li><code>&lt;p&gt;Sed cursus facilisis metus. Vestibulum placerat, eros porta euismod aliquam, lorem velit hendrerit ligula, posuere tempor metus nisl nec arcu. Aliquam quis purus. Sed orci. Donec tincidunt posuere lorem. Aliquam ultricies turpis vitae diam. Maecenas eleifend mi in ante. Mauris commodo lorem quis lacus. Phasellus semper scelerisque nunc. Suspendisse sollicitudin odio in nisi.&lt;/p&gt;</code></li>
<li><code>&lt;h6&gt;weiterführende Links&lt;/h6&gt;</code></li>
<li><code>&lt;ol id="footnote" class="navigation"&gt;</code></li>
<li><code>&lt;li&gt;&lt;a href="#"&gt;Fußnote&lt;/a&gt;&lt;/li&gt;</code></li>
<li><code>&lt;li&gt;&lt;a href="#"&gt;Fußnote&lt;/a&gt;&lt;/li&gt;</code></li>
<li><code>&lt;li&gt;&lt;a href="#"&gt;Fußnote&lt;/a&gt;&lt;/li&gt;</code></li>
<li><code>&lt;/ol&gt;</code></li>
<li><code>&lt;/div&gt;</code></li>
<li><code>&lt;/div&gt;</code></li>
<li><code>&lt;ul id="service" class="navigation"&gt;</code></li>
<li><code>&lt;li&gt;&lt;a href="#"&gt;Kontakt&lt;/a&gt;&lt;/li&gt;</code></li>
<li><code>&lt;li&gt;&lt;a href="#"&gt;Impressum&lt;/a&gt;&lt;/li&gt;</code></li>
<li><code>&lt;li&gt;&lt;a href="#"&gt;Inhaltsverzeichnis&lt;/a&gt;&lt;/li&gt;</code></li>
<li><code>&lt;/ul&gt;</code></li>
<li><code>&lt;div id="footer"&gt;</code></li>
<li><code>&lt;p&gt;Adressangabe und rechtlicher Hinweis&lt;/p&gt;</code></li>
<li><code>&lt;p&gt;&lt;a href="#page"&gt;nach oben&lt;/a&gt;&lt;/p&gt;</code></li>
<li><code>&lt;/div&gt;</code></li>
<li><code>&lt;/div&gt;</code></li>
<li><code>&lt;/body&gt;</code></li>
</ol>
<h4>Download der Dateien</h4>
<ul>
<li><a href="http://www.er-design.de/workbook/wp-content/uploads/2007/11/container-labels.html" title="HTML-Datei">HTML-Datei</a></li>
</ul>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2007/12/02/deutendes-design-der-inhalte/" title="Deutendes Design der Inhalte">Deutendes Design der Inhalte</a></li><li><a href="http://www.re-design.de/2007/12/08/css-layouts-am-fliessband/" title="CSS Layouts am Fließband">CSS Layouts am Fließband</a></li><li><a href="http://www.re-design.de/2007/12/04/flexible-layouts-mit-css/" title="flexible Layouts mit CSS">flexible Layouts mit CSS</a></li><li><a href="http://www.re-design.de/2008/02/11/css-import-macht-probleme/" title="CSS Import macht Probleme">CSS Import macht Probleme</a></li><li><a href="http://www.re-design.de/2008/01/28/jahresabonnement-des-spotlight-verlag/" title="Jahresabonnement des Spotlight Verlag">Jahresabonnement des Spotlight Verlag</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2007/12/03/beschriftung-von-containern/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Deutendes Design der Inhalte</title>
		<link>http://www.re-design.de/2007/12/02/deutendes-design-der-inhalte/</link>
		<comments>http://www.re-design.de/2007/12/02/deutendes-design-der-inhalte/#comments</comments>
		<pubDate>Sat, 01 Dec 2007 22:00:43 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Adventskalender 2007]]></category>
		<category><![CDATA[optimierung]]></category>
		<category><![CDATA[branding]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[navigation]]></category>
		<category><![CDATA[tagline]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=37</guid>
		<description><![CDATA[Beim Planen eines Internetauftritts wird sehr häufig immer wieder ein und der selbe Fehler gemacht. Man versucht ein Konzept für die Präsentation zu erstellen. Um aber wirklich erfolgreiche Websites zu kreieren sollte man eher den Schwerpunkt auf den inhaltsbezogenen Designprozess legen und nicht auf die optische Wiedergabe von Informationen. Klar Optik ist wichtig aber &#8220;Content [...]]]></description>
			<content:encoded><![CDATA[<p>Beim Planen eines Internetauftritts wird sehr häufig immer wieder ein und der selbe Fehler gemacht. Man versucht ein Konzept für die Präsentation zu erstellen. Um aber wirklich erfolgreiche Websites zu kreieren sollte man eher den Schwerpunkt auf den inhaltsbezogenen Designprozess legen und nicht auf die optische Wiedergabe von Informationen. Klar Optik ist wichtig aber &#8220;<strong>Content ist King</strong>&#8220;. Die Besucher kommen schließlich wegen den Informationen auf die Website und nicht weil sie schön aussieht.</p>
<p>In den letzten Jahren hat ein Umdenken stattgefunden, in dem man immer mehr das optische Design von der inhaltlichen Struktur trennt. Nicht nur das man jetzt fast ausschließlich mit externen CSS-Dateien arbeitet. Sondern man versucht auch den Inhalt in seiner Bedeutung zu strukturieren. Das ist die <strong>Semantic</strong>.</p>
<p><span id="more-37"></span></p>
<h3>Das Branding</h3>
<p>Fast jede Website besitzt einen Titel. Bei Firmen ist dies fast immer gleichgesetzt mit dem Firmennamen. Zusätzlich besitzen solche Titel auch immer ein Motto oder Slogan, die sogenannt <strong>Tagline</strong>. Der Site-Titel sollte, weil es sich ja um eines der wichtigsten Elemente auf der ganzen Website handelt, auf jeden Fall in einen <code>&lt;h1&gt;</code>-Tag gelegt werden. Bei der Tag-Line handelt es sich dann meist um eine Art Zitat, auch wenn es nicht immer eine Quelle dazu gibt. Also sollte man dafür den <code>&lt;blockquote&gt;</code>-Tag benutzen. Beide Elemente können dann wunderbar mit einen <code>&lt;div&gt;</code>-Kontainer gruppiert werden.</p>
<h3>Die Navigation</h3>
<p>Es gibt verschiedene Arten von Navigationen. Für mich gibt es 3 wichtige Navigationen.</p>
<dl>
<dt><strong>Inhaltsnavigation</strong> </dt>
<dd>In ihr werden alle Inhalte die auf der Website präsentiert werden abgebildet und gruppiert. Ähnlich wie in einer Dokumentation oder einem Buch sollte die verschiedenen Inhalte einem roten Faden folgen. Weswegen ich für eine geordnete Liste plediere. </dd>
<dt><strong>Servicenavigation</strong> </dt>
<dd>Neben den reinen Inhaltsseiten gibt es weitere Seiten auf der Website die sich um die Kommunikation, Bedienung der Website und dem Rechtlichen kümmern. Hier meine ich z.B.:</p>
<ul class="inlineList">
<li> Startseite,</li>
<li>Kontakt,</li>
<li>Imperssum,</li>
<li>Inhaltsverzeichniss,</li>
<li>Hilfe,</li>
<li>Glossar und</li>
<li>Stichwortverzeichniss.</li>
</ul>
<p>Hier benutze ich meistens eine ungeordnete Liste.</p>
</dd>
<dt><strong>Pfadnavigation</strong> </dt>
<dd>Gerade bei komplexeren Websites bzw. Website mit einer Verschachtelungstiefe von mehr als 2 Ebenen sollte der Betrachter über eine Brotkrümelspur, wie bei Hänsel und Gretel, zur Startseite also nach hause gebracht werden. Dabei eignet sich eine ungeordnete, ineinander verschachtelte Liste am besten. </dd>
</dl>
<h3>Der Inhalt</h3>
<p>Der Inhalt sollte auf jeden Fall mit dem Seitentitel beginnen und über der <code>&lt;h2&gt;</code>-Tag als zweit wichtigstes Element definiert werden. Alle weiteren Strukturierungen sind dann je nach Inahlt abhängig. Die häufigsten verwendeten Tag sind in diesem Zusammenhang:</p>
<ul>
<li><code>&lt;p&gt;</code>,</li>
<li><code>&lt;img&gt;</code>,</li>
<li><code>&lt;ul&gt;</code>, <code>&lt;ol&gt;</code>, <code>&lt;dl&gt;</code>,</li>
<li><code>&lt;blockquote&gt;</code>,</li>
<li><code>&lt;table&gt;</code> und</li>
<li><code>&lt;form&gt;</code></li>
</ul>
<h3>Die Seiteninformationen</h3>
<p>Meistens legt man solche Informationen an das Ende der <acronym title="Hypertext Markup Language" lang="en">HTML</acronym>-Seite. Dazu gehören z.B. das Copyright, ein rechtlicher Hinweis, Kontaktmöglichkeiten und vielleicht ein paar Bedienmöglichkeiten, wie:</p>
<ul>
<li>&#8220;nach oben&#8221; und</li>
<li>&#8220;Seite drucken&#8221;</li>
</ul>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2007/12/03/beschriftung-von-containern/" title="Beschriftung von Containern">Beschriftung von Containern</a></li><li><a href="http://www.re-design.de/2008/04/26/dreamweaver-schulung-fr-den-solar-verlag/" title="Dreamweaver-Schulung f&#252;r den Solar Verlag">Dreamweaver-Schulung f&#252;r den Solar Verlag</a></li><li><a href="http://www.re-design.de/2008/03/01/transcending-css/" title="Transcending CSS">Transcending CSS</a></li><li><a href="http://www.re-design.de/2008/03/01/little-boxes/" title="Little Boxes">Little Boxes</a></li><li><a href="http://www.re-design.de/2008/03/01/das-website-handbuch/" title="Das Website Handbuch">Das Website Handbuch</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2007/12/02/deutendes-design-der-inhalte/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Designer vergessen die Gestaltung</title>
		<link>http://www.re-design.de/2007/12/01/designer-vergessen-die-gestaltung/</link>
		<comments>http://www.re-design.de/2007/12/01/designer-vergessen-die-gestaltung/#comments</comments>
		<pubDate>Fri, 30 Nov 2007 22:00:04 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Adventskalender 2007]]></category>
		<category><![CDATA[mediales internet]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[gestaltung]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=33</guid>
		<description><![CDATA[Bei der Entwicklung eines Seitendesign für Websites müssen immer wieder die gleiche Strukturen von einen Webdesigner vordefiniert werden. Dabei legt er nicht nur auszuwählende Schriftart und Schriftgröße fest, sondern kümmert sich auch um die Farbgebung. Oft werden aber viele Dinge, die auf in einem HTML-Dokument vorkommen, schlicht weg vergessen. Oft habe ich in den letzten [...]]]></description>
			<content:encoded><![CDATA[<p>Bei der Entwicklung eines Seitendesign für Websites müssen immer wieder die gleiche Strukturen von einen Webdesigner vordefiniert werden. Dabei legt er nicht nur auszuwählende Schriftart und Schriftgröße fest, sondern kümmert sich auch um die Farbgebung. Oft werden aber viele Dinge, die auf in einem <acronym title="Hypertext Markup Language" lang="en">HTML</acronym>-Dokument vorkommen, schlicht weg vergessen.</p>
<p>Oft habe ich in den letzten Jahren erlebt, dass Designer vergessen sich Gedanken über die Gestaltung von Formularen, Tabellen oder aber auch von Listen innerhalb des Inhaltsbereiches zu machen. Sie gestalten immer sehr schöne Websites mit tollen Layoutbildern und Dekorationsobjekten. Machen tolle grafische Aufteilungen. Vergessen aber zu definieren wo sich der Seitentitel befindet und wie er aussehen soll. Sie stellen sich auch selten die Frage wie in der 3. oder 4. Ebene der Hauptnavigation die Menüpunkte gestaltet werden sollen. Ganz zu schweigen von der Definition wie bei einem Rollover die Links aussehen sollen.</p>
<p><span id="more-33"></span><br />
Diese kleine Dokumentation soll ein Bewusstsein für die restlichen, genauso wichtigen Elemente einer Website schaffen.</p>
<h4>Mögliche Inhalte eines Dokumentes</h4>
<p>Auf Websites findet man immer wieder ein und die selben Arten Inhalte zu strukturieren. Hier die häufigsten:</p>
<ul>
<li>einfacher Text mit Bildern</li>
<li>Zitate</li>
<li>Tabellen</li>
<li>Listen</li>
<li>Formulare</li>
</ul>
<h5>Einfache Texte</h5>
<p>Am häufigsten wird wohl der einfache Text als Transportmittel für Inhalte genutzt. Gerade Suchmaschinen finden in einem guten Text viele Informationen, die für gute Platzierung wichtig sind. Dabei sollte man sich bei der Strukturierung des Textes auf einfache, nicht zu lange Absätze beschränken. Diese Absätze sind dann sinnvoller Weise mit Überschriften gegliedert. Falls es wichtig sein sollte innerhalb eines solchen Textes Informationen hervorzuheben, dann kann dieses durch die Auszeichnung <code>&lt;strong&gt;</code> für kräftig und <code>&lt;em&gt;</code> für einfühlsam getan werden.</p>
<p>Neben diesen Auszeichnungen können innerhalb des Textes natürlich auch noch Querverweise zu weiterführenden Informationen innerhalb und außerhalb der eigenen Website gesetzt werden.</p>
<p>Vermeiden sollte man das Unterstreichen von Textpassagen, denn im Internet sehen viele Menschen unterstrichenen Text als Verweise an und deshalb wird es zu Verwirrung kommen können.</p>
<h5>Text mit Bildern</h5>
<p>Immer wenn der einfache, geschriebene Text nicht ausreicht um den Inhalt wiederzugeben, könnte man versuchen das durch aussagekräftige Bilder zu unterstützen. Dabei ist aber zu beachten, dass nicht jedes Ausgabegerät Bilder auch anzeigen kann. Weswegen jedes Bild wiederum eine alternative Beschreibung des Bildinhaltes braucht. Dass heißt das jeder <code>&lt;img&gt;</code>-Tag mit einem <code>alt</code>-Attribute ergänzt werden sollte. Hierbei sollte darauf geachtet werden, dass nicht nur der Bildinhalt mit einem kurzen Kommentarwort beschrieben wird, sondern man sollte eher eine tatsächliche Bildbeschreibung hinterlassen, so das jeder, also auch diejenigen die das Bild nicht sehen können, den Bildinhalt versteht.</p>
<p>Zusätzlich finde ich es gerade bei Zeichnungen sehr gut, wenn das Bild eine Bildunterschrift bekommt, wo genau erklärt wird, was diese Zeichnung darstellt. Ich verwende dabei immer eine <code>&lt;div&gt;</code>-Tag der das Bild und einen kleinen Absatz umschließt. Alternativ kann man auch über das <code>title</code>-Attribute eine Bildunterschrift einbinden.</p>
<ol class="Sourcecode">
<li><code>&lt;div class="image"&gt;</code></li>
<li><code>&lt;img src="pfad/zum/bild.gif" alt="Hier befindet sich die Bildbeschreibung." title="Bildunterschrift" /&gt;</code></li>
<li><code>&lt;p&gt;Abb. 1: Die Bildunterschrift&lt;/p&gt;</code></li>
<li><code>&lt;/div&gt; </code></li>
</ol>
<h5>Zitate</h5>
<p>Immer wieder werden innerhalb von Texten andere Texte zitiert. Um diese Zitate auch korrekt auszuzeichnen, gibt es 2 Auszeichungstags. Um ein Zitat innerhalb eines Fließtextes zu benutzen, kann man den <code>&lt;q&gt;</code>-Tag einsetzen. Sollte aber das Zitate über mehrere Zeilen oder gar einen Absatz umfassen dann ist der <code>&lt;blockquote&gt;</code>-Tag besser.</p>
<ol class="Sourcecode">
<li><code>&lt;blockquote src="http://quelle.url"&gt;</code></li>
<li><code>&lt;p&gt;Das eigentliche Zitat&lt;/p&gt;</code></li>
<li><code>&lt;/blockquote&gt;</code></li>
</ol>
<p>Neben den einfachen Benutzen dieser Tags sollte auch immer die Quelle des Zitats genannt werden. Die Angabe, woher man dieses Zitat hat, kann in einem <code>src</code>-Attribute angeben werden. Auch kann man innerhalb eines <code>&lt;blockquote&gt;</code>-Tage den <code>&lt;cite&gt;</code>-Tag benutzen um genauer den Autor bzw. die Quelle des Zitats zu definieren.</p>
<p><acronym title="Cascading Stylesheet" lang="en">CSS</acronym> bietet hier einige Möglichkeiten an das eigentliche Zitat mit dazugehörigen Anführungszeichen zu erweitern. Mit den Pseudoklasse :before und :after kann man den Quellcode erweitern. Ein Beispiel:</p>
<ol class="Sourcecode">
<li><code>blockquote p:before {</code></li>
<li><code>content: open-quote;</code></li>
<li><code>}</code></li>
<li><code>blockquote p:after {</code></li>
<li><code>content: close-quote;</code></li>
<li><code>}</code></li>
</ol>
<p>In diesem Beispiel wird vor dem Zitatsabsatz das öffende Anführungszeichen und danach das schließende Anführungszeichen hinzugefügt.</p>
<h5>Tabellen</h5>
<p>Es gibt Situationen in denen eine tabellarische Darstellung besser ist als jeder ausgeschriebene Text. Dabei vergessen aber viele die vielen Möglichkeiten die Tabellen bieten. Es wäre zu viel hier alles aufzuzählen. Oft wird aber das <code>summary</code>-Attribut vergessen. In diesem kann manbei einer sehr komplexen Tabelle eine Beschreibung hinterlegen, die eine Zusammenfassung bzw. Erklärung der Tabelle beinhaltet.</p>
<p>Auch werden die <code>&lt;thead&gt;</code>, <code>&lt;tbody&gt;</code> und <code>&lt;tfood&gt;</code>-Tags meines Erachtens zu wenig genutzt, obwohl sie doch eine Fülle an Möglichkeiten bieten. Zum Beispiel kann man mit <acronym title="Cascading Stylesheet" lang="en">CSS</acronym> den Bodybereich der Tabelle scrollbar machen, was gerade bei langen Tabellen sehr nützlich ist. Auch sollen die Browser beim Ausdruck von langen Tabellen den Kopf- und den Fußbereich auch jeden ausgedruckte Seite mit anzeigen, um die Übersicht der Spalten zu verbessern. Denkbar wären auch 2 scrollbare Bodybereiche für Vergleiche.</p>
<p>Tabellen bieten somit eine große Fülle an gestalterischen Freiraum an, was aber meistens von Designer vergessen wird.</p>
<p>Dabei ist aber zu achten, dass der <code>&lt;tfood&gt;</code>-Tag immer vor dem <code>&lt;tbody&gt;</code>-Tag steht.</p>
<h5>Listen</h5>
<p>Listen werden viel häufiger eiungesetzt als man es wohl vermutet. Mittlerweile gilt es wohl als bekannt, dass Menüs eine Auslistung von Verlinkungen ist. Dabei unterscheide ich zwischen der Inhaltsnavigation, was aus Sicht der Linearisierung eine geordnetet Liste sein sollte und der Servicenavigation, die z.B. die Sprachauswahl oder den Link zur Hauptseite beinhalten könnte.</p>
<p>Aberr was ist mit einem Glossar für die Begriffserklärung. Fast jede Seite enthält Fachwörter, gerade Produktseiten. Ist das nicht auch eine Liste. Hier würde ich eine Definitionsliste bevorzugen, da man da wunderbar das Fachwort mit der Definition erklären kann. Oder die Hileseite, die meistens eine <acronym title="Frequently Asked Questions" lang="en">FAQ</acronym>-Liste in die Website integriert. Auch hier ist die Frage der zu definierente Term und die Definition die Antwort.</p>
<p>Designer vergessen sehr häufig die Gestaltung solcher Elemente.</p>
<h5>Formulare</h5>
<p>Fast jede Website biete in irgendeiner Form Formulare an. In den meisten Fällen dienen diese Formulare dazu Informationen vom Betrachter der Website zu erhalten. Die Strukturierung und die Gestaltung von Formularen hängt ganz stark von die angeforderten Informationen ab. Bei einem einfachen Kontaktformular reicht es meist, dass die Angaben des Benutzer in einzeilige oder mehrzeilige Eingabefelder eingetragen werden.</p>
<p>Man sollte bei der Gestaltung darauf achten, dass die Eingabefelder einen einheitlichen Stil folgen. Gerade der &lt;textarea&gt;-Tag wird, anders als der <code>&lt;input&gt;</code>- oder der <code>&lt;select&gt;</code>-Tag, in den meisten Browsern mit einer nicht proportionalen Schrift dargestellt. Das sollte man angleichen.</p>
<p>Weiterhin sollte man jedes Formelement mit einem <code>&lt;label&gt;</code>-Tag kombinieren, so dass der Browser die Zusammengehörigkeit von Beschriftung und Eingabeelement erkennt. Nebenbei entsteht dadurch auch eine bessere Benutzerfreudlichkeit, denn wenn man dann auf die Beschriftung klickt aktiviert sich automatisch das Eingabeelement.</p>
<p>Falls man kompliziertere Formulare haben sollte, kann man mit dem <code>&lt;fieldset&gt;</code>-Tag und einer Beschriftung mit dem <code>&lt;legend&gt;</code>-Tag einzelne Formelemente gruppieren. So kann man das komplexe Formular ein wenig übersichtlicher Gestalten. Es ist sogar denkbar, dass per JavaScript die einzelnen Fieldsets zu einer Art Mappe mit Registerkarten gefalter werden.</p>
<h3>Fazit</h3>
<p>Nicht nur die Standardelemente einer Website, wie das Grundlayout, die Navigation oder der Kopf einer Website muss ein Designer gestalten, sondern auch der Inhalt sollte Ziel seiner Bemühungen sein. Oft wird die Gestaltung einer Website nur auf die wichtigsten Punkte beschränkt und vergessen, dass es dem Benutzer ja um die Inhalte geht warum er die Website besucht. Und genau deshalb sollte der Inhalt auch mit in Mittelpunkt der Gestaltung sein.</p>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2007/12/08/css-layouts-am-fliessband/" title="CSS Layouts am Fließband">CSS Layouts am Fließband</a></li><li><a href="http://www.re-design.de/2008/04/26/dreamweaver-schulung-fr-den-solar-verlag/" title="Dreamweaver-Schulung f&#252;r den Solar Verlag">Dreamweaver-Schulung f&#252;r den Solar Verlag</a></li><li><a href="http://www.re-design.de/2008/03/01/transcending-css/" title="Transcending CSS">Transcending CSS</a></li><li><a href="http://www.re-design.de/2008/03/01/little-boxes/" title="Little Boxes">Little Boxes</a></li><li><a href="http://www.re-design.de/2008/03/01/das-website-handbuch/" title="Das Website Handbuch">Das Website Handbuch</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2007/12/01/designer-vergessen-die-gestaltung/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>flexibles CSS Layout</title>
		<link>http://www.re-design.de/2007/11/11/flexibles-css-layout/</link>
		<comments>http://www.re-design.de/2007/11/11/flexibles-css-layout/#comments</comments>
		<pubDate>Sun, 11 Nov 2007 16:32:12 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Schulungen]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[dreamweaver]]></category>
		<category><![CDATA[flexibel]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[seminar]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=28</guid>
		<description><![CDATA[Letzte Woche hatte ich ein Seminar zum Thema CSS und eins über Dreamweaver gehalten. Es waren Teilnehmer sowohl von Roche Diagnostics als auch von Landessport Bund dabei, die mittels CMS die Inhalte ihrer Website betreuen. In diesen Seminaren kam die Frage nach einen flexiblen System zum Erzeugen eines CSS gesteuerten Layouts auf. Nach ein paar [...]]]></description>
			<content:encoded><![CDATA[<p>Letzte Woche hatte ich ein Seminar zum Thema <a title="Seminar Inhalte" href="http://www.re-design.de/dienstleistung/seminare/webdesign-seminare/">CSS</a> und eins über <a title="Seminar Inhalte" href="http://www.re-design.de/dienstleistung/seminare/webdesign-seminare/">Dreamweaver</a> gehalten. Es waren Teilnehmer sowohl von <a title="weiter zur Website" href="http://www.roche.com/de/div_diag.htm">Roche Diagnostics</a> als auch von <a title="weiter zur Homepage" href="http://www.wir-im-sport.de/startseite.php">Landessport Bund</a> dabei, die mittels CMS die Inhalte ihrer Website betreuen. In diesen Seminaren kam die Frage nach einen flexiblen System zum Erzeugen eines CSS gesteuerten Layouts auf.</p>
<p>Nach ein paar Überlegungen kamen wir dann auf die Teilung des CSS-Designs in 4 Dateien:</p>
<ul>
<li>basic.css</li>
<li>2column.css</li>
<li>3column.css</li>
<li>content.css</li>
</ul>
<p><span id="more-28"></span>In der Basisdatei werden alle grundlegenden Formatierungen für das Layout, wie z.B. Kopf- und Fußbereich bzw. Navigationsspalte festgelegt. Zusätzlich wird das gesamte Design zentriert und auf eine festen Breite eingestellt. Wobei die feste Breite nicht zwingend mit Pixeln zu lösen sein muss, denn in CSS können z.B. Breitenangaben auch in Em angegeben werden.</p>
<p><img src="/workbook/wp-content/uploads/2007/11/grundlayout.gif" border="0" alt="Grundlayout" width="200" height="150" /></p>
<p>In der Inhaltsdatei werden dann alle restlichen für die Darstellung wichtigen Formatierungen, wie z.B. Absätze Listen und Tabellen, definiert. Zusätzlich können dort auch Ausrichtungen von Bilden angegeben werden.</p>
<p>Falls man nun aber einige Unterseiten brauchen sollte, die ein 2 spaltigen Layout benötigen, dann bindet man einfach, zusätzlich zu den beiden Grunddateinen, die 2-Spaltige mit ein. In der HTML-Datei gruppiert man nun noch über 2 DIV-Container die Inhalte in die jeweiligen Spalten.</p>
<p><img src="/workbook/wp-content/uploads/2007/11/2_column.gif" border="0" alt="2 spaltiges Layout" width="200" height="150" /></p>
<p>Gleiches gilt auch für ein 3 spaltiges Layout. Hier gibt es auch eine zusätzliche CSS-Datei und auch hier muss man den jeweiligen Inhalt in die 3 Spalten aufteilen.</p>
<p><img src="/workbook/wp-content/uploads/2007/11/3_column.gif" border="0" alt="3 spaltiges Layout" width="200" height="150" /></p>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2008/04/26/dreamweaver-schulung-fr-den-solar-verlag/" title="Dreamweaver-Schulung f&#252;r den Solar Verlag">Dreamweaver-Schulung f&#252;r den Solar Verlag</a></li><li><a href="http://www.re-design.de/2007/12/04/flexible-layouts-mit-css/" title="flexible Layouts mit CSS">flexible Layouts mit CSS</a></li><li><a href="http://www.re-design.de/2008/12/18/dreamweaver-und-css/" title="Dreamweaver und <span class="caps">CSS</span>">Dreamweaver und <span class="caps">CSS</span></a></li><li><a href="http://www.re-design.de/2008/02/25/css-seminar-bei-vva/" title="CSS-Seminar bei VVA">CSS-Seminar bei VVA</a></li><li><a href="http://www.re-design.de/2007/12/10/css-3-unterstuetzung-der-browser/" title="CSS 3-Unterst&#252;tzung der Browser">CSS 3-Unterst&#252;tzung der Browser</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2007/11/11/flexibles-css-layout/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Photoshop und Premiere f&#252;r kleines Geld</title>
		<link>http://www.re-design.de/2007/11/09/photoshop-und-premiere-fuer-kleines-geld/</link>
		<comments>http://www.re-design.de/2007/11/09/photoshop-und-premiere-fuer-kleines-geld/#comments</comments>
		<pubDate>Fri, 09 Nov 2007 10:27:55 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[photoshop]]></category>
		<category><![CDATA[premiere]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=24</guid>
		<description><![CDATA[Schon seit längerem bietet Adobe eine abgespeckte Version von Photoshop und Premiere an. Aber erst jetzt habe ich so richtig die Möglichkeiten dieser Elements entdeckt. Für mich als Webproducer und Webdozent reichen die Möglichkeiten die diese beiden Versionen mir bieten völlig aus. Ich habe in den letzten Jahren Adobe Photoshop immer seltener genutzt. Photoshop hat [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.er-design.de/workbook/wp-content/uploads/2007/11/box_pse6pre4_112x112.jpg" alt="Adobe Photoshop Elements 6 &amp; Adobe Premiere Elements 4" align="left" />Schon seit längerem bietet <a href="http://www.adobe.com/de">Adobe</a> eine abgespeckte Version von <a href="http://www.adobe.com/de/products/photoshop/family/" title="Link zur Photoshop Seite">Photoshop</a> und <a href="http://www.adobe.com/de/products/premiere/" title="Link zur Premiere Seite">Premiere</a> an. Aber erst jetzt habe ich so richtig die Möglichkeiten dieser <a href="http://www.adobe.com/de/products/psprelements/" title="Adobe Photoshop Elements 6 &amp; Adobe Premiere Elements 4" rel="tag">Elements</a> entdeckt. Für mich als Webproducer und Webdozent reichen die Möglichkeiten die diese beiden Versionen mir bieten völlig aus.</p>
<p><span id="more-24"></span></p>
<p><img src="http://www.er-design.de/workbook/wp-content/uploads/2007/11/box_photoshop_cs3_112x112.jpg" alt="Adobe Photoshop CS3" align="left" />Ich habe in den letzten Jahren Adobe Photoshop immer seltener genutzt.  Photoshop hat in den letzten Versionen viel an Umfang gewonnen und fast all diese Funktionen berauche ich selen bis gar nicht. Einzig die Bildretusche bzw die Funktion &#8220;Für das Web speichern&#8221; soind für mich interessant.</p>
<p><a href="http://www.er-design.de/workbook/wp-content/uploads/2007/11/box_premiere_pro_cs3_112x112.jpg" title="Adobe Premiere CS3"><img src="http://www.er-design.de/workbook/wp-content/uploads/2007/11/box_premiere_pro_cs3_112x112.jpg" alt="Adobe Premiere CS3" align="left" /></a> Ähnlich ging es mir auch bei Adobe Premiere. Die Videos die ich entweder von Kunden bekommen oder selbst gedreht habe, mussten ausschließlich für die Wiedergabe im Internet, also ein Flash Video, oder als einfache DVD optimiert werden.</p>
<p>Nach einer genaueren Studie, dem Download der Elements Versionen, bin ich zum Schluß gekommen, dass diese für meine Bedürfnisse komplett ausreichen. Ich habe sogar noch einige Features bekommen die ich als sehr angenehm empfinde. So ist z.B. bei Adobe Photoshop Elements ein Orgenaizer mit dabei, der meine Bilder, Videos und Sounddateien mit eine Verschlagwortung verwaltet. In Adboe Premiere Elements bekomme ich neben dem umfangreichen Videoschnitt auch die Möglichkeit geboten eine Steuerung mittels Menüs für DVDs zu erstellen. Einfach wunderbar.</p>
<p>Hinzukommend zu diesen Erweiterungen überzeugt mich auch der Preis zum Kauf dieses Paketes. Adobe Photoshop hätte ich mir für fast <a href="https://store2.adobe.com/cfusion/store/index.cfm?store=OLS-DE&amp;nr=1#view=ols_prod&amp;loc=de_de&amp;store=OLS-DE&amp;categoryOID=1598156&amp;distributionOID=103&amp;nr=1" title="Link zum Online Shop Photoshop">1100 €</a> und Adobe Premiere für <a href="https://store2.adobe.com/cfusion/store/index.cfm?store=OLS-DE&amp;nr=1#view=ols_prod&amp;loc=de_de&amp;store=OLS-DE&amp;categoryOID=1598351&amp;distributionOID=103&amp;nr=1" title="Link zu Online Shop Premiere">1010 €</a> kaufen müssen. Die beiden Elements Versionen kosten im Set gerade mal <a href="https://store2.adobe.com/cfusion/store/index.cfm?store=OLS-DE&amp;nr=1#view=ols_prod&amp;loc=de_de&amp;store=OLS-DE&amp;categoryOID=1712852&amp;distributionOID=103&amp;nr=1" title="Link zum Online Shop Elements Set">150 €</a>. Was für ein Unterschied.</p>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2009/04/25/adobe-premiere-elements-color-expert/" title="Adobe Premiere Elements &ndash; Color Expert">Adobe Premiere Elements &ndash; Color Expert</a></li><li><a href="http://www.re-design.de/2010/08/31/website-the-lakeside-heritage-society/" title="Website &#8211; The Lakeside Heritage Society">Website &#8211; The Lakeside Heritage Society</a></li><li><a href="http://www.re-design.de/2010/08/28/website-quchu/" title="Website &#8211; Q&rsquo;uchu">Website &#8211; Q&rsquo;uchu</a></li><li><a href="http://www.re-design.de/2010/08/12/website-watermelon-ministries/" title="Website &#8211; Watermelon Ministries">Website &#8211; Watermelon Ministries</a></li><li><a href="http://www.re-design.de/2010/01/15/adobe-browser-lab/" title="Adobe Browser Lab">Adobe Browser Lab</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2007/11/09/photoshop-und-premiere-fuer-kleines-geld/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cinema für L’Oreal</title>
		<link>http://www.re-design.de/2007/10/25/cinema-fuer-loreal/</link>
		<comments>http://www.re-design.de/2007/10/25/cinema-fuer-loreal/#comments</comments>
		<pubDate>Thu, 25 Oct 2007 21:28:34 +0000</pubDate>
		<dc:creator>Enrico Reinsdorf</dc:creator>
				<category><![CDATA[Schulungen]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[cinema 4d]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[kwtz]]></category>
		<category><![CDATA[produktdesign]]></category>

		<guid isPermaLink="false">http://www.re-design.de/workbook/?p=23</guid>
		<description><![CDATA[Heute ging für mich ein 4tägiges Seminar im &#8220;KW Trainingszentrum&#8221; zu ende. Montag und Dienstag habe ich mit insgesamt 3 Teilnehmern eine Cinema 4D Grundlagen-Schulung gemacht und seit gestern folgten dann für 2 Mitarbeiter von L&#8217;Oreal der Aufbaukurs. Da bei den Teilnehmer ein großes Interesse im Bereich von Produktdesign und Visualisierung von Innenausstattung bestand, lag [...]]]></description>
			<content:encoded><![CDATA[<p>Heute ging für mich ein 4tägiges Seminar im &#8220;<a href="http://kwtz.de/" title="Link zur Homepage">KW Trainingszentrum</a>&#8221; zu ende. Montag und Dienstag habe ich mit insgesamt 3 Teilnehmern eine <a href="http://www.maxon.net/pages/dyn_files/dyn_htx/htx/welcome_d.html" title="Link zur Homepage">Cinema 4D</a> Grundlagen-Schulung gemacht und seit gestern folgten dann für 2 Mitarbeiter von <a href="http://www.loreal.de/_de/_de/index.aspx" title="Link zur Homepage">L&#8217;Oreal</a> der Aufbaukurs.</p>
<p>Da bei den Teilnehmer ein großes Interesse im Bereich von Produktdesign und Visualisierung von Innenausstattung bestand, lag auch der Schwerpunkt der Kurse auf dem gewünschten Thema. So erstellten wir neben einem Sofa aus Grundformen auch  einfache Produkte mit dem Loft-Nurbs und konstruierten ein Ladenregal und einen Schmicktisch.<span id="more-23"></span><br />
<a href="http://de.sevenload.com/bilder/jpzRKhm/Sofa"><img src="http://de.sevenload.com/im/jpzRKhm/450x253" alt="'Sofa' von Enrico" height="253" width="450" /></a></p>
<p><a href="http://de.sevenload.com/bilder/zhwTy7O/Regal-2-0003"><img src="http://de.sevenload.com/im/zhwTy7O/450x253" alt="'Regal 2_0003' von Enrico" height="253" width="450" /></a></p>
<p><a href="http://de.sevenload.com/bilder/ZWPGIAt/Regal-2"><img src="http://de.sevenload.com/im/ZWPGIAt/450x253" alt="'Regal 2' von Enrico" height="253" width="450" /></a></p>
<h3  class="related_post_title">Ähnliche Beiträge</h3><ul class="related_post"><li><a href="http://www.re-design.de/2008/07/01/cinema-schulung-bei-tools/" title="Cinema Schulung bei Tools">Cinema Schulung bei Tools</a></li><li><a href="http://www.re-design.de/2010/10/09/cinema-4d-weinglas/" title="Cinema 4D &ndash; Weinglas">Cinema 4D &ndash; Weinglas</a></li><li><a href="http://www.re-design.de/2010/10/05/cinema-4d-taschenlampe/" title="Cinema 4D &ndash; Taschenlampe">Cinema 4D &ndash; Taschenlampe</a></li><li><a href="http://www.re-design.de/2010/10/05/cinema-4d-apple-macpro/" title="Cinema 4D &ndash; Apple MacPro">Cinema 4D &ndash; Apple MacPro</a></li><li><a href="http://www.re-design.de/2010/10/03/cinema-4d-workshop/" title="Cinema 4D Workshop">Cinema 4D Workshop</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.re-design.de/2007/10/25/cinema-fuer-loreal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

