<?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>Norman&#039;s Blog &#187; CSS</title>
	<atom:link href="http://www.normansblog.de/tag/css/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.normansblog.de</link>
	<description>News über CSS, jQuery, Firefox und andere Browser sowie aktuelle Kinofilme.</description>
	<lastBuildDate>Fri, 21 Sep 2018 13:18:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>Vertikal zentrierte Linie hinter Text</title>
		<link>http://www.normansblog.de/line-behind-text/</link>
		<comments>http://www.normansblog.de/line-behind-text/#comments</comments>
		<pubDate>Wed, 07 Jan 2015 22:52:36 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=4801</guid>
		<description><![CDATA[Wie geht das? .linebehind,.examplediv { background-color: MediumTurquoise; background-image: linear-gradient(to top, Turquoise, DarkTurquoise); border: 1px solid #ddd; line-height: 100px; overflow: hidden; text-align: center; } .linebehind h3, .examplediv h3 { display: inline-block; position: relative; margin: 0; } .linebehind h3::before, .linebehind h3::after { content: ""; position: absolute; border-top: 1px solid; top: 50%; width: 2000px; } .linebehind h3::before { [...]]]></description>
			<content:encoded><![CDATA[<p>Wie geht das?</p>
<style>
.linebehind,.examplediv {
background-color: MediumTurquoise;
background-image: linear-gradient(to top, Turquoise, DarkTurquoise);
border: 1px solid #ddd;
line-height: 100px;
overflow: hidden;
text-align: center;
}
.linebehind h3,
.examplediv h3 {
	display: inline-block;
	position: relative;
	margin: 0;
}
.linebehind h3::before,
.linebehind h3::after {
	content: "";
	position: absolute;
	border-top: 1px solid;
	top: 50%;
	width: 2000px;
}
.linebehind h3::before {
	margin-right: 15px;
	right: 100%;
}
.linebehind h3::after {
	margin-left: 15px;
	left: 100%;
}
</style>
<div class="linebehind">
<h3>Lorem Ipsum</h3>
</div>
<p class="acenter">Die Linie hinter dem Text in diesem Beispiel ist gemeint.</p>
<p>Das hab ich mich auch schon einige Male gefragt. Und zu meiner Verwunderung gibt es schon <a href="http://www.impressivewebs.com/centered-heading-horizontal-line/">viele</a> <a href="http://codepen.io/ericrasch/pen/Irlpm">gute</a> <a href="http://knackforge.com/blog/sabareesh/css-trick-horizontal-line-behind-text">Ansätze</a> zu dem Thema, wie man eine Linie vertikal hinter einem Text zentriert und dabei noch Abstand zum Text halten kann. Nachfolgend will ich euch eine Variante vorstellen, die auch auf kunterbuntem Hintergrund funktioniert.</p>
<p><span id="more-4801"></span></p>
<p>Wie immer brauchen wir zu Beginn eine HTML-Grundlage, mit der wir arbeiten können. Dazu reicht uns ein Container und eine Überschrift, in diesem Fall soll das mal eine <code>&lt;h3&gt;</code> sein.</p>
<h6>HTML</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;section&gt;
	&lt;h3&gt;Lorem Ipsum&lt;/h3&gt;
&lt;/section&gt;</pre></td></tr></table></div>

<p>Zuerst bekommen der Container und die H3 selbst einige CSS Anweisungen.</p>
<h6>CSS</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">section <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">overflow</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">hidden</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">text-align</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">center</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
h3 <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> inline-block<span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">relative</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p><code>position: relative</code> sorgt dafür, dass wir später die Linien relativ zur Überschrift ausrichten können. Damit die Überschrift mittig dargestellt wird, braucht es die Zentrierung über <code>text-align</code>. Overflow verhindert, dass die Linien über den Container hinaus weitergezeichnet werden.</p>
<div class="examplediv">
<h3>Lorem Ipsum</h3>
</div>
<p class="acenter">Der Hintergrund ist nur Beispielhaft.</p>
<p>So weit, so gut! Jetzt geht es darum die Linien zu erstellen. Da wir dafür keine weitere HTML-Tags hinzufügen wollen, nehmen wir die CSS-Pseudo-Elemente <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/::before">::before</a> und <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/::after">::after</a>.</p>
<h6>CSS</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">h3<span style="color: #00AA00;">:</span><span style="color: #3333ff;">:before</span><span style="color: #00AA00;">,</span>
h3<span style="color: #00AA00;">:</span><span style="color: #3333ff;">:after </span><span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">content</span><span style="color: #00AA00;">:</span> <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">absolute</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">border-top</span><span style="color: #00AA00;">:</span> <span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#666</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">:</span> <span style="color: #933;">50%</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">2000px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
h3<span style="color: #00AA00;">:</span><span style="color: #3333ff;">:before </span><span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">margin-right</span><span style="color: #00AA00;">:</span> <span style="color: #933;">15px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">right</span><span style="color: #00AA00;">:</span> <span style="color: #933;">100%</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
h3<span style="color: #00AA00;">:</span><span style="color: #3333ff;">:after </span><span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">margin-left</span><span style="color: #00AA00;">:</span> <span style="color: #933;">15px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">:</span> <span style="color: #933;">100%</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Mit diesen CSS-Anweisungen werden die Linien auf einen Pixel Dicke und einer sehr großen Länge von 2000 Pixeln festgelegt, um sicher zu gehen, dass sie immer bis ans Ende des Containers reichen. Ihr könnt die Länge aber natürlich auch auf eine andere Breite beschränken. Die 15 Pixel Margin bei beiden Linien stellt den Abstand links und rechts zur Überschrift dar.</p>
<blockquote class="idea">
<h3>Tipp</h3>
<p>Wenn du die Linien dicker machen willst, geht das über die <code>border-top</code>-Anweisung. Wenn die Linie dicker wird, wird sie nicht mehr zentriert ausgegeben, das kannst du mit einem negativen <code>margin-top</code> ausgleichen.</p>
</blockquote>
<p>Damit wären wir auch schon fertig! Die Vorteile liegen auf der Hand: Wenig HTML, auf jedem Hintergrund anwendbar und funktioniert auf allen Browser ab IE9. Der Nachteil ist, dass wir <code>overflow:hidden</code> benötigen. Sollte das aber kein Problem für euch darstellen, hab ihr hiermit eine gute Möglichkeit gefunden eure Überschriften etwas aufzupeppen.</p>
<p>Ich will für diese Lösung übrigens ganz sicher keine Anerkennung ernten, 1. hat mein Kollege diese Variante verfasst, ich hab sie lediglich leicht verändert und veröffentlicht, und 2. hat diese Variante sicher schon jemand irgendwo in dieser Form bereits gemacht und ich hab es nur übersehen. Solltet ihr übrigens Verbesserungen finden oder eine gänzlich andere Methode bevorzugen, würde ich mich über einen Kommentar sehr freuen. <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.normansblog.de/line-behind-text/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&lt;progress&gt; Element</title>
		<link>http://www.normansblog.de/progress-element/</link>
		<comments>http://www.normansblog.de/progress-element/#comments</comments>
		<pubDate>Tue, 09 Aug 2011 17:27:59 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML5]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=3612</guid>
		<description><![CDATA[Hallo! Nach langer Pause melde ich mich mal wieder zurück. Ja, mir gehts gut, ich war nur ziemlich abgelenkt und hatte daher wenig Lust zu Schreiben. Jedenfalls dachte ich, wir sollten mal einen Blick auf ein neues HTML5 Form Element werfen: Das progress Element. Wie der Name schon sagt, kann man damit einen Fortschritt abbilden, [...]]]></description>
			<content:encoded><![CDATA[<p>Hallo!</p>
<div id="attachment_3617" class="wp-caption alignright" style="width: 120px"><a href="http://www.normansblog.de/progress-element/"><img src="http://www.normansblog.de/wp-content/uploads/2011/08/html5-progress-100x150.jpg" alt="HTML5 progress Element" title="HTML5 in progress" width="100" height="150" class="size-thumbnail wp-image-3617" /></a><p class="wp-caption-text">HTML5 in progress</p></div>
<p>Nach langer Pause melde ich mich mal wieder zurück. Ja, mir gehts gut, ich war nur ziemlich abgelenkt und hatte daher wenig Lust zu Schreiben.</p>
<p>Jedenfalls dachte ich, wir sollten mal einen Blick auf ein neues <a href="http://de.wikipedia.org/wiki/HTML5">HTML5</a> Form Element werfen: Das <code>progress</code> Element. Wie der Name schon sagt, kann man damit einen Fortschritt abbilden, meistens im Zusammenhang mit einem Formular. Dabei ist das geläufigste Beispiel ein Checkout in einem Internet-Shop, bei dem in der Regel mehrere Schritte nötig sind, bis die Ware verschickt wird.</p>
<p><span id="more-3612"></span></p>
<h3>Browserunterstützung</h3>
<table class="acenter alignright">
<tr>
<td>Browser</td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/firefox_ico.png" alt="Firefox" title="Firefox" width="16" height="16" class="alignnone size-full wp-image-2887" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/safari_ico.png" alt="Safari" title="Safari" width="16" height="16" class="alignnone size-full wp-image-2890" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/opera_ico.png" alt="Opera" title="Opera" width="16" height="16" class="alignnone size-full wp-image-2889" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/chrome_ico.png" alt="Chrome" title="Chrome" width="16" height="16" class="alignnone size-full wp-image-2886" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/ie_ico.png" alt="Internet Explorer" title="Internet Explorer" width="16" height="16" class="alignnone size-full wp-image-2888" /></td>
</tr>
<tr>
<td>ab Version</td>
<td>6</td>
<td>&ndash;</td>
<td>11</td>
<td>6</td>
<td>&ndash;</td>
</tr>
</table>
<p>Das Element ist Teil einer ganzen Reihe von neuen HTML-Tags und wird daher noch nicht von allen Browsern unterstützt. In Chrome und Opera geht es schon seit geraumer Zeit und Firefox wird ab Version 6 (kommt am 16.08.) vollständigen Support bieten. Leider hat auch das Update auf 5.1 bei Safari keine Unterstützung mitgebracht und beim IE weiß man nicht, ob und wann es überhaupt kommt. <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>Syntax</h3>
<p>Um ein einfaches <code>progress</code> Element zu erzeugen reicht es, wenn ihr das bisschen Code benutzt:</p>
<h6>HTML</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;progress&gt;</span>in progress<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>progress&gt;</span></pre></td></tr></table></div>

<p>Das erzeugt dann einen Fortschrittsbalken mit einer, je nach Browser, Standardbreite und einem Aussehen, das sich am Betriebssystem orientiert.</p>
<p class="acenter">
<progress>in progress</progress></p>
<p>Wie ihr seht, ist das der Zustand, bei dem ein genauer Fortschritt ungewiss ist, man weiß nur, dass etwas im Gange ist. Der Text innerhalb des Elements ist zugleich ein Fallback für ältere Browser und für die Accessibility des Tags zuständig. Schaut man sich das Element also im IE an, sieht man nur den Text &#8220;in progress&#8221;, nicht aber einen Fortschrittsbalken.</p>
<p>Will man nun zeigen, dass etwas zu 25% abgeschlossen ist, muss man das dem Element in Form von Attributen sagen. <code>progress</code> hat derzeit zwei mögliche Attribute (abgesehen natürlich von <code>class</code>, <code>id</code>, <code>style</code> etc., die jedes Element besitzen kann).</p>
<ol>
<li><code>max</code>, der Maximalwert, entspricht 100% der Breite des Fortschrittsbalkens</li>
<li><code>value</code>, der derzeitige Stand des Fortschrittsbalkens, kleiner-gleich <code>max</code></li>
</ol>
<p>Damit lassen sich jetzt z. B. diese drei Balken produzieren:</p>
<h6>HTML</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;progress <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;0.5&quot;</span>&gt;</span>50%<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>progress&gt;</span>
<span style="color: #009900;">&lt;progress <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;25&quot;</span> max<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;100&quot;</span>&gt;</span>25 aus 100<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>progress&gt;</span>
<span style="color: #009900;">&lt;progress <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;800&quot;</span> max<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;1000&quot;</span>&gt;</span>800<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>progress&gt;</span></pre></td></tr></table></div>

<p class="acenter">
<progress value="0.5">50%</progress><br/>
<progress value="25" max="100">25 aus 100</progress><br/>
<progress value="800" max="1000">800</progress></p>
<p>Wer will, kann das ganze auch per JavaScript animieren, dazu muss man nur den Wert von <code>value</code> überschreiben.</p>
<h3>Styling per CSS</h3>
<p>Zu aller erst sei gesagt, dass es sich hier um ein Inline-Element handelt, ähnlich dem <code>img</code> Tag. <em>padding</em>, <em>margin</em>, <em>vertical-align</em> und <em>width</em> haben also alle eine Wirkung auf unseren Fortschrittsbalken. Daneben gibt es noch Experimente mit Pseudo-Elementen wie <a href="https://developer.mozilla.org/en/CSS/%3a%3a-moz-progress-bar">::-moz-progress-bar</a> oder <a href="https://trac.webkit.org/wiki/Styling%20Form%20Controls">::-webkit-progress-value</a> (nur wenn -webkit-appearance auf none gestellt ist). Mozilla benutzt auch <a href="https://developer.mozilla.org/en/CSS/orient">-moz-orient</a>, um das Element auf den Kopf zu stellen.</p>
<p>Nun ja, das soll es dazu gewesen sein. Habt ihr das neuen Element schon benutzt? Könnt ihr euch vielleicht noch andere Anwendungsfälle vorstellen? Die Comments stehen euren Gedanklichen Ergüssen frei zur Verfügung! <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.normansblog.de/progress-element/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>IE6 &amp; IE7 Button Bug</title>
		<link>http://www.normansblog.de/ie6-ie7-button-bug/</link>
		<comments>http://www.normansblog.de/ie6-ie7-button-bug/#comments</comments>
		<pubDate>Tue, 17 May 2011 19:42:34 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[Nerviges]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=3464</guid>
		<description><![CDATA[Manchmal ist die Lösung so banal.. Dass der IE6 manchmal ein übler Troll sein kann und sein Nachfolger IE7 ihm in dieser Hinsicht in nichts nachsteht, brauch ich euch ja wohl kaum erzählen (ich habs jetzt natürlich trotzdem gemacht, einfach um ein cooles Intro zu haben ). Jedenfalls bin ich neulich erst auf einen richtig [...]]]></description>
			<content:encoded><![CDATA[<p>Manchmal ist die Lösung so banal..</p>
<div id="attachment_3465" class="wp-caption alignright" style="width: 170px"><a href="http://www.normansblog.de/ie6-ie7-button-bug/"><img src="http://www.normansblog.de/wp-content/uploads/2011/05/IE-6-troll-internet-explorer-browser-trollface-150x143.png" alt="IE6 Troll" title="IE6 Troll" width="150" height="143" class="size-thumbnail wp-image-3465" /></a><p class="wp-caption-text">Problem?</p></div>
<p>Dass der <a href="http://www.normansblog.de/position-absolute-png-filter/">IE6 manchmal ein übler Troll</a> sein kann und sein Nachfolger IE7 ihm in dieser Hinsicht in nichts nachsteht, brauch ich euch ja wohl kaum erzählen (ich habs jetzt natürlich trotzdem gemacht, einfach um ein cooles Intro zu haben <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ). Jedenfalls bin ich neulich erst auf einen richtig schönen Fix für ein bekanntes Problem bezüglich der Darstellung von Buttons im IE gestoßen.</p>
<p>Kennt ihr das: Ihr habt einen Button oder ein Submit-Input und gebt dem etwas Padding und schon zerschießt es euch im IE das halbe Formular, weil dieser Browser denkt, er müsse den Dicken markieren, indem er den Padding-Wert verdoppelt?</p>
<p><span id="more-3464"></span></p>
<p>Na dann seit ihr hier goldrichtig!</p>
<h3>Das Problem</h3>
<p>Wir haben also einen <code>button</code> oder ein <code>input</code> mit dem <code>type="submit"</code> (der Bug betrifft beides gleichermaßen) auf unserer Seite, was der tut ist uns an dieser Stelle reichlich egal.</p>
<h6>HTML</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">button</span>&gt;</span>Button<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">button</span>&gt;</span></pre></td></tr></table></div>

<p>Normalerweise rate ich immer dazu die Buttons so zu lassen, wie sie sind und so wenig wie möglich am Styling zu ändern. Natürlich kommt es jedoch vor, dass sie dadurch nicht richtig ins &#8220;Corporate Design&#8221; einer Firma &#8220;fitten&#8221;. Und da Kunde==König immer wahr ist, muss man hier und da etwas nachhelfen, dass die Buttons auch zum Rest passen. Sehr häufig muss dazu beispielsweise links und rechts das Padding erhöht werden, damit das alles nicht so zusammengeklatscht aussieht.</p>
<h6>CSS</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">button <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #933;">3px</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Alles gut denkt man, aber beim X-Browser-Test macht man schnell große Augen: Im IE6 und IE7 sind es nicht nur 10 Pixel links und rechts sondern mindestens doppelt so viele. Hier ein Vergleich:</p>
<p class="acenter"><img src="http://www.normansblog.de/wp-content/uploads/2011/05/ie_button_bug.jpg" alt="" title="Button-Bug in IE6 und IE7" width="408" height="99" class="aligncenter size-full wp-image-3470" /><small>Die türkisen Linien sind nachträglich eingezeichnet worden..</small></p>
<h3>Die Lösung</h3>
<p>In solchen Momenten möchte man am liebsten in die Tastatur beißen oder die Maus durch die Gegend werfen (@Wireless-Maus-User: tut es nicht!). Aber das ist gar nicht nötig, denn die Lösung ist ganz einfach, nahezu trivial. <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Alles, was wir tun müssen, ist eine Zeile CSS mehr zu schreiben:</p>
<h6>CSS</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">button <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">overflow</span><span style="color: #00AA00;">:</span><span style="color: #993333;">visible</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #933;">3px</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Durch <code>overflow:visible</code> hört der IE auf, mehr Padding zu vergeben als eigentlich gewollt. Das Schöne daran ist, dass er 100% valide ist und keinerlei Nachteile hat. Der Tag ist damit gerettet und alle können quietschvergnügt nach Hause gehen!</p>
<p class="acenter"> <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  Frontend-Developer <strong>1:0</strong> Internet Explorer <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.normansblog.de/ie6-ie7-button-bug/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Türchen #14: text-indent</title>
		<link>http://www.normansblog.de/tuerchen-14-text-indent/</link>
		<comments>http://www.normansblog.de/tuerchen-14-text-indent/#comments</comments>
		<pubDate>Tue, 14 Dec 2010 18:51:30 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Adventskalender 2010]]></category>
		<category><![CDATA[Anfänger]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=3100</guid>
		<description><![CDATA[Schönen guten Abend! Ein weiterer Tag, ein weiteres Türchen, eigentlich wollte ich mittlerweile mal etwas aufgeholt haben aber irgendwie kommt immer was dazwischen. Aber na gut, kommen wir also zu #14: text-indent. Mit dieser Eigenschaft können wir die erste Zeile eines beliebigen Textblocks manipulieren. Browserunterstützung Browser ab Version 1.0 1.0 3.5 1.0 3.0 Unterstützt ab [...]]]></description>
			<content:encoded><![CDATA[<p>Schönen guten Abend!</p>
<p><a href="http://www.normansblog.de/tuerchen-14-text-indent/"><img src="http://www.normansblog.de/wp-content/uploads/2010/11/adventskalender_14.png" alt="Türchen #14" title="Türchen #14" width="151" height="139" class="alignright size-full wp-image-2862" /></a> Ein weiterer Tag, ein weiteres Türchen, eigentlich wollte ich mittlerweile mal etwas aufgeholt haben aber irgendwie kommt immer was dazwischen. Aber na gut, kommen wir also zu #14: <em>text-indent</em>. Mit dieser Eigenschaft können wir die erste Zeile eines beliebigen Textblocks manipulieren.</p>
<p><span id="more-3100"></span></p>
<h3>Browserunterstützung</h3>
<table class="acenter alignright">
<tr>
<td>Browser</td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/firefox_ico.png" alt="Firefox" title="Firefox" width="16" height="16" class="alignnone size-full wp-image-2887" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/safari_ico.png" alt="Safari" title="Safari" width="16" height="16" class="alignnone size-full wp-image-2890" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/opera_ico.png" alt="Opera" title="Opera" width="16" height="16" class="alignnone size-full wp-image-2889" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/chrome_ico.png" alt="Chrome" title="Chrome" width="16" height="16" class="alignnone size-full wp-image-2886" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/ie_ico.png" alt="Internet Explorer" title="Internet Explorer" width="16" height="16" class="alignnone size-full wp-image-2888" /></td>
</tr>
<tr>
<td>ab Version</td>
<td>1.0</td>
<td>1.0</td>
<td>3.5</td>
<td>1.0</td>
<td>3.0</td>
</tr>
</table>
<p>Unterstützt ab Internet Explorer 3.0, das sagt glaub ich alles. <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Man kann die Eigenschaft also bedenkenlos einsetzen, sie funktioniert ausnahmslos in jedem Browser.</p>
<p>Erfahrene Webdeveloper nutzen diese Technik relativ häufig um beispielsweise Text zu verstecken oder um einen Absatz eingerückt beginnen zu lassen. Für Anfänger jedoch erschließt sich der richtige Gebrauch von <code>text-indent</code> meist etwas zu spät. Deswegen sei hier nochmal darauf hingewiesen, dass man damit nur einzeilige Texte bzw. die erste Zeile eines Textes beeinflussen kann.</p>
<p>Als Werte sind positive wie negative Längenangaben und prozentuale Angaben erlaubt.</p>
<h3>Beispiele</h3>
<p>Beispiel Nummer eins gebraucht <code>text-indent</code> zur Einrückung von Absatzanfängen, als Basis dient uns folgender Code:</p>
<h6>HTML</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, 
sed diam nonumy eirmod tempor invidunt ut labore et dolore 
magna aliquyam erat, sed diam voluptua. At vero eos et accusam 
et justo duo dolores et ea rebum.<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span></pre></td></tr></table></div>

<h6>CSS</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">p <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">text-indent</span><span style="color: #00AA00;">:</span><span style="color: #933;">2em</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<h6>Ergebnis</h6>
<div style="background-color:#eee;border:1px solid #aaa;padding:10px 10px 0;margin-bottom:10px;">
<p style="text-indent:2em;">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.</p>
</div>
<p>Man beachte, wie die erste Zeile des Absatzes um 2em eingerückt wird, die anderen Zeilen aber nicht.</p>
<blockquote class="idea"><p>Deswegen sollte man <code>text-indent</code> auch niemals in Menüs/Navigationen verwenden, sollte nämlich doch mal ein Menüpunkt umbrechen, ist nur die obere Zeile eingerückt, nicht aber der Rest des Textes. In solchen Fällen ist <code>padding</code> zu bevorzugen.</p>
</blockquote>
<p>Nächstes Beispiel: Wie in <a href="http://www.normansblog.de/tuerchen-3-color-transparent/">Türchen #3</a> angedeutet, wird <code>text-indent</code> gern zum verstecken von Text verwendet, speziell wenn es um Image-Replacement geht. Wollen wir doch noch mal nachsehen, wie genau das funktioniert. Wir nehmen wieder den Absatz von oben und fügen noch ein <code>span</code>-Tag ein, dass wir mit einem Bild (in diesem Fall der Schriftzug meines Blogs) ersetzen wollen..</p>
<h6>HTML</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, 
sed diam nonumy eirmod tempor invidunt ut labore et dolore 
magna aliquyam erat, sed diam voluptua. <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">span</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;logo&quot;</span>&gt;</span>Norman's Blog<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;</span> 
At vero eos et accusam et justo duo dolores et ea rebum.<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span></pre></td></tr></table></div>

<h6>CSS</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.logo</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span><span style="color: #993333;">transparent</span> <span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">normansblog_logo.png</span><span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">no-repeat</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">display</span><span style="color: #3333ff;">:inline-</span>block<span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/*damit height und width greift*/</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">29px</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/*Höhe des Bildes*/</span>
	<span style="color: #000000; font-weight: bold;">text-indent</span><span style="color: #00AA00;">:</span><span style="color: #933;">-9999px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">vertical-align</span><span style="color: #00AA00;">:</span><span style="color: #000000; font-weight: bold;">bottom</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">150px</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/*Breite des Bildes*/</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<h6>Ergebnis</h6>
<div style="background-color:#eee;border:1px solid #aaa;padding:10px 10px 0;margin-bottom:10px;">
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. <span style="background:transparent url(http://www.normansblog.de/wp-content/uploads/2010/12/normansblog_logo-150x29.png) no-repeat 0 0;display:inline-block;height:29px;text-indent:-9999px;vertical-align:bottom;width:150px;">Norman&#8217;s Blog</span> At vero eos et accusam et justo duo dolores et ea rebum.</p>
</div>
<p>Soviel dazu, <code>text-indent</code> ist also eine nützliche Sache, die man im Hinterkopf behalten sollte.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.normansblog.de/tuerchen-14-text-indent/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Türchen #13: cursor</title>
		<link>http://www.normansblog.de/tuerchen-13-cursor/</link>
		<comments>http://www.normansblog.de/tuerchen-13-cursor/#comments</comments>
		<pubDate>Mon, 13 Dec 2010 22:11:23 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Adventskalender 2010]]></category>
		<category><![CDATA[Anfänger]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=3087</guid>
		<description><![CDATA[Schönen guten Abend! Auch an diesem wundervollen Abend gilt es einmal mehr ein Türchen im Adventskalender zu öffenbaren, diesmal verbirgt sich dahiner.. cursor! Mit dieser tollen Eigenschaft ist es uns möglich, das Bild des Mauszeigers zu ändern, wenn dieser über bestimmte Elemente unserer Webseite fährt bzw. ruht. Browserunterstützung Browser ab Version 1.0 1.2 7.0 1.0 [...]]]></description>
			<content:encoded><![CDATA[<p>Schönen guten Abend!</p>
<p><a href="http://www.normansblog.de/tuerchen-13-cursor/"><img src="http://www.normansblog.de/wp-content/uploads/2010/11/adventskalender_13.png" alt="Türchen #13" title="Türchen #13" width="151" height="139" class="alignright size-full wp-image-2862" /></a> Auch an diesem wundervollen Abend gilt es einmal mehr ein Türchen im Adventskalender zu öffenbaren, diesmal verbirgt sich dahiner.. <em>cursor</em>! Mit dieser tollen Eigenschaft ist es uns möglich, das Bild des Mauszeigers zu ändern, wenn dieser über bestimmte Elemente unserer Webseite fährt bzw. ruht.</p>
<p><span id="more-3087"></span></p>
<h3>Browserunterstützung</h3>
<table class="acenter alignright">
<tr>
<td>Browser</td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/firefox_ico.png" alt="Firefox" title="Firefox" width="16" height="16" class="alignnone size-full wp-image-2887" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/safari_ico.png" alt="Safari" title="Safari" width="16" height="16" class="alignnone size-full wp-image-2890" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/opera_ico.png" alt="Opera" title="Opera" width="16" height="16" class="alignnone size-full wp-image-2889" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/chrome_ico.png" alt="Chrome" title="Chrome" width="16" height="16" class="alignnone size-full wp-image-2886" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/ie_ico.png" alt="Internet Explorer" title="Internet Explorer" width="16" height="16" class="alignnone size-full wp-image-2888" /></td>
</tr>
<tr>
<td>ab Version</td>
<td>1.0</td>
<td>1.2</td>
<td>7.0</td>
<td>1.0</td>
<td>4.0</td>
</tr>
</table>
<p><code>cursor</code> hat sehr viele mögliche Werte, angefangen vom normalen Pfeil, über eine Hand, bis hin zu einer Sanduhr kann man so ziemlich alles damit machen. Die Unterstützung an der Browserfront ist sehr gut, einige extravagante Icons sind allerdings erst in höheren Versionen nutzbar bzw. abhängig vom jeweiligen Betriebssystem.</p>
<p>Von der Syntax her ist <code>cursor</code> ganz einfach aufgebaut und kann auf jedes Elemente angewendet werden. Nach der Eigenschaft folgt einfach eines der vielen Schlüsselwörter. Man kann auch eigene Cursor verwenden, hierzu benötigt man jedoch eine .cur-Datei (eine besondere Form des <a href="http://en.wikipedia.org/wiki/ICO_%28file_format%29">.ico Formats</a>). Diese bindet man dann über <code>url(pfad-zur-cursor-datei)</code> ein.</p>
<h6>CSS</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">abbr <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">cursor</span><span style="color: #00AA00;">:</span><span style="color: #993333;">help</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.wait</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">cursor</span><span style="color: #00AA00;">:</span><span style="color: #993333;">wait</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.hide-cursor</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">cursor</span><span style="color: #00AA00;">:</span><span style="color: #993333;">none</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<h3>Beispiele</h3>
<p>Im Folgenden werde ich mal einige Werte auflisten, wenn ihr über den Listeneintrag fahrt, werden ihr sehen, wie sich euer Mauszeiger verändert.</p>
<ul>
<li style="cursor:default;">default</li>
<li style="cursor:none;">none</li>
<li style="cursor:help;">help</li>
<li style="cursor:pointer;">pointer</li>
<li style="cursor:progress;">progress</li>
<li style="cursor:wait;">wait</li>
<li style="cursor:crosshair;">crosshair</li>
<li style="cursor:move;">move</li>
<li style="cursor:n-resize;">n-resize</li>
</ul>
<p>Eine <a href="https://developer.mozilla.org/de/CSS/cursor">komplette Übersicht</a> mit allen möglichen Werten gibt es unter anderem im <abbr title="Mozilla Developer Network">MDN</abbr>. Wie ihr sicherlich schon richtig vermutet, kann man <code>cursor</code> dazu nutzen, um damit allerhand Blödsinn anzustellen. Das ist natürlich nicht der Sinn des Erfinders. Vielmehr würde ich mir wünschen, dass bei anklickbaren Elemente (in Zeiten von jQuery und Co. kann das ja alles sein) ein Pointer-Cursor erscheint, und bei <a href="http://webstandard.kulando.de/static/css3-windows-7">Dialogboxen/Fenstern</a> entsprechend ein Move-Cursor.</p>
<p>Für erklärende Elemente, wie das <code>abbr</code>-Tag beispielsweise, sollte man <code>cursor:help</code> setzen, damit der User weiß: &#8220;Ah, hier wird mir etwas erklärt, hier bekomme ich Hilfe.&#8221; Kleine Dinge, die die Usability einer Seite aber entscheidend beeinflussen können, aber <strong>bitte nutzt es in Maßen!</strong> <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.normansblog.de/tuerchen-13-cursor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Türchen #12: caption-side</title>
		<link>http://www.normansblog.de/tuerchen-12-caption-side/</link>
		<comments>http://www.normansblog.de/tuerchen-12-caption-side/#comments</comments>
		<pubDate>Sun, 12 Dec 2010 21:35:09 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Adventskalender 2010]]></category>
		<category><![CDATA[Anfänger]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=3070</guid>
		<description><![CDATA[Das Dutzend ist voll &#8211; Bergfest! Wenn wir nun einmal mit Tables angefangen haben, machen wir doch gleich damit weiter. Noch eine Eigenschaft, die es nur für Tables gibt, ist caption-side. Sie ist fest an das caption-Tag gebunden und setzt logischer Weise voraus, dass ihr solches auch benutzt. Die Eigenschaft gibt dabei an, auf welcher [...]]]></description>
			<content:encoded><![CDATA[<p>Das Dutzend ist voll &#8211; Bergfest!</p>
<p><a href="http://www.normansblog.de/tuerchen-12-caption-side/"><img src="http://www.normansblog.de/wp-content/uploads/2010/11/adventskalender_12.png" alt="Türchen #12" title="Türchen #12" width="151" height="139" class="alignright size-full wp-image-2862" /></a> Wenn wir nun einmal mit Tables angefangen haben, machen wir doch gleich damit weiter. Noch eine Eigenschaft, die es nur für Tables gibt, ist <em>caption-side</em>. Sie ist fest an das <code>caption</code>-Tag gebunden und setzt logischer Weise voraus, dass ihr solches auch benutzt. Die Eigenschaft gibt dabei an, auf welcher Seite der Tabelle der Titel ausgegeben werden soll.</p>
<p><span id="more-3070"></span></p>
<h3>Browserunterstützung</h3>
<table class="acenter alignright">
<tr>
<td>Browser</td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/firefox_ico.png" alt="Firefox" title="Firefox" width="16" height="16" class="alignnone size-full wp-image-2887" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/safari_ico.png" alt="Safari" title="Safari" width="16" height="16" class="alignnone size-full wp-image-2890" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/opera_ico.png" alt="Opera" title="Opera" width="16" height="16" class="alignnone size-full wp-image-2889" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/chrome_ico.png" alt="Chrome" title="Chrome" width="16" height="16" class="alignnone size-full wp-image-2886" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/ie_ico.png" alt="Internet Explorer" title="Internet Explorer" width="16" height="16" class="alignnone size-full wp-image-2888" /></td>
</tr>
<tr>
<td>ab Version</td>
<td>1.0</td>
<td>1.0</td>
<td>4.0</td>
<td>1.0</td>
<td>8.0</td>
</tr>
</table>
<p><code>caption-side</code> hat zwei Werte, die von Bedeutung sind: <code>top</code> und <code>bottom</code>, wobei erstes den Defaultwert darstellt. Firefox unterstützt zudem auch noch <code>left</code> und <code>right</code>. Die Wahrscheinlichkeit aber, mit der ein Fall eintritt, indem einer dieser beiden Werte nötig wären, geht quasi gegen Null.</p>
<h3>Beispiel</h3>
<p>Wie letztens gehts mit einer normalen Tabelle los, diese hier wird auch eine <code>caption</code> (Überschrift, Bezeichnung) haben, denn darum gehts uns ja.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">table</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">caption</span>&gt;</span>Besucherzahlen<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">caption</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">thead</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">th</span>&gt;</span>Monat<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">th</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">th</span>&gt;</span>Besucher<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">th</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">thead</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tbody</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span>&gt;</span>11/2010<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span>&gt;</span>2.744<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span>&gt;</span>10/2010<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span>&gt;</span>2.503<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span>&gt;</span>09/2010<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span>&gt;</span>2.771<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tbody</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">table</span>&gt;</span></pre></td></tr></table></div>

<p>Da <code>caption-side:top</code> der Standard ist, erwartet uns folgende Ausgabe:</p>
<table style="margin:10px auto;">
<caption>Besucherzahlen</caption>
<thead>
<tr>
<th>Monat</th>
<th>Besucher</th>
</tr>
</thead>
<tbody>
<tr>
<td>11/2010</td>
<td>2.744</td>
</tr>
<tr>
<td>10/2010</td>
<td>2.503</td>
</tr>
<tr>
<td>09/2010</td>
<td>2.771</td>
</tr>
</tbody>
</table>
<p>Jetzt nutzen wir <code>caption-side:bottom</code> und wenden es am caption-Tag an.</p>
<h6>CSS</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">caption <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">caption-side</span><span style="color: #00AA00;">:</span><span style="color: #000000; font-weight: bold;">bottom</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Damit sieht unsere Tabelle dann so aus:</p>
<table style="margin:10px auto;">
<caption style="caption-side:bottom;">Besucherzahlen</caption>
<thead>
<tr>
<th>Monat</th>
<th>Besucher</th>
</tr>
</thead>
<tbody>
<tr>
<td>11/2010</td>
<td>2.744</td>
</tr>
<tr>
<td>10/2010</td>
<td>2.503</td>
</tr>
<tr>
<td>09/2010</td>
<td>2.771</td>
</tr>
</tbody>
</table>
<p>Das Gleiche könnt ihr jetzt ja mal für <code>left</code> und <code>right</code> im Firefox probieren. <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.normansblog.de/tuerchen-12-caption-side/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Türchen #11: empty-cells</title>
		<link>http://www.normansblog.de/tuerchen-11-empty-cells/</link>
		<comments>http://www.normansblog.de/tuerchen-11-empty-cells/#comments</comments>
		<pubDate>Sat, 11 Dec 2010 20:18:51 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Adventskalender 2010]]></category>
		<category><![CDATA[Anfänger]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=3057</guid>
		<description><![CDATA[Und weiter geht&#8217;s.. Manchmal werden sie einfach noch gebraucht, auch wenn man sie eigentlich überhaupt nicht leiden kann.. die Rede ist nicht von Frauen sondern natürlich von Tables. Im Zusammenhang mit Tables gibt es einiges zu wissen und kennen zu lernen. Neben den ganzen Elementen und Hierarchien, die man damit aufbauen kann, gibt es auch [...]]]></description>
			<content:encoded><![CDATA[<p>Und weiter geht&#8217;s..</p>
<p><a href="http://www.normansblog.de/tuerchen-11-empty-cells/"><img src="http://www.normansblog.de/wp-content/uploads/2010/11/adventskalender_11.png" alt="Türchen #11" title="Türchen #11" width="151" height="139" class="alignright size-full wp-image-2862" /></a> Manchmal werden sie einfach noch gebraucht, auch wenn man sie eigentlich überhaupt nicht leiden kann.. die Rede ist nicht von Frauen sondern natürlich von Tables. Im Zusammenhang mit Tables gibt es einiges zu wissen und kennen zu lernen. Neben den ganzen Elementen und Hierarchien, die man damit aufbauen kann, gibt es auch eine ganze Reihe von CSS Eigenschaften, die speziell Tables beeinflussen. Eine davon, nämlich <em>empty-cells</em>, stelle ich euch heute vor.</p>
<p><span id="more-3057"></span></p>
<h3>Browserunterstützung</h3>
<table class="acenter alignright">
<tr>
<td>Browser</td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/firefox_ico.png" alt="Firefox" title="Firefox" width="16" height="16" class="alignnone size-full wp-image-2887" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/safari_ico.png" alt="Safari" title="Safari" width="16" height="16" class="alignnone size-full wp-image-2890" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/opera_ico.png" alt="Opera" title="Opera" width="16" height="16" class="alignnone size-full wp-image-2889" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/chrome_ico.png" alt="Chrome" title="Chrome" width="16" height="16" class="alignnone size-full wp-image-2886" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/ie_ico.png" alt="Internet Explorer" title="Internet Explorer" width="16" height="16" class="alignnone size-full wp-image-2888" /></td>
</tr>
<tr>
<td>ab Version</td>
<td>1.0</td>
<td>1.2</td>
<td>4.0</td>
<td>1.0</td>
<td>8.0</td>
</tr>
</table>
<p>Eigentlich schon erstaunlich wie wenig der IE vor Version 8 überhaupt beherrscht hat, <code>empty-cells</code> hat jedenfalls nicht dazu gehört. Aber da es sich hier eh nur um eine kosmetische Eigenschaft geht, ist das noch vertretbar. Was macht <code>empty-cells</code>? Wie der Name schon andeutet, handelt es sich hier um Zellen einer Tabelle, die durch CSS ausgeblendet werden können, wenn sie leer sind.</p>
<p>Der dafür zuständige Wert lautet <code>hide</code>, um leere Zellen wieder anzuzeigen, muss der Wert auf <code>show</code> gestellt werden. <code>show</code> ist außerdem der Standardwert für <code>empty-cells</code>.</p>
<h3>Beispiel</h3>
<p>Schauen wir uns die Sache an einer Beispieltabelle an:</p>
<h6>HTML</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">table</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">thead</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">th</span>&gt;</span>Browser<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">th</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">th</span>&gt;</span>CSS3<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">th</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">thead</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tbody</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span>&gt;</span>Firefox<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span>&gt;</span>ja<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span>&gt;</span>Chrome<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span>&gt;</span>ja<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span>&gt;</span>IE<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tbody</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">table</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>(..jede Menge Tags, ich weiß..)<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span></pre></td></tr></table></div>

<h6>Ergebnis</h6>
<table style="border-collapse:separate;">
<thead>
<tr>
<th>Browser</th>
<th>CSS3</th>
</tr>
</thead>
<tbody>
<tr>
<td>Firefox</td>
<td>ja</td>
</tr>
<tr>
<td>Chrome</td>
<td>ja</td>
</tr>
<tr>
<td>IE</td>
<td></td>
</tr>
</tbody>
</table>
<p>Raus kommt eine normale Tabelle, eventuelle Borders und Hintergründe werden auch für leere Zellen gerendert, jetzt das Ganze mit <code>empty-cells:hide</code>.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">table <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">empty-cells</span><span style="color: #00AA00;">:</span><span style="color: #993333;">hide</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<h6>Ergebnis</h6>
<table style="empty-cells:hide">
<thead>
<tr>
<th>Browser</th>
<th>CSS3</th>
</tr>
</thead>
<tbody>
<tr>
<td>Firefox</td>
<td>ja</td>
</tr>
<tr>
<td>Chrome</td>
<td>ja</td>
</tr>
<tr>
<td>IE</td>
<td></td>
</tr>
</tbody>
</table>
<p>Und weg ist die leere <code>td</code>! Naja nicht ganz weg, aber halt versteckt. Sie bleibt immer noch im Markup vorhanden und behält ihre Ausmaße. Man muss auch keine Angst haben, dass floatende Elemente in die Lücken rutschen oder sowas in der Art. <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.normansblog.de/tuerchen-11-empty-cells/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Türchen #10: negatives margin</title>
		<link>http://www.normansblog.de/tuerchen-10-negatives-margin/</link>
		<comments>http://www.normansblog.de/tuerchen-10-negatives-margin/#comments</comments>
		<pubDate>Fri, 10 Dec 2010 22:57:54 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Adventskalender 2010]]></category>
		<category><![CDATA[Anfänger]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=3041</guid>
		<description><![CDATA[Und weiter geht&#8217;s.. Komischer Weise hat sich so ein bisschen das Gerücht verbreitet, dass negative Werte für margin irgendwie falsch oder nicht standardkonform oder Cross-Browser-inkompatibel sein sollen. Das ist natürlich vollkommener Blödsinn, vor allem wenn man bedenkt, wie nützlich es sein kann, negative Werte zu benutzen. Ein Beispiel will ich euch gern zeigen. Browserunterstützung Browser [...]]]></description>
			<content:encoded><![CDATA[<p>Und weiter geht&#8217;s..</p>
<p><a href="http://www.normansblog.de/tuerchen-10-negatives-margin/"><img src="http://www.normansblog.de/wp-content/uploads/2010/11/adventskalender_10.png" alt="Türchen #10" title="Türchen #10" width="151" height="139" class="alignright size-full wp-image-2862" /></a> Komischer Weise hat sich so ein bisschen das Gerücht verbreitet, dass <em>negative Werte für margin</em> irgendwie falsch oder nicht standardkonform oder Cross-Browser-inkompatibel sein sollen. Das ist natürlich vollkommener Blödsinn, vor allem wenn man bedenkt, wie nützlich es sein kann, negative Werte zu benutzen. Ein Beispiel will ich euch gern zeigen.</p>
<p><span id="more-3041"></span></p>
<h3>Browserunterstützung</h3>
<table class="acenter alignright">
<tr>
<td>Browser</td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/firefox_ico.png" alt="Firefox" title="Firefox" width="16" height="16" class="alignnone size-full wp-image-2887" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/safari_ico.png" alt="Safari" title="Safari" width="16" height="16" class="alignnone size-full wp-image-2890" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/opera_ico.png" alt="Opera" title="Opera" width="16" height="16" class="alignnone size-full wp-image-2889" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/chrome_ico.png" alt="Chrome" title="Chrome" width="16" height="16" class="alignnone size-full wp-image-2886" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/ie_ico.png" alt="Internet Explorer" title="Internet Explorer" width="16" height="16" class="alignnone size-full wp-image-2888" /></td>
</tr>
<tr>
<td>ab Version</td>
<td>1.0</td>
<td>1.0</td>
<td>3.5</td>
<td>1.0</td>
<td>3.0</td>
</tr>
</table>
<p><code>margin</code> wird natürlich von allen Browsern seit jeher unterstützt, dazu zählt auch die Angabe von negativen Werten. Damit lässt sich allerhand machen und kann einen in so manch einer kniffligen Situation aus der Patsche helfen. Prinzipiell könnte man es vielleicht am ehesten mit <code>position:relative</code> vergleichen. Die Position bzw. die Ausmaße einen Blocks ändern sich.. aber wie immer lässt es sich am besten an einem Beispiel erklären.</p>
<h3>Beispiel</h3>
<p>Nehmen wir ein einfaches Widget mit einer Überschrift, innerhalb des Widgets gibt es eine Überschrift und Inhalt in irgendeiner Form. Natürlich soll der Inhalt einen gewissen Abstand zum Rand des Widgets haben, dafür nutzen wir logischerweise Padding. Die Überschrift allerdings, soll durch einen Hintergrund farblich hervorgehoben sein.. aber durch das Padding des Widgets entsteht jetzt links und rechts eine Lücke, was also tun?</p>
<p>Schauen wir uns das Ganze mal näher an:</p>
<h6>HTML</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;widget&quot;</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h4</span>&gt;</span>Überschrift<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h4</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre></td></tr></table></div>

<h6>CSS</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.widget</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#aaa</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span> <span style="color: #933;">10px</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">200px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
h4 <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#adf</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<h6>Ergebnis</h6>
<div style="border:1px solid #aaa;padding:0 10px 10px;margin-bottom:10px;width:200px;">
<h4 style="background-color:#adf;padding:0 10px;">Überschrift</h4>
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</p>
</div>
<p>Da haben wirs.. grottig diese blöde Lücke links und rechts &#8211; aber es gibt eine Lösung für dieses Problem: negatives Margin to the rescue!</p>
<h6>Überschrift bekommt negatives Margin</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">h4 <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#adf</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span> <span style="color: #933;">-10px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<h6>Ergebnis</h6>
<div style="border:1px solid #aaa;padding:0 10px 10px;margin-bottom:10px;width:200px;">
<h4 style="background-color:#adf;padding:0 10px;margin:0 -10px;">Überschrift</h4>
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</p>
</div>
<p>Ach schön. <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.normansblog.de/tuerchen-10-negatives-margin/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Türchen #9: display:inline-block</title>
		<link>http://www.normansblog.de/tuerchen-9-display-inline-block/</link>
		<comments>http://www.normansblog.de/tuerchen-9-display-inline-block/#comments</comments>
		<pubDate>Thu, 09 Dec 2010 13:55:06 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Adventskalender 2010]]></category>
		<category><![CDATA[Anfänger]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[IE6]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=3015</guid>
		<description><![CDATA[Nachholbedarf ist angesagt.. Am neunten Tag möchte ich euch display:inline-block näher bringen. display an sich dürfte ja allen bekannt sein.. es gibt (neben diversen anderen) display:none, display:block, display:inline und eben noch etwas dazwischen &#8211; inline-block. Wozu man das braucht und wobei es hilfreich sein kann, verrät euch der heutige Eintrag. Browserunterstützung Browser ab Version 3.0 [...]]]></description>
			<content:encoded><![CDATA[<p>Nachholbedarf ist angesagt..</p>
<p><a href="http://www.normansblog.de/tuerchen-9-display-inline-block/"><img src="http://www.normansblog.de/wp-content/uploads/2010/11/adventskalender_9.png" alt="Türchen #9" title="Türchen #9" width="151" height="139" class="alignright size-full wp-image-2862" /></a> Am neunten Tag möchte ich euch display:inline-block näher bringen. display an sich dürfte ja allen bekannt sein.. es gibt (neben <a href="https://developer.mozilla.org/en/CSS/display#Values">diversen anderen</a>) <em>display:none</em>, <em>display:block</em>, <em>display:inline</em> und eben noch etwas dazwischen &#8211; <em>inline-block</em>. Wozu man das braucht und wobei es hilfreich sein kann, verrät euch der heutige Eintrag.</p>
<p><span id="more-3015"></span></p>
<h3>Browserunterstützung</h3>
<table class="acenter alignright">
<tr>
<td>Browser</td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/firefox_ico.png" alt="Firefox" title="Firefox" width="16" height="16" class="alignnone size-full wp-image-2887" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/safari_ico.png" alt="Safari" title="Safari" width="16" height="16" class="alignnone size-full wp-image-2890" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/opera_ico.png" alt="Opera" title="Opera" width="16" height="16" class="alignnone size-full wp-image-2889" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/chrome_ico.png" alt="Chrome" title="Chrome" width="16" height="16" class="alignnone size-full wp-image-2886" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/ie_ico.png" alt="Internet Explorer" title="Internet Explorer" width="16" height="16" class="alignnone size-full wp-image-2888" /></td>
</tr>
<tr>
<td>ab Version</td>
<td>3.0</td>
<td>1.0</td>
<td>3.5</td>
<td>1.0</td>
<td>5.5</td>
</tr>
</table>
<p><code>inline-block</code> hat eine Weile gebraucht bis es sich flächendeckend bei allen Browsern durchgesetzt hat. Aktuelle Versionen unterstützen es problemlos, nur IE6 und 7 haben eine Einschränkung: Der Wert wird nur auf inline-Elemente korrekt angewendet.</p>
<p>Was ist nun der große Vorteil von Inline-Block-Elementen? Anders als Block-Elemente, welche standardmäßig auf die volle Breite des Elternelements aufgezogen, verhalten sich Inline-Block-Elemente wie Replaced Elements (das <code>img</code>-Tag wäre ein Beispiel dafür). D. h. dass sie in den Textfluss eingebunden bleiben aber dennoch dir Vorteile eines Block-Elements genießen. Dazu zählen unter anderem volle Unterstützung für Margin. Auf normale Inline-Elemente kann man beispielsweise kein Margin anwenden, das hat schlicht keinen Einfluss.</p>
<h3>Beispiel</h3>
<p>Oftmals wird inline-block eingesetzt, wenn man ein Grid &#8211; auf Deutsch &#8220;Gitter-Struktur&#8221; &#8211; aufbauen will, deren Zellen aufgrund ihres Inhalts eine unbekannte Höhe haben können. Nehmen wir an, wie hätten eine Liste mit sechs Elementen, diese wollen wir zu einem 3&times;2-Grid zusammenfügen.</p>
<h6>HTML</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">ul</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;</span>1<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;</span>2<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">br</span><span style="color: #66cc66;">/</span>&gt;</span>+<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;</span>3<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;</span>4<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;</span>5<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;</span>6<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">ul</span>&gt;</span></pre></td></tr></table></div>

<p>Zunächst wollen wir das auf althergebrachte Art und Weise machen, mit <code>float</code>:</p>
<h6>CSS</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">ul <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#aaa</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#fff</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span><span style="color: #933;">30px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">list-style</span><span style="color: #00AA00;">:</span><span style="color: #993333;">none</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">overflow</span><span style="color: #00AA00;">:</span><span style="color: #993333;">hidden</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span> <span style="color: #933;">10px</span> <span style="color: #933;">10px</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">180px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
li <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#adf</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">float</span><span style="color: #00AA00;">:</span><span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #933;">10px</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">text-align</span><span style="color: #00AA00;">:</span><span style="color: #993333;">center</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">30px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<h6>Ergebnis</h6>
<ul style="border:1px solid #aaa;color:#fff;font-size:30px;list-style:none;margin:0 0 10px;overflow:hidden;padding:0 10px 10px 0;text-align:center;width:180px;">
<li style="background:#adf;float:left;margin:10px 0 0 10px;padding:10px;width:30px;">1</li>
<li style="background:#adf;float:left;margin:10px 0 0 10px;padding:10px;width:30px;">2<br/>+</li>
<li style="background:#adf;float:left;margin:10px 0 0 10px;padding:10px;width:30px;">3</li>
<li style="background:#adf;float:left;margin:10px 0 0 10px;padding:10px;width:30px;">4</li>
<li style="background:#adf;float:left;margin:10px 0 0 10px;padding:10px;width:30px;">5</li>
<li style="background:#adf;float:left;margin:10px 0 0 10px;padding:10px;width:30px;">6</li>
</ul>
<p>Und da sehen wir auch schon das Problem dieser Lösung: Sobald ein Listenelement höher ist als die anderen, bringt es komplett die Reihenfolge durcheinander. Außerdem muss die Liste <em>gecleared</em> werden, da die Listenelemente <em>floaten</em>. Genau da hilft uns <code>inline-block</code> weiter, aber auch damit muss man zwei Dinge beachten.</p>
<ol>
<li>Dadurch, dass die Elemente nun Inline-Charakter haben, werden Zeilenumbrüche, Einrückungen und Leerzeichen im Code als zu einem Leerzeichen zusammengefasst. Um dem entgegen zu wirken, brauch man nur die <code>li</code>-Tags hintereinander zu schreiben.</li>
<li>Ein weiterer Nachteil des Inline-Charakters ist die Tatsache, dass jetzt das Vertical-Alignment greift. Wir müssen also <code>vertical-align:top</code> setzen, damit die Listenelemente nach oben hin bündig zueinander sind.</li>
</ol>
<h6>HTML</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">ul</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;</span>1<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;</span>2<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">br</span><span style="color: #66cc66;">/</span>&gt;</span>+<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;</span>3<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;</span>4<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;</span>5<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;</span>6<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">ul</span>&gt;</span></pre></td></tr></table></div>

<h6>CSS</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">ul <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#aaa</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#fff</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span><span style="color: #933;">30px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">list-style</span><span style="color: #00AA00;">:</span><span style="color: #993333;">none</span><span style="color: #00AA00;">;</span>
	<span style="color: #808080; font-style: italic;">/*overflow:hidden;*/</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span> <span style="color: #933;">10px</span> <span style="color: #933;">10px</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">180px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
li <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#adf</span><span style="color: #00AA00;">;</span>
	<span style="color: #808080; font-style: italic;">/*float:left;*/</span>
	<span style="color: #000000; font-weight: bold;">display</span><span style="color: #3333ff;">:inline-</span>block<span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #933;">10px</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">text-align</span><span style="color: #00AA00;">:</span><span style="color: #993333;">center</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">30px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">vertical-align</span><span style="color: #00AA00;">:</span><span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<h6>Ergebnis</h6>
<ul style="border:1px solid #aaa;color:#fff;font-size:30px;list-style:none;margin:0 0 10px;padding:0 10px 10px 0;width:181px;letter-spacing:-7px;">
<li style="background:#adf;display:inline-block;margin:10px 0 0 10px;padding:10px;text-align:center;width:30px;vertical-align:top;">1</li>
<li style="background:#adf;display:inline-block;margin:10px 0 0 10px;padding:10px;text-align:center;width:30px;vertical-align:top;">2<br/>+</li>
<li style="background:#adf;display:inline-block;margin:10px 0 0 10px;padding:10px;text-align:center;width:30px;vertical-align:top;">3</li>
<li style="background:#adf;display:inline-block;margin:10px 0 0 10px;padding:10px;text-align:center;width:30px;vertical-align:top;">4</li>
<li style="background:#adf;display:inline-block;margin:10px 0 0 10px;padding:10px;text-align:center;width:30px;vertical-align:top;">5</li>
<li style="background:#adf;display:inline-block;margin:10px 0 0 10px;padding:10px;text-align:center;width:30px;vertical-align:top;">6</li>
</ul>
<p>Somit hätten wir ein schönes Grid, das so umbricht, wie man es von einem Grid erwartet. To be continued..</p>
]]></content:encoded>
			<wfw:commentRss>http://www.normansblog.de/tuerchen-9-display-inline-block/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Türchen #8: white-space</title>
		<link>http://www.normansblog.de/tuerchen-8-white-space/</link>
		<comments>http://www.normansblog.de/tuerchen-8-white-space/#comments</comments>
		<pubDate>Wed, 08 Dec 2010 22:31:26 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Adventskalender 2010]]></category>
		<category><![CDATA[Anfänger]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=3002</guid>
		<description><![CDATA[Morgen. Tag acht des CSS-Adventskalenders, wie die Zeit vergeht. Heute im Angebot: white-space und wie und warum man es benutzt. Wie immer gibts ein aussagekräftiges Beispiel, wenn ihr allerdings noch ein besseres bzw. überzeugenderes parat habt, dann immer her damit! Und ja ich weiß, ich bin viel zu spät dran damit aber besser spät als.. [...]]]></description>
			<content:encoded><![CDATA[<p>Morgen.</p>
<p><a href="http://www.normansblog.de/tuerchen-8-white-space/"><img src="http://www.normansblog.de/wp-content/uploads/2010/11/adventskalender_8.png" alt="Türchen #8" title="Türchen #8" width="151" height="139" class="alignright size-full wp-image-2862" /></a> Tag acht des CSS-Adventskalenders, wie die Zeit vergeht. Heute im Angebot: <em>white-space</em> und wie und warum man es benutzt. Wie immer gibts ein aussagekräftiges Beispiel, wenn ihr allerdings noch ein besseres bzw.  überzeugenderes parat habt, dann immer her damit! Und ja ich weiß, ich bin viel zu spät dran damit aber besser spät als.. na ihr wisst schon.</p>
<p><span id="more-3002"></span></p>
<h3>Browserunterstützung</h3>
<table class="acenter alignright">
<tr>
<td>Browser</td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/firefox_ico.png" alt="Firefox" title="Firefox" width="16" height="16" class="alignnone size-full wp-image-2887" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/safari_ico.png" alt="Safari" title="Safari" width="16" height="16" class="alignnone size-full wp-image-2890" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/opera_ico.png" alt="Opera" title="Opera" width="16" height="16" class="alignnone size-full wp-image-2889" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/chrome_ico.png" alt="Chrome" title="Chrome" width="16" height="16" class="alignnone size-full wp-image-2886" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/ie_ico.png" alt="Internet Explorer" title="Internet Explorer" width="16" height="16" class="alignnone size-full wp-image-2888" /></td>
</tr>
<tr>
<td>ab Version</td>
<td>1.0</td>
<td>1.0</td>
<td>4.0</td>
<td>1.0</td>
<td>6.0</td>
</tr>
</table>
<p><code>white-space</code> hat im Laufe der Zeit einige neue mögliche Werte bekommen, uns geht es aber primär um den Wert <code>nowrap</code>, den jeder relevante Browser schon seit längerem unterstützt. <code>nowrap</code> ermöglicht es uns Zeilenumbrüche zu verhindern. D. h. egal was kommt, Text mit diesem Wert wird auf keinen Fall umgebrochen.</p>
<h3>Beispiel</h3>
<p>Am einfachsten kann man das durch ein Beispiel zeigen. Manchmal möchte man ein Element in eine Richtung <em>floaten</em> lassen und vergibt eine eher schmale Breite. Innerhalb des Elements steht meinetwegen eine Überschrift und ein Datum, da der Browser nicht weiß, dass es ein Datum ist, bricht er den Text aufgrund der Breite innerhalb des Datums um. Das sieht nicht schön aus, besser wäre es doch, wenn der Text nach der Überschrift umbrechen würde und das Datum zusammen bleibt.</p>
<h6>HTML</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;widget&quot;</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h3</span>&gt;</span>Überschrift <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">span</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;datum&quot;</span>&gt;</span>8. Dezember 2010<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h3</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre></td></tr></table></div>

<h6>CSS</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.widget</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#eee</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#aaa</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">180px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<h6>Ergebnis</h6>
<div style="background-color:#eee;border:1px solid #aaa;margin:0 0 10px;padding:10px;width:180px;">
<h3>Überschrift <span class="datum">8. Dezember 2010</span></h3>
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</p>
</div>
<p>Wie ihr seht, bricht der Text erst nach der &#8220;8&#8243; um, somit wird das Datum auseinander gerissen. Um das zu vermeiden, geben wir jetzt der Klasse &#8220;datum&#8221; <code>white-space:nowrap</code>.</p>
<h6>CSS</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.datum</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">white-space</span><span style="color: #00AA00;">:</span><span style="color: #993333;">nowrap</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<h6>Ergebnis</h6>
<div style="background-color:#eee;border:1px solid #aaa;margin:0 0 10px;padding:10px;width:180px;">
<h3>Überschrift <span style="white-space:nowrap">8. Dezember 2010</span></h3>
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</p>
</div>
<p>Und siehe da, das Datum bleibt als Ganzes erhalten und die Überschrift muss nun an anderer Stelle umbrechen. Mission accomplished. <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.normansblog.de/tuerchen-8-white-space/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Türchen #7: outline</title>
		<link>http://www.normansblog.de/tuerchen-7-outline/</link>
		<comments>http://www.normansblog.de/tuerchen-7-outline/#comments</comments>
		<pubDate>Tue, 07 Dec 2010 22:24:03 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Adventskalender 2010]]></category>
		<category><![CDATA[Anfänger]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=2989</guid>
		<description><![CDATA[Schönen guten Abend. Ich weiß, ich weiß.. ich hatte versprochen etwas pünktlicher zu werden und jetzt ist es später als je zuvor. Tut mir leid aber am Geburtstag meiner Mutter gibt es einfach andere Prioritäten als einen Artikel im Blog zu schreiben. Trotzdem will ich mir jetzt die Zeit nehmen und euch etwas über outline [...]]]></description>
			<content:encoded><![CDATA[<p>Schönen guten Abend.</p>
<p><a href="http://www.normansblog.de/tuerchen-7-outline/"><img src="http://www.normansblog.de/wp-content/uploads/2010/11/adventskalender_7.png" alt="Türchen #7" title="Türchen #7" width="151" height="139" class="alignright size-full wp-image-2862" /></a> Ich weiß, ich weiß.. ich hatte versprochen etwas pünktlicher zu werden und jetzt ist es später als je zuvor. Tut mir leid aber am Geburtstag meiner Mutter gibt es einfach andere Prioritäten als einen Artikel im Blog zu schreiben. <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Trotzdem will ich mir jetzt die Zeit nehmen und euch etwas über <em>outline</em> erzählen.</p>
<p><span id="more-2989"></span></p>
<h3>Browserunterstützung</h3>
<table class="acenter alignright">
<tr>
<td>Browser</td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/firefox_ico.png" alt="Firefox" title="Firefox" width="16" height="16" class="alignnone size-full wp-image-2887" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/safari_ico.png" alt="Safari" title="Safari" width="16" height="16" class="alignnone size-full wp-image-2890" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/opera_ico.png" alt="Opera" title="Opera" width="16" height="16" class="alignnone size-full wp-image-2889" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/chrome_ico.png" alt="Chrome" title="Chrome" width="16" height="16" class="alignnone size-full wp-image-2886" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/ie_ico.png" alt="Internet Explorer" title="Internet Explorer" width="16" height="16" class="alignnone size-full wp-image-2888" /></td>
</tr>
<tr>
<td>ab Version</td>
<td>1.5</td>
<td>1.2</td>
<td>7.0</td>
<td>1.0</td>
<td>8.0</td>
</tr>
</table>
<p>Wow, erst ab IE8 wird das unterstützt.. ich musste auch erst zwei mal hinsehen und auf einer zweiten Seite checken aber okay. <code>outline</code> gibt es prinzipiell aus einem Grund. Dieser eine Grund besteht darin, Elemente, die mit der Tastatur (meistens durch Drücken der Tabulator-Taste) sogenannten &#8220;Fokus&#8221; bekommen, hervorzuheben. Dies geschiet in der Regel durch eine gepunktete Linie, die um das Elemente gezogen wird. Im Prinzip handelt es sich dabei um eine Art Spezialfall von <code>border</code> Da nur klickbare Elemente Fokus bekommen, können wir durchaus outline dazu benutzen einen doppelten Border-Effekt für nicht-klickbare Elemente zu erstellen.</p>
<p>Leider ist <code>outline</code> um einiges restriktiver als es <code>border</code> ist. Es erlaubt nämlich nicht, nur bestimmte Seiten rendern zu lassen, sondern rendert immer alle vier Seiten. D. h. im Klartext: es gibt kein <code>outline-top/-right/-bottom/-left</code> sondern eben nur <code>outline</code>.</p>
<p>Das Werte<a href="http://de.wikipedia.org/wiki/Tupel">tripel</a> ist allerdings das Gleiche wie wir es von <code>border</code> her kennen:</p>
<ol>
<li><code>outline-width</code>, die Linienstärke &#8211; angegeben in irgendeiner Maßeinheit</li>
<li><code>outline-style</code>, ein Style-Schlüsselwort wie bspw. <em>dottet</em>, <em>solid</em>, <em>dashed</em> oder <em>groove</em></li>
<li><code>outline-color</code>, Farbe der Linie; wenn nicht angegeben, nimmt es (zumindest in Firefox) den Wert der Schriftfarbe an</li>
</ol>
<h3>Beispiele</h3>
<p>Wie oben schon erwähnt werden wir jetzt mal eine doppelte Border mit Hilfe von <code>outline</code> erstellen:</p>
<h6>CSS</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.widget</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#eee</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span><span style="color: #933;">5px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#aaa</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">outline</span><span style="color: #00AA00;">:</span><span style="color: #933;">5px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#888</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">200px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<h6>Ergebnis</h6>
<div style="background-color:#eee;border:5px solid #aaa;padding:10px;outline:5px solid #888;margin:10px 0 20px;width:200px;">
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</p>
</div>
<blockquote class="warning">
<p><strong>Aber Achtung:</strong> Outline zählt <em>nicht</em> zum Box-Model, das Margin fängt stets nach der Border an, Outline wird dabei ignoriert. Es hat damit auch keinen Einfluss auf den Gesamtfluss aller anderen Elemente.</p>
</blockquote>
<p>Ein weiteres Beispiel wäre einer Box oder einem Widget einen kleinen 3D-Effekt zu verpassen. Dazu hellt man die oberste Pixelreihe auf und dunkelt die anderen ab, um so die Box hervorzuheben.</p>
<h6>CSS</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.box</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#adf</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">border-top</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#cff</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">border-bottom</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#28a</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">outline</span><span style="color: #00AA00;">:</span><span style="color: #933;">5px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#7ac</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">200px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<h6>Ergebnis</h6>
<div style="background-color:#adf;border-top:1px solid #cff;border-bottom:1px solid #28a;padding:10px;outline:5px solid #7ac;margin:10px 0 20px;width:200px;">
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</p>
</div>
<p>Ich geb&#8217;s ja zu.. man muss schon etwas genauer hinsehen. Aber solche Details sind es schließlich, die ein klasse Design von einem guten Design unterscheiden können. Und mit <code>outline</code> geht das ganz einfach ohne zusätzlichem Markup.</p>
<p>Ach und bevor ich wieder Mecker einstecken muss: Die durch Outline produzierte Border wird derzeit im Firefox nicht von <a href="http://www.normansblog.de/css3-im-detail-border-radius/">border-radius</a> abgerundet, bei anderen Browsern bin ich mir grad nicht sicher. Und ja, man kann eine doppelte Border auch mit <a href="http://www.normansblog.de/css3-im-detail-box-shadow/">box-shadow</a> herstellen aber das ist noch Cross-Browser-inkompatibler ( <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  ) als man mit <code>outline</code> schon ist.</p>
<p>Bis morgen dann. <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.normansblog.de/tuerchen-7-outline/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Türchen #6: overflow:hidden</title>
		<link>http://www.normansblog.de/tuerchen-6-overflow-hidden/</link>
		<comments>http://www.normansblog.de/tuerchen-6-overflow-hidden/#comments</comments>
		<pubDate>Mon, 06 Dec 2010 11:13:39 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Adventskalender 2010]]></category>
		<category><![CDATA[Anfänger]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=2971</guid>
		<description><![CDATA[Guten Morgen und einen wohlgesinnten Nikolaus! Und, hattet ihr was leckeres in euren selbstverständlich geputzten Schuhen? Wenn nicht, gibts hier wieder etwas, was eure Laune eventuell anheben kann. Hinter Türchen Nummer sechs haben wir heute overflow:hidden, das viele im Zusammenhang mit Verstecken von Inhalt bzw. Scrollbalken kennen werden. Es gibt aber noch einen anderen Anwendungsfall&#8230; [...]]]></description>
			<content:encoded><![CDATA[<p>Guten Morgen und einen wohlgesinnten Nikolaus!</p>
<p><a href="http://www.normansblog.de/tuerchen-6-overflow-hidden/"><img src="http://www.normansblog.de/wp-content/uploads/2010/11/adventskalender_6.png" alt="Türchen #6" title="Türchen #6" width="151" height="139" class="alignright size-full wp-image-2862" /></a> Und, hattet ihr was leckeres in euren <em>selbstverständlich</em> geputzten Schuhen? Wenn nicht, gibts hier wieder etwas, was eure Laune eventuell anheben kann. Hinter Türchen Nummer sechs haben wir heute <em>overflow:hidden</em>, das viele im Zusammenhang mit Verstecken von Inhalt bzw. Scrollbalken kennen werden. Es gibt aber noch einen anderen Anwendungsfall&#8230;</p>
<p><span id="more-2971"></span></p>
<h3>Browserunterstützung</h3>
<table class="acenter alignright">
<tr>
<td>Browser</td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/firefox_ico.png" alt="Firefox" title="Firefox" width="16" height="16" class="alignnone size-full wp-image-2887" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/safari_ico.png" alt="Safari" title="Safari" width="16" height="16" class="alignnone size-full wp-image-2890" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/opera_ico.png" alt="Opera" title="Opera" width="16" height="16" class="alignnone size-full wp-image-2889" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/chrome_ico.png" alt="Chrome" title="Chrome" width="16" height="16" class="alignnone size-full wp-image-2886" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/ie_ico.png" alt="Internet Explorer" title="Internet Explorer" width="16" height="16" class="alignnone size-full wp-image-2888" /></td>
</tr>
<tr>
<td>ab Version</td>
<td>1.0</td>
<td>1.1</td>
<td>4.0</td>
<td>1.0</td>
<td>4.0</td>
</tr>
</table>
<p>Die Eigenschaft <em>overflow</em> wird von allen Browsern beherrscht, im IE6 gibts allerdings ein kleines Problem, wenn der Wert <code>visible</code> gesetzt ist. Demnach vergrößert er das Element, damit der Inhalt hinein passt. Dadurch verhalten sich height/width wie min-height/min-width. Uns interessiert aber nur ganz speziell der Fall von <code>overflow:hidden</code> und da gibts keine Probleme.</p>
<p>Normalerweise setzt man diese Eigenschaft ja dazu ein, um überstehenden Text auszublenden oder um zu verhindern, dass Scrollbalken erscheinen. Ein schöner Nebeneffekt ist aber, dass Elemente mit <code>overflow:hidden</code> ihren gefloateten Inhalt &#8220;clearen&#8221;.</p>
<h3>Beispiele</h3>
<p>Am besten wir schauen uns das mal an einem Beispiel an. Folgender Aufbau: Ein Container hat eine nach links floatende Box als Inhalt. Dadurch fällt der Container in sich zusammen und alle nachrückenden Inhalte rücken nach oben.</p>
<h6>HTML</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;container&quot;</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;box&quot;</span>&gt;</span>Box<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
	Container
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre></td></tr></table></div>

<h6>CSS</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.box</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">float</span><span style="color: #00AA00;">:</span><span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">100px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">margin-right</span><span style="color: #00AA00;">:</span><span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">100px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<h6>Ergebnis</h6>
<div style="background-color:#eee;border:1px solid #aaa;padding:10px;margin:10px 0;">
<div style="background-color:red;border:1px solid #000;float:left;height:100px;margin-right:10px;width:100px;">Box</div>
<p>	Container
</p></div>
<p>Seht ihr was ich meine? Das sieht doof aus und oftmals will man das gar nicht.</p>
<p style="clear:both;">Um das zu vermeiden, kann man jetzt dem nachrückenden Inhalt z. B. ein <code>clear:both</code> geben. Das löst zwar das Problem mit dem Text neben der Box, aber nicht die Höhe unseres Containers. Jetzt kommt aber <code>overflow:hidden</code> ins Spiel, das wir dem Container verpassen müssen:</p>
<h6>CSS</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.container</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">overflow</span><span style="color: #00AA00;">:</span><span style="color: #993333;">hidden</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<h6>Ergebnis</h6>
<div style="background-color:#eee;border:1px solid #aaa;padding:10px;margin:10px 0;overflow:hidden;">
<div style="background-color:red;border:1px solid #000;float:left;height:100px;margin-right:10px;width:100px;">Box</div>
<p>	Container
</p></div>
<p>Siehe da, alles bestens, die floatende Box wird wieder komplett vom Container umschlossen. Dabei brauchen wir nicht einmal zusätzliches Markup wie beispielsweise ein Clear-Div.</p>
<p>Short and simple, schönen Tag noch und bis morgen. <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.normansblog.de/tuerchen-6-overflow-hidden/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Türchen #4: font-variant</title>
		<link>http://www.normansblog.de/tuerchen-4-font-variant/</link>
		<comments>http://www.normansblog.de/tuerchen-4-font-variant/#comments</comments>
		<pubDate>Sat, 04 Dec 2010 14:32:36 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Adventskalender 2010]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=2941</guid>
		<description><![CDATA[Mahlzeit! Verzeiht mir die kleine Verspätung aber hier nun Türchen Nummer vier, hinter dem sich heute font-variant verbirgt. Schade eigentlich, dass font-variant so selten benutzt wird, es ist ein schöner Effekt besonders für Überschriften oder Einleitungen, aber dazu gleich mehr. Browserunterstützung Browser ab Version 1.0 1.0 3.5 1.0 4.0 font-variant gibt es schon ewig und [...]]]></description>
			<content:encoded><![CDATA[<p>Mahlzeit!</p>
<p><a href="http://www.normansblog.de/tuerchen-4-font-variant/"><img src="http://www.normansblog.de/wp-content/uploads/2010/11/adventskalender_4.png" alt="Türchen #4" title="Türchen #4" width="151" height="139" class="alignright size-full wp-image-2862" /></a> Verzeiht mir die kleine Verspätung aber hier nun Türchen Nummer vier, hinter dem sich heute <em>font-variant</em> verbirgt. Schade eigentlich, dass <code>font-variant</code> so selten benutzt wird, es ist ein schöner Effekt besonders für Überschriften oder Einleitungen, aber dazu gleich mehr. <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><span id="more-2941"></span></p>
<h3>Browserunterstützung</h3>
<table class="acenter alignright">
<tr>
<td>Browser</td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/firefox_ico.png" alt="Firefox" title="Firefox" width="16" height="16" class="alignnone size-full wp-image-2887" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/safari_ico.png" alt="Safari" title="Safari" width="16" height="16" class="alignnone size-full wp-image-2890" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/opera_ico.png" alt="Opera" title="Opera" width="16" height="16" class="alignnone size-full wp-image-2889" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/chrome_ico.png" alt="Chrome" title="Chrome" width="16" height="16" class="alignnone size-full wp-image-2886" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/ie_ico.png" alt="Internet Explorer" title="Internet Explorer" width="16" height="16" class="alignnone size-full wp-image-2888" /></td>
</tr>
<tr>
<td>ab Version</td>
<td>1.0</td>
<td>1.0</td>
<td>3.5</td>
<td>1.0</td>
<td>4.0</td>
</tr>
</table>
<p><code>font-variant</code> gibt es schon ewig und wird von allen Browsern problemlos unterstützt. Es stehen uns drei Werte zur Auswahl, von denen meistens nur einer wirklich gebraucht wird.</p>
<ol>
<li><code>normal</code>, Default-Wert, muss nicht zwingend angegeben werden</li>
<li><code>small-caps</code>, damit lässt sich Text manipulieren: Kleinbuchstaben werden zu Großbuchstaben, verändern aber (im Gegensatz zu <a href="http://www.normansblog.de/tuerchen-2-text-transform/">text-transform</a>) ihre Höhe nicht</li>
<li><code>inherit</code>, übernimmt den Wert für diese Eigenschaft vom Elternelement</li>
</ol>
<h3>Beispiel</h3>
<p>Es ist unschwer zu erkennen, dass wir uns hier nur den Wert <code>small-caps</code> genauer ansehen wollen. Wie gesagt, der Text wird manipuliert und Kleinbuchstaben werden zu.. kleinen Großbuchstaben, &#8220;Small Capitals&#8221; eben. Zunächst ein Beispieltext:</p>
<h6>HTML</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h3</span>&gt;</span>Überschrift des Textes<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h3</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span></pre></td></tr></table></div>

<p>Ohne <code>font-variant</code> kommt das dabei raus:</p>
<div style="background-color:#eee;border:1px solid #aaa;margin:10px 0;padding:10px 10px 0;">
<h3>Überschrift des Textes</h3>
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</p>
</div>
<p>Jetzt wollen wir der Überschrift sagen, dass sie <code>small-caps</code> benutzen soll, das können wir entweder direkt über <code>font-variant</code> machen oder aber in Kurzschreibweise als Teil der <code>font</code> Property.</p>
<h6>CSS font-variant</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">h3 <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">font-family</span><span style="color: #3333ff;">:georgia</span><span style="color: #00AA00;">,</span><span style="color: #993333;">serif</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span><span style="color: #933;">22px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">font-variant</span><span style="color: #00AA00;">:</span><span style="color: #993333;">small-caps</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">font-weight</span><span style="color: #00AA00;">:</span><span style="color: #993333;">normal</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">line-height</span><span style="color: #00AA00;">:</span><span style="color: #933;">30px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<h6>ODER als Teil von font</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">h3 <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">font</span><span style="color: #00AA00;">:</span><span style="color: #993333;">small-caps</span> <span style="color: #993333;">normal</span> <span style="color: #933;">22px</span>/<span style="color: #933;">30px</span> georgia<span style="color: #00AA00;">,</span><span style="color: #993333;">serif</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>In beiden Fällen sieht unser Text dann so aus..</p>
<div style="background-color:#eee;border:1px solid #aaa;margin:10px 0;padding:10px 10px 0;">
<h3 style="font-variant:small-caps;">Überschrift des Textes</h3>
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</p>
</div>
<p>Je nach Schriftart kann es von Vorteil sein auch noch etwas <code>letter-spacing</code> hinzuzufügen, um die Lesbarkeit zu erhöhen. Prinzipiell macht aber eine solche Überschrift schon etwas mehr her und zieht die Blicke auf sich. Dabei wirkt sie aber nicht so aufdringlich wie eine Überschrift, die nur mit (großen) Großbuchstaben geschrieben wurde.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.normansblog.de/tuerchen-4-font-variant/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Türchen #2: Text-Transform</title>
		<link>http://www.normansblog.de/tuerchen-2-text-transform/</link>
		<comments>http://www.normansblog.de/tuerchen-2-text-transform/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 23:00:08 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Adventskalender 2010]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=2920</guid>
		<description><![CDATA[Adventskalendertürchen Nummero Zwo &#8211; Text-Transform So da ihr jetzt hoffentlich euren echten Adventskalender für heute schon geplündert habt, gibts jetzt noch das zweite Türchen des CSS-Kalenders. Weniger süß, dafür umso informativer. Diesmal gehts um die Eigenschaft Text-Transform, die es uns ermöglicht Groß- und Kleinschreibung eines Textes zu verändern. Browserunterstützung Browser ab Version 1.0 1.0 3.5 [...]]]></description>
			<content:encoded><![CDATA[<p>Adventskalendertürchen Nummero Zwo &#8211; Text-Transform</p>
<p><a href="http://www.normansblog.de/tuerchen-2-text-transform/"><img src="http://www.normansblog.de/wp-content/uploads/2010/11/adventskalender_2.png" alt="Türchen #2" title="Türchen #2" width="151" height="139" class="alignright size-full wp-image-2862" /></a> So da ihr jetzt hoffentlich euren echten Adventskalender für heute schon geplündert habt, gibts jetzt noch das zweite Türchen des CSS-Kalenders. Weniger süß, dafür umso informativer. <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Diesmal gehts um die Eigenschaft <strong>Text-Transform</strong>, die es uns ermöglicht Groß- und Kleinschreibung eines Textes zu verändern.</p>
<p><span id="more-2920"></span></p>
<h3>Browserunterstützung</h3>
<table class="acenter alignright">
<tr>
<td>Browser</td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/firefox_ico.png" alt="Firefox" title="Firefox" width="16" height="16" class="alignnone size-full wp-image-2887" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/safari_ico.png" alt="Safari" title="Safari" width="16" height="16" class="alignnone size-full wp-image-2890" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/opera_ico.png" alt="Opera" title="Opera" width="16" height="16" class="alignnone size-full wp-image-2889" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/chrome_ico.png" alt="Chrome" title="Chrome" width="16" height="16" class="alignnone size-full wp-image-2886" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/ie_ico.png" alt="Internet Explorer" title="Internet Explorer" width="16" height="16" class="alignnone size-full wp-image-2888" /></td>
</tr>
<tr>
<td>ab Version</td>
<td>1.0</td>
<td>1.0</td>
<td>3.5</td>
<td>1.0</td>
<td>4.0</td>
</tr>
</table>
<p><code>text-transform</code> gibt es schon seit CSS1 Zeiten und wird von allen Browsern unterstützt. Sie wird allerdings meiner Erfahrung nach recht wenig benutzt, bzw. erst spät von &#8220;CSS-Neulingen&#8221; entdeckt, dabei ist kann sie ziemlich nützlich sein.</p>
<p>Die Syntax der Eigenschaft erlaubt neben <code>none</code> und <code>inherit</code> genau drei Werte, die von uns von Bedeutung sind:</p>
<ol>
<li><code>capitalize</code>, alle Wörter im Text beginnen mit einem Großbuchstaben</li>
<li><code>uppercase</code>, alle Buchstaben eines Textes werden zu Großbuchstaben</li>
<li><code>lowercase</code>, alle Wörter beginnen mit kleinen Buchstaben, auch Satzanfänge und <a href="http://de.wikipedia.org/wiki/Substantiv">Substantive</a></li>
</ol>
<p>Schauen wir uns die Beispiele an.</p>
<h3>Beispiele</h3>
<p>Als Ausgangsbasis wird uns folgender Text, der genauso im Quellcode steht, dienen:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, 
sed diam nonumy eirmod tempor invidunt ut labore et dolore 
magna aliquyam erat, sed diam voluptua.<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span></pre></td></tr></table></div>

<h6>text-transform: capitalize</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.capitalize</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">text-transform</span><span style="color: #00AA00;">:</span><span style="color: #993333;">capitalize</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<h6>jedes Wort muss groß anfangen</h6>
<div style="border:1px solid #aaa;background:#eee;margin-bottom:40px;padding:10px 10px 0;text-transform:capitalize;">
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</p>
</div>
<h6>text-transform: uppercase</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.capitalize</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">text-transform</span><span style="color: #00AA00;">:</span><span style="color: #993333;">uppercase</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<h6>alles großgeschrieben</h6>
<div style="border:1px solid #aaa;background:#eee;margin-bottom:40px;padding:10px 10px 0;text-transform:uppercase;">
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</p>
</div>
<h6>text-transform: lowercase</h6>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.capitalize</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">text-transform</span><span style="color: #00AA00;">:</span><span style="color: #993333;">lowercase</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<h6>alles kleingeschrieben</h6>
<div style="border:1px solid #aaa;background:#eee;margin-bottom:20px;padding:10px 10px 0;text-transform:lowercase;">
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</p>
</div>
<p>Ich denke, dass gerade die Fälle <em>capitalize</em> und <em>uppercase</em> bei Überschriften, Titeln oder Einleitungssätzen von Nutzen sein können.<br />
Das wars für heute, bis morgen! <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.normansblog.de/tuerchen-2-text-transform/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CSS Adventskalender: Türchen #1</title>
		<link>http://www.normansblog.de/css-adventskalender-tuerchen-1/</link>
		<comments>http://www.normansblog.de/css-adventskalender-tuerchen-1/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 23:00:22 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Adventskalender 2010]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=2860</guid>
		<description><![CDATA[Hallo und erstmal nachträglich noch einen schönen ersten Advent! Damit die Vorweihnachtszeit nicht zu langweilig wird, habe ich mir gedacht ich biete euch einen kleinen Adventskalender in Form von 24 Artikeln an. Das heißt, euch erwartet ab heute jeden Tag ein Beitrag zum Thema: Selten benutzte CSS Properties. Dabei lernt ihr nützliche CSS Properties kennen, [...]]]></description>
			<content:encoded><![CDATA[<p>Hallo und erstmal nachträglich noch einen schönen ersten Advent!</p>
<p><a href="http://www.normansblog.de/css-adventskalender-tuerchen-1/"><img src="http://www.normansblog.de/wp-content/uploads/2010/11/adventskalender_1.png" alt="Türchen #1" title="Türchen #1" width="151" height="139" class="alignright size-full wp-image-2862" /></a> Damit die Vorweihnachtszeit nicht zu langweilig wird, habe ich mir gedacht ich biete euch einen kleinen Adventskalender in Form von 24 Artikeln an. Das heißt, euch erwartet ab heute jeden Tag ein Beitrag zum Thema: <em>Selten benutzte CSS Properties</em>.</p>
<p>Dabei lernt ihr nützliche CSS Properties kennen, von denen ihr bisher vielleicht nicht einmal wusstet, dass es sie gibt. Den Anfang macht heute <strong>Box-Sizing</strong>.</p>
<p><span id="more-2860"></span></p>
<h3>Browserunterstützung</h3>
<p>Die Eigenschaft <code>box-sizing</code> dient zur Steuerung des CSS Box-Models. Das normale W3C-Box-Model besteht aus Width&times;Height + Padding + Border + Margin. Dabei werden Padding, Border nicht mit bei der Breiten- bzw. Höhenberechnung berücksichtigt. Mit <code>box-sizing</code> kann man dieses Verhalten jedoch ändern und so das &#8220;alte&#8221; Box-Model des IE6 (Quirks Mode) nutzen.</p>
<table class="acenter alignright">
<tr>
<td>Browser</td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/firefox_ico.png" alt="Firefox" title="Firefox" width="16" height="16" class="alignnone size-full wp-image-2887" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/safari_ico.png" alt="Safari" title="Safari" width="16" height="16" class="alignnone size-full wp-image-2890" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/opera_ico.png" alt="Opera" title="Opera" width="16" height="16" class="alignnone size-full wp-image-2889" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/chrome_ico.png" alt="Chrome" title="Chrome" width="16" height="16" class="alignnone size-full wp-image-2886" /></td>
<td><img src="http://www.normansblog.de/wp-content/uploads/2010/11/ie_ico.png" alt="Internet Explorer" title="Internet Explorer" width="16" height="16" class="alignnone size-full wp-image-2888" /></td>
</tr>
<tr>
<td>ab Version</td>
<td>1.0</td>
<td>3.0</td>
<td>7.0</td>
<td>1.0</td>
<td>8.0</td>
</tr>
</table>
<p>Da eine CSS3-Eigenschaft ist, wird sie noch nicht von allen Browsern in ihrer eigentlichen Schreibweise unterstützt. Gecko- und Webkit-Engines benutzen noch sogenannte Vendor-Prefixes. Als mögliche Werte stehen zwei (für Firefox drei) zur Auswahl:</p>
<ol>
<li><code>content-box</code> (Default-Wert), spiegelt das W3C-Box-Model wider</li>
<li><code>border-box</code>, damit wird Padding und Border-Width in die Breiten- und Höhenberechnung eingebunden</li>
<li> <code>padding-box</code> (nur Firefox), hierbei wird lediglich das Padding mit einberechnet</li>
</ol>
<p>Eine Zuweisung per CSS würde demnach folgendermaßen aussehen:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.box-sizing</span> <span style="color: #00AA00;">&#123;</span>
	-moz-box-sizing<span style="color: #3333ff;">:border-</span>box<span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Firefox */</span>
	-webkit-box-sizing<span style="color: #3333ff;">:border-</span>box<span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Safari, Chrome */</span>
	box-sizing<span style="color: #3333ff;">:border-</span>box<span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* IE8, Opera */</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<h3>Beispiele</h3>
<p>Unten stehende Boxen haben die gleichen folgenden CSS-Eigenschaften und unterscheiden sich ausschließlich durch ihr Box-Model. (Ihr könnt es gerne mit Firebug o.ä. nachprüfen <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  )</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.box</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#eee</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span><span style="color: #933;">10px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#aaa</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">60px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">350px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<div style="background-color:#eee;border:10px solid #aaa;height:60px;margin:10px;padding:10px;width:350px;">Box #1 <em>ohne</em> verändertes <code>box-sizing</code></div>
<div style="-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;background-color:#eee;border:10px solid #aaa;height:60px;margin:10px;padding:10px;width:350px;">Box #2 <em>mit</em> verändertem <code>box-sizing</code></div>
<p>Wie ihr seht, sind die Boxen unterschiedlich lang, obwohl wir beiden eine Width von 350px gegeben haben. <code>box-sizing</code> mit dem Wert <code>border-box</code> berechnet die Breite (bzw. Höhe) also aus Width (Height) + Padding + Border und nicht wie das normale Box-Model nur aus Width (Height).</p>
<p>Besonders nützlich wird die Eigenschaft, wenn man eine Textarea auf 100% Breite ziehen will und gleichzeitig aber Padding vergeben möchte. Probieren wir es aus:</p>
<div style="background-color:#eee;border:1px solid #aaa;padding-top:10px;margin-bottom:10px;text-align:center;">
<p>&larr; 520px &rarr;</p>
<p><textarea style="-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;width:100%;padding:10px;max-width:none;">width:100%; padding:10px</textarea></p>
<p><textarea style="-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;max-width:none;padding:5px;">width:100%; padding:10px; box-sizing:border-box;</textarea></p>
</div>
<p>Die erste Textarea geht 20 Pixel über den Rand hinaus, die zweite verhält sich besser &#8211; dank <code>box-sizing</code>!</p>
<p>Und damit wäre Türchen #1 auch schon wieder verputzt, freut euch auf morgen. <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.normansblog.de/css-adventskalender-tuerchen-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Besseres CSS Schreiben</title>
		<link>http://www.normansblog.de/besseres-css-schreiben/</link>
		<comments>http://www.normansblog.de/besseres-css-schreiben/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 01:28:42 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Optimierung]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=1417</guid>
		<description><![CDATA[Wie schreibt man guten CSS-Code, den man auch in ein paar Jahren noch verstehen kann? Viele werden es kennen: Man bekommt eine Seite vorgesetzt und soll Layoutänderungen daran vornehmen &#8211; &#8220;Am besten nur über CSS!&#8221;, eigentlich wäre das kein Problem, nur sieht man in den seltensten Fällen durch das Wirrwarr, das der Vorgänger hinterlassen hat [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.normansblog.de/besseres-css-schreiben/"><img src="http://www.normansblog.de/wp-content/uploads/2009/11/css.png" alt="css" title="css" width="100" height="98" class="alignright size-full wp-image-1469" /></a>Wie schreibt man guten CSS-Code, den man auch in ein paar Jahren noch verstehen kann?</p>
<p>Viele werden es kennen: Man bekommt eine Seite vorgesetzt und soll Layoutänderungen daran vornehmen &#8211; &#8220;Am besten nur über CSS!&#8221;, eigentlich wäre das kein Problem, nur sieht man in den seltensten Fällen durch das Wirrwarr, das der Vorgänger hinterlassen hat hindurch. Da stehen ein Paar komische Klassen hier und seltsame Selektoren da.. keine Kommentare &#8211; alles scheint irgendwie durcheinander zu sein. Manchmal blickt man aber auch nach einer Weile selbst nicht mehr durch seinen eigenen Code.</p>
<p>Das muss nicht sein. Geht mit gutem Beispiel voran und lernt, wie man besseren, sauberen CSS-Code verfasst, der noch dazu in allen Browsern zu einem <a href="http://dowebsitesneedtolookexactlythesameineverybrowser.com/">nahezu identischen Ergebnis</a> führt.</p>
<p><span id="more-1417"></span></p>
<h3>1. CSS Reset einbinden</h3>
<p>CSS Reset bedeutet, dass alle Browser-Styles überschrieben werden, sodass die Darstellung bei allen Browsern bei Null anfangen kann. Auf dieser Basis lässt sich dann ein einheitliches Design beschreiben. Die Einbindung erfolgt entweder über eine gesonderte <code>reset.css</code> (vor eure eigentliche CSS platzieren) oder man schreibt die wenigen Zeilen in seine eigentliche CSS Datei (vor allen anderen Anweisungen).</p>
<p>Eine bekannte Reset-Methode ist die von <a href="http://meyerweb.com/">Eric Meyer</a>, einem international anerkannten CSS-Experten, der diverse Bücher veröffentlicht hat (darunter auch <a href="http://www.amazon.de/CSS-Definitive-Guide-Eric-Meyer/dp/0596527330/ref=sr_1_1?ie=UTF8&#038;qid=1258241979&#038;sr=8-1-fkmr0">CSS: The Definite Guide</a>). Folgender Code wird verwendet..</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">html<span style="color: #00AA00;">,</span> body<span style="color: #00AA00;">,</span> div<span style="color: #00AA00;">,</span> span<span style="color: #00AA00;">,</span> applet<span style="color: #00AA00;">,</span> object<span style="color: #00AA00;">,</span> iframe<span style="color: #00AA00;">,</span>
h1<span style="color: #00AA00;">,</span> h2<span style="color: #00AA00;">,</span> h3<span style="color: #00AA00;">,</span> h4<span style="color: #00AA00;">,</span> h5<span style="color: #00AA00;">,</span> h6<span style="color: #00AA00;">,</span> p<span style="color: #00AA00;">,</span> blockquote<span style="color: #00AA00;">,</span> pre<span style="color: #00AA00;">,</span>
a<span style="color: #00AA00;">,</span> abbr<span style="color: #00AA00;">,</span> acronym<span style="color: #00AA00;">,</span> address<span style="color: #00AA00;">,</span> big<span style="color: #00AA00;">,</span> cite<span style="color: #00AA00;">,</span> code<span style="color: #00AA00;">,</span>
del<span style="color: #00AA00;">,</span> dfn<span style="color: #00AA00;">,</span> em<span style="color: #00AA00;">,</span> <span style="color: #000000; font-weight: bold;">font</span><span style="color: #00AA00;">,</span> img<span style="color: #00AA00;">,</span> ins<span style="color: #00AA00;">,</span> kbd<span style="color: #00AA00;">,</span> q<span style="color: #00AA00;">,</span> s<span style="color: #00AA00;">,</span> samp<span style="color: #00AA00;">,</span>
small<span style="color: #00AA00;">,</span> strike<span style="color: #00AA00;">,</span> strong<span style="color: #00AA00;">,</span> sub<span style="color: #00AA00;">,</span> sup<span style="color: #00AA00;">,</span> tt<span style="color: #00AA00;">,</span> var<span style="color: #00AA00;">,</span>
dl<span style="color: #00AA00;">,</span> dt<span style="color: #00AA00;">,</span> dd<span style="color: #00AA00;">,</span> ol<span style="color: #00AA00;">,</span> ul<span style="color: #00AA00;">,</span> li<span style="color: #00AA00;">,</span>
fieldset<span style="color: #00AA00;">,</span> form<span style="color: #00AA00;">,</span> label<span style="color: #00AA00;">,</span> legend<span style="color: #00AA00;">,</span>
table<span style="color: #00AA00;">,</span> caption<span style="color: #00AA00;">,</span> tbody<span style="color: #00AA00;">,</span> tfoot<span style="color: #00AA00;">,</span> thead<span style="color: #00AA00;">,</span> tr<span style="color: #00AA00;">,</span> th<span style="color: #00AA00;">,</span> td <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">outline</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">font-weight</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">inherit</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">font-style</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">inherit</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span> <span style="color: #933;">100%</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">font-family</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">inherit</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">vertical-align</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">baseline</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #808080; font-style: italic;">/* remember to define focus styles! */</span>
<span style="color: #3333ff;">:focus </span><span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">outline</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
body <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">line-height</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">1</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">black</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">white</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
ol<span style="color: #00AA00;">,</span> ul <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">list-style</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">none</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #808080; font-style: italic;">/* tables still need 'cellspacing=&quot;0&quot;' in the markup */</span>
table <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">border-collapse</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">separate</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">border-spacing</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
caption<span style="color: #00AA00;">,</span> th<span style="color: #00AA00;">,</span> td <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">text-align</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">font-weight</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">normal</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
blockquote<span style="color: #3333ff;">:before</span><span style="color: #00AA00;">,</span> blockquote<span style="color: #3333ff;">:after</span><span style="color: #00AA00;">,</span>
q<span style="color: #3333ff;">:before</span><span style="color: #00AA00;">,</span> q<span style="color: #3333ff;">:after </span><span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">content</span><span style="color: #00AA00;">:</span> <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
blockquote<span style="color: #00AA00;">,</span> q <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">quotes</span><span style="color: #00AA00;">:</span> <span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<blockquote class="warning"><p>Die Reset von Eric Meyer ist <strong>nicht</strong> das Maß aller Dinge. Sie ist dazu gedacht verändert und an das jeweilige Projekt angepasst zu werden. Hinterfragt sie also kritisch und passt sie euren Vorlieben und Erfahrungen an.</p>
</blockquote>
<p>Für die Minimalisten unter euch gibt es auch eine einfachere aber trotzdem recht effektive Methode. Dabei wird das Margin und Padding für alle Elemente (Universal Selector) auf Null gesetzt..</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #00AA00;">*</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<h3>2. Keine Hacks, dafür Conditional Comments verwenden</h3>
<p>Im Laufe der Zeit haben sich &#8220;kluge&#8221; Leute Hacks für ältere Browser ausgedacht, um bestimmte W3C Standards auch auf diesen zum Laufen zu bringen. Baut man diese Hacks in sein CSS ein, kann es sein, dass damit euer Code <em>invalide</em> wird. Abgesehen davon, dass sie in der Community mittlerweile <a href="http://www.webdesignerwall.com/general/trash-all-ie-hacks/">verpönt</a> sind, sollte man wirklich <strong>auf Browser Hacks verzichten</strong>.</p>
<p>Stattdessen sollte man <a href="http://de.wikipedia.org/wiki/Conditional_Comments">Conditional Comments</a> benutzen um spezielle CSS-Dateien für die jeweiligen Problem-Browser einzubinden (meistens betrifft das nur IE6).</p>
<p>Conditional Comments werden über besondere Kommentare im <code>head</code>-Bereich (unterhalb eurer eigentlichen CSS) eingefügt. Um zum Beispiel eine CSS für alle IE-Versionen kleiner-gleich IE6 einzubinden, muss man folgenden Code ins HTML schreiben:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="hmtl4strict" style="font-family:monospace;">&lt;!--[if lte IE 6]&gt;
	&lt;link rel=&quot;stylesheet&quot; href=&quot;/pfad/zum/css/IE6.css&quot; type=&quot;text/css&quot;/&gt;
&lt;![endif]--&gt;</pre></td></tr></table></div>

<h3>3. Strukturieren &#038; Kommentare nutzen</h3>
<p>Euer Code sollte strukturiert und kommentiert sein. Um das zu erreichen versucht den Code in Bereiche zu gliedern, die auch im Front-End zu sehen sind: Basic HTML Tags, Navigation, Content, Header, Sidebar, Footer, Suche &#038; Formulare.. usw. Benutzt einfach eine Gliederung, die für euch funktioniert und halbwegs logisch aufgebaut ist. Um die Bereiche voneinander zu trennen, kann man einfach gut sichtbare Kommentar-Blöcke verwenden.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">/* ------------------------ */</span>
<span style="color: #808080; font-style: italic;">/* ------ Content --------- */</span>
<span style="color: #808080; font-style: italic;">/* ------------------------ */</span>
#<span style="color: #000000; font-weight: bold;">content</span> <span style="color: #00AA00;">&#123;</span>
	...
<span style="color: #00AA00;">&#125;</span>
#<span style="color: #000000; font-weight: bold;">content</span> p <span style="color: #00AA00;">&#123;</span>
	...
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Es empfiehlt sich außerdem einen einleitenden Kommentarblock zu schreiben, in den man Information rund um die CSS-Datei schreibt. Neben dem Autor (also dein Name) kann man Versionsnummer, letztes Bearbeitungsdatum und Kurzbeschreibung (auf Englisch) auch häufig genutzte Farbcodes oder ähnliches dazuschreiben. Diese Herangehensweise ist <a href="http://codex.wordpress.org/Theme_Development#Theme_Style_Sheet">unter WordPress Pflicht</a>, da das Backend wichtige Informationen über das Theme aus der CSS ausliest.</p>
<h3>4. Schlankes, effektives CSS schreiben</h3>
<p>Um schlankes und gleichzeitig effektives CSS zu schreiben, sollte man sich einige Punkte verinnerlichen.</p>
<ol>
<li><em>Aussagekräftige IDs und Klassennamen wählen</em>
<p>Bezeichner sollten auch ihren Namen gerecht werden: <code>#sidebar</code> ist besser als <code>#divleft</code>.</p>
</li>
<li><em>Selektoren gruppieren</em>
<p>Sollten unterschiedliche Tags, IDs oder Klassen die gleichen CSS Eigenschaften bekommen, gruppiert man die jeweiligen Selektoren.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">h4<span style="color: #00AA00;">,</span>
<span style="color: #cc00cc;">#header</span><span style="color: #00AA00;">,</span>
span<span style="color: #6666ff;">.block</span> <span style="color: #00AA00;">&#123;</span>
	...
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

</li>
<li><em>Kurze Selektoren</em>
<p>Wenn möglich sollten Selektoren so kurz wie möglich sein.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #cc00cc;">#sidebar</span> <span style="color: #6666ff;">.widget</span> h2.widgettitle</pre></td></tr></table></div>

<p>..ist viel zu lang, besser ist es so..</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #cc00cc;">#sidebar</span> h2</pre></td></tr></table></div>

<p>..obwohl sie beide das gleiche ansprechen.</p>
</li>
<li><em>Properties einrücken und alphabetisch sortieren</em>
<p>Um die Lesbarkeit des Codes zu erhöhen, ist es ratsam jede Property auf eine neue Zeile zu schreiben, sie einzurücken und alphabetisch zu sortieren. Das macht erstmal ein wenig Arbeit aber wenn man von Anfang an so vorgeht, ist man genauso schnell und es zahlt sich am Ende aus.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #cc00cc;">#sidebar</span> <span style="color: #00AA00;">&#123;</span> 
<span style="color: #000000; font-weight: bold;">z-index</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">20</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#fff</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span><span style="color: #993333;">relative</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">line-height</span><span style="color: #00AA00;">:</span><span style="color: #933;">22px</span><span style="color: #00AA00;">;</span> font-site<span style="color: #00AA00;">:</span><span style="color: #933;">12px</span><span style="color: #00AA00;">;</span> 
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>..das ist wesentlich schlechter zu lesen als das hier..</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #cc00cc;">#sidebar</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#fff</span><span style="color: #00AA00;">;</span>
	font-site<span style="color: #00AA00;">:</span><span style="color: #933;">12px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">line-height</span><span style="color: #00AA00;">:</span><span style="color: #933;">22px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span><span style="color: #993333;">relative</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">z-index</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">20</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

</li>
<li><em>Shortcodes verwenden</em>
<p>Um sich unnötige Arbeit zu ersparen sollte man immer die Kurzformen von Properties und Farbcodes verwenden.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #cc00cc;">#sidebar</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#ffaa99</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">background-image</span><span style="color: #00AA00;">:</span><span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">images/bg_sidebar.jpg</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">background-repeat</span><span style="color: #00AA00;">:</span><span style="color: #993333;">no-repeat</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">background-position</span><span style="color: #00AA00;">:</span><span style="color: #000000; font-weight: bold;">top</span> <span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">margin-top</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">margin-right</span><span style="color: #00AA00;">:</span><span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">margin-bottom</span><span style="color: #00AA00;">:</span><span style="color: #933;">15px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">margin-left</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>..ist extrem umständlich, viel einfacher und kürzer gehts so..</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #cc00cc;">#sidebar</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#fa9</span> <span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">images/bg_sidebar.jpg</span><span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">no-repeat</span> <span style="color: #000000; font-weight: bold;">top</span> <span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span> <span style="color: #933;">10px</span> <span style="color: #933;">15px</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

</li>
<li><em><code>!important</code> vermeiden</em>
<p>Die <code>!important</code>-Anweisung hat natürlich einen Sinn aber man sollte sie dennoch nur in Notfällen benutzen, da man sonst erhebliche Probleme mit dem Cascading bekommen kann.</p>
</li>
</ol>
<blockquote class="idea"><p>Habt ihr noch weitere Vorschläge? Wie formatiert Ihr euren Code? Teilt eure Meinung anderen einfach per Kommentar mit! <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.normansblog.de/besseres-css-schreiben/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Position:Absolute &amp; PNG Filter</title>
		<link>http://www.normansblog.de/position-absolute-png-filter/</link>
		<comments>http://www.normansblog.de/position-absolute-png-filter/#comments</comments>
		<pubDate>Sun, 20 Sep 2009 12:41:10 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[IE6]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=1097</guid>
		<description><![CDATA[Wenn mal wieder irgendwas im IE6 nicht geht.. dann sucht man meistens den Fehler bei sich selbst &#8211; ist mein XHTML invalide, hab ich Fehler im CSS? Meistens. Manchmal hat man es aber auch mit einem strunzdummen Browser zu tun. So zum Beispiel diese Woche, als auf Arbeit ein kleines Problem auftrat. Hier mal eine [...]]]></description>
			<content:encoded><![CDATA[<p>Wenn mal wieder irgendwas im IE6 nicht geht..</p>
<div id="attachment_1104" class="wp-caption alignright" style="width: 178px"><a href="http://www.normansblog.de/position-absolute-png-filter/"><img src="http://www.normansblog.de/wp-content/uploads/2009/09/position_absolute_png_filter_thumb.jpg" alt="Kann IE6 das?" title="position_absolute_png_filter_thumb" width="158" height="157" class="size-full wp-image-1104" /></a><p class="wp-caption-text">Kann IE6 das?</p></div>
<p>dann sucht man meistens den Fehler bei sich selbst &#8211; ist mein XHTML invalide, hab ich Fehler im CSS? Meistens. Manchmal hat man es aber auch mit einem strunzdummen Browser zu tun. So zum Beispiel diese Woche, als auf Arbeit ein kleines Problem auftrat. Hier mal eine Beschreibung der Situation: gefordert war ein Newsticker, der seine Einträge automatisch durchscrollen lässt. Bei den Einträgen handelte es sich um große Hintergrundbilder mit einer darübergelegten halbtransparenten Textbox, in der wiederum ein Link stehen sollte (zur Weiterleitung auf den eigentlichen Newseintrag).</p>
<p><span id="more-1097"></span></p>
<p>Zum besseren Verständnis mal ein Bild:</p>
<div id="attachment_1107" class="wp-caption aligncenter" style="width: 520px"><a href="http://www.normansblog.de/wp-content/uploads/2009/09/position_absolute_png_filter.jpg"><img src="http://www.normansblog.de/wp-content/uploads/2009/09/position_absolute_png_filter.jpg" alt="Newseinträge mit Hintergrundbild und halbtransparenter Box." title="position_absolute_png_filter" width="500" height="250" class="size-full wp-image-1107" /></a><p class="wp-caption-text">Newseinträge mit Hintergrundbild und halbtransparenter Box.</p></div>
<p>Das Sliden/Scrollen der Einträge war kein Problem, das erledigte ein Javascript. Das große Bild wurde per <code>img</code>-Tag im Newseintrag angegeben, genau wie der Inhalt der Textbox samt Link. Die Textbox hatte als Hintergrundbild die halbtransparente weiße Box und wurde mit <code>position:absolute</code> an die entsprechende Stelle geschoben. Alles funktionierte wunderbar, natürlich fehlten jetzt noch die Anpassungen für den IE6.</p>
<p>Da IE6 keine halbtransparenten PNGs unterstützt, nutzen wir die proprietäre <a href="http://jeenaparadies.net/weblog/2007/jun/png-alphatransparenz-im-ie-nutzen">Filtermethode von Microsoft</a>. Dabei wird das Hintergrundbild entfernt und das neugefilterte Bild eingefügt. Der Code sieht folgendermaßen aus:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.trans_box</span> <span style="color: #00AA00;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">background-image</span><span style="color: #00AA00;">:</span><span style="color: #993333;">none</span><span style="color: #00AA00;">;</span>
    filter<span style="color: #3333ff;">:progid</span><span style="color: #3333ff;">:DXImageTransform</span><span style="color: #6666ff;">.Microsoft</span>.AlphaImageLoader<span style="color: #00AA00;">&#40;</span>enabled<span style="color: #00AA00;">=</span>true<span style="color: #00AA00;">,</span> sizingMethod<span style="color: #00AA00;">=</span><span style="color: #993333;">crop</span> src<span style="color: #00AA00;">=</span><span style="color: #ff0000;">'trans_box.png'</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Das ganze sollte man über eine extra IE6 CSS-Datei per <a href="http://en.wikipedia.org/wiki/Conditional_comment">Conditional Comment</a> einfügen, weil sonst das CSS invalide wird.</p>
<p>Gesagt, getan doch plötzlich das böse Erwachen (im IE6): den Link in der Textbox konnte man zwar noch markieren aber nicht mehr anklicken.</p>
<p>Und ich nur so: &#8220;WTF?!&#8221;.</p>
<p>Tja.. die Filtermethode hat leider einige Nachteile, wie ich wenig später herausgefunden habe. Was mir schon bekannt war, war dass <code>background-position</code> Anweisungen nicht mehr funktionieren würden ABER außerdem noch folgendes (jetzt kommts):</p>
<blockquote><p>Links, die sich innerhalb eines absolut-positionierten Elementes befinden, das ein halbtransparentes Hintergrundbild durch die Filtermethode zugewiesen bekommt, sind nicht klickbar.</p></blockquote>
<p>Jap, so hab ich auch geguckt. Was also tun? Nach ein paar Minuten Googeln die Lösung: Damit die Links wieder funktionieren, muss man zusätzliches Markup einfügen.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;trans_box&quot;</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;innerwrap&quot;</span>&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span>&gt;</span>Link<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre></td></tr></table></div>

<p>Damit können wir jetzt die Änderungen am CSS durchführen.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.trans_box</span> <span style="color: #00AA00;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span><span style="color: #993333;">none</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.innerwrap</span> <span style="color: #00AA00;">&#123;</span>
    filter<span style="color: #3333ff;">:progid</span><span style="color: #3333ff;">:DXImageTransform</span><span style="color: #6666ff;">.Microsoft</span>.AlphaImageLoader<span style="color: #00AA00;">&#40;</span>enabled<span style="color: #00AA00;">=</span>true<span style="color: #00AA00;">,</span> sizingMethod<span style="color: #00AA00;">=</span><span style="color: #993333;">crop</span> src<span style="color: #00AA00;">=</span><span style="color: #ff0000;">'trans_box.png'</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
    zoom<span style="color: #00AA00;">:</span><span style="color: #cc66cc;">1</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.trans_box</span> a <span style="color: #00AA00;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span><span style="color: #993333;">relative</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">z-index</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">1</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Der Filter wird von der äußeren Box rein in den innerwrap gezogen und bekommt <code>zoom:1;</code>, damit <a href="http://onhavinglayout.fwpf-webdesign.de/">hasLayout</a> im IE6 gesetzt ist. Die Änderungen am Link sind dazu da, dass dieser stets über den anderen Boxen dargestellt wird.</p>
<p>Ist alles bisschen dreckig aber es funktioniert. Das Extra-Markup ist denke ich verkraftbar, wenn man dafür eine schöne transparente Box im IE6 haben kann.<br />
Viel Spaß damit. <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><small>Mehr zum Thema auf Englisch bei <a href="http://www.satzansatz.de/cssd/tmp/alphatransparency.html">satzansatz.de</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.normansblog.de/position-absolute-png-filter/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Wenn CSS nicht mehr reicht..</title>
		<link>http://www.normansblog.de/when-css-is-not-enough/</link>
		<comments>http://www.normansblog.de/when-css-is-not-enough/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 23:01:22 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=1032</guid>
		<description><![CDATA[Hi-de-ho Diese Woche hatte ich auf Arbeit ein ungewöhnliches Problem, mit dem ich an die Grenzen von CSS gestoßen bin. Ich bekam die Aufgabe einige Screendesigns umzusetzen, an sich nichts Ungewöhnliches, allerdings gab es einige Bedingungen bezüglich der Sidebar: ein Widget &#8211; also eine Box innerhalb der Sidebar &#8211; sollte sich immer am unteren Rand [...]]]></description>
			<content:encoded><![CDATA[<p>Hi-de-ho</p>
<p><a href="http://www.normansblog.de/when-css-is-not-enough/"><img src="http://www.normansblog.de/wp-content/uploads/2009/07/js.png" alt="js" title="js" width="100" height="98" class="alignright size-full wp-image-1033" /></a>Diese Woche hatte ich auf Arbeit ein ungewöhnliches Problem, mit dem ich an die Grenzen von CSS gestoßen bin. Ich bekam die Aufgabe einige Screendesigns umzusetzen, an sich nichts Ungewöhnliches, allerdings gab es einige Bedingungen bezüglich der Sidebar: ein Widget &#8211; also eine Box innerhalb der Sidebar &#8211; sollte sich immer am unteren Rand der Sidebar aufhalten, wobei Sidebar und Content immer gleich hoch sein sollten, je nachdem, welches der beiden höher ist.</p>
<p><span id="more-1032"></span></p>
<h3>Das Problem</h3>
<p>Ich dachte also erstmal nach, wie ich die beiden Teilprobleme lösen könnte. Eine Box an den unteren Rand einer anderen Box zu schieben ist einfach zu lösen. Die Sidebar bekäme ein <code>position:relative</code> und das Widget <code>position:absolute</code> sowie einen kleinen Wert für <code>bottom</code>. Wie lässt man jedoch Content und Sidebar gleich hoch sein? Dafür gibt es verschiedene Ansätze. Man könnte zum Beispiel eine Tabelle benutzen oder <a href="http://alistapart.byteshift.de/fauxcolumns/">man suggeriert das Ganze</a> (faux columns), indem man eine Hintergrundgrafik benutzt.</p>
<p>Ich konnte keine Tabelle benutzen, weil man <code>position:relative</code> auf <code>td</code> Tags nicht anwenden kann und die andere Variante viel weg, weil ich wirklich zwei gleich hohe DIVs brauchte. Da saß ich also und hatte ein schier unlösbares Problem.</p>
<p>&#8220;Man müsste irgendwie abfragen können, wie hoch die beiden DIVs sind und sie dann entsprechend anpassen.&#8221;, hab ich mir gedacht und hatte damit die Lösung schon gefunden. Nach Absprache mit einem Kollegen stand fest: Mir bleibt nichts anderes übrig als JavaScript zu benutzen.</p>
<h3>Die Lösung</h3>
<p>Ich entschied mich für <a href="http://jquery.com/">jQuery</a>, das sich in einigen anderen Projekten bereits als extrem nützlich und vielseitig erwiesen hatte. Es ist außerdem sehr einfach zu erlernen und bringt neben einer guten Dokumentation auch viele coole <a href="http://plugins.jquery.com/">Plugins</a> mit sich. &#8220;Die ganze Bibliothek nur für eine simple Abfrage?&#8221;, wird sich mancher an dieser Stelle denken. Ja. Natürlich geht das auch mit reinem JavaScript aber da ich jQuery auch noch an anderer Stelle im Template gebraucht habe, wäre es dumm gewesen, die jQuery Funktionen nicht zu nutzen.</p>
<p>Ich habe also die aktuelle jQuery Version <a href="http://docs.jquery.com/How_jQuery_Works#jQuery:_The_Basics">eingebunden</a> und mir dann kurz überlegt, was mein Script machen muss:</p>
<ol>
<li>Hol dir die Höhe der Sidebar und die Höhe des Contents</li>
<li>Vergleiche beide Werte und bilde das kleinste gemeinsame Vielfache (kgV)</li>
<li>Setze die Höhe der beiden DIVs auf das kgV</li>
</ol>
<h3>Die Umsetzung</h3>
<p>Soweit zur Theorie, kommen wir zur Praxis:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">//sync height of Content and Sidebar</span>
<span style="color: #000066; font-weight: bold;">function</span> syncheight<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #006600; font-style: italic;">//Reset auf 'auto'</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#content'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">height</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'auto'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#sidebar'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">height</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'auto'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #006600; font-style: italic;">//hole aktuelle Werte</span>
	<span style="color: #000066; font-weight: bold;">var</span> contentheight <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#content'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">height</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">var</span> sidebarheight <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#sidebar'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">height</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">var</span> fullheight<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #006600; font-style: italic;">//vergleiche beide Hoehen, bilde kleines gemeinsames Vielfaches</span>
	<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>contentheight<span style="color: #339933;">&gt;=</span>sidebarheight <span style="color: #339933;">||</span> contentheight<span style="color: #339933;">==</span>sidebarheight<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		fullheight <span style="color: #339933;">=</span> contentheight<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
		fullheight <span style="color: #339933;">=</span> sidebarheight<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #006600; font-style: italic;">//setze beide auf gleiche Hoehe</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#content'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">height</span><span style="color: #009900;">&#40;</span>fullheight<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#sidebar'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">height</span><span style="color: #009900;">&#40;</span>fullheight<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Das ist die ganze Funktion. <code>#content</code> und <code>#sidebar</code> stehen für die ID des Contents bzw. der Sidebar. Hinzu kam noch das Zurücksetzen der beiden Höhen auf den Wert <code>auto</code>. Das ist notwendig, will man später die Funktion in einem anderen JavaScript aufrufen. Möchte man, dass die Funktion automatisch aufgerufen wird, nachdem die Seite geladen ist, muss man die Funktion noch in eine <code>document.ready</code> &#8211; Funktion legen:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #006600; font-style: italic;">//hier die Funktion rein</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Durch diese Funktion wartet der Browser bis die Seite vollständig aufgebaut wurde und führt dann erst das Script aus.</p>
<h3>Demo</h3>
<div class="demolink"><a href="http://www.normansblog.de/demos/sync-sidebar-content-height/">Live Demo</a></div>
<p>Mein Problem war gelöst, mein Chef zufrieden und ich denke mal, dem einen oder anderen könnte die kleine Funktion auch helfen.</p>
<p>Viel Spaß wünsch ich damit <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.normansblog.de/when-css-is-not-enough/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Problemlösung</title>
		<link>http://www.normansblog.de/puzzle-solution/</link>
		<comments>http://www.normansblog.de/puzzle-solution/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 20:35:35 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=907</guid>
		<description><![CDATA[Hallo Kaloeffel möchte gern, dass ich für ihn ein Problem löse und das mach ich auch.. Neue Herausforderung: Ich möchte dass die Sidebar oben anfängt, also nicht nur neben dem Content sondern auch neben dem Header. Die Seite soll die ganze breite einnehmen und der Header und Content sollen eine flexible breite haben. Problem: Wenn [...]]]></description>
			<content:encoded><![CDATA[<p>Hallo</p>
<p>Kaloeffel möchte gern, dass ich für ihn ein Problem löse und das mach ich auch..</p>
<blockquote><p>Neue Herausforderung:<br/><br />
Ich möchte dass die Sidebar oben anfängt, also nicht nur neben dem Content sondern auch neben dem Header.<br />
Die Seite soll die ganze breite einnehmen und der Header und Content sollen eine flexible breite haben.<br />
Problem: Wenn z.B. der Header die Eigenschaft “float:left;” bekommt, ist die Größe nicht mehr flexibel sondern nur noch das Minimum.</p>
</blockquote>
<p><span id="more-907"></span></p>
<p>Ausgehend vom Beispiel aus dem dritten Teil des <a href="http://www.normansblog.de/css-beginner-tutorial-3">CSS Einsteiger Tutorials</a> kommt nun die Lösung.</p>
<p>Zuerst müssen wir natürlich das Markup, also den XHTML Code ändern. Die Sidebar muss für sich sein, und der Header muss in den Content geschoben werden oder man erstellt ein neues <code>div</code>, in das man Header und Content schiebt. Der Einfachheit halber verzichte ich aber jetzt darauf. Ein Footer wurde nicht gewünscht, deshalb lasse ich den jetzt auch mal weg. Zum Code:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">html</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">head</span>&gt;</span>
	<span style="color: #808080; font-style: italic;">&lt;!-- meta Elemente, Verlinkung auf CSS Datei --&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">head</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;page&quot;</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;sidebar&quot;</span>&gt;</span>
				Sidebar
			<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;content&quot;</span>&gt;</span>
				<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;header&quot;</span>&gt;</span>
					Header
				<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
				Content
			<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">html</span>&gt;</span></pre></td></tr></table></div>

<p>Soweit sogut. Jetzt müssen wir natürlich auch das CSS ändern. Wir haben 2 Hürden zu bewältigen: 1. die Variable Breite und 2. eine Sidebar mit fester Breite, die neben Header und Content platziert sein soll.</p>
<p>Die Änderungen, die dafür notwendig sind, sind ziemlich simpel. Das Page-Div verliert seine feste Breite und bekommt <code>width:100%</code> statt 800px. Die Sidebar behält <code>float:left</code>, der Content (der den Header jetzt enthält) verliert aber jegliches <code>float</code> sowie seine feste Breite und bekommt stattdessen ein <code>margin-left</code> mit dem Breitenwert der Sidebar.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">#<span style="color: #000000; font-weight: bold;">page</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">100%</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Seite hat variable Breite  */</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #cc00cc;">#header</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#0ff</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">50px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #cc00cc;">#sidebar</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">clear</span><span style="color: #00AA00;">:</span><span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">float</span><span style="color: #00AA00;">:</span><span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#f80</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">200px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">100px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
#<span style="color: #000000; font-weight: bold;">content</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#f0f</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">400px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">margin-left</span><span style="color: #00AA00;">:</span><span style="color: #933;">200px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Ergebnis:</p>
<div id="attachment_908" class="wp-caption aligncenter" style="width: 320px"><a href="http://www.normansblog.de/wp-content/uploads/2009/06/sidebarnebencontent.jpg"><img src="http://www.normansblog.de/wp-content/uploads/2009/06/sidebarnebencontent-300x136.jpg" alt="So soll es sein" title="sidebarnebencontent" width="300" height="136" class="size-medium wp-image-908" /></a><p class="wp-caption-text">So soll es sein</p></div>
<p>Das war es auch schon <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.normansblog.de/puzzle-solution/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Einblick in CSS3</title>
		<link>http://www.normansblog.de/preview-on-css3/</link>
		<comments>http://www.normansblog.de/preview-on-css3/#comments</comments>
		<pubDate>Sun, 14 Jun 2009 16:12:09 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=810</guid>
		<description><![CDATA[Kurzer Einblick in CSS3 Hallo Leute, dieser Artikel wird ein kleines Tutorial darüber, wie man schon jetzt einige der neuen CSS3 Features in modernen Browsern nutzen kann. Als Versuchsobjekt wird uns ein Link in Form eines Buttons dienen. Dazu erstmal der XHTML Code: 1 &#60;a href=&#34;#&#34;&#62;CSS3 Button&#60;/a&#62; und der CSS Code: 1 2 3 4 [...]]]></description>
			<content:encoded><![CDATA[<p>Kurzer Einblick in CSS3</p>
<div id="attachment_814" class="wp-caption alignright" style="width: 285px"><a href="http://www.normansblog.de/preview-on-css3/"><img class="size-full wp-image-814" title="button_box_shadow" src="http://www.normansblog.de/wp-content/uploads/2009/06/button_box_shadow.jpg" alt="CSS3 Effekte" width="265" height="103" /></a><p class="wp-caption-text">CSS3 Effekte</p></div>
<p>Hallo Leute, dieser Artikel wird ein kleines Tutorial darüber, wie man schon jetzt einige der neuen CSS3 Features in modernen Browsern nutzen kann.</p>
<p>Als Versuchsobjekt wird uns ein Link in Form eines Buttons dienen.</p>
<p><span id="more-810"></span></p>
<p>Dazu erstmal der XHTML Code:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span>&gt;</span>CSS3 Button<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span></pre></td></tr></table></div>

<p>und der CSS Code:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">a <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#e9e9e9</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#828282</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#828282</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">font</span><span style="color: #00AA00;">:</span><span style="color: #993333;">bold</span> <span style="color: #933;">26px</span> arial<span style="color: #00AA00;">,</span><span style="color: #993333;">sans-serif</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #933;">10px</span> <span style="color: #933;">15px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">text-decoration</span><span style="color: #00AA00;">:</span><span style="color: #993333;">none</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">text-transform</span><span style="color: #00AA00;">:</span><span style="color: #993333;">uppercase</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>So sieht das Ganze dann mit CSS2 Features aus:</p>
<div id="attachment_813" class="wp-caption aligncenter" style="width: 285px"><img class="size-full wp-image-813" title="button_css2" src="http://www.normansblog.de/wp-content/uploads/2009/06/button_css2.jpg" alt="Button mit CSS2" width="265" height="103" /><p class="wp-caption-text">Button mit CSS2</p></div>
<h3>Border-Radius</h3>
<p>Das sieht natürlich alles noch sehr eckig und langweilig aus. CSS3 und die demnächst erscheinenden neuen Browser (<a href="http://www.mozilla.com/en-US/firefox/all-beta.html">Firefox 3.5</a>, <a href="http://my.opera.com/desktopteam/blog/2009/06/03/welcome-to-opera-10-beta-1">Opera 10</a> (teilweise) und &#8211; neulich erst released &#8211; <a href="http://www.apple.com/safari/">Safari 4</a>) erlauben es uns aber, durch einige nette Effekte, alles etwas aufzupeppen.</p>
<p>Beginnen wir am besten mit abgerundeten Ecken. Die Property <code>border-radius</code> wird derzeit noch von keinem Browser richtig unterstützt, einige haben aber damit begonnen, sie selbstständig zu implementieren. Firefox3 kennt die Eigenschaft als <code>-moz-border-radius</code>, während man unter Safari <code>-webkit-border-radius</code> benutzen muss.</p>
<p>Damit also in möglichst vielen Browsern die runden Ecken zu sehen sind, müssen wir gleiche mehrere Zeilen CSS Code zu unserem obigen Beispiel hinzufügen:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">-moz-border-radius<span style="color: #00AA00;">:</span><span style="color: #933;">25px</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Mozilla alte Syntax */</span>
-webkit-border-radius<span style="color: #00AA00;">:</span><span style="color: #933;">25px</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Safari alte Syntax */</span>
<span style="color: #000000; font-weight: bold;">border-radius</span><span style="color: #00AA00;">:</span><span style="color: #933;">25px</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* W3C Standard */</span></pre></td></tr></table></div>

<blockquote class="warning"><p>Für den Internet Explorer (&lt;9) gibt es derzeit keine Lösung.</p></blockquote>
<p>Das Ergebnis sieht folgendermaßen aus:</p>
<div id="attachment_815" class="wp-caption aligncenter" style="width: 285px"><img class="size-full wp-image-815" title="button_border_radius" src="http://www.normansblog.de/wp-content/uploads/2009/06/button_border_radius.jpg" alt="border-radius" width="265" height="103" /><p class="wp-caption-text">border-radius</p></div>
<h3>Text-Shadow</h3>
<p>Als nächstes wollen wir versuchen, dem Text einen Schatten zu geben. Aber nicht irgendeinen, sondern etwas, das in die richtung &#8220;Emboss&#8221; geht, eine Art Präge-Effekt. Dafür gibt es <code>text-shadow</code>, das es uns möglicht macht, einen oder mehr verschiedengroße und -farbige Schatten auf den Text anzuwenden.</p>
<p>Für den gewünschten Emboss-Effekt brauchen wir zwei Schatten, einen dunklen oben und einen hellen unten, damit der Eindruck entsteht, von oben käme Licht:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">text-shadow</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span> <span style="color: #933;">1px</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc00cc;">#fff</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span> <span style="color: #933;">-1px</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc00cc;">#404040</span><span style="color: #00AA00;">;</span></pre></td></tr></table></div>

<p>Die Schatten werden durch ein Komma getrennt, Parameter sind <code>[color] [x-offset]px [y-offset]px [blur/size]px</code>. Negative Werte für Offsets sind erlaubt, die Reihenfolge der Schatten spielt hierbei keine Rolle.</p>
<blockquote class="warning"><p>Auch hier spielt der Internet Explorer nicht mit.</p></blockquote>
<div id="attachment_816" class="wp-caption aligncenter" style="width: 285px"><img class="size-full wp-image-816" title="button_text_shadow" src="http://www.normansblog.de/wp-content/uploads/2009/06/button_text_shadow.jpg" alt="text-shadow" width="265" height="103" /><p class="wp-caption-text">text-shadow</p></div>
<h3>Box-Shadow</h3>
<p>So sieht unser Button doch schon wesentlich angenehmer aus. Was jetzt noch fehlt ist ein Schlagschatten für den gesamten Button. Hierfür gibt es <code>box-shadow</code>, das wir wieder über Brwoserspezifische Präfixe einbinden müssen:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">-moz-box-shadow<span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#ccc</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Mozilla alte Syntax */</span>
-webkit-box-shadow<span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#cc</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Safari alte Syntax */</span>
box-shadow<span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#ccc</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* W3C Standard */</span></pre></td></tr></table></div>

<blockquote class="warning"><p>Fehlanzeige im Internet Explorer (&lt;9).</p></blockquote>
<p>Damit ist unser Button schon fertig:</p>
<div class="wp-caption aligncenter" style="width: 285px"><img class="size-full wp-image-814" title="button_box_shadow" src="http://www.normansblog.de/wp-content/uploads/2009/06/button_box_shadow.jpg" alt="box-shadow" width="265" height="103" /><p class="wp-caption-text">box-shadow</p></div>
<p>Wie ihr seht, bringt CSS3 einige coole Neuerungen mit sich, die unsere Arbeit wesentlich erleichtern werden. (Natürlich sind die obigen drei nicht alles, was CSS3 zu bieten hat, sehr interessant werden z.B. auch die neuen Selektoren sein.) Denkt nur mal an <code>box-shadow</code>, ich weiß gar nicht, wie oft ich schon Vorlagen aus der Designabteilung bekommen habe, in denen jede Box irgendeinen soften Schlagschatten hatte und wir dann immer abwägen mussten ob sich der Aufwand lohnt dafür extra Grafiken zu machen. Auch bei Seitenrändern mit Schlagschatten mussten immer Grafiken zurecht geschnitten und mühevoll mit CSS an die richtige Stelle geschubst werden. Ebenfalls entfällt das Rendern für Überschriften mit Schatten, denn dafür gibt es jetzt ja <code>text-shadow</code> und Runde Ecken sind je eh <a href="http://www.webbe.de/index.shtml?CONTENT=script_css_corner;LANG=de">ein Kapitel für sich</a>&#8230; <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Mit CSS3 spart man also Zeit, Geld und Traffic! *froi* <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.normansblog.de/preview-on-css3/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>CSS Update</title>
		<link>http://www.normansblog.de/css-update/</link>
		<comments>http://www.normansblog.de/css-update/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 00:52:36 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Theme]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=658</guid>
		<description><![CDATA[Veränderte CSS bei Flora Da ich nun den IE6 Support eingestellt habe und ich dennoch nicht recht mit dem zerschossenen Layout leben wollte, hab ich mal eben noch die CSS Datei etwas optimiert und siehe da: sieht alles gut aus, auch im alten Drecksbrowser. Die einzigen Darstellungsfehler sind jetzt noch die PNG Grafiken. Die werde [...]]]></description>
			<content:encoded><![CDATA[<p>Veränderte CSS bei Flora</p>
<div id="attachment_659" class="wp-caption alignright" style="width: 160px"><a href="http://www.normansblog.de/css-update/"><img src="http://www.normansblog.de/wp-content/uploads/2009/04/css_neu.jpg" alt="Neue CSS!" title="css_neu" width="140" height="138" class="size-full wp-image-659" /></a><p class="wp-caption-text">Neue CSS!</p></div>
<p>Da ich nun den <a href="http://www.normansblog.de/goodbye-ie6/">IE6 Support eingestellt</a> habe und ich dennoch nicht recht mit dem zerschossenen Layout leben wollte, hab ich mal eben noch die CSS Datei etwas optimiert und siehe da: sieht alles gut aus, auch im alten Drecksbrowser. Die einzigen Darstellungsfehler sind jetzt noch die <a href="http://de.wikipedia.org/wiki/PNG">PNG Grafiken</a>. Die werde ich aber nicht austauschen. Im Gegenteil, die 3 kleinen Icons unter der Artikelüberschrift sind jetzt PNG Dateien und haben einen angenehmeren Farbverlauf.</p>
<p>Außerdem hat die CSS Datei jetzt eine Versionierung in Form eines <a href="http://de.wikipedia.org/wiki/Timestamp">Timestamps</a> bekommen, sodass sie bei jedem neugeladen werden muss, sollte ich etwas daran verändert haben. <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.normansblog.de/css-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS Einsteiger Tutorial #3</title>
		<link>http://www.normansblog.de/css-beginner-tutorial-3/</link>
		<comments>http://www.normansblog.de/css-beginner-tutorial-3/#comments</comments>
		<pubDate>Sun, 29 Mar 2009 16:50:39 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Anfänger]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=543</guid>
		<description><![CDATA[CSS Einsteiger Tutorial #3 Herzlich willkommen zum dritten Teil des CSS Einsteiger Tutorials. Es wird empfohlen folgende Teile des Tutorials vorher gelesen zu haben: Teil #1 (XHTML+CSS, Syntax) Teil #2 (Syntax, Selektoren, Box-Model) In Teil 3 werden wir versuchen ein zweispaltiges Layout &#8211; bestehend aus Header, Sidebar, Content und Footer &#8211; zu erstellen. Wieder mit [...]]]></description>
			<content:encoded><![CDATA[<h3>CSS Einsteiger Tutorial #3</h3>
<p><a href="http://www.normansblog.de/css-beginner-tutorial-3/"><img src="http://www.normansblog.de/wp-content/uploads/2009/03/css_part3.jpg" alt="css_part3" title="css_part3" width="100" height="98" class="alignright size-full wp-image-546" /></a>Herzlich willkommen zum dritten Teil des CSS Einsteiger Tutorials. Es wird empfohlen folgende Teile des Tutorials vorher gelesen zu haben:</p>
<ol>
<li><a href="http://www.normansblog.de/css-beginner-tutorial-1/">Teil #1 (XHTML+CSS, Syntax)</a></li>
<li><a href="http://www.normansblog.de/css-beginner-tutorial-2/">Teil #2 (Syntax, Selektoren, Box-Model)</a></li>
</ol>
<p>In Teil 3 werden wir versuchen ein zweispaltiges Layout &#8211; bestehend aus Header, Sidebar, Content und Footer &#8211; zu erstellen.</p>
<p><span id="more-543"></span></p>
<p>Wieder mit dabei?</p>
<blockquote><p>na aber sicher!</p></blockquote>
<p>Ok, bevor es richtig losgeht, sollte wir noch eine wichtige Unterscheidung von HTML-Elementen kennen und verstehen lernen.</p>
<h3>Block- &amp; Inline-Elemente</h3>
<h4>Block-Elemente</h4>
<p>Block-Elemente sind HTML-Elemente, die vom Browser so interpretiert werden, als würde vor und nach ihnen ein Zeilenumbruch stehen. Sie starten also, außer nicht anders durch CSS-Befehle festgelegt, eine neue Zeile. Standardmäßig bekommen Block-Elemente die gleiche Breite wie ihre Elternelemente, sie versuchen also ihr Elternelement in der Breite (nicht aber in der Höhe, die wiederum vom Inhalt bestimmt wird) auszufüllen.</p>
<p>Beispiele für Block-Elemente sind:</p>
<ul>
<li><code>div</code> &#8211; Divisions (Sektor)</li>
<li><code>p</code> &#8211; Paragraph (Absatz)</li>
<li><code>blockquote</code> &#8211; Blockquote (Zitat)</li>
<li><code>ul,ol</code> &#8211; Unordered/Ordered List (ungeordnete/geordnete Liste)</li>
<li><code>li</code> &#8211; List Item (Listenelement)</li>
<li><code>h1-6</code> &#8211; Headings (Überschriften)</li>
<li><code>table</code> &#8211; Table (Tabelle)</li>
</ul>
<h4>Inline-Elemente</h4>
<p>Inline-Elemente hingegen produzieren keine Zeilenumbrüche, sie werden einfach der Reihe nach dargestellt. Ihre Breite und Höhe wird von ihrem Inhalt bestimmt, unabhängig vom Elternelement (auch hier gilt wieder: nur solange nicht anders durch CSS-Befehle festgelegt).</p>
<p>Beispiele für Inline-Elemente sind:</p>
<ul>
<li><code>span</code> &#8211; Span</li>
<li><code>a</code> &#8211; Anchor (Link)</li>
<li><code>em</code> &#8211; Emphasize (Italic)</li>
<li><code>strong</code> &#8211; Strong (Fett)</li>
<li><code>code</code> &#8211; Code</li>
</ul>
<h4>Bemerkungen</h4>
<p>Ein Layout, und dazu zählt auch unseres, besteht aus Block-Elementen, die mit anderen Block- und Inline-Elementen gefüllt werden. (Sidebar bekommt eine Liste, Content wird mit Absätzen befüllt, die wiederum Links und Spans enthalten können usw.)</p>
<p>Jedes Element kann in seinem Verhalten verändert werden. Der CSS-Befehl, der dafür zuständig ist, heißt <code>display</code>. <code>display</code> hat mehrere Zustände; hier die 4 wichtigsten:</p>
<ol>
<li><code>none</code> das Element wird nicht angezeigt (Element + Inhalt verstecken)</li>
<li><code>inline</code> das Element wird als Inline-Element behandelt</li>
<li><code>block</code> das Element wird als Block-Element behandelt</li>
<li><code>list-item</code> das Element wird als Listenelement angezeigt (mit Anstrich)</li>
</ol>
<p>Jedes Block-Element kann somit als Inline-Element und umgedreht behandelt werden, wodurch man sehr flexibel wird was die Benutzung von Elementen angeht.</p>
<blockquote class="idea"><p>Durch das Ändern der <code>display</code>-Eigenschaft ändern wir <strong>nicht</strong> das Element selbst. Ein Block-Element bleibt ein Block-Element, es verhält sich nur anders. Es ist also auch damit nicht möglich ein <code>div</code> innerhalb eines <code>a</code>-Elements zu schreiben o.ä.!</p></blockquote>
<blockquote><p>das hab ich natürlich gleich gewusst.. <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p></blockquote>
<h3>Zweispaltiges Layout</h3>
<p>Ein Layout mit zwei Spalten besteht zumeist aus Header (Banner, Top-Navigation, Suche etc.), Sidebar (Navigation, Kalender, Werbung etc.), Content (der eigentliche Seiteninhalt, Bilder etc.) und dem Footer (Back-Links, Sitemap, Copyright etc.). Die meisten WordPress Themes &#8211; meins inklusive &#8211; benutzen ein zweispaltiges Layout, deshalb soll es uns hier mal als Beispiel dienen:</p>
<div id="attachment_551" class="wp-caption aligncenter" style="width: 520px"><img src="http://www.normansblog.de/wp-content/uploads/2009/03/site_parts.jpg" alt="Zweispaltiges Layout mit Header, Sidebar, Content und Footer." title="site_parts" width="500" height="425" class="size-full wp-image-551" /><p class="wp-caption-text">Zweispaltiges Layout mit Header, Sidebar, Content und Footer.</p></div>
<p>Alle markierten Blöcke auf dem Bild sind <code>div</code>s und somit Block-Elemente. Der HTML-Code für diese grobe Struktur würde wie folgt aussehen:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">html</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">head</span>&gt;</span>
	<span style="color: #808080; font-style: italic;">&lt;!-- meta Elemente, Verlinkung auf CSS Datei --&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">head</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;page&quot;</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;header&quot;</span>&gt;</span>
				Header
			<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;sidebar&quot;</span>&gt;</span>
				Sidebar
			<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;content&quot;</span>&gt;</span>
				Content
			<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;footer&quot;</span>&gt;</span>
				Footer
			<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">html</span>&gt;</span></pre></td></tr></table></div>

<p>Die IDs sind dazu da, um die Elemente später per CSS anzusprechen. Das <code>div id="page"</code> ist praktisch, wenn wir unsere Seite zentrieren wollen. Oftmals wird so ein <code>div</code> auch <em>wrapper</em> genannt, weil es die Seite nochmal umschließt (eng: to wrap).</p>
<p>Wollen wir nun unseren Blöcken ein gewisses Aussehen verleihen und schreiben also folgende CSS (die Werte für <code>height</code> und <code>background-color</code> stehen nur da, damit wir nachher was sehen, normalerweise wird die Höhe vom Inhalt des jeweiligen Divs bestimmt):</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">#<span style="color: #000000; font-weight: bold;">page</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span> <span style="color: #993333;">auto</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* zentriert die Seite */</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">800px</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Seite wird 800 Pixel breit */</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #cc00cc;">#header</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#00ffff</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">50px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #cc00cc;">#sidebar</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#ff8800</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">200px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">100px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
#<span style="color: #000000; font-weight: bold;">content</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#ff00ff</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">600px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">400px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #cc00cc;">#footer</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#00ff00</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">50px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Schauen wir uns nun das Ganze im Browser an:</p>
<div id="attachment_561" class="wp-caption aligncenter" style="width: 520px"><img src="http://www.normansblog.de/wp-content/uploads/2009/03/page_nofloat.jpg" alt="Zweispaltiges Layout? Noch nicht ganz.." title="page_nofloat" width="500" height="375" class="size-full wp-image-561" /><p class="wp-caption-text">Zweispaltiges Layout? Noch nicht ganz..</p></div>
<blockquote><p>hm.. da stimmt irgendwas noch nicht. sidebar und content sollten doch eigentlich nebeneinander passen?!</p></blockquote>
<p>Völlig richtig! Allerdings reicht dafür obenstehendes CSS nicht aus. Es gibt allerdings eine ganz einfache Methode, um unser Ziel zu erreichen &#8211; <code>float</code></p>
<h4>Float</h4>
<p><code>float</code> hat 3 wichtige Zustände:</p>
<ol>
<li><code>left</code> Element &#8220;fließt&#8221; nach links</li>
<li><code>right</code> Element &#8220;fließt&#8221; nach rechts</li>
<li><code>none</code> Element &#8220;fließt&#8221; nicht</li>
</ol>
<blockquote><p>öhm.. &#8220;fließt&#8221; ??</p></blockquote>
<p>Um es verständlicher zu machen, erkläre ich es am besten an einem Beispiel. Folgendes Szenario: Eine große 500px breite Box (schwarzer Rahmen) soll mit 4 Boxen (Box1-4) befüllt werden, die alle die Eigenschaft <code>float:left</code> besitzen und jeweils eine unterschiedliche Höhe und Breite haben.</p>
<p>Gehen wir die Sache Schritt für Schritt durch..</p>
<p>1. Box1 platziert sich wie erwartet links oben.</p>
<div id="attachment_566" class="wp-caption aligncenter" style="width: 522px"><img src="http://www.normansblog.de/wp-content/uploads/2009/03/boxes1.jpg" alt="Box1" title="boxes1" width="502" height="277" class="size-full wp-image-566" /><p class="wp-caption-text">Bild 1</p></div>
<p>2. Box2 &#8220;fließt&#8221; jetzt links neben Box1, da noch genug Platz vorhanden ist.</p>
<div id="attachment_567" class="wp-caption aligncenter" style="width: 522px"><img src="http://www.normansblog.de/wp-content/uploads/2009/03/boxes2.jpg" alt="Box2" title="boxes2" width="502" height="277" class="size-full wp-image-567" /><p class="wp-caption-text">Bild 2</p></div>
<p>3. Box3 tut es Box2 gleich.</p>
<div id="attachment_568" class="wp-caption aligncenter" style="width: 522px"><img src="http://www.normansblog.de/wp-content/uploads/2009/03/boxes3.jpg" alt="Box3" title="boxes3" width="502" height="277" class="size-full wp-image-568" /><p class="wp-caption-text">Bild 3</p></div>
<p>4. Die &#8220;erste Reihe&#8221; ist nun voll Box4 muss sich weiter unten einreihen, wir sehen jedoch das Problem. Box4 lässt nach links Platz weil es ja auch soweit wie möglich nach oben will und muss.</p>
<div id="attachment_569" class="wp-caption aligncenter" style="width: 522px"><img src="http://www.normansblog.de/wp-content/uploads/2009/03/boxes4.jpg" alt="Box4" title="boxes4" width="502" height="277" class="size-full wp-image-569" /><p class="wp-caption-text">Bild 4</p></div>
<p>5. Um das zu verhindern und Box4 auf einer &#8220;neuen Zeile&#8221; beginnen zu lassen, fügen wir <strong>vor</strong> Box4 noch eine weiter Box hinzu.</p>
<div id="attachment_570" class="wp-caption aligncenter" style="width: 522px"><img src="http://www.normansblog.de/wp-content/uploads/2009/03/boxes5.jpg" alt="Bild 5" title="boxes5" width="502" height="277" class="size-full wp-image-570" /><p class="wp-caption-text">Bild 5</p></div>
<p>CSS-Code für Box5:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.box5</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">clear</span><span style="color: #00AA00;">:</span><span style="color: #993333;">both</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Damit ist Box5 ein sogenannter Clear-Div. Solche Divs bewirken, dass nachfolgende Elemente das Floating von vorhergehenden Elementen ignorieren und somit wieder &#8220;bei Null angfangen&#8221;, d.h. sich wieder ganz links anordnen und nicht solche Fehler produzieren wie in Bild 4.</p>
<blockquote class="idea"><p>Neben <code>both</code> hat <code>clear</code> noch die Werte <code>left</code> und <code>right</code>, sodass es möglich ist nur eine bestimmte <code>float</code>-Richtung aufzuheben. Außerdem ist <code>clear</code> nicht auf Divs beschränkt sondern kann auf jedes Element angewendet werden.</p></blockquote>
<blockquote><p>Ok, ich denke ich hab&#8217;s verstanden.. zurück zu unserem Beispiel, was muss ich da nun wo ändern?</p></blockquote>
<p>Mit dem neuen Wissen lassen wir nun die Sidebar und den Content floaten. Die Sidebar nach links und den Content nach rechts. So können wir sicher sein, dass nichts schief läuft. Zusätzlich sollten wir dem Footer noch ein <code>clear:both</code> verpassen, das ist zwar nicht unbedingt notwendig aber sollten wir doch aus irgendwelchen gründen noch Elemente nach dem Footer einfügen und diese floaten lassen besteht die Gefahr, dass es uns das Layout zerschießt.</p>
<p>Der neue CSS-Code lautet demnach (nur #sidebar, #content und #footer ändern sich, Rest bleibt gleich):</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #cc00cc;">#sidebar</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">float</span><span style="color: #00AA00;">:</span><span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#ff8800</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">200px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">100px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
#<span style="color: #000000; font-weight: bold;">content</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">float</span><span style="color: #00AA00;">:</span><span style="color: #000000; font-weight: bold;">right</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#ff00ff</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">600px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">400px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #cc00cc;">#footer</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">clear</span><span style="color: #00AA00;">:</span><span style="color: #993333;">both</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#00ff00</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">50px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Und siehe da, alles so wie es sein soll <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div id="attachment_573" class="wp-caption aligncenter" style="width: 520px"><img src="http://www.normansblog.de/wp-content/uploads/2009/03/page_float.jpg" alt="Sieht es bei dir auch so aus? Dann glückwunsch zum einem zweispaltigen Layout!" title="page_float" width="500" height="313" class="size-full wp-image-573" /><p class="wp-caption-text">Sieht es bei dir auch so aus? Dann Glückwunsch zum einem zweispaltigen Layout!</p></div>
<blockquote><p>Sehr geil.</p></blockquote>
<p>Nun kannst du anfangen die Blöcke mit Inhalt zu befüllen! Folgende Teile stehen zum Weiterlesen bereit:</p>
<ol>
<li><a href="http://www.normansblog.de/css-beginner-tutorial-1/">Teil #1 (XHTML+CSS, Syntax)</a></li>
<li><a href="http://www.normansblog.de/css-beginner-tutorial-2/">Teil #2 (Syntax, Selektoren, Box-Model)</a></li>
<li>Teil #3 (Zweispaltiges Layout, Float)</li>
</ol>
<blockquote class="idea"><p>War dieses Tutorial hilfreich? Was möchtest du als nächstes wissen? Hast du Fehler gefunden oder etwas vermisst? Dann hinterlasse einfach einen Kommentar <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.normansblog.de/css-beginner-tutorial-3/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Outlook 07 &#8211; Alptraum</title>
		<link>http://www.normansblog.de/outlook-07-nightmare/</link>
		<comments>http://www.normansblog.de/outlook-07-nightmare/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 18:49:52 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[E-Mail]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=393</guid>
		<description><![CDATA[ok ok ok.. was zum geier hat sich microsoft bitte dabei gedacht, als sie der neuen version von outlook (2007) den IE als rendering-engine weggenommen und durch die von word (!) ersetzt haben?! &#8220;und?&#8221; werden jetzt vllt einige denken.. ich kann euch sagen, was das zu bedeuten hat. die html/css rendering-engine von word kann NICHTS! [...]]]></description>
			<content:encoded><![CDATA[<p>ok ok ok..</p>
<div id="attachment_394" class="wp-caption alignright" style="width: 120px"><a href="http://www.normansblog.de/outlook-07-nightmare"><img src="http://www.normansblog.de/wp-content/uploads/2009/02/outlook_2007.jpg" alt="F*** YOU!" title="outlook_2007" width="100" height="94" class="size-full wp-image-394" /></a><p class="wp-caption-text">F*** YOU!</p></div>
<p>was zum geier hat sich microsoft bitte dabei gedacht, als sie der neuen version von outlook (2007) den IE als rendering-engine weggenommen und durch die von word (!) ersetzt haben?!</p>
<p>&#8220;und?&#8221; werden jetzt vllt einige denken.. ich kann euch sagen, was das zu bedeuten hat. die html/css rendering-engine von word kann NICHTS! ein beispiel: wir wollen einen html-newsletter verschicken und positionieren ein paar divs hier und da und geben denen ein hintergrundbild und vllt auch ne feste höhe und breite.. klingt nicht sehr aufregend aber nichts davon kann das NEUE outlook.</p>
<p><span id="more-393"></span></p>
<p> im ernst.. das ist ein alptraum. ab jetzt müssen designer wieder zum alten table-layout greifen und hoffen, dass man mit altertümlichen html-tags zumindest annähernd ähnliche resultate hervorbringen kann. das wirft uns geschätzte 5 jahre zurück..</p>
<p>hier mal <a href="http://www.campaignmonitor.com/blog/post/2533/a-guide-to-css-support-in-emai-2/">eine übersicht</a>, was welcher email-dienst unterstützt.</p>
<p>..ich kanns immer noch nich fassen.. warum macht microsoft sowas? erst IE6 und jetzt das, als ob sie daraus nichts gerlernt hätten.</p>
<p>ich kann nur hoffen, dass die meisten noch das alte outlook 2003 benutzen und nicht umgestiegen sind oder aber gleich zu <a href="http://www.mozilla-europe.org/de/products/thunderbird/">thunderbird</a> greifen, was als einziges ALLES unterstützt und die beste performance abliefert. trotzdem, das problem für designer bleibt.. und wieder müssen sich alle nach dem monopolisten richten..</p>
<p>bis die tage</p>
<p>PS: als grund nannte MS wohl, dass somit dem benutzer der umstieg von word zu outlook einfacher gemacht wird.. blödsinn.. niemand erstellt html emails in word und wenn doch kommt der/die sowieso in die hölle!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.normansblog.de/outlook-07-nightmare/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CSS Einsteiger Tutorial #2</title>
		<link>http://www.normansblog.de/css-beginner-tutorial-2/</link>
		<comments>http://www.normansblog.de/css-beginner-tutorial-2/#comments</comments>
		<pubDate>Sat, 31 Jan 2009 02:19:08 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Anfänger]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=344</guid>
		<description><![CDATA[CSS Einsteiger Tutorial #2 Herzlich willkommen zum zweiten Teil des CSS Einsteiger Tutorials. Es wird empfohlen folgende Teile des Tutorials vorher gelesen zu haben: Teil #1 (XHTML+CSS, Syntax) In diesem Teil werden wir noch mehr Möglichkeiten zum Ansprechen von HTML Elementen kennen lernen. Das kleine Layout muss bis Teil3 warten, da Teil 2 etwas größer [...]]]></description>
			<content:encoded><![CDATA[<h3>CSS Einsteiger Tutorial #2</h3>
<p><a href="http://www.normansblog.de/css-beginner-tutorial-2"><img src="http://www.normansblog.de/wp-content/uploads/2009/01/css_part2.jpg" alt="css_part2" title="css_part2" width="100" height="98" class="alignright size-full wp-image-362" /></a>Herzlich willkommen zum zweiten Teil des CSS Einsteiger Tutorials. Es wird empfohlen folgende Teile des Tutorials vorher gelesen zu haben:</p>
<ol>
<li><a href="http://www.normansblog.de/css-beginner-tutorial-1/">Teil #1 (XHTML+CSS, Syntax)</a></li>
</ol>
<p>In diesem Teil werden wir noch mehr Möglichkeiten zum Ansprechen von HTML Elementen kennen lernen. Das kleine Layout muss bis Teil3 warten, da Teil 2 etwas größer als geplant geworden ist. <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><span id="more-344"></span></p>
<p>Bist du wieder mit dabei?</p>
<blockquote><p>logisch *Kippe ausmach* *anschnall*</p></blockquote>
<p>Gut, dann können wir ja anfangen..</p>
<h3>Syntax (Weiterführung)</h3>
<h4>Kommentare</h4>
<p>In CSS ist es möglich und auch sinnvoll Kommentare zu setzen. Ähnlich wie in C/C++ werden sie folgendermaßen gekennzeichnet:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">/* Kommentar */</span></pre></td></tr></table></div>

<p>Solche Kommentare können auch über mehrere Zeilen verlaufen:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">/* Kommentar,
der über mehrere
Zeilen verläuft */</span></pre></td></tr></table></div>

<p>Es ist gut Überschriften innerhalb der CSS Datei per Kommentar zu setzen, um so eine gewisse Struktur aufzubauen. Weiter gehts! <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h4>Selektoren</h4>
<p>In Teil 1 haben wir die Grundstruktur von CSS Regeln kennen gelernt, hier nochmal der Aufbau:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="css" style="font-family:monospace;">Selektor <span style="color: #00AA00;">&#123;</span>
	Property-A<span style="color: #00AA00;">:</span> Value-A<span style="color: #00AA00;">;</span>
	Property-B<span style="color: #00AA00;">:</span> Value-B<span style="color: #00AA00;">;</span>
	...
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>In unserem letzten Beispiel war der Selektor ein <code>p</code>-Tag bzw. ein <code>p</code>-Tag mit der Klasse <code>absatz</code>. Es gibt jedoch noch eine ganze Menge anderer Selektoren und Art und Weisen, wie man diese klug einsetzen kann.</p>
<p>Folgende Tabelle gibt einen Überblick über alle möglichen Selektoren (Quelle: <a href="http://de.wikipedia.org/wiki/Cascading_Style_Sheets#Definition_des_Syntaxschemas">Wikipedia</a>)</p>
<table>
<tr>
<th>Muster</th>
<th>Bedeutung</th>
</tr>
<tr>
<td>*</td>
<td>Selektiert jedes Element (&#8220;universal selector&#8221;)</td>
</tr>
<tr>
<td>E</td>
<td>Selektiert jedes Element vom Typ E (jedes <code>E</code>-Tag)</td>
</tr>
<tr>
<td>.c</td>
<td>Selektiert jedes Element der Klasse c (analog [class~='c'])</td>
</tr>
<tr>
<td>#myid</td>
<td>Selektiert das Element mit der ID &#8220;myid&#8221;</td>
</tr>
<tr>
<td>E[foo]</td>
<td>Selektiert jedes Element E, bei dem das „foo“-Attribut gesetzt ist (unabhängig vom Wert)</td>
</tr>
<tr>
<td>E[foo=bar]</td>
<td>Selektiert jedes Element E, bei dem das „foo“-Attribut mit dem Wert bar gesetzt ist</td>
</tr>
<tr>
<td>E[foo^=bar]</td>
<td>Selektiert jedes Element E, bei dem das „foo“-Attribut mit dem Wert bar beginnt</td>
</tr>
<tr>
<td>E[foo$=bar]</td>
<td>Selektiert jedes Element E, bei dem das „foo“-Attribut mit dem Wert bar endet</td>
</tr>
<tr>
<td>E[foo*=bar]</td>
<td>Selektiert jedes Element E, bei dem das „foo“-Attribut den Wert bar enthält</td>
</tr>
<tr>
<td>E.c</td>
<td>Selektiert jedes Element E der Klasse c</td>
</tr>
<tr>
<td>E F</td>
<td>Selektiert jedes Element F, das ein Nachfahre von Element E ist</td>
</tr>
<tr>
<td>E > F</td>
<td>Selektiert jedes Element F, das ein Kind von E ist</td>
</tr>
<tr>
<td>E ~ F</td>
<td>Selektiert jedes Element F, das einen Vorgänger E auf gleicher Ebene hat</td>
</tr>
<tr>
<td>E + F</td>
<td>Selektiert jedes Element F, das einen direkten Vorgänger E auf gleicher Ebene hat</td>
</tr>
</table>
<blockquote class="warning"><p>IE6 unterstützt keine Attribut-Selektoren.<br/>Versuche einfach andere Selektoren zu benutzen (Klassen- oder ID-Selektoren) oder dein HTML entsprechend dahingehend zu ändern.</p></blockquote>
<blockquote><p>boar.. das sind jetzt aber ganz schön viele, muss ich die alle auswendig wissen?!</p></blockquote>
<p>Nein. Es kann zwar nicht schaden sie alle zu wissen, in der Regel reicht es aber gehört zu haben, dass es sowas gibt und dann an entsprechender Stelle nachzuschlagen. Du wirst schnell merken, welche in der Praxis wichtig und welche weniger wichtig sind.</p>
<p>In unserem Beispielabsatz aus Teil 1 haben wir den Selektor <code>p.absatz</code> benutzt, der sagt, dass alle <code>p</code>-Tags der Klasse <code>absatz</code> von den darauffolgenden Properties betroffen sind. Was ist aber, wenn wir auch andere Elemente wie <code>div</code> oder <code>blockquote</code> so aussehen lassen wollen?</p>
<p>Dieses Problem lösen wir einfach, indem wir das <code>p</code> in unserem Selektor weglassen. Dann bleibt nur <code>.absatz</code> übrig. Genau dieser Ausdruck sagt, &#8220;nimm alle Elemente der Klasse <code>absatz</code> und style sie wie folgt..&#8221;. Es werden also alle Elemente, egal ob <code>p</code>, <code>div</code> oder <code>blockquote</code> gestylt, solange sie die entsprechende Klasse besitzen.</p>
<p>Dasselbe gilt natürlich auch für IDs, welche übrigens mit einem Nummernkreuz/Raute <code>#</code> statt einem Punkt angesprochen werden.</p>
<blockquote><p>Was ist denn überhaupt der Unterschied zwischen <code>class</code> und <code>id</code>?</p></blockquote>
<p>Das ist ganz einfach: Elemente mit einer Klasse können beliebig oft innerhalb des HTML Dokuments auftauchen.. zum Beispiel  könnte ein Text aus mehreren Absätzen bestehen, alle <code>p</code>-Tags könnten dann die Klasse <code>absatz</code> haben. Wenn wir jedoch IDs vergeben, so dürfen diese nur einmalig innerhalb des Dokuments sein. Zum Beispiel wird es auf einer Seite nur genau einen Header geben, deswegen können wir diesem eine ID geben.</p>
<blockquote class="idea"><p>Merke:<br/>id = einmalig<br/>class = beliebig oft</p></blockquote>
<blockquote><p>OK, merk ich mir.. sonst noch was?</p></blockquote>
<p>Ja, es kann vorkommen, dass wir einem Element zwei Klassen geben wollen oder müssen. Sowas ist der Fall, wenn wir zum Beispiel mehrere Absätze haben, diese aber unterschiedlich gestylt werden sollen:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;important&quot;</span>&gt;</span>Ich bin ein wichtiger Text und deshalb fett geschrieben<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;warning &quot;</span>&gt;</span>Ich bin eine Warnung, deshalb rot geschrieben.<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;warning important&quot;</span>&gt;</span>Ich bin eine wichtige Warnung und deshalb rot und fett geschrieben.<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span></pre></td></tr></table></div>

<p>der dazugehörige CSS Code:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.important</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">font-weight</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">bold</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #6666ff;">.warning</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#FF0000</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Wir sehen, dass der letzte Absatz zwei Klassen bekommen hat, indem wir einfach zwei Bezeichnungen innerhalb des <code>class</code>-Attributes angegeben haben. Damit bekommt er auch die Eigenschaften beider Klassen verliehen.</p>
<p>Wollen wir jetzt aber &#8211; aus welchem Grund auch immer &#8211; den dritten Absatz noch weitere besondere Eigenschaften geben, müssen wir unseren CSS Code noch erweitern und folgendes hinzufügen:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.important</span><span style="color: #6666ff;">.warning</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #808080; font-style: italic;">/* jetzt folgen die besonderen Eigenschaften */</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Du siehst, durch einfaches Aneinandersetzen zweier Klassennamen sprechen wir ausschließlich Elemente an, die beide Klassen besitzen. Die Reihenfolge spielt hierbei keine Rolle (<code>.warning.important</code> wäre also auch möglich).</p>
<h4>Pseudo-Klassen und -Elemente</h4>
<p>Folgende Tabelle zeigt alle Pseudo-Klassen auf:</p>
<table>
<tr>
<th>Muster</th>
<th>Bedeutung</th>
</tr>
<tr>
<td>:link</td>
<td>Beschreibt, wie unbesuchte Links aussehen</td>
</tr>
<tr>
<td>:visited</td>
<td>Beschreibt, wie bereits besuchte Links aussehen</td>
</tr>
<tr>
<td>:hover</td>
<td>Beschreibt, wie Links aussehen, wenn man mit der Maus drüber fährt</td>
</tr>
<tr>
<td>:active</td>
<td>Beschreibt, wie Links aussehen, wenn man sie gedrückt hält</td>
</tr>
<tr>
<td>:first-child</td>
<td>Selektiert das erste Kindelement des davorstehenden Elements</td>
</tr>
</table>
<blockquote class="warning"><p>IE6 unterstützt Pseudo-Klassen nur für <code>a</code>-Tags. Im IE7 treten keinerlei Probleme auf und Pseudo-Klassen sind für alle Tags nutzbar.</p></blockquote>
<p>Pseudo-Klassen stehen immer direkt hinter dem Selektor:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">a<span style="color: #3333ff;">:link </span><span style="color: #00AA00;">&#123;</span> <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#0000FF</span><span style="color: #00AA00;">;</span> <span style="color: #00AA00;">&#125;</span>
a<span style="color: #3333ff;">:visited </span><span style="color: #00AA00;">&#123;</span> <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#00FF00</span><span style="color: #00AA00;">;</span> <span style="color: #00AA00;">&#125;</span>
a<span style="color: #3333ff;">:hover </span><span style="color: #00AA00;">&#123;</span> <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#FF0000</span><span style="color: #00AA00;">;</span> <span style="color: #00AA00;">&#125;</span>
a<span style="color: #3333ff;">:active </span><span style="color: #00AA00;">&#123;</span> <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#FF0000</span><span style="color: #00AA00;">;</span> <span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Dies bedeutet, dass unbesuchte Links Blau, besuchte Rot und Links, über denen die Maus &#8220;schwebt&#8221; bzw. gerade aktiv sind, Grün dargestellt werden. Die Reihenfolge dieser vier Pseudo-Klassen ist übrigens empfehlenswert (LVHA-Regel).</p>
<p>Und nun die Pseudo-Elemente:</p>
<table>
<tr>
<th>Muster</th>
<th>Bedeutung</th>
</tr>
<tr>
<td>:first-line</td>
<td>Selektiert die erste Zeile (meistens bei Absätzen genutzt)</td>
</tr>
<tr>
<td>:first-letter</td>
<td>Selektiert den ersten Buchstaben (Absätze oder <code>span</code>s)</td>
</tr>
<tr>
<td>:before</td>
<td>Fügt vor dem Element etwas hinzu</td>
</tr>
<tr>
<td>:after</td>
<td>Fügt nach dem Element etwas hinzu</td>
</tr>
</table>
<p>Pseudo-Elemente werden recht selten genutzt, können aber hier und da die Arbeit erleichtern. Nehmen wir an, wir möchten den ersten Buchstabe eines Kapitels (<a href="http://de.wikipedia.org/wiki/Initiale">Initiale</a>) besonders hervorheben. Anstatt den ersten Buchstabe in ein extra <code>span</code>-Tag zu schreiben, lassen wir das doch CSS für uns machen:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">p<span style="color: #6666ff;">.lead</span><span style="color: #3333ff;">:firstletter </span><span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#FF0000</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span> <span style="color: #933;">20px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Damit wird der erste Buchstabe in 20px Schriftgröße und in der Farbe Rot dargestellt.</p>
<p>Okay damit hätten wir die Selektoren abgeschlossen, es kann nun aber vorkommen, dass beim Zusammenführen von mehreren Style Sheets Selektoren doppelt auftreten, aber unterschiedliche Properties haben:</p>
<p>1. CSS Datei</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">p<span style="color: #6666ff;">.lead</span> <span style="color: #00AA00;">&#123;</span> <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#000000</span><span style="color: #00AA00;">;</span> <span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>2. CSS Datei</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">p<span style="color: #6666ff;">.lead</span> <span style="color: #00AA00;">&#123;</span> <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#444444</span><span style="color: #00AA00;">;</span> <span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Wird der Text nun schwarz (oben) oder grau (unten) dargestellt? Je nachdem welche Datei als letztes eingebunden wurde. In diesem Fall soll das mal die zweite Datei sein, der Text würde also grau werden. Wollen wir aber, dass der Text dennoch schwarz sein soll, müssen wir ein <code>!important</code> zwischen Value und Semikolon schreiben:</p>
<p>modifizierte 1. CSS Datei</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">p<span style="color: #6666ff;">.lead</span> <span style="color: #00AA00;">&#123;</span> <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#000000</span> !important<span style="color: #00AA00;">;</span> <span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<blockquote><p>Könnte mal nützlich sein!</p></blockquote>
<h4>Hierarchische Verschachtelung</h4>
<p>Wir wissen ja, dass unsere HTML Datei eine Struktur hat. Das <code>html</code>-Tag hat die Kind-Elemente <code>head</code> und <code>body</code>. <code>body</code> hat wiederum viele andere Kind-Elemente wie <code>div</code>s, <code>p</code>s oder Überschriften (<code>h1-h6</code>). Sogar Elemente wie <code>p</code> können noch Kind-Elemente haben (z.B. <code>span</code>) &#8211; eine Hierarchie entsteht.</p>
<p>Nehmen wir an, wir haben einen <code>div</code> mit der ID &#8220;content&#8221; und dort sind zwei <code>p</code>-Tags enthalten. Einer davon ist die Einleitung (<code>class="lead"</code>) und soll deshalb fett dargestellt werden, der andere ist ein normaler Absatz:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;content&quot;</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;lead&quot;</span>&gt;</span>Ich bin die Einleitung und deshalb fett. *freu*<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>Ich bin nur ein stinknormaler Absatz. *sad*<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre></td></tr></table></div>

<p>Wollen wir jetzt diesen Einleitungsabsatz innerhalb des Inhalts-Divs ansprechen, gilt:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">#<span style="color: #000000; font-weight: bold;">content</span> p<span style="color: #6666ff;">.lead</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">font-weight</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">bold</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Zwischen Eltern- und Kindelement steht also nur ein Leerzeichen.</p>
<p>Und eine letzte Anmerkung zu dem Thema: <strong>Gruppieren von Selektoren</strong>. Es ist möglich und äußerst praktisch Elemente, die gleich aussehen sollen zu einer Gruppe zusammen zu fassen. Dazu werden die Elemente bzw. die einzelnen Selektoren mit einem Komma verkettet. Als Beispiel nehmen wir den Einleitungsabsatz von eben und die Warnung von weiter oben, beide sollen fett dargestellt werden:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">#<span style="color: #000000; font-weight: bold;">content</span> p<span style="color: #6666ff;">.lead</span><span style="color: #00AA00;">,</span> <span style="color: #6666ff;">.important</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">font-weight</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">bold</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Ziemlich simple Angelegenheit, oder? <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<blockquote><p>Joa.. glaub schon, was kommt als nächstes?</p></blockquote>
<p>Leider schafft es das Layout nicht mehr in diesen Teil des Tutorials aber dafür folgt schon mal ein kleiner Ausblick, indem wir einen Blick auf das Box-Model werfen.</p>
<h3>Box-Model</h3>
<p>Alle Elemente werden unter CSS als Box aufgefasst. Also als etwas, dass befüllt werden kann (mit Text z.B.). Eine Box kann eine Breite und Höhe haben, die sich in der Regel nach der Größe des Inhalts und der Größe des Elternelements richtet. Dazu kann noch kommen: Padding, Border und Margin.</p>
<p>Um das zu verdeutlichen, hier mal eine Grafik:</p>
<div id="attachment_361" class="wp-caption aligncenter" style="width: 500px"><img src="http://www.normansblog.de/wp-content/uploads/2009/01/w3c_box_model.jpg" alt="Das offizielle W3C Boxmodel mit Padding, Border und Margin." title="w3c_box_model" width="480" height="371" class="size-full wp-image-361" /><p class="wp-caption-text">Das offizielle W3C Boxmodel mit Padding, Border und Margin.</p></div>
<p>Diese Eigenschaften kann also jedes Element bekommen, einige haben schon standardmäßig welche. Überschriften haben z.B. ein Margin, damit sie etwas Abstand zu umliegenden Elementen haben und somit besser hervorstechen.</p>
<p><code>margin</code> und <code>padding</code> können <strong>vier</strong> Values haben, jeder dieser Values steht für eine Seite (top right bottom left (im Uhrzeigersinn, mit top gehts immer los)). Die anderen vier Properties können immer nur ein Value besitzen.</p>
<p>Ein Beispiel: Wir haben ein <code>span</code>-Tag, welches 10 Pixel Padding an allen Seiten bekommen soll.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">span</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;padding&quot;</span>&gt;</span>Ich bin ein span mit Padding.<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;</span></pre></td></tr></table></div>

<p>CSS:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">span<span style="color: #6666ff;">.padding</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">padding-top</span><span style="color: #00AA00;">:</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">padding-right</span><span style="color: #00AA00;">:</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">padding-bottom</span><span style="color: #00AA00;">:</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">padding-left</span><span style="color: #00AA00;">:</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Ich habe hier die einzelnen Properties für jede Seite benutzt und 10px als Value übergeben. Es geht aber noch kürzer:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">span<span style="color: #6666ff;">.padding</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #933;">10px</span> <span style="color: #933;">10px</span> <span style="color: #933;">10px</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Diese Form ist äquivalent zu der darüber. Aber es geht sogar <strong>noch kürzer</strong>!</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">span<span style="color: #6666ff;">.padding</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<blockquote><p>WTF..?!</p></blockquote>
<p>Durch das Weglassen der drei anderen Values, nimmt der Browser einfach an, man möchte auf allen Seiten dasselbe Padding haben. Recht hat er und wir haben einen schlanken Code.</p>
<p>Nur.. was machen wir, wenn wir nur oben und unten Padding haben möchten und links und rechts lieber keinen, weil das vielleicht doof aussieht? Dann nehmen wir zwei Values, das erste regelt die Werte für oben und unten, das andere für die rechts und links:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">span<span style="color: #6666ff;">.padding</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #933;">10px</span> <span style="color: #933;">0px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<blockquote><p>Und wann brauchen wir 3 Values?</p></blockquote>
<p>Drei Values brauchen wir, wenn wir auf zwei Seiten, die sich gegenüber liegen, einen gleichen Wert haben wollen und auf den andern beiden Seiten unterschiedliche Werte brauchen:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">span<span style="color: #6666ff;">.padding</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #933;">10px</span> <span style="color: #933;">0px</span> <span style="color: #933;">5px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Bedeutet:<br/><code>padding-top</code>: 10px<br/><code>padding-right</code>: 0px<br/><code>padding-bottom</code>: 5px<br/><code>padding-left</code> ist leer, bekommt aber einfach den Wert von <code>padding-right</code> (also auch 0 Pixel)</p>
<p>Puh.. ist mehr geworden als gedacht, deswegen gibts das Layoutbeispiel erst im nächsten Teil, bis dahin viel Spaß mit den Selektoren! Folgende Teile stehen zum Weiterlesen bereit:</p>
<ol>
<li><a href="http://www.normansblog.de/css-beginner-tutorial-1/">Teil #1 (XHTML+CSS, Syntax)</a></li>
<li>Teil #2 (Syntax, Selektoren, Box-Model)</li>
<li><a href="http://www.normansblog.de/css-beginner-tutorial-3/">Teil #3 (Zweispaltiges Layout, Float)</a></li>
</ol>
<blockquote class="idea"><p>War dieses Tutorial hilfreich? Hast du Fehler gefunden oder etwas vermisst? Dann hinterlasse einfach einen Kommentar <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.normansblog.de/css-beginner-tutorial-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>CSS Einsteiger Tutorial #1</title>
		<link>http://www.normansblog.de/css-beginner-tutorial-1/</link>
		<comments>http://www.normansblog.de/css-beginner-tutorial-1/#comments</comments>
		<pubDate>Fri, 23 Jan 2009 23:06:14 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Anfänger]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=276</guid>
		<description><![CDATA[CSS Einsteiger Tutorial #1 Herzlich willkommen zum ersten Teil meines großen CSS Einsteiger Tutorials. Ziel des Tutorials soll sein: Ich will absoluten Neulingen, die noch nie etwas von CSS gehört haben, die Grundlagen und den sauberen Gebrauch von CSS näher bringen. Jeder Teil wird dabei etwas anspruchsvoller sein und es wird tiefer in die Materie [...]]]></description>
			<content:encoded><![CDATA[<h3>CSS Einsteiger Tutorial #1</h3>
<p><a href="http://www.normansblog.de/css-beginner-tutorial-1"><img src="http://www.normansblog.de/wp-content/uploads/2009/01/css_part1.jpg" alt="css_part1" title="css_part1" width="100" height="98" class="alignright size-full wp-image-277" /></a>Herzlich willkommen zum ersten Teil meines großen CSS Einsteiger Tutorials.</p>
<p><strong>Ziel des Tutorials soll sein:</strong></p>
<p>Ich will absoluten Neulingen, die noch nie etwas von CSS gehört haben, die Grundlagen und den sauberen Gebrauch von CSS näher bringen. Jeder Teil wird dabei etwas anspruchsvoller sein und es wird tiefer in die Materie vorgedrungen. Die Teile bauen dabei sukzessiv aufeinander auf. Profis werden sich allerdings kaum etwas Neues aus diesem Tutorial nehmen können.</p>
<p><span id="more-276"></span></p>
<p><strong>Voraussetzungen:</strong></p>
<ol>
<li>(sehr) gute (X)HTML-Kenntnisse (alle gängigen Tags, W3C-konform)</li>
<li>Nerven aus Stahl (Stichwort IE6-Optimierung)</li>
<li>Fähigkeit zu Lesen &#8211; auch die englische Sprache &#8211; und zu Denken</li>
<li>Hang zum Perfektionismus</li>
</ol>
<p>Du erfüllst alle Punkte? Dann können wir ja anfangen.. (wenn nicht, ist auch nicht so schlimm, man wächst schließlich mit jeder Herausforderung <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</p>
<blockquote><p>CSS.. kann man das essen?</p></blockquote>
<p>Nein, essen kann man es nicht. CSS steht für <strong>C</strong>ascading <strong>S</strong>tyle <strong>S</strong>heets und ist ein vom <a href="http://www.w3.org">W3C</a> erschaffener und herausgebrachter Standard zur Darstellung von (X)HTML Tags.</p>
<blockquote><p>Okay.. und wie kann ich das nun benutzen?</p></blockquote>
<p>Das lustige ist, dass jede Seite bereits gestylt dargestellt wird, da der Browser vorgibt, wie welches Tag gerendert wird. Leider hat jeder Browser andere Default Styles und die Seite sieht dadurch von Browser zu Browser unterschiedlich aus. Außerdem will man ja etwas Besonderes kreieren oder umsetzen und das soll in jedem Browser gleich aussehen.</p>
<p>CSS kann auf vier unterschiedliche Art und Weisen auf eine HTML Datei angewendet werden:</p>
<ol>
<li>Browser Default</li>
<li>externes Stylesheet</li>
<li>internes Stylesheet</li>
<li>inline Style</li>
</ol>
<p>Die oberste Variante hat die geringste, die unterste die höhste Priorität. Sollte es vorkommen, dass ein HTML-Element von zwei oder mehr solcher Varianten beeinflusst wird, so &#8220;gewinnt&#8221; stehts die mit der höchsten Priorität.</p>
<h3>Varianten im Detail</h3>
<p>Da Browser Default nicht verändert werden kann, brauchen wir das auch nicht zu berücksichtigen.</p>
<p><strong>externes Stylesheet:</strong></p>
<p>Bei dieser Variante wird eine normale Text-Datei (mit Texteditor wie Notepad, Wordpad oder <a href="http://notepad-plus.sourceforge.net">Notepad++</a> öffnen) mit der Endung <code>.css</code> erstellt und in der <code>.html</code> Datei referenziert. Dabei wird folgender Code innerhalb des <code>head</code>-Tags geschrieben.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">link</span> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;stylesheet&quot;</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;url_zum_stylesheet/stylesheet.css&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/css&quot;</span> <span style="color: #000066;">media</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;screen&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span></pre></td></tr></table></div>

<p>Damit weiß der Browser nun, dass er sich unter &#8220;url_zum_stylesheet&#8221; die Datei <code>stylesheet.css</code> suchen muss und dass diese Datei ihm sagt, was er zu tun hat.</p>
<p><strong>internes Stylesheet:</strong></p>
<p>Intere Stylesheets werden innerhalb des <code>head</code>-Tags geschrieben. Man benutzt das <code>style</code>-Tag und schriebt dort den CSS Code hinein. Hierbei muss keine <code>.css</code> Datei angelegt werden.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">style</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/css&quot;</span>&gt;</span>
	...
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">style</span>&gt;</span></pre></td></tr></table></div>

<p><strong>inline Style:</strong></p>
<p>Inline Styles werden direkt als Attribut eines HTML-Tags geschrieben.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;...&quot;</span>&gt;</span>
	Ich bin ein gestylter Absatz.
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span></pre></td></tr></table></div>

<blockquote><p>Alles klar und welche nehm ich jetzt, was ist am besten?</p></blockquote>
<p>Diese Frage ist einfach zu beantworten. Es ist <strong>immer</strong> zu empfehlen ein <strong>externes Stylesheet</strong> zu benutzen. Es hält die HTML Datei klein und beschleunigt somit das Herunterladen der Seite. Außerdem ist es übersichtlicher und sauberer.</p>
<p>Die Variante des internen Stylesheets bietet sich bei kleinen, sehr kompakten Projekten an, ein Newsletter ist wohl das beste Beispiel.</p>
<p>Inline Style ist nur in Notfällen zu benutzen! Am besten gleich wieder vergessen, dass es das gibt. (Ich weiß, die Versuchung ist groß <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  )</p>
<h3>Syntax</h3>
<blockquote><p>Okay dann nehme ich halt die externe Variante.. .css Datei ist erstellt und Eintrag im Header gemacht, was nun?</p></blockquote>
<p>Gratulation, jetzt kannst du anfangen deinen ersten richtigen CSS Code zu schreiben <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ! Anhand eines Beispiels soll gezeigt werden, wie man einen Paragraphen stylt. Der HTML Code lautet wie folgt:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;absatz&quot;</span>&gt;</span>
	Ich bin ein gestylter Absatz. Ich bin ein gestylter Absatz. Ich bin ein gestylter Absatz. Ich bin ein gestylter Absatz. Ich bin ein gestylter Absatz. Ich bin ein gestylter Absatz. Ich bin ein gestylter Absatz. Ich bin ein gestylter Absatz. Ich bin ein gestylter Absatz. Ich bin ein gestylter Absatz.
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span></pre></td></tr></table></div>

<p><strong>Beachte:</strong> der Absatz hat durch das Attribut <code>class</code> eine CSS-Klasse bekommen. Das ist ähnlich einem Namen, jeder Absatz mit dieser Klasse wird nun so dargestellt, wie wir es in der CSS Datei festlegen. Einfach folgenden Code in deine CSS Datei kopieren.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">p<span style="color: #6666ff;">.absatz</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#CCCCCC</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span> <span style="color: #933;">2px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#000000</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">font-family</span><span style="color: #00AA00;">:</span> Georgia<span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span> <span style="color: #933;">16px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#000000</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #933;">20px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #933;">10px</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">text-align</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">justify</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Wenn wir jetzt die HTML-Seite in unserem Browser öffnen, sollte der Absatz nun so aussehen:</p>
<p style="background-color: #CCCCCC;border: 2px solid #000000;font-family: Georgia;font-size: 16px;color: #000000;padding: 20px;margin: 10px 0;text-align: justify;">
	Ich bin ein gestylter Absatz. Ich bin ein gestylter Absatz. Ich bin ein gestylter Absatz. Ich bin ein gestylter Absatz. Ich bin ein gestylter Absatz. Ich bin ein gestylter Absatz. Ich bin ein gestylter Absatz. Ich bin ein gestylter Absatz. Ich bin ein gestylter Absatz. Ich bin ein gestylter Absatz.
</p>
<blockquote><p>Tut er aber nicht <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p></blockquote>
<p>Sollte sich nichts geändert haben, überprüfe den Pfad zur CSS Datei im Header deiner HTML Datei (der Pfad kann auch relativ gesetzt werden).</p>
<p>Jetzt zur Erläuterung der einzelnen Zeilen des CSS Codes:</p>
<p><code>p.absatz</code> ist ein Sperator, der sorgt dafür, dass alle <code>p</code>-Tags mit der Klasse <code>absatz</code> vom nachfolgenden Code betroffen sind. Der eigentliche Code steht in geschweiften Klammern.</p>
<p><code>background-color: #CCCCCC;</code> gibt dem Hintergrund des Paragraphen eine Farbe; Farbwerte gibt man in der Regel <a href="http://de.wikipedia.org/wiki/Hexadezimalsystem">hexadezimalcodiert</a> an (<code>#000000</code> = schwarz, <code>#FFFFFF</code> = weiß)</p>
<p><code>border: 2px solid #000000;</code> gibt dem Paragraphen einen Rahmen, der 2 Pixel dick ist aus aus einer durchgezogenen Linie in der Farbe Schwarz besteht</p>
<p><code>font-family: Georgia;</code> legt die Schriftfamilie fest, hier Georgia</p>
<p><code>font-size: 16px;</code> legt die Schriftgröße fest, hier 16 Pixel</p>
<p><code>color: #000000;</code> legt die Schriftfarbe fest, hier Schwarz</p>
<p><code>padding: 20px;</code> zwischen Inhalt und Rahmen wird zusätzlicher Platz reserviert, sogenanntes &#8220;Padding&#8221;</p>
<p><code>margin: 10px 0;</code> gibt dem Inhalt einen Außenabstand nach oben und nach unten (10 Pixel), links und rechts bleibt der Abstand aber auf 0 Pixel</p>
<p><code>text-align: justify;</code> kontrolliert den Textfluss innerhalb des Absatzes, justify bedeutet Blocksatz</p>
<p>Nach jedem &#8220;Befehl&#8221;, den sogenannten Properties, folgt ein Semikolon. Die schließende Klammer nicht vergessen!</p>
<blockquote><p>Aha soweit so gut, was gibt es denn noch so?</p></blockquote>
<p>Eine Liste mit allen Properties findet man unter <a href="http://www.w3schools.com/cssref/default.asp">www.w3schools.com</a>, dort sind auch zu allen Properties Beispiele und wichtige Hinweise allerdings nur in Englisch.</p>
<p>Okay für heute soll es das gewesen sein. Probiert euch am besten an dem Absatz noch etwas.. wie wäre es mit einer anderen Schriftart oder einer anderen Hintergrundfarbe? Spielt einfach etwas mit den Werten und ihr werdet merken, wie schnell und einfach CSS zu erlernen ist.</p>
<p>In Teil 2 gehts mit noch mehr Syntax weiter und anhand eines kleinen Layouts werden wir das Positionieren von <code>div</code>s lernen. Folgende Teile stehen zum Weiterlesen bereit:</p>
<ol>
<li>Teil #1 (XHTML+CSS, Syntax)</li>
<li><a href="http://www.normansblog.de/css-beginner-tutorial-2/">Teil #2 (Syntax, Selektoren, Box-Model)</a></li>
<li><a href="http://www.normansblog.de/css-beginner-tutorial-3/">Teil #3 (Zweispaltiges Layout, Float)</a></li>
</ol>
<blockquote class="idea"><p>War dieses Tutorial hilfreich? Hast du Fehler gefunden oder etwas vermisst? Dann hinterlasse einfach einen Kommentar <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.normansblog.de/css-beginner-tutorial-1/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Überschrift mit Schatten</title>
		<link>http://www.normansblog.de/shadedheadlines/</link>
		<comments>http://www.normansblog.de/shadedheadlines/#comments</comments>
		<pubDate>Sat, 17 Jan 2009 14:01:18 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Theme]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=148</guid>
		<description><![CDATA[Dieses Tutorial befasst sich mit der Frage: &#8220;Wie unterlege ich meine Überschriften mit einem Schatten?&#8221; Ohne dabei die CSS3 property &#8216;text-shadow&#8217; zu benutzen, die bisher nur von einigen wenigen Browsern unterstützt wird. Was ist also der einfachste Weg, um unser Ziel zu erreichen? Na? Genau, wir legen hinter unserer eigentlichen Überschrift nochmal den gleichen Text, [...]]]></description>
			<content:encoded><![CDATA[<p>Dieses Tutorial befasst sich mit der Frage: &#8220;Wie unterlege ich meine Überschriften mit einem Schatten?&#8221; Ohne dabei die CSS3 property &#8216;text-shadow&#8217; zu benutzen, die bisher nur von einigen wenigen Browsern unterstützt wird.</p>
<div id="attachment_149" class="wp-caption alignright" style="width: 294px"><img class="size-full wp-image-149" title="headlinewithshadow" src="http://www.normansblog.de/wp-content/uploads/2009/01/headlinewithshadow.jpg" alt="Überschrift mit Schatten" width="274" height="79" /><p class="wp-caption-text">Überschrift mit Schatten</p></div>
<p>Was ist also der einfachste Weg, um unser Ziel zu erreichen? Na? Genau, wir legen hinter unserer eigentlichen Überschrift nochmal den gleichen Text, nur diesmal mit einer anderen, logischerweise dunklen, Farbe.</p>
<p><span id="more-148"></span></p>
<h3>1. Änderung am Theme</h3>
<p>Als erstes müssen wir den zusätzlichen Text in unser Theme einfügen. Die Änderung bezieht sich hier auf die index.php, muss aber in allen .php Dateien durchgeführt werden, wo der Titel einen Schatten bekommen soll.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;">...
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;post&quot;</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;post-&lt;?php the_ID(); ?&gt;</span></span>&quot;&gt;
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h2</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;shadow&quot;</span>&gt;&lt;?php the_title<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>; ?&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h2</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&lt;?php the_permalink() ?&gt;</span></span>&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link to <span style="color: #009900;">&lt;?php the_title_attribute<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>; ?&gt;</span>&quot;&gt;<span style="color: #009900;">&lt;?php the_title<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>; ?&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>
...</pre></td></tr></table></div>

<p>In Zeile 3 sieht man den zusätzlichen Titel. Ganz wichtig ist, dass wir diesem neuen Titel eine CSS-Klasse geben (hier: shadow).</p>
<p>Wenn wir uns das ganze jetzt ansehen würden, hätten wir folgendes vor Augen:</p>
<p><img class="aligncenter size-full wp-image-150" title="headlinewithshadow2" src="http://www.normansblog.de/wp-content/uploads/2009/01/headlinewithshadow2.jpg" alt="headlinewithshadow2" width="274" height="120" /></p>
<h3>2. CSS anpassen</h3>
<p>Und hier kommt unsere CSS-Klasse zum Einsatz. In unserer style.css müssen wir nun lediglich ein paar Änderungen vornehmen, damit der eben eingefügte Titel dunkel und hinter dem eigentlich Titel dargestellt wird.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">h2 <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">relative</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
h2<span style="color: #6666ff;">.shadow</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#000000</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #933;">1px</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">1px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">absolute</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Das <code>h2</code>-tag bekommt die zusätzliche Eigenschaft <code>position: relative;</code> und <code>h2.shadow</code> wird schwarz und durch <code>margin</code> und <code>position</code> leicht versetzt hinter <code>h2</code> dargestellt.</p>
<p>Mehr gibt es dazu nicht zu sagen, viel Spaß mit euren neu schattierten Überschriften <img src='http://www.normansblog.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.normansblog.de/shadedheadlines/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
