<?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>GOLSER.info BLOG &#187; css</title>
	<atom:link href="http://www.golser.info/tag/css/feed" rel="self" type="application/rss+xml" />
	<link>http://www.golser.info</link>
	<description>News und Stories von August Florian Golser, BSc</description>
	<lastBuildDate>Fri, 21 Oct 2011 15:35:29 +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>Objektorientiertes CSS (OOCSS)</title>
		<link>http://www.golser.info/objektorientiertes-css-oocss-26012010</link>
		<comments>http://www.golser.info/objektorientiertes-css-oocss-26012010#comments</comments>
		<pubDate>Tue, 26 Jan 2010 18:34:23 +0000</pubDate>
		<dc:creator>Gusti</dc:creator>
				<category><![CDATA[WebDesign]]></category>
		<category><![CDATA[WebDevelopment]]></category>
		<category><![CDATA[codesnippet]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[webdesign]]></category>
		<category><![CDATA[webdevelopment]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://www.golser.info/?p=581</guid>
		<description><![CDATA[Die strikte Trennung von Design und Inhalt bei Webprojekten führte dazu, dass die HTML-Konstrukte immer einfacher und die CSS-Dokumente immer komplexer wurden. So bringen es sogar die Stylesheets kleiner Websites recht schnell auf über 500 Zeilen Code und werden über den Projektlebenszyklus hinweg immer undurchsichtiger. Bei umfangreicheren Webprojekten stellen die Stylesheets nicht selten ein kleines [...]]]></description>
			<content:encoded><![CDATA[<p>Die strikte Trennung von Design und Inhalt bei Webprojekten führte dazu, dass die HTML-Konstrukte immer einfacher und die CSS-Dokumente immer komplexer wurden. So bringen es sogar die Stylesheets kleiner Websites recht schnell auf über 500 Zeilen Code und werden über den Projektlebenszyklus hinweg immer undurchsichtiger. Bei umfangreicheren Webprojekten stellen die Stylesheets nicht selten ein kleines &#8220;Kunstwerk&#8221; dar, das mit vertretbarem Zeitaufwand nur vom ursprünglichen Entwickler komplett durchschaut wird.<br />
Diese Tatsache macht es auch sehr schwierig im Team an den Styles einer Website zu arbeiten. Auch eine Wiederverwendung von CSS-Dokumenten für andere Projekte ist nur eingeschränkt möglich.</p>
<h3>Die Lösung: OOCSS</h3>
<p>Die Webentwicklerin <a href="http://www.stubbornella.org" class="liexternal">Nicole Sullivan</a> versucht mit ihrer <strong>Objektorientiertes CSS</strong> (OOCSS) genannten Methode einen Lösungsansatz zu finden.<br />
OOCSS versucht die Idee der Objektorientierung auf CSS zu übertragen. Objektorientiertes CSS ist dabei keine neue Technik, sondern vereint eine Reihe von Regeln für die Gestaltung von CSS-Dateien. Grundgerüst von OOCSS ist eine von Nicole Sullivan auf ihrer <a href="http://wiki.github.com/stubbornella/oocss" class="liexternal">GitHub Projektseite</a> bereitgestellte Code-Bibliothek im Alpha-Stadium. Um das CSS-Framework einsetzen zu können, müssen wie schon erwähnt einige Regeln beachtet werden.<br />
Die zwei wichtigsten:</p>
<ul>
<li>
<p><strong>Trenne Container und Inhalt</strong><br />
Gemäß Sullivans Terminologie bildet ein simpler HTML-Tag (z.B. <code>&lt;h1&gt;</code>, <code>&lt;p&gt;</code>, <code>&lt;li&gt;</code>, &#8230;) mit zugehörigem CSS einen <strong>Inhalt</strong>. Komplexere Strukturen bestehend aus mehreren <code>&lt;div&gt;</code>-Elementen werden als <strong>Container</strong> bezeichnet. Ordnet man diesen Containern jetzt noch über mehrere CSS-Klassen Layout und Design (<em>Skins</em>) zu, dann entstehen Sullivans Objekte.</p>
</li>
<li>
<p class="nospace"><strong>Trenne Struktur und Design</strong><br />
Nicole Sullivan bezieht sich hier auf das CSS von Containern und Inhalten. Durch die Verwendung unterschiedlicher Klassen für Layout- und Design-Elemente wird die <strong>Wiederverwendbarkeit von Objekten</strong> in anderen Projekten ermöglicht.<br />
<span id="more-581"></span>
</p>
</li>
</ul>
<p>Generell sollten CSS-Deklarationen vermieden werden, die HTML-Elemente in Abhängigkeit eines Containers bringen. Also keine derartigen Konstrukte:</p>
<div class="dean_ch"><span class="re0">#sidebar</span> h1 <span class="br0">&#123;</span><span class="br0">&#125;</span> <span class="re0">#content</span> ul <span class="br0">&#123;</span><span class="br0">&#125;</span> div<span class="re1">.news</span> p <span class="br0">&#123;</span><span class="br0">&#125;</span></div>
<p>Alle CSS-Anpassungen werden ausschließlich über Klassen vorgenommen, die einander erweitern. Beispiel:</p>
<div class="dean_ch">
<span class="re1">.box</span> <span class="br0">&#123;</span> <span class="kw1">background</span>: <span class="re0">#fff</span>; <span class="kw1">border</span>: <span class="re3">3px</span> <span class="kw2">solid</span> <span class="re0">#<span class="nu0">036</span></span>; <span class="kw1">padding</span>: <span class="re3">5px</span>; <span class="br0">&#125;</span><br />
<span class="re1">.graybox</span> <span class="br0">&#123;</span> <span class="coMULTI">/* extends: .box; */</span><br />
&nbsp; <span class="kw1">background</span>: <span class="re0">#ccc</span>;<br />
<span class="br0">&#125;</span></div>
<p>HTML:</p>
<div class="dean_ch"><span class="sc2"><span class="kw2">&lt;div</span> <span class="kw3">class</span>=<span class="st0">&quot;box graybox&quot;</span><span class="kw2">&gt;</span></span> &#8230; <span class="sc2"><span class="kw2">&lt;/div&gt;</span></span></div>
<p>Weiters empfiehlt Sullivan bevorzugt Klassen statt IDs zu verwenden und Selektoren ohne Tags zu schreiben (<code>.box</code> statt <code>div.box</code>).<br />
Grund: Einsatzmöglichkeiten erweitern, Redundanzen im Code minimieren.</p>
<h3>OOCSS in der Praxis</h3>
<p>Sullivans <a href="http://wiki.github.com/stubbornella/oocss" class="liexternal">CSS-Framework</a> besteht derzeit aus 12 CSS-Dateien, von denen drei nur zum Debugging verwendet werden. Einen guten Ausgangspunkt für eigene Entwicklungen bildet die Datei <strong>template.html</strong>, die das Grundlayout umsetzt und als Basis für alle weiteren Seiten dient.<br />
Die Breite der linken und rechten Spalte wird beispielsweise durch Erweiterung des Spalten-Objektes gesetzt:</p>
<div class="dean_ch"><span class="re1">.myColumn</span> <span class="br0">&#123;</span> <span class="kw1">width</span>: <span class="re3">400px</span>; <span class="br0">&#125;</span></div>
<p>HTML:</p>
<div class="dean_ch"><span class="sc2"><span class="kw2">&lt;div</span> <span class="kw3">class</span>=<span class="st0">&quot;leftCol myColumn&quot;</span><span class="kw2">&gt;</span></span> &#8230; <span class="sc2"><span class="kw2">&lt;/div&gt;</span></span></div>
<blockquote><p class="nospace">Don’t think of this as overwriting my classes, but rather <strong>extending</strong> the objects provided by the framework. I give you columns, headings, and other objects. You can extend those objects by adding another class that only specifies the differences between my base object and your implementation of the same. Mixins may be a good analogy here.</p>
</blockquote>
<p>Wichtig dabei ist, dass Sullivans CSS-Deklarationen unberührt bleiben!<br />
Die Klasse <code>.leftCol</code> im Beispiel sollte also keinen eigenen CSS-Code erhalten. Schon allein deshalb nicht um schnell und unkompliziert ein Update des Frameworks durchführen zu können.</p>
<p>Mit <strong>Grids</strong> können die Seiten weiter in kleinere Bereiche unterteilt werden. Beispiel:</p>
<div class="dean_ch">
<span class="sc2"><span class="kw2">&lt;div</span> <span class="kw3">class</span>=<span class="st0">&quot;line&quot;</span><span class="kw2">&gt;</span></span><br />
&nbsp; <span class="sc2"><span class="kw2">&lt;div</span> <span class="kw3">class</span>=<span class="st0">&quot;unit size2of3&quot;</span><span class="kw2">&gt;</span></span><span class="sc2"><span class="kw2">&lt;h3&gt;</span></span>2/3<span class="sc2"><span class="kw2">&lt;/h3&gt;</span></span><span class="sc2"><span class="kw2">&lt;/div&gt;</span></span><br />
&nbsp; <span class="sc2"><span class="kw2">&lt;div</span> <span class="kw3">class</span>=<span class="st0">&quot;unit size1of3 lastUnit&quot;</span><span class="kw2">&gt;</span></span><span class="sc2"><span class="kw2">&lt;h3&gt;</span></span>1/3<span class="sc2"><span class="kw2">&lt;/h3&gt;</span></span><span class="sc2"><span class="kw2">&lt;/div&gt;</span></span><br />
<span class="sc2"><span class="kw2">&lt;/div&gt;</span></span></div>
<p>Sobald das Raster einer Seite aufgebaut ist, können Inhaltsobjekte wie Überschriften, Absätze, Listen, usw. der Datei <strong>content.css</strong> hinzugefügt werden. Die Datei konzentriert sich hauptsächlich auf die Definition von Ausrichtungen, Abständen, Listendarstellungen, Schriftgrößen, Schriftfarben und dem Verhalten von Links.</p>
<h3>Module und Skins</h3>
<p>Besonders interessant ist die Datei <strong>module.html</strong>, die einen Überblick über die mit dem Framework realisierbaren Blockstrukturen gibt. Sullivans HTML-Grundgerüst für alle Arten von Boxen schaut wie folgt aus:</p>
<div class="dean_ch">
<span class="sc2"><span class="kw2">&lt;div</span> <span class="kw3">class</span>=<span class="st0">&quot;mod&quot;</span><span class="kw2">&gt;</span></span> <br />
&nbsp; <span class="sc2"><span class="kw2">&lt;b</span> <span class="kw3">class</span>=<span class="st0">&quot;top&quot;</span><span class="kw2">&gt;</span></span><span class="sc2"><span class="kw2">&lt;b</span> <span class="kw3">class</span>=<span class="st0">&quot;tl&quot;</span><span class="kw2">&gt;</span></span><span class="sc2"><span class="kw2">&lt;/b&gt;</span></span><span class="sc2"><span class="kw2">&lt;b</span> <span class="kw3">class</span>=<span class="st0">&quot;tr&quot;</span><span class="kw2">&gt;</span></span><span class="sc2"><span class="kw2">&lt;/b&gt;</span></span><span class="sc2"><span class="kw2">&lt;/b&gt;</span></span> <br />
&nbsp; <span class="sc2"><span class="kw2">&lt;div</span> <span class="kw3">class</span>=<span class="st0">&quot;inner&quot;</span><span class="kw2">&gt;</span></span><br />
&nbsp; &nbsp; <span class="sc2"><span class="kw2">&lt;div</span> <span class="kw3">class</span>=<span class="st0">&quot;hd&quot;</span><span class="kw2">&gt;</span></span><span class="sc2"><span class="kw2">&lt;h3&gt;</span></span>mod<span class="sc2"><span class="kw2">&lt;/h3&gt;</span></span><span class="sc2"><span class="kw2">&lt;/div&gt;</span></span><br />
&nbsp; &nbsp; <span class="sc2"><span class="kw2">&lt;div</span> <span class="kw3">class</span>=<span class="st0">&quot;bd&quot;</span><span class="kw2">&gt;</span></span><span class="sc2"><span class="kw2">&lt;p&gt;</span></span>Mod ist der Basis-Container.<span class="sc2"><span class="kw2">&lt;/p&gt;</span></span><span class="sc2"><span class="kw2">&lt;/div&gt;</span></span><br />
&nbsp; <span class="sc2"><span class="kw2">&lt;/div&gt;</span></span><br />
&nbsp; <span class="sc2"><span class="kw2">&lt;b</span> <span class="kw3">class</span>=<span class="st0">&quot;bottom&quot;</span><span class="kw2">&gt;</span></span><span class="sc2"><span class="kw2">&lt;b</span> <span class="kw3">class</span>=<span class="st0">&quot;bl&quot;</span><span class="kw2">&gt;</span></span><span class="sc2"><span class="kw2">&lt;/b&gt;</span></span><span class="sc2"><span class="kw2">&lt;b</span> <span class="kw3">class</span>=<span class="st0">&quot;br&quot;</span><span class="kw2">&gt;</span></span><span class="sc2"><span class="kw2">&lt;/b&gt;</span></span><span class="sc2"><span class="kw2">&lt;/b&gt;</span></span> <br />
<span class="sc2"><span class="kw2">&lt;/div&gt;</span></span></div>
<p>Durch Kombination dieses Containers mit drei verschiedenen CSS-Klassen entstehen drei <strong>OOCSS-Module</strong>. Für jeden der drei Container gibt es wiederum eigene Skins, die den Rand und die Hintergrundbilder der Boxen definieren. Eine vollständige Komponente besteht aus bis zu vier Klassen, von denen die letzten beiden für Skin und Hintergrund sorgen.</p>
<div class="dean_ch"><span class="sc2"><span class="kw2">&lt;div</span> <span class="kw3">class</span>=<span class="st0">&quot;mod complex flow foo&quot;</span><span class="kw2">&gt;</span></span> &#8230; <span class="sc2"><span class="kw2">&lt;/div&gt;</span></span></div>
<p>würde unsere Box folgendermaßen darstellen:</p>
<p><img src="/wp-content/uploads/2010/01/oocss-box.gif" alt="OOCSS Box" width="468" height="74" /></p>
<p>Mit Sullivans Grundformen lassen sich bereits über 200 verschiedene Boxen generieren. Das CSS-Framework bietet auch schon einige Styles für Tabs und &#8220;Sprechblasen&#8221;.</p>
<h3>Mein Fazit</h3>
<p>OOCSS ist prädestiniert für die gemeinsame Erstellung von CSS-Dateien im Team und fördert die Wiederverwendbarkeit und Strukturierung von CSS-Dokumenten. OOCSS hat auch viele Kritiker, da die Regel &#8220;Trenne Container und Inhalt&#8221; in direktem Widerspruch zum CSS-Grundkonzept der Kaskade steht &#8211; jedoch wird dieses 1994 entwickelte Konzept heutigen Entwicklungsprozessen überhaupt noch gerecht?<br />
Ich finde Sullivans Ansätze jedenfalls sehr interessant und kann mir gut vorstellen ihr Framework bei einem umfangreicheren Teamprojekt einzusetzen.</p>
<h3>Weiterführende Links</h3>
<ul>
<li><a href="http://www.stubbornella.org/content/2009/03/23/object-oriented-css-video-on-ydn" class="liexternal">Object Oriented CSS video on YDN</a><br />
Eine der ausführlichsten Quellen zu OOCSS.</li>
<li><a href="http://wiki.github.com/stubbornella/oocss" class="liexternal">OOCSS GitHub Projektseite</a></li>
<li><a href="http://groups.google.com/group/object-oriented-css" class="liexternal">OOCSS Google Group</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.golser.info/objektorientiertes-css-oocss-26012010/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Happy CSS Naked Day!</title>
		<link>http://www.golser.info/css-naked-day-09042008</link>
		<comments>http://www.golser.info/css-naked-day-09042008#comments</comments>
		<pubDate>Wed, 09 Apr 2008 21:23:30 +0000</pubDate>
		<dc:creator>Gusti</dc:creator>
				<category><![CDATA[WebDesign]]></category>
		<category><![CDATA[WebDevelopment]]></category>
		<category><![CDATA[barrierefreiheit]]></category>
		<category><![CDATA[codesnippet]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[webdesign]]></category>
		<category><![CDATA[webdevelopment]]></category>
		<category><![CDATA[webstandards]]></category>

		<guid isPermaLink="false">http://www.golser.info/css-naked-day-2008-09042008</guid>
		<description><![CDATA[CSS Naked Day ist ein Projekt zur Förderung der Webstandards. Unter der Oberfläche einer Website zeigt sich die wahre Qualität: korrekte Verwendung von (X)HTML, semantisches Markup, gut gegliederter, hierarchischer Aufbau und natürlich hochwertige Inhalte. Am jährlich stattfindenden CSS Naked Day zeigen sich alle teilnehmenden Websites &#8220;nackt&#8221;, entblößen ihren &#60;body&#62; und zeigen was dahinter steckt. Gut [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://naked.dustindiaz.com" class="liexternal">CSS Naked Day</a> ist ein Projekt zur Förderung der Webstandards.<br />
Unter der Oberfläche einer Website zeigt sich die wahre Qualität: korrekte Verwendung von <a href="http://de.wikipedia.org/wiki/Extensible_Hypertext_Markup_Language" rel="nofollow" class="liwikipedia">(X)HTML</a>, semantisches Markup, gut gegliederter, hierarchischer Aufbau und natürlich hochwertige Inhalte.<br />
Am jährlich stattfindenden <strong>CSS Naked Day</strong> zeigen sich alle teilnehmenden Websites &#8220;nackt&#8221;, entblößen ihren <code>&lt;body&gt;</code> und zeigen was dahinter steckt. <img src='http://www.golser.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
Gut strukturierte Websites machen auch bei deaktiviertem &#8220;Design&#8221; (siehe <a href="http://de.wikipedia.org/wiki/Cascading_Style_Sheets" rel="nofollow" class="liwikipedia">Cascading Style Sheets</a>) ein gutes Bild und sind ohne Einschränkung les- und navigierbar.<br />
<span id="more-380"></span></p>
<h3>Warum am 9. April?</h3>
<p>Tja, dafür gibt es scheinbar ein paar ganz plausible Gründe:</p>
<ul>
<li>Der Tag sollte immer auf einen Dienstag, Mittwoch oder Donnerstag fallen (am meisten Traffic)</li>
<li>Möglichst Anfang April, jedoch nie am 1. April (internationaler Scherz- und Streichetag)</li>
<li>Es sollte ausreichend Zeit für die Ankündigung sein</li>
</ul>
<h3>Nackte Tatsachen &#8211; automatisiert</h3>
<p>Damit man den <em>CSS Naked Day</em> nicht versäumt, gibt es eine sehr praktische PHP-Funktion um das Deaktivieren bzw. nicht laden der Styles zu automatisieren:</p>
<div class="dean_ch"><span class="kw2">&lt;?php</span><br />
<span class="kw2">function</span> is_naked_day<span class="br0">&#40;</span><span class="re0">$d</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; <span class="re0">$start</span> = <span class="kw3">date</span><span class="br0">&#40;</span><span class="st0">&quot;U&quot;</span>, <span class="kw3">mktime</span><span class="br0">&#40;</span><span class="nu0">-12</span>, <span class="nu0">0</span>, <span class="nu0">0</span>, <span class="nu0">04</span>, <span class="re0">$d</span>, <span class="kw3">date</span><span class="br0">&#40;</span><span class="st0">&quot;Y&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;<br />
&nbsp; <span class="re0">$end</span> = <span class="kw3">date</span><span class="br0">&#40;</span><span class="st0">&quot;U&quot;</span>, <span class="kw3">mktime</span><span class="br0">&#40;</span><span class="nu0">36</span>, <span class="nu0">0</span>, <span class="nu0">0</span>, <span class="nu0">04</span>, <span class="re0">$d</span>, <span class="kw3">date</span><span class="br0">&#40;</span><span class="st0">&quot;Y&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;<br />
&nbsp; <span class="re0">$z</span> = <span class="kw3">date</span><span class="br0">&#40;</span><span class="st0">&quot;Z&quot;</span><span class="br0">&#41;</span> * <span class="nu0">-1</span>;<br />
&nbsp; <span class="re0">$now</span> = <span class="kw3">time</span><span class="br0">&#40;</span><span class="br0">&#41;</span> + <span class="re0">$z</span>; <br />
&nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$now</span> &gt;= <span class="re0">$start</span> &amp;&amp; <span class="re0">$now</span> &lt;= <span class="re0">$end</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">true</span>;<br />
&nbsp; <span class="br0">&#125;</span><br />
&nbsp; <span class="kw1">return</span> <span class="kw2">false</span>;<br />
<span class="br0">&#125;</span><br />
<span class="kw2">?&gt;</span></div>
<p>Man übergibt der Funktion den entsprechenden Monatstag (z.B. &#8220;9&#8243; für 2009) und bekommt am <em>CSS Naked Day</em> <code>true</code> als Rückgabewert. Ist dies der Fall, muss das Einbinden der CSS-Files verhindert werden.<br />
Hier eine mögliche Anwendung:</p>
<div class="dean_ch">&lt;head&gt;<br />
&#8230;<br />
<span class="kw2">&lt;?php</span> <span class="kw1">if</span> <span class="br0">&#40;</span>!is_naked_day<span class="br0">&#40;</span><span class="nu0">9</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="kw2">?&gt;</span><br />
&nbsp; &lt;link rel=<span class="st0">&quot;stylesheet&quot;</span> type=<span class="st0">&quot;text/css&quot;</span> href=<span class="st0">&quot;layout.css&quot;</span> /&gt;<br />
&nbsp; &lt;link rel=<span class="st0">&quot;stylesheet&quot;</span> type=<span class="st0">&quot;text/css&quot;</span> href=<span class="st0">&quot;default.css&quot;</span> /&gt;<br />
<span class="kw2">&lt;?php</span> <span class="br0">&#125;</span> <span class="kw2">?&gt;</span><br />
&#8230;<br />
&lt;/head&gt;</div>
<h3>Hilfe, ich bin immer noch nackt!</h3>
<p>Das oben gelistete Script setzt die &#8220;starke&#8221; Variante um. Dabei werden alle Zeitzonen berücksichtigt und man ist dann insgesamt 48 Stunden ohne Styles. Die &#8220;schwache&#8221; Version inkludiert nur die eigene Zeitzone, daher 24 Stunden ohne CSS.</p>
<h3>Weiterführende Links</h3>
<ul>
<li><a href="http://naked.dustindiaz.com" class="liexternal">CSS Naked Day Website</a></li>
<li><a href="http://www.ajalapus.com/downloads/css-naked-day" class="liexternal">WordPress Naked Day Plugin</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.golser.info/css-naked-day-09042008/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Websites: was sie kosten, was sie bringen?</title>
		<link>http://www.golser.info/websites-kosten-nutzen-25032008</link>
		<comments>http://www.golser.info/websites-kosten-nutzen-25032008#comments</comments>
		<pubDate>Tue, 25 Mar 2008 21:03:27 +0000</pubDate>
		<dc:creator>Gusti</dc:creator>
				<category><![CDATA[Aufgeschnappt]]></category>
		<category><![CDATA[Pixelution]]></category>
		<category><![CDATA[WebDesign]]></category>
		<category><![CDATA[Wirtschaft]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[web2.0]]></category>
		<category><![CDATA[webdesign]]></category>

		<guid isPermaLink="false">http://www.golser.info/websites-was-sie-kosten-was-sie-bringen-25032008</guid>
		<description><![CDATA[In der aktuellen Ausgabe 02/2008 des Magazins Wirtschaft im Alpenraum (WIA) wird beim Artikel &#8220;Websites: was sie kosten, was sie bringen?&#8221; (Seite 92 ff.) PIXELUTION.AT an einigen Stellen zitiert. Redakteurin Andrea Salzburger führte diesbezüglich mit mir ein Telefongespräch, bei dem ich ihr meine Ansichten über &#8220;zeitgemäßes Webdesign&#8221; und zukünftige Trends im Web mitteilte. Web 2.0 [...]]]></description>
			<content:encoded><![CDATA[<p>In der aktuellen Ausgabe 02/2008 des Magazins <em>Wirtschaft im Alpenraum</em> (<em>WIA</em>) wird beim Artikel &#8220;Websites: was sie kosten, was sie bringen?&#8221; (Seite 92 ff.) <a href="http://www.pixelution.at" class="liexternal">PIXELUTION.AT</a> an einigen Stellen zitiert. Redakteurin Andrea Salzburger führte diesbezüglich mit mir ein Telefongespräch, bei dem ich ihr meine Ansichten über &#8220;zeitgemäßes Webdesign&#8221; und zukünftige Trends im Web mitteilte.<br />
<span id="more-360"></span></p>
<h3>Web 2.0 und Emotion</h3>
<p>Wiewohl sich alle Werbechefs gegen &#8220;falsche Technologiegetriebenheit&#8221; aussprechen, können Web 2.0 Funktionalitäten den Nutzen eventuell doch erhöhen&#8230;</p>
<blockquote><p class="nospace">(&#8230;) &#8220;Web 2.0 umschreibt alles im Netz, was für Unternehmen nicht funktioniert&#8221;, meint gar Christoph Holz (&#8230;) Doch für Pixelution-Chef August F. Golser ist Web 2.0 sehr wohl ein Trend. Webdesign, wie es vom jungen Unterländer gemacht wird, packt den Surfer auf der Gefühlsebene. Neben Multimedia-Loops setzt er zudem auf konkrete Handlungsaufforderungen, genannt &#8220;call to action&#8221;-Elemente &#8211; und hält damit einen postmodernen Internet-User bei der Stange. So gehört Interaktivität laut Golser dazu: ob Newsletter, Kommentare oder Anfragen. Auch Kundenbewertungen, beispielsweise im Tourismus, sollten dabei sein. Der gelernte Medienkundler erblickt darin zunehmend auch ein Marketingtool. &#8220;Die Leute beobachten Blogs und Bewertungen. Das kann ein Hotel zu seinem Vorteil nutzen.&#8221; Ansonsten hängt auch er tendenziell einer geradlinigen Informationsvermittlung an. &#8220;Zeitaufwändige Flash-Animationen sind eher out&#8221;. Überholt sind auch Tabellenelemente, aus denen mit einem &#8220;gewaltigen Codeaufwand&#8221; vor Jahren Webseiten aufgebaut wurden. &#8220;Heute wird mit CSS (steht für <em>Cascading Style Sheets</em>) gearbeitet&#8221;, weiß Golser, dadurch werde das Design von der Struktur unabhängig. Der Vorteil: Solche Seiten funktionieren auch im Druck, am PDA, am Handy oder eben &#8211; schlechterdings Zeichen der Zeit &#8211; am iPod. Aus seiner Sicht gibt es bislang allerdings nur wenige, die CSS professionell umzusetzen wissen.</p>
</blockquote>
<h3>Suchmaschinenoptimierung</h3>
<p>Google bestimmt, wer im Internet top ist, und wer floppt. Nicht umsonst, bemühen sich Webdesigner um Suchmaschinenoptimierung&#8230;</p>
<blockquote><p class="nospace">(&#8230;) &#8220;Design ist nicht so tragisch, ich will gefunden werden mit Begriffen, die auf mich zutreffen&#8221;, meint August F. Golser, von Pixelution St. Johann. Wer die Logiken der Listung kennt, kann dies mitunter gut für sich ausnützen. Prioritäten legt Google auf Domainnamen, Headlines oder Keywords.</p>
</blockquote>
<p>Achja, die liebe Suchmaschinenoptimierung &#8211; klingt alles logisch und einfach, ist aber in Wirklichkeit ein sehr komplexes Gebiet und man lernt nie aus. Ähm &#8211; und das Design ist schon auch nicht zu vernachlässigen &#8211; sonst hab ich zwar Besucher auf meiner Website, aber die sind nach ein paar Sekunden wieder weg. <img src='http://www.golser.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Nachfolgend habe ich noch einige im Artikel vorkommende Aussagen aufgegriffen&#8230;</p>
<blockquote><p class="nospace">(&#8230;) Doch zur Zeit tue sich sehr viel im Netz, wie Fabrizi beobachtet. &#8220;99 Prozent davon ist aber Müll.&#8221;<br />
Schuld daran ist, &#8220;dass jeder kann und jeder darf&#8221;.</p>
</blockquote>
<p>Ich wagte in der WIA-Ausgabe Oktober 2005 &#8211; Artikel <a href="/pixelution-bei-wirtschaft-im-alpenraum-21112005" class="liinternal">Ein Pixel kommt selten allein</a> &#8211; die Behauptung, dass 95 Prozent aller Webseiten Müll sind. Ist es wirklich noch schlimmer geworden?</p>
<blockquote><p class="nospace">(&#8230;) Doch Christoph Holz muss beim Surfen manchmal den Kopf schütteln: &#8220;Besser keine Webseite, bevor man einen miserablen Auftritt hat.&#8221;<br />
&#8220;Es fehlt oft an der Bereitschaft, ins Internet zu investieren&#8221;,<br />
so Christoph Kaspar.</p>
</blockquote>
<p>Definitiv! Jedoch zum Glück erkennen mittlerweile immer mehr Leute, welches Potential eine professionelle, &#8220;arbeitende&#8221; Website bergen kann.</p>
<h3>Die Preisfrage</h3>
<p>Einst brachte Österreichs erster Sonnyboy-Finanzminister Karl-Heinz Grasser die Diskussion ins Rollen, was eine Webpage kosten dürfe. Die persönliche KHG-Website schlug mit satten 120.000 Euro zu Buche&#8230;</p>
<blockquote><p class="nospace">(&#8230;) Für Jürgen Birlmair startet eine Webseite für ein KMU mit zehn Mitarbeitern jedenfalls bei 7.000 Euro. Alles unter 5.000 sei jedenfalls grob unseriös.</p>
</blockquote>
<p>Hmm&#8230; warum den Preis von der Mitarbeiteranzahl abhängig machen? Schlussendlich zählt für das Angebot ja primär der Umfang und die geplanten Features &#8211; Eigenwartung?, Sprachversionen?, Animationen?, aufwändige Kontaktformulare?, Videoeinbettung?, Web 2.0 Inhalte? usw.</p>
<blockquote><p class="nospace">(&#8230;) Branchenkenner Holz veranschlagt für einen Industriebetrieb zwischen 20.000 und 50.000 Euro, für einen Mittelständler gilt je nach Anforderungen die 10.000 Euro Marke. &#8220;Wenn die Website individuell sein soll&#8221;, sei es keinesfalls billiger zu haben.</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.golser.info/websites-kosten-nutzen-25032008/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Qualitätskriterien für Webseiten</title>
		<link>http://www.golser.info/qualitaetskriterien-fuer-webseiten-09122007</link>
		<comments>http://www.golser.info/qualitaetskriterien-fuer-webseiten-09122007#comments</comments>
		<pubDate>Sun, 09 Dec 2007 15:57:48 +0000</pubDate>
		<dc:creator>Gusti</dc:creator>
				<category><![CDATA[WebDesign]]></category>
		<category><![CDATA[WebDevelopment]]></category>
		<category><![CDATA[barrierefreiheit]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[webdesign]]></category>
		<category><![CDATA[webdevelopment]]></category>
		<category><![CDATA[webstandards]]></category>

		<guid isPermaLink="false">http://www.golser.info/qualitaetskriterien-fuer-webseiten-09122007</guid>
		<description><![CDATA[Nachfolgend möchte ich einen kleinen Überblick über ein paar sehr wichtige Qualitätskriterien für Webseiten geben. Alle Kriterien können sehr schnell überprüft werden &#8211; für einige Tests wird jedoch die Web Developer Erweiterung für Mozilla Firefox benötigt. Die Erweiterung steht nach der Installation als eigenständige Toolbar im Browser zur Verfügung und kann jederzeit wieder deaktiviert werden. [...]]]></description>
			<content:encoded><![CDATA[<p>Nachfolgend möchte ich einen kleinen Überblick über ein paar sehr wichtige Qualitätskriterien für Webseiten geben. Alle Kriterien können sehr schnell überprüft werden &#8211; für einige Tests wird jedoch die <a href="http://chrispederick.com/work/web-developer" class="liexternal">Web Developer Erweiterung</a> für <a href="http://www.mozilla-europe.org/de/firefox" class="liexternal">Mozilla Firefox</a> benötigt. Die Erweiterung steht nach der Installation als eigenständige Toolbar im Browser zur Verfügung und kann jederzeit wieder deaktiviert werden.<br />
<span id="more-317"></span></p>
<ul>
<li>
<p><strong>Valider (X)HTML-Quellcode</strong><br />
Ein sehr wichtiges Qualitätskriterium, das auch viel über die &#8220;Sorgfalt&#8221; des jeweiligen Programmierers aussagt.<br />
<span class="grey bold">web developer:</span> <span class="highlight">Tools > Validate HTML</span> <span class="small grey">[Strg+Umschalt+H]</span><br />
<span class="grey bold">alternativ:</span> manuell über <a href="http://validator.w3.org" class="liexternal">validator.w3.org</a></p>
</li>
<li>
<p><strong>Trennung von Struktur/Inhalt und Design</strong><br />
Suchmaschinen sehen kein ansprechendes Design, sondern bevorzugen einen einfachen, gut strukturierten Aufbau und bewerten die Anzahl der Schlüsselwörter in Relation zum Codeumfang.<br />
Vereinfacht gesagt sollten bei einer gut programmierten Seite bei deaktiviertem &#8220;Design&#8221; nur noch die Strukturelemente wie hierarchisch gegliederte Überschriften, Absätze, Aufzählungslisten, Links, Hervorhebungen und einige Content-Bilder übrigbleiben.<br />
<span class="grey bold">web developer:</span> <span class="highlight">CSS > Disable Styles > All Styles</span> <span class="small grey">[Strg+Umschalt+S]</span><br />
Prinzipiell gilt, je einfacher die Darstellung, desto besser!</p>
</li>
<li>
<p><strong>Logische Struktur und Überschriften</strong><br />
Bei deaktiviertem <a href="http://de.wikipedia.org/wiki/Cascading_Style_Sheets" rel="nofollow" class="liwikipedia">CSS</a> sollte auch gut die Struktur der Website erkennbar sein. Besonders wichtig ist hierbei die Verwendung von gut strukturierten, logisch gesetzten und aussagekräftigen Überschriften (<code>&lt;h1&gt;</code> &#8211; <code>&lt;h6&gt;</code>). Überschriften sind auch für die Suchmaschinenoptimierung von zentraler Bedeutung.<br />
<span class="grey bold">web developer:</span> <span class="highlight">Outline > Outline Headings</span></p>
</li>
<li>
<p><strong>Druckfreundlichkeit</strong><br />
Häufig entspricht es dem Wunsch der Besucher, Seiteninhalte auszudrucken. In vielen Fällen werden dabei überflüssige Inhalte (wie z.B. die Navigationselemente) mitgedruckt und der eigentliche Seiteninhalt wird am Rand abgeschnitten &#8211; ärgerlich! Gut strukturierte Webseiten machen auch im Ausdruck ein gutes Bild und ein speziell für den Ausdruck optimiertes <em>Stylesheet</em> ist mit geringem Aufwand realisierbar.<br />
<span class="grey bold">check:</span> <span class="highlight">Datei > Druckvorschau</span></p>
</li>
<li>
<p><strong>Vermeidung von Frames</strong><br />
Die Verwendung von <a href="http://de.wikipedia.org/wiki/Frame_(HTML)" rel="nofollow" class="liwikipedia">Frames</a> bricht etliche Konventionen, an die sich der Webbenützer gewöhnt hat, wie z.B. die Möglichkeit, eine spezifische Website als Favorit zu speichern oder die direkte URL einem Freund zu mailen.<br />
Auch aus Sicht der Suchmaschinenoptimierung sind Frames sehr bedenklich.<br />
<span class="grey bold">web developer:</span> <span class="highlight">Outline > Outline Frames</span></p>
</li>
<li>
<p><strong>Keine Tabellen als Layoutelement</strong><br />
Tabellen sind dazu gedacht Informationen tabellarisch darzustellen. Vielfach werden sie jedoch &#8220;zweckentfremdet&#8221; und für die Positionierung und Ausrichtung von Elementen missbraucht.<br />
Solche tabellen-basierten Layouts bergen jedoch gegenüber reinen CSS-Layouts viele Nachteile. Mit einem CSS-Layout wird nicht nur die Zugänglichkeit (<em>Accessibility</em>) sondern auch die Performance verbessert. Eine Umstellung von einem Tabellen-Layout auf ein CSS-Layout kann durchaus bis zu 70% weniger Quellcode bedeuten, was sich sehr positiv auf die Ladezeiten auswirkt.<br />
<span class="grey bold">web developer:</span> <span class="highlight">Outline > Outline Tables > Table Cells</span></p>
</li>
<li>
<p><strong>Optimierte Seitentitel</strong><br />
Ein sehr wichtiges Qualitätsmerkmal ist auch die Verwendung von präzisen und aussagekräftigen Seitentiteln (<code>&lt;title&gt;</code>-Tag). Titel sollten einen Schluss auf den Textinhalt zulassen und dem Websitebesucher helfen die gesuchte Information einfach aufzufinden. Nach Nielsen (Usability-Guru) sollte ein Titel nicht länger als 60 Zeichen sein. Seitentitel wie z.B. &#8220;Willkommen auf unserer Homepage&#8221; oder &#8220;untitled document&#8221; sind absolut nutzlos.<br />
<span class="grey bold">check:</span> <span class="highlight">Titelzeile des Browserfensters</span></p>
</li>
<li>
<p class="nospace"><strong>Funktionalität bei deaktiviertem JavaScript</strong><br />
Unter Umständen haben einige Besucher z.B. aus Sicherheitsgründen die Ausführung von <a href="http://de.wikipedia.org/wiki/JavaScript">JavaScript</a> deaktiviert.<br />
Eine qualitativ hochwertige Seite sollte so angelegt sein, dass diese auch mit deaktiviertem JavaScript noch korrekt dargestellt wird und navigierbar ist.<br />
<span class="grey bold">web developer:</span> <span class="highlight">Disable > Disable JavaScript > All JavaScript</span></p>
</li>
</ul>
<h3>Weiterführende Links</h3>
<ul>
<li><a href="http://www.qualidator.com" class="liexternal">Qualidator Website Test</a><br />
Der Qualidator überprüft die ersten 5 Seiten einer Website mit ca. 60-70 automatischen Tests auf die Kernpunkte der Bereiche Usability (Benutzungsfreundlichkeit), Accessibility (Zugänglichkeit), SEO (Suchmaschinenoptimierung) und Quality (technische Qualität).</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.golser.info/qualitaetskriterien-fuer-webseiten-09122007/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Barrierefreies WebDesign</title>
		<link>http://www.golser.info/barrierefreies-webdesign-18062007</link>
		<comments>http://www.golser.info/barrierefreies-webdesign-18062007#comments</comments>
		<pubDate>Mon, 18 Jun 2007 19:15:02 +0000</pubDate>
		<dc:creator>Gusti</dc:creator>
				<category><![CDATA[Bakkalaureatsarbeit]]></category>
		<category><![CDATA[WebDesign]]></category>
		<category><![CDATA[barrierefreiheit]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[webdesign]]></category>
		<category><![CDATA[webstandards]]></category>

		<guid isPermaLink="false">http://www.golser.info/barrierefreies-webdesign-18062007</guid>
		<description><![CDATA[Barrierefreies WebDesign bezeichnet die Gestaltung und Entwicklung von Websites, die von allen, unabhängig von ihren körperlichen und/oder technischen Möglichkeiten, uneingeschränkt genutzt werden können. Dies schließt sowohl Menschen mit und ohne Behinderungen, als auch Benutzer mit technischen (z.B. Textbrowser) oder altersbedingten Einschränkungen (z.B. Sehschwächen) sowie automatische Suchprogramme ein. Fachbegriff: Accessibility. Grundvoraussetzung für barrierefreie Internetseiten ist die [...]]]></description>
			<content:encoded><![CDATA[<p>Barrierefreies WebDesign bezeichnet die Gestaltung und Entwicklung von Websites, die von allen, unabhängig von ihren körperlichen und/oder technischen Möglichkeiten, uneingeschränkt genutzt werden können.<br />
Dies schließt sowohl Menschen mit und ohne Behinderungen, als auch Benutzer mit technischen (z.B. Textbrowser) oder altersbedingten Einschränkungen (z.B. Sehschwächen) sowie automatische Suchprogramme ein. Fachbegriff: <strong>Accessibility</strong>.</p>
<p>Grundvoraussetzung für barrierefreie Internetseiten ist die Einhaltung von <strong>Webstandards</strong> (valides HTML/XHTML). Die geforderte strikte Trennung von Inhalt (Text, Bilder usw.) und Layout erreicht man durch den korrekten Einsatz von <a href="http://de.wikipedia.org/wiki/Cascading_Style_Sheets" rel="nofollow" class="liwikipedia">Cascading Style Sheets</a> (CSS).<br />
Kompromisse beim Design sind nicht nötig.<br />
<span id="more-186"></span></p>
<p>Die <strong>Vorteile</strong> dieses Konzeptes sind kürzere Ladezeiten, hohe Browser-Kompatibilität, verbesserte Suchmaschinenplatzierungen und damit verbunden mehr Besucher und Umsatz. Weiters wird durch barrierefreies WebDesign auch die Benutzerfreundlichkeit (Usability) und Wartbarkeit der Website erhöht. </p>
<p>Viele Webprojekte sind derzeit noch weit von Barrierefreiheit entfernt, arbeiten mit wild verschachtelten &#8220;Tabellenmonstern&#8221; und scheitern schon beim Versuch die Informationen übersichtlich auf ein Blatt Papier zu drucken.<br />
Gewiss ist der Wechsel von einer jahrelang praktizierten Arbeitsweise mit Old-School-Tabellenlayouts zum Layouten mit CSS nicht so einfach.<br />
Aber die vielleicht schwierige Phase der Umstellung lohnt sich, denn <strong>CSS-Layouts</strong> bieten allen Beteiligten – den Anwendern und Sitebetreibern ebenso wie den Designern – viele Vorteile.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.golser.info/barrierefreies-webdesign-18062007/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

