<?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; Tutorial</title>
	<atom:link href="http://www.normansblog.de/category/web/tutorial/feed/" rel="self" type="application/rss+xml" />
	<link>https://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>iX-Artikel: Formulare mit HTML5 &amp; CSS3</title>
		<link>https://www.normansblog.de/ix-artikel-formulare-mit-html5-und-css3/</link>
		<comments>https://www.normansblog.de/ix-artikel-formulare-mit-html5-und-css3/#comments</comments>
		<pubDate>Tue, 11 Sep 2012 17:33:04 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[HTML5]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=4554</guid>
		<description><![CDATA[Seid gegrüßt! Mit Hilfe meines Arbeitgebers das MedienKombinat ist es mir möglich gewesen, einen Artikel in der Septemberausgabe der Fachzeitschrift iX zu veröffentlichen. Im Artikel geht es um HTML5 Fomulare, deren Styling mit CSS3 und den Vorteilen für mobile Endgeräte. Wer Interesse hat, kann mittlerweile alles online nachlesen. Ich bedanke mich bei allen Beteiligten und [...]]]></description>
			<content:encoded><![CDATA[<p>Seid gegrüßt!</p>
<div id="attachment_4557" class="wp-caption aligncenter" style="width: 520px"><a href="http://www.heise.de/ix/artikel/Auswahlscheibe-1667689.html"><img src="http://www.normansblog.de/wp-content/uploads/2012/09/iX_Artikel.jpg" alt="Artikel in der iX 09/2012" title="Artikel in der iX 09/2012" width="500" height="234" class="size-full wp-image-4557" /></a><p class="wp-caption-text">Bessere Formulare dank HTML5 und CSS3 - iX 09/2012</p></div>
<p>Mit Hilfe meines Arbeitgebers <a href="http://www.das-medienkombinat.de/">das MedienKombinat</a> ist es mir möglich gewesen, einen Artikel in der Septemberausgabe der Fachzeitschrift <a href="http://www.heise.de/ix/">iX</a> zu veröffentlichen. Im Artikel geht es um HTML5 Fomulare, deren Styling mit CSS3 und den Vorteilen für mobile Endgeräte. Wer Interesse hat, kann mittlerweile alles <a href="http://www.heise.de/ix/artikel/Auswahlscheibe-1667689.html">online nachlesen</a>.</p>
<p> Ich bedanke mich bei allen Beteiligten und wünsche euch viel Spaß damit. Wenn es Fragen dazu gibt, könnt ihr die hier oder im Forum der iX stellen. <img src='https://www.normansblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>https://www.normansblog.de/ix-artikel-formulare-mit-html5-und-css3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS3 im Detail: Transitions</title>
		<link>https://www.normansblog.de/css3-im-detail-transitions/</link>
		<comments>https://www.normansblog.de/css3-im-detail-transitions/#comments</comments>
		<pubDate>Tue, 27 Dec 2011 01:02:26 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[CSS3]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=3683</guid>
		<description><![CDATA[Aaaah *rülps* Weihnachten.. Ich weiß ja nicht, wie ihr es mit Weihnachten haltet, aber ich mag es. Die Familie ist da, jeder kriegt Geschenke und es gibt wahnsinnig viel lecker Essen UND DAS DREI TAGE LANG! (Bis auf die Geschenke versteht sich.. obwohl.. wäre auch mal cool eigentlich ) Kommen wir zum eigentlichen Thema des [...]]]></description>
			<content:encoded><![CDATA[<p>Aaaah *rülps* Weihnachten..</p>
<p><a href="http://www.normansblog.de/css3-im-detail-transitions/"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/css3.jpg" alt="" title="css3" width="180" height="120" class="alignright size-full wp-image-1902" /></a>Ich weiß ja nicht, wie ihr es mit Weihnachten haltet, aber ich mag es. Die Familie ist da, jeder kriegt Geschenke und es gibt wahnsinnig viel lecker Essen UND DAS DREI TAGE LANG! (Bis auf die Geschenke versteht sich.. obwohl.. wäre auch mal cool eigentlich <img src='https://www.normansblog.de/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> ) Kommen wir zum eigentlichen Thema des Tages: <strong>CSS Transitions</strong>!</p>
<p><span id="more-3683"></span></p>
<div class="demolink"><a href="http://www.normansblog.de/demos/transition/">Transition Demo</a></div>
<blockquote class="idea"><h3>Browserunterstützung</h3>
<p>Folgende Browser unterstützen diese Technik bereits vollständig:</p>
<p class="center"><a href="http://www.firefox.com"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/logo_firefox_small.png" alt="Firefox" title="Firefox" width="50" height="50" class="alignnone size-full wp-image-1946" /></a> <a href="http://www.apple.com/safari"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/logo_safari_small.png" alt="Safari" title="Safari" width="50" height="50" class="alignnone size-full wp-image-1949" /></a> <a style="opacity:0.3;" href="http://www.opera.com"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/logo_opera_small.png" alt="Opera" title="Opera" width="50" height="50" class="alignnone size-full wp-image-1948" /></a> <a href="http://www.google.com/chrome"><img src="http://www.normansblog.de/wp-content/uploads/2011/04/logo_chrome_new_small.png" alt="Chrome" title="Chrome" width="50" height="50" class="alignnone size-full wp-image-1945" /></a> <a style="opacity:0.3;" href="http://ie.microsoft.com/"><img src="http://www.normansblog.de/wp-content/uploads/2010/11/logo_ie_new_small.png" alt="Internet Explorer" title="Internet Explorer" width="50" height="50" class="alignnone size-full" /></a><br/><small>(Opera unterstützt noch nicht alle Properties, IE erst ab Version 10)</small></p>
</blockquote>
<h3>Animationen bei Mouse-Hover</h3>
<p>Prinzipiell dient Transition dazu eine Änderung am Styling eines Elements zu verlängern. Natürlich kennen wir alle schon die Peusoklasse <code>:hover</code> und auch, dass wir damit Eigenschaften des Normalzustandes überschreiben können. Transition greift genau an diesem Punkt an. Wir können bestimmen, wie lang diese Änderung dauert, welche Eigenschaften davon betroffen sind, ob es eine Pause gibt, bevor die Änderung beginnt und das Muster, in der sie abläuft (dazu wird eine <a href="http://de.wikipedia.org/wiki/B%C3%A9zierkurve">Bézierkurve</a> benutzt). Es entsteht eine kurze <strong>Animation</strong>.</p>
<h3>Syntax</h3>
<p>Die Kurzform lautet <code>transition</code>, danach folgen bis zu vier Werte, die gleichzeitig auch als einzelne Befehle benutzt werden können, ähnlich wie das bei <code>padding</code> oder <code>background</code> auch der Fall ist.</p>
<ol>
<li><em>transition-property</em> &#8211; gibt an, welche Eigenschaft animiert werden soll, Default ist <strong>all</strong></li>
<li><em>transition-duration</em> &#8211; ein dezimaler Wert in Sekunden, der für die Länge der Transition steht, Default ist <strong>0s</strong> (0 Sekunden, also keine Transition sichtbar)</li>
<li><em>transition-timing-function</em> &#8211; mehrere <a href="https://developer.mozilla.org/en/CSS/timing-function#Keywords_for_common_timing-functions">Schlüsselwörter</a> möglich, <a href="https://developer.mozilla.org/en/CSS/timing-function#Syntax">eigenen Kurven-Beschreibungen</a> möglich, Default ist <strong>ease</strong></li>
<li><em>transition-delay</em> &#8211; Länge der Pause in Sekunden bis Transition beginnt, Default ist <strong>0s</strong></li>
</ol>
<p>Da der Standard bisher nicht zu 100% fertig ist, unterstützen alle Browser Transition mit dem jeweils bekannten Prefix. An einem Beispiel wollen wir erreichen, dass sich die Textfarbe eines Links bei Mouse-Over innerhalb einer Sekunde von Blau zu Rot ändert.</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
</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;">color</span><span style="color: #00AA00;">:</span><span style="color: #000000; font-weight: bold;">blue</span><span style="color: #00AA00;">;</span>
	-moz-transition<span style="color: #00AA00;">:</span>all 1s ease 0s<span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/*Firefox*/</span>
	-webkit-transition<span style="color: #00AA00;">:</span>all 1s ease 0s<span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/*Safari + Chrome*/</span>
	-o-transition<span style="color: #00AA00;">:</span>all 1s ease 0s<span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/*Opera*/</span>
	-ms-transition<span style="color: #00AA00;">:</span>all 1s ease 0s<span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/*Internet Explorer*/</span>
	transition<span style="color: #00AA00;">:</span>all 1s ease 0s<span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/*W3C Standard*/</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: #993333;">red</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Man könnte auch nur <code>transition:1s</code> schreiben und den Rest den Defaultwerten überlassen aber ein Beispiel sollte ausführlicher sein. Der Effekt bliebe übrigens der gleiche, wenn wir ausschließlich <code>transition-duration</code> (samt allen Prefixes) verwenden würden, weil im Beispiel nur die Rede von einer Sekunde ist.</p>
<p>Was vielleicht noch erwähnenswert ist..</p>
<ul>
<li>die Transition-Eigenschaften schreibt man immer in den Selector ohne Pseudoklasse</li>
<li>und der Wert für <em>transition-duration</em> sollte immer zwischen 0s und 1s liegen</li>
</ul>
<p>Alles, was länger dauert, bringt dem User nicht das Geringste und die Webseite wirkt dadurch nur unglaublich träge.</p>
<h6>Ergebnis</h6>
<style>
p.demo a {
	color:blue !important;
	font:bold 20px/24px arial;
	-moz-transition:all 1s ease 0s; /*Firefox*/
	-webkit-transition:all 1s ease 0s; /*Safari + Chrome*/
	-o-transition:all 1s ease 0s; /*Opera*/
	-ms-transition:all 1s ease 0s; /*Internet Explorer*/
	transition:all 1s ease 0s; /*W3C Standard*/
}
p.demo a:hover {
	color:red !important;
	text-decoration:none;
}
p.demo {
	background:#f1f1f1;
	border:1px solid #ddd;
	padding:20px;
}
</style>
<p class="demo acenter"><a href="http://www.example.com">Bewege die Maus über diesen Link</a></p>
<p>Wie wir leicht sehen, läuft der Wechsel von Blau nach Rot in einer Sekunde ab und nicht wie normal sofort nachdem die Maus über dem Element schwebt.</p>
<p>Dadurch, dass es <a href="http://oli.jp/2010/css-animatable-properties/">viele Properties</a> gibt, die durch Transition beeinflusst werden können, gibt es extrem viele Möglichkeiten schöne und sinnvolle Effekte zu erzielen. Auch ich benutze es an einigen Stellen.. dem Weiterlesen-Button, Bilderrahmen, den Social Media Buttons links, das Einblenden des Text-Overlays bei verwandten Artikeln usw.</p>
<h3>Fazit</h3>
<p>CSS Transitions sind eine prima Sache zum Spielen und ausprobieren. Einige nervige Javascript-Lösungen lassen sich komplett damit ersetzen und User haben das Gefühl es mit einer edlen, unaufdringlichen Website zu tun zu haben.</p>
<div id="attachment_3856" class="wp-caption aligncenter" style="width: 520px"><a href="http://www.normansblog.de/demos/transition/"><img src="http://www.normansblog.de/wp-content/uploads/2011/12/css_transition.jpg" alt="CSS Transition Demo" title="CSS Transition Demo" width="500" height="210" class="size-full wp-image-3856" /></a><p class="wp-caption-text">CSS Transition Demo</p></div>
<p>Ich habe auch noch eine weitere Demo geschrieben, die zeigt, was man alles so animieren kann. Trotzdem ist auch sie nur die Spitze des Eisberges, ich bin sicher, dass ihr euch noch viel tollere Beispiele ausdenken werdet. <img src='https://www.normansblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="demolink"><a href="http://www.normansblog.de/demos/transition/">Transition Demo</a></div>
<p>Viel Spaß also beim Experimentieren und da es unwahrscheinlich ist, dass ich dieses Jahr noch einen Artikel schreibe, wünsche ich euch schonmal einen guten Start ins neue Jahr (das wäre dann schon 2012)! <img src='https://www.normansblog.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>https://www.normansblog.de/css3-im-detail-transitions/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>IE6 &amp; IE7 Button Bug</title>
		<link>https://www.normansblog.de/ie6-ie7-button-bug/</link>
		<comments>https://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='https://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='https://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='https://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='https://www.normansblog.de/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>https://www.normansblog.de/ie6-ie7-button-bug/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Transparenter Link über Image</title>
		<link>https://www.normansblog.de/transparenter-link-uber-image/</link>
		<comments>https://www.normansblog.de/transparenter-link-uber-image/#comments</comments>
		<pubDate>Mon, 29 Nov 2010 20:44:23 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[Firebug]]></category>
		<category><![CDATA[Nerviges]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=2896</guid>
		<description><![CDATA[Komischer Titel, ich weiß, aber darum gehts: Heute habe ich mal wieder über etwas gestaunt, das der Internet Explorer nicht kann. Folgendes Szenario: Ihr habt ein Bild auf dem unter anderem ein Schriftzug steht, z. B. &#8220;Jetzt hier Registrieren!&#8221;. Weil die Schrift mit tollen Effekten und dergleichen ausgestattet ist, bindet ihr sie direkt ins Bild [...]]]></description>
			<content:encoded><![CDATA[<p>Komischer Titel, ich weiß, aber darum gehts:</p>
<div id="attachment_2897" class="wp-caption alignright" style="width: 170px"><a href="http://www.normansblog.de/transparenter-link-uber-image/"><img src="http://www.normansblog.de/wp-content/uploads/2010/11/transparent_link_on_image-150x111.jpg" alt="Transparenter Link über einem Bild" title="Transparenter Link über einem Bild" width="150" height="111" class="size-thumbnail wp-image-2897" /></a><p class="wp-caption-text">IE rafft es nicht!</p></div>
<p>Heute habe ich mal wieder über etwas gestaunt, das der Internet Explorer <em>nicht</em> kann. Folgendes Szenario: Ihr habt ein Bild auf dem unter anderem ein Schriftzug steht, z. B. &#8220;Jetzt hier Registrieren!&#8221;. Weil die Schrift mit tollen Effekten und dergleichen ausgestattet ist, bindet ihr sie direkt ins Bild ein. Im Frontend wird das Bild über ein <code>img</code>-Tag ausgegeben und soll jetzt verlinkt werden. &#8220;Ok..&#8221;, dachte ich mir, &#8220;..leg ich halt einen transparenten Link darüber!&#8221; &#8211; Denkste!</p>
<p><span id="more-2896"></span></p>
<p>Hier erst einmal ein Beispiel, damit ihr auch versteht, was ich meine. Wie nehmen ein Bild und einen Link und packen einen Wrapper darum. Der Wrapper bekommt <code>position:relative</code>, damit wir den Link per <code>position:absolute</code> über das Bild schieben können. Der Link soll natürlich transparent sein, wir wollen ja nicht irgendwie das Bild &#8220;übermalen&#8221; sondern nur einen anklickbaren Bereich schaffen, also wird der Text versteckt.</p>
<h3>Problembeispiel (alle IE-Versionen)</h3>
<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;wrapper&quot;</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.getfirebug.com/img/firebug-logo.png&quot;</span> <span style="color: #000066;">alt</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Bild&quot;</span><span style="color: #66cc66;">/</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;http://www.getfirebug.com&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></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
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.wrapper</span> <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;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">293px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
a <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">70px</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;">right</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</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;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">185px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">top</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>

<h6>Ergebnis</h6>
<div style="position:relative;width:293px;border:1px dashed blue;margin:10px auto;">
<img src="http://www.getfirebug.com/img/firebug-logo.png" alt="Bild"/><br />
<a href="http://www.getfirebug.com" style="border:1px dashed red;height:70px;position:absolute;right:0;text-indent:-9999px;width:185px;top:0;">Link</a>
</div>
<p>Ich habe die wichtigen Bereiche nochmal hervorgehoben, der blaue Rahmen umrandet den Wrapper, der rote den Link.</p>
<p>Natürlich ist diese Denkweise nicht verkehrt, sie hat nur einen Haken: In allen von mir getesteten Versionen des Internet Explorers (IE6-<strong>9</strong>) hat das <em>nicht</em> funktioniert! Im IE kann man den Link einfach nicht anklicken, alle anderen Browser haben damit absolut kein Problem.</p>
<p>Ich dachte erst es liegt daran, dass das Bild den Link im IE irgendwie überdeckt, weil ich kein <code>z-index</code> benutze. Dann habe ich versucht den Text über <code>padding-top</code> und <code>overflow-hidden</code> zu verstecken und dachte der IE eventuell damit besser zurecht. Nichts hat geholfen.. wenn ich den Text nicht versteckte, konnte man nur den Text anklicken, nicht aber den Rest der klickbaren Fläche. Erst als ich das Bild aus dem Quellcode entfernt hatte, konnte man ganz plötzliche die komplette transparente Fläche anklicken.</p>
<p>Natürlich war ich schon wieder kurz vorm Platzen.</p>
<h3>Lösung</h3>
<p>Ein <a href="http://www.normansblog.de/position-absolute-png-filter/">ähnliches Problem mit nicht anklickbaren Links</a> hatte ich zwar schon mal im IE6 aber ich hätte nie gedacht, dass IE8 und 9 hier immer noch solche Probleme haben. Aber was soll&#8217;s, eine Lösung musste her und es gibt zwei Wege, wie man das Problem umgehen kann..</p>
<ol>
<li>das Bild nicht als <code>img</code>-Tag einbinden, sondern dem Wrapper/Link als <code>background-image</code> zuweisen</li>
<li>dem Link ein transparentes Hintergrundbild verpassen</li>
</ol>
<p>In meinem Fall war letztere Variante günstiger, ich würde aber prinzipiell eher zu Variante eins raten, da sie sauberer ist. Und ja, sobald der Link eine Hintergrundfarbe oder ein Hintergrundbild bekommt, kann man ihn auch im IE anklicken, verrückte Welt oder?</p>
<h3>Beispiel mit Lösungsvariante 1</h3>
<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;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;wrapper&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;http://www.getfirebug.com&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></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
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.wrapper</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;">http://www.getfirebug.com/img/firebug-logo.png</span><span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">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;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">89px</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;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">293px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
a <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">70px</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;">right</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</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;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">185px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">top</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>

<h6>Ergebnis</h6>
<div style="background:transparent url(http://www.getfirebug.com/img/firebug-logo.png) repeat 0 0;height:89px;position:relative;width:293px;margin:10px auto;">
<a href="http://www.getfirebug.com" style="height:70px;position:absolute;right:0;text-indent:-9999px;width:185px;top:0;">Link</a>
</div>
<p>So klappts auch im IE! <img src='https://www.normansblog.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>PS: Firebug 1.6 wurde heute veröffentlicht, <a href="https://addons.mozilla.org/en-US/firefox/addon/1843/">schnell runterladen</a> oder updaten und die Beispiele damit untersuchen! <img src='https://www.normansblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>https://www.normansblog.de/transparenter-link-uber-image/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS3 im Detail: Box-Shadow</title>
		<link>https://www.normansblog.de/css3-im-detail-box-shadow/</link>
		<comments>https://www.normansblog.de/css3-im-detail-box-shadow/#comments</comments>
		<pubDate>Sun, 19 Sep 2010 13:07:46 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[CSS3]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=2487</guid>
		<description><![CDATA[CSS3 im Detail: Box-Shadow - was für Text gilt, gilt natürlich auch für Elemente, die sich leicht mit einem Schatten von anderen Dingen abheben lassen.]]></description>
			<content:encoded><![CDATA[<p>Der neunte und damit letzte Teil der <em>CSS3 im Detail</em> &#8211; Reihe: Box-Shadow.</p>
<p><a href="http://www.normansblog.de/css3-im-detail-box-shadow/"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/css3.jpg" alt="" title="css3" width="180" height="120" class="alignright size-full wp-image-1902" /></a>Bax-Shadow wird dazu verwendet einem Element einen oder mehrere Schlagschatten zu verleihen. Allerdings verhält sich Box-Shadow etwas anders als das uns schon bekannte <a href="http://www.normansblog.de/css3-im-detail-text-shadow/">Text-Shadow</a>. In diesem Teil erfahrt ihr, wie man Box-Shadow richtig benutzt und was für ein Potential diese Property hat.</p>
<p><span id="more-2487"></span></p>
<blockquote class="idea"><h3>Browserunterstützung</h3>
<p>Folgende Browser unterstützen diese Technik bereits:</p>
<p class="center"><a href="http://www.firefox.com"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/logo_firefox_small.png" alt="Firefox" title="Firefox" width="50" height="50" class="alignnone size-full wp-image-1946" /></a> <a href="http://www.apple.com/safari"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/logo_safari_small.png" alt="Safari" title="Safari" width="50" height="50" class="alignnone size-full wp-image-1949" /></a> <a href="http://www.opera.com"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/logo_opera_small.png" alt="Opera" title="Opera" width="50" height="50" class="alignnone size-full wp-image-1948" /></a> <a href="http://www.google.com/chrome"><img src="http://www.normansblog.de/wp-content/uploads/2011/04/logo_chrome_new_small.png" alt="Chrome" title="Chrome" width="50" height="50" class="alignnone size-full wp-image-1945" /></a> <a href="http://ie.microsoft.com/"><img src="http://www.normansblog.de/wp-content/uploads/2010/11/logo_ie_new_small.png" alt="Internet Explorer" title="Internet Explorer" width="50" height="50" class="alignnone size-full" /></a></p>
</blockquote>
<h3>Syntax</h3>
<p><a href="http://dev.w3.org/csswg/css3-background/#the-box-shadow">Box-Shadow</a> ist ähnlich aufgebaut wie Text-Shadow, unterscheidet sich aber in einigen wesentlichen Dingen. Allen voran können wir noch nicht auf browserspezifische Präfixe verzichten, d. h. dass Webkit-Browser und aktuelle Firefox-Versionen Box-Shadow noch mit ihren jeweiligen Kürzeln implementiert haben.</p>
<p>Der Code für einen normalen, cross-browser-kompatiblen Schlagschatten lautet daher wie folgt:</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;">div<span style="color: #6666ff;">.boxshadow</span> <span style="color: #00AA00;">&#123;</span>
	-moz-box-shadow<span style="color: #00AA00;">:</span><span style="color: #933;">5px</span> <span style="color: #933;">5px</span> <span style="color: #933;">5px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.5</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Firefox - alte Syntax */</span>
	-webkit-box-shadow<span style="color: #00AA00;">:</span><span style="color: #933;">5px</span> <span style="color: #933;">5px</span> <span style="color: #933;">5px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.5</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Safari, Chrome - alte Syntax */</span>
	box-shadow<span style="color: #00AA00;">:</span><span style="color: #933;">5px</span> <span style="color: #933;">5px</span> <span style="color: #933;">5px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.5</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* alle neuen Browser, W3C Standard */</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Wie bei <code>text-shadow</code> auch, stehen auch hier die Werte für Verschiebung entlang der <strong>X-Achse</strong>, Verschiebung entlang der <strong>Y-Achse</strong>, <strong>Schattengröße</strong> und <strong>Schattenfarbe</strong>. <em>(Da alle Browser, die Box-Shadow unterstützen auch den <a href="http://www.normansblog.de/css3-im-detail-rgba/">RGBa-Farbraum</a> darstellen können, bietet es sich an, diesen hier gleich mal zu verwenden.)</em></p>
<p>Obiger Code erzeugt dieses Bild:</p>
<div style="-moz-box-shadow:5px 5px 5px rgba(0,0,0,0.5);-webkit-box-shadow:5px 5px 5px rgba(0,0,0,0.5);box-shadow:5px 5px 5px rgba(0,0,0,0.5);padding:20px;margin:20px;font:40px/40px arial,sans-serif;text-align:center;background:#ccc;">Box mit Schlagschatten</div>
<p>Ebenso können wir bei <code>box-shadow</code> mehrere Schatten durch Komma getrennt angeben:</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;">div<span style="color: #6666ff;">.moreboxshadows</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #808080; font-style: italic;">/*Lila, Gruen, Gelb*/</span>
	-moz-box-shadow<span style="color: #00AA00;">:</span><span style="color: #933;">15px</span> <span style="color: #933;">15px</span> <span style="color: #933;">10px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.5</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span><span style="color: #933;">10px</span> <span style="color: #933;">-10px</span> <span style="color: #933;">5px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.5</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span><span style="color: #933;">-10px</span> <span style="color: #933;">10px</span> <span style="color: #933;">5px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.5</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
	-webkit-box-shadow<span style="color: #00AA00;">:</span><span style="color: #933;">15px</span> <span style="color: #933;">15px</span> <span style="color: #933;">10px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.5</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span><span style="color: #933;">10px</span> <span style="color: #933;">-10px</span> <span style="color: #933;">5px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.5</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span><span style="color: #933;">-10px</span> <span style="color: #933;">10px</span> <span style="color: #933;">5px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.5</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
	box-shadow<span style="color: #00AA00;">:</span><span style="color: #933;">15px</span> <span style="color: #933;">15px</span> <span style="color: #933;">10px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.5</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span><span style="color: #933;">10px</span> <span style="color: #933;">-10px</span> <span style="color: #933;">5px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.5</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span><span style="color: #933;">-10px</span> <span style="color: #933;">10px</span> <span style="color: #933;">5px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.5</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<div style="-moz-box-shadow:15px 15px 10px rgba(255,0,255,0.5),10px -10px 5px rgba(0,255,0,0.5),-10px 10px 5px rgba(255,255,0,0.5);-webkit-box-shadow:15px 15px 10px rgba(255,0,255,0.5),10px -10px 5px rgba(0,255,0,0.5),-10px 10px 5px rgba(255,255,0,0.5);box-shadow:15px 15px 10px rgba(255,0,255,0.5),10px -10px 5px rgba(0,255,0,0.5),-10px 10px 5px rgba(255,255,0,0.5);padding:20px;margin:30px;font:40px/40px arial,sans-serif;text-align:center;">Mehrere bunte Schlagschatten</div>
<p>Man beachte, dass der Schatten, der an erster Stelle steht, auch &#8220;oben auf&#8221; liegt. Das heißt, er ist dem Betrachter am nächsten. In diesem Fall ist der gelbe Schatten ganz unten, darüber wird der grüne und zum Schluss der lila Schatten gezeichnet. Durch die RGBa-Farbwerte kommt es außerdem zur Mischung der Farben.</p>
<h3>Zwei weitere (optionale) Parameter</h3>
<p>Box-Shadow hat aber noch zwei weitere Parameter, der erste ist <strong>inset</strong>. Ist <code>inset</code> gesetzt, verläuft der Schatten nach innen statt nach außen. Ein Beispiel:</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;">div<span style="color: #6666ff;">.innerboxshadow</span> <span style="color: #00AA00;">&#123;</span>
	-moz-box-shadow<span style="color: #00AA00;">:</span><span style="color: #993333;">inset</span> <span style="color: #933;">5px</span> <span style="color: #933;">5px</span> <span style="color: #933;">5px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.5</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
	-webkit-box-shadow<span style="color: #00AA00;">:</span><span style="color: #993333;">inset</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">10px</span> <span style="color: #cc00cc;">#000</span><span style="color: #00AA00;">;</span>
	box-shadow<span style="color: #00AA00;">:</span><span style="color: #993333;">inset</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">10px</span> <span style="color: #cc00cc;">#000</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<div style="-moz-box-shadow:inset 0 0 10px #000;-webkit-box-shadow:inset 0 0 10px #000;box-shadow:inset 0 0 10px #000;border:2px solid #000;padding:20px;margin:20px;font:40px/40px arial,sans-serif;text-align:center;">inset-Shadow</div>
<p>Der andere Parameter ist ein vierter Pixel-Wert, der den Grad der <strong>Überfüllung</strong> des Schattens angibt &#8211; auch <em>negative Werte</em> sind erlaubt! Damit kann man den Schatten kräftiger/schwächer erscheinen lassen. Verdeutlicht nochmal am allerersten Beispiel:</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;">div<span style="color: #6666ff;">.strongboxshadow</span> <span style="color: #00AA00;">&#123;</span>
	-moz-box-shadow<span style="color: #00AA00;">:</span><span style="color: #933;">5px</span> <span style="color: #933;">5px</span> <span style="color: #933;">5px</span> <span style="color: #933;">10px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.5</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
	-webkit-box-shadow<span style="color: #00AA00;">:</span><span style="color: #933;">5px</span> <span style="color: #933;">5px</span> <span style="color: #933;">5px</span> <span style="color: #933;">10px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.5</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
	box-shadow<span style="color: #00AA00;">:</span><span style="color: #933;">5px</span> <span style="color: #933;">5px</span> <span style="color: #933;">5px</span> <span style="color: #933;">10px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.5</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<div style="-moz-box-shadow:5px 5px 5px 10px rgba(0,0,0,0.5);-webkit-box-shadow:5px 5px 5px 10px rgba(0,0,0,0.5);box-shadow:5px 5px 5px 10px rgba(0,0,0,0.5);padding:20px;margin:20px;font:40px/40px arial,sans-serif;text-align:center;background:#ccc;">Box mit Schlagschatten</div>
<p>Durch alle sechs Parameter haben wir im Prinzip die gleichen Möglichkeiten zum Erstellen eines Schattens, die wir auch aus Photoshop kennen.</p>
<div id="attachment_2703" class="wp-caption aligncenter" style="width: 376px"><a href="http://www.normansblog.de/wp-content/uploads/2010/09/photoshop_schlagschatten.jpg"><img src="http://www.normansblog.de/wp-content/uploads/2010/09/photoshop_schlagschatten.jpg" alt="Schatten in Photoshop" title="photoshop_schlagschatten" width="356" height="191" class="size-full wp-image-2703" /></a><p class="wp-caption-text">Einstellungen Schlagschatten in Photoshop</p></div>
<p>Box-Shadow funktioniert übrigens ganz wunderbar im Zusammenspiel mit <a href="http://www.normansblog.de/css3-im-detail-border-radius/">Border-Radius</a> und es lassen sich zusammen mit weiteren CSS3 Properties allerhand schöne Dinge anstellen. Ein gutes Beispiel sind Buttons:</p>
<div style="background:-moz-linear-gradient(top ,#7CD357,#5CA33E);background:-ms-linear-gradient(top ,#7CD357,#5CA33E);background:-o-linear-gradient(top ,#7CD357,#5CA33E);background:-webkit-gradient(linear,left top,left bottom,from(#7CD357),to(#5CA33E));background-color:#5CA33E;border:1px solid #5B0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-moz-box-shadow:0 1px 2px rgba(0,0,0,0.4),inset 0 1px 0 rgba(255,255,255,0.4);-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.4),inset 0 1px 0 rgba(255,255,255,0.4);box-shadow:0 1px 2px rgba(0,0,0,0.4),inset 0 1px 0 rgba(255,255,255,0.4);color:#fff;text-align:center;font:bold 16px/16px arial;text-shadow:0 1px 0 rgba(0,0,0,0.5);padding:10px 0;margin:20px 150px;">CSS3 Button</div>
<h3>Fazit</h3>
<p>Soweit zu den eher spektakulären visuellen Neuerungen, die mit CSS3 und den neuen Browserversionen Einzug halten werden. Einiges davon ist heute schon ohne große Bedenken einsetzbar und wird in Zukunft gehäuft anzutreffen sein. Box-Shadow ist da keine Ausnahme und meiner Meinung nach ein sehr Nützliches Tool, um schnell und unproblematisch diverse Schatteneffekte zu erzeugen. Das alles spart uns Zeit und wiedereinmal Bandbreite, denn wo sonst aufwändige Grafiken für Schatten erstellt werden mussten, kommt jetzt nur noch ein Dreizeiler zum Einsatz. Schöne neue Welt. Mit diesem Teil endet die <em>CSS3 im Detail</em>-Reihe, ich hoffe ihr konntet einiges mitnehmen und nutzt das Gelernte. <img src='https://www.normansblog.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>https://www.normansblog.de/css3-im-detail-box-shadow/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CSS3 im Detail: Text-Shadow</title>
		<link>https://www.normansblog.de/css3-im-detail-text-shadow/</link>
		<comments>https://www.normansblog.de/css3-im-detail-text-shadow/#comments</comments>
		<pubDate>Sat, 01 May 2010 15:56:36 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[CSS3]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=2404</guid>
		<description><![CDATA[CSS3 im Detail: Text-Shadow - mit CSS3 kann jede Art von Text mit wunderschönen Schatteneffekten hervorgehoben werden, auch mehrere gleichzeitig sind möglich.]]></description>
			<content:encoded><![CDATA[<p>Teil 8 der <em>CSS3 im Detail</em> &#8211; Reihe, diesmal geht&#8217;s um Text-Shadow.</p>
<p><a href="http://www.normansblog.de/css3-im-detail-text-shadow/"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/css3.jpg" alt="" title="css3" width="180" height="120" class="alignright size-full wp-image-1902" /></a>Wie der Name schon vermuten lässt, wird es möglich sein, bzw. ist es schon möglich, beliebigen Text einen Schatten zu verleihen. Das hat natürlich hauptsächlich ästhetische Vorzüge, kann aber unter Umständen sogar die Lesbarkeit verbessern oder zumindest dem Benutzer helfen, bestimmte Texte eher wahrzunehmen. Text-Shadow ist keinesfalls mehr eine Technik von morgen, im Gegenteil, schon heute trifft man (meist unbewusst) schattierten Text auf vielen Webseiten an.</p>
<p><span id="more-2404"></span></p>
<blockquote class="idea"><h3>Browserunterstützung</h3>
<p>Folgende Browser unterstützen diese Technik bereits:</p>
<p class="center"><a href="http://www.firefox.com"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/logo_firefox_small.png" alt="Firefox" title="Firefox" width="50" height="50" class="alignnone size-full wp-image-1946" /></a> <a href="http://www.apple.com/safari"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/logo_safari_small.png" alt="Safari" title="Safari" width="50" height="50" class="alignnone size-full wp-image-1949" /></a> <a href="http://www.opera.com"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/logo_opera_small.png" alt="Opera" title="Opera" width="50" height="50" class="alignnone size-full wp-image-1948" /></a> <a href="http://www.google.com/chrome"><img src="http://www.normansblog.de/wp-content/uploads/2011/04/logo_chrome_new_small.png" alt="Chrome" title="Chrome" width="50" height="50" class="alignnone size-full wp-image-1945" /></a> <a style="opacity:0.3;" href="http://ie.microsoft.com/"><img src="http://www.normansblog.de/wp-content/uploads/2010/11/logo_ie_new_small.png" alt="Internet Explorer" title="Internet Explorer" width="50" height="50" class="alignnone size-full" /></a><br/><small>(IE ab Version 10)</small></p>
</blockquote>
<h3>Syntax</h3>
<p><a href="http://www.w3.org/TR/css3-text/#text-shadow">Text-Shadow</a> ist ganz simpel und kommt sogar schon ohne browserspezifische Präfixe aus. D.h. alle oben genannten Browser unterstützen <code>text-shadow</code> in seiner finalen Form.</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;">div<span style="color: #6666ff;">.textshadow</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">text-shadow</span><span style="color: #00AA00;">:</span><span style="color: #933;">10px</span> <span style="color: #933;">10px</span> <span style="color: #933;">3px</span> <span style="color: #cc00cc;">#666</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Wie wir sehen können, hat <code>text-shadow</code> vier Parameter:</p>
<ol>
<li><strong>X-Abstand:</strong> Dieser Längenwert gibt an, wie weit der Schatten entlang der X-Achse verschoben wird (nach links/rechts versetzt). Negative Werte sind erlaubt.</li>
<li><strong>Y-Abstand:</strong> Dieser Längenwert gibt an, wie weit der Schatten entlang der Y-Achse verschoben wird (nach unten/oben versetzt). Negative Werte sind erlaubt.</li>
<li><strong>Größe:</strong> Ein weiterer Längenwert, der angibt, wie weit sich der Schatten ausbreiten soll. Ein Wert von 0 erzeugt einen sehr harten Schatten, je höher der Wert, desto unschärfer wird er.</li>
<li><strong>Farbe:</strong> Hier kann man jeden in CSS erlaubten Farbwert einsetzen (auch <a href="http://www.normansblog.de/css3-im-detail-rgba/">RGBa</a>!).</li>
</ol>
<p>Obiger Code erzeugt dieses Bild:</p>
<div style="text-shadow:10px 10px 3px #666;padding:20px;margin:20px;font:40px/40px arial,sans-serif;text-align:center;">Text mit Schatten</div>
<p>Man kann das Ganze aber auch noch weiter treiben und <em>mehrere Schatten</em> erzeugen. Dazu werden hinter dem ersten Schatten einfach noch weitere deklariert und mit Komma voneinander getrennt.</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;">div<span style="color: #6666ff;">.moreshadows</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">text-shadow</span><span style="color: #00AA00;">:</span><span style="color: #933;">10px</span> <span style="color: #933;">10px</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc00cc;">#aaa</span><span style="color: #00AA00;">,</span><span style="color: #933;">-10px</span> <span style="color: #933;">-10px</span> <span style="color: #933;">3px</span> <span style="color: #cc00cc;">#f00</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">10px</span> <span style="color: #cc00cc;">#00f</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<div style="text-shadow:10px 10px 0 #aaa,-10px -10px 3px #f00,0 0 10px #00f;padding:20px;margin:20px;font:40px/40px arial,sans-serif;text-align:center;">Verrückter Text</div>
<p>Ihr seht, damit kann man auch ne ganze Menge dummes Zeug fabrizieren aber dazu ist Text-Shadow nicht gedacht. Hier mal ein paar schöne Beispiele, wie man Text-Shadow richtig einsetzen kann.</p>
<h3>a) Gravur-Effekt 1</h3>
<div style="text-shadow:0 1px 0 #fff;padding:20px;margin:20px;background-color:#ddd;">
<p>Dezent hervorgehobener Text.</p>
<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>
<h3>b) Gravur-Effekt 2</h3>
<div style="background-color:#ccc;color:#ddd;font:bold 40px/40px arial;margin:20px;padding:10px;text-shadow:-1px -1px 0 #888,1px 1px 0 #fff">Überschrift</div>
<h3>c) Schlagschatten</h3>
<div style="background-color:#E11926;color:#F3D052;font:50px/50px 'Rockwell Extra Bold',impact;letter-spacing:-2px;margin:20px;padding:20px;text-shadow:0 2px 2px black;text-align:center;text-transform:uppercase;">Pulp Fiction</div>
<h3>Fazit</h3>
<p>Schaut euch eure Lieblingsseiten im Internet mal genauer an. Ich wette, da gibt es einige, die bereits Text-Shadow verwenden. Auch ich nutze es auf diesem Blog. Der Text in der Sidebar hat einen diffusen Schatten, damit er leichter auf dem dunklen Hintergrund zu lesen ist, die Artikelüberschriften haben einen schwachen Schlagschatten und die <em>Ähnliche Artikel</em>-Box benutzt den Gravur-Effekt 1. Text Shadow ist für mich ein nützliches Werkzeug geworden um Text besser und schöner hervorzuheben. Weitere Pluspunkte sammelt Text-Shadow mit der breiten Unterstützung an der Browser-Front und der schlanken Syntax. Viel Spaß! <img src='https://www.normansblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>https://www.normansblog.de/css3-im-detail-text-shadow/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CSS3 im Detail: Columns</title>
		<link>https://www.normansblog.de/css3-im-detail-columns/</link>
		<comments>https://www.normansblog.de/css3-im-detail-columns/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 00:19:12 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[CSS3]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=2373</guid>
		<description><![CDATA[CSS3 im Detail: Columns - mit minimalem Aufwand kann langer Text in mehrere kleine Textspalten aufgeteilt werden, den Leser freuts.]]></description>
			<content:encoded><![CDATA[<p>Teil 7 der <em>CSS3 im Detail</em> &#8211; Reihe beschäftigt sich mit Columns.</p>
<p><a href="http://www.normansblog.de/css3-im-detail-columns/"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/css3.jpg" alt="" title="css3" width="180" height="120" class="alignright size-full wp-image-1902" /></a>Columns oder zu deutsch <em>Spalten</em> gibt es schon eine Ewigkeit. Uns allen sind sie aus den klassischen Printerzeugnissen wie Zeitungen und Magazinen <a href="http://de.wikipedia.org/wiki/Spaltensatz">bekannt</a>. Prinzipiell machen sie nichts anderes als Text in schmalere Spalten aufzuteilen.</p>
<blockquote><p>Der Vorteil des mehrspaltigen Satzes als Textgestaltung liegt darin, dass insbesondere bei großformatigem Papier die Zeilenlänge kurz gehalten wird [...]</p>
</blockquote>
<p><span id="more-2373"></span></p>
<p>&#8230; und damit die Lesbarkeit des Textes erhöht wird. Durch CSS3 haben Webdesigner nun die Möglichkeit, diese Art des Satzes auch in Webseiten anzuwenden.</p>
<blockquote class="idea"><h3>Browserunterstützung</h3>
<p>Folgende Browser unterstützen diese Technik bereits:</p>
<p class="center"><a href="http://www.firefox.com"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/logo_firefox_small.png" alt="Firefox" title="Firefox" width="50" height="50" class="alignnone size-full wp-image-1946" /></a> <a href="http://www.apple.com/safari"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/logo_safari_small.png" alt="Safari" title="Safari" width="50" height="50" class="alignnone size-full wp-image-1949" /></a> <a href="http://www.opera.com"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/logo_opera_small.png" alt="Opera" title="Opera" width="50" height="50" class="alignnone size-full wp-image-1948" /></a> <a href="http://www.google.com/chrome"><img src="http://www.normansblog.de/wp-content/uploads/2011/04/logo_chrome_new_small.png" alt="Chrome" title="Chrome" width="50" height="50" class="alignnone size-full wp-image-1945" /></a> <a style="opacity:0.3;" href="http://ie.microsoft.com/"><img src="http://www.normansblog.de/wp-content/uploads/2010/11/logo_ie_new_small.png" alt="Internet Explorer" title="Internet Explorer" width="50" height="50" class="alignnone size-full" /></a><br/><small>(IE ab Version 10)</small></p>
</blockquote>
<h3>Syntax</h3>
<p>Columns haben mehrere Eigenschaften, die wir uns im Einzelnen anschauen werden. Gecko- und Webkitbrowser haben die Technik wieder mit ihren Präfixen implementiert.</p>
<h3>column-count</h3>
<p><code>column-count</code> gibt die Anzahl der Spalten an, in die der Text aufgeteilt werden soll.</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;">div<span style="color: #6666ff;">.columns</span> <span style="color: #00AA00;">&#123;</span>
	-moz-column-count<span style="color: #00AA00;">:</span><span style="color: #cc66cc;">2</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Firefox */</span>
	-webkit-column-count<span style="color: #00AA00;">:</span><span style="color: #cc66cc;">2</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Safari, Chrome */</span>
	column-count<span style="color: #00AA00;">:</span><span style="color: #cc66cc;">2</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Opera, IE, W3C Standard */</span>
	<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span><span style="color: #933;">4px</span> <span style="color: #993333;">solid</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: #933;">10px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Folgender Fließtext wird durch obigen Code in zwei Spalten aufgeteilt. Die Breite einer Spalte wird immer aus der Breite des Elternelements durch die Anzahl der Spalten berechnet.</p>
<div style="-moz-column-count:2;-webkit-column-count:2;column-count:2;border:4px solid #adf;padding:10px;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. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. 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. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
<p>Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.</p>
</div>
<h3>column-width</h3>
<p>Anstatt eine feste Anzahl Spalten anzugeben, kann man auch eine ungefähre Breite einer Spalte deklarieren. Dabei wird die Spaltenanzahl automatisch errechnet. Ihr versteht sicherlich, dass es wenig Sinn macht <code>column-count</code> und <code>column-width</code> gleichzeitig zu verwenden..</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;">div<span style="color: #6666ff;">.columns</span> <span style="color: #00AA00;">&#123;</span>
	-moz-column-width<span style="color: #00AA00;">:</span><span style="color: #933;">100px</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Firefox */</span>
	-webkit-column-width<span style="color: #00AA00;">:</span><span style="color: #933;">100px</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Safari, Chrome */</span>
	column-width<span style="color: #00AA00;">:</span><span style="color: #933;">100px</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Opera, IE, W3C Standard */</span>
	<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span><span style="color: #933;">4px</span> <span style="color: #993333;">solid</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: #933;">10px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<div style="-moz-column-width:100px;-webkit-column-width:100px;column-width:100px;border:4px solid #adf;padding:10px;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. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. 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. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
<p>Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.</p>
</div>
<h3>column-gap</h3>
<p>Das ist natürlich noch nicht alles, mit <code>column-gap</code> könnt ihr den Abstand zwischen den Spalten festlegen..</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;">div<span style="color: #6666ff;">.columns</span> <span style="color: #00AA00;">&#123;</span>
	-moz-column-count<span style="color: #00AA00;">:</span><span style="color: #cc66cc;">2</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Firefox */</span>
	-moz-column-gap<span style="color: #00AA00;">:</span><span style="color: #933;">7em</span><span style="color: #00AA00;">;</span>
	-webkit-column-count<span style="color: #00AA00;">:</span><span style="color: #cc66cc;">2</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Safari, Chrome */</span>
	-webkit-column-gap<span style="color: #00AA00;">:</span><span style="color: #933;">7em</span><span style="color: #00AA00;">;</span>
	column-count<span style="color: #00AA00;">:</span><span style="color: #cc66cc;">2</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Opera, IE, W3C Standard */</span>
	column-gap<span style="color: #00AA00;">:</span><span style="color: #933;">7em</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span><span style="color: #933;">4px</span> <span style="color: #993333;">solid</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: #933;">10px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<div style="-moz-column-count:2;-moz-column-gap:7em;-webkit-column-count:2;-webkit-column-gap:7em;column-count:2;column-gap:7em;border:4px solid #adf;padding:10px;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. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. 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. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
<p>Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.</p>
</div>
<h3>column-rule</h3>
<p>.. und mit <code>column-rule</code> zieht ihr zwischen den Spalten eine Linie. Der Befehl hat genau wie <code>border</code> folgende drei Parameter:</p>
<ol>
<li><em>column-rule-width</em>, die Breite der Linie</li>
<li><em>column-rule-style</em>, der Stil der Linie (solid, dashed, dotted, etc.)</li>
<li><em>column-rule-color</em>, die Farbe der Linie</li>
</ol>

<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;">div<span style="color: #6666ff;">.columns</span> <span style="color: #00AA00;">&#123;</span>
	-moz-column-count<span style="color: #00AA00;">:</span><span style="color: #cc66cc;">2</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Firefox */</span>
	-moz-column-rule<span style="color: #00AA00;">:</span><span style="color: #933;">4px</span> <span style="color: #993333;">dashed</span> <span style="color: #cc00cc;">#adf</span><span style="color: #00AA00;">;</span>
	-webkit-column-count<span style="color: #00AA00;">:</span><span style="color: #cc66cc;">2</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Safari, Chrome */</span>
	-webkit-column-rule<span style="color: #00AA00;">:</span><span style="color: #933;">4px</span> <span style="color: #993333;">dashed</span> <span style="color: #cc00cc;">#adf</span><span style="color: #00AA00;">;</span>
	column-count<span style="color: #00AA00;">:</span><span style="color: #cc66cc;">2</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Opera, IE, W3C Standard */</span>
	column-rule<span style="color: #00AA00;">:</span><span style="color: #933;">4px</span> <span style="color: #993333;">dashed</span> <span style="color: #cc00cc;">#adf</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span><span style="color: #933;">4px</span> <span style="color: #993333;">solid</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: #933;">10px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<div style="-moz-column-count:2;-moz-column-rule:4px dashed #adf;-webkit-column-count:2;-webkit-column-rule:4px dashed #adf;column-count:2;column-rule:4px dashed #adf;border:4px solid #adf;padding:10px;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. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. 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. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
<p>Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.</p>
</div>
<h3>Verfeinerung</h3>
<p>Nochmals verstärkt wird der Effekt, wenn man zusätzlich <code>text-align:justify</code> anwendet.</p>
<div style="-moz-column-count:2;-moz-column-gap:3em;-webkit-column-count:2;-webkit-column-gap:3em;column-count:2;column-gap:3em;padding:10px;margin-bottom:10px;text-align:justify;border:4px solid #adf;">
<h4>Justifiy Me!</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. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. 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. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
<p>Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.</p>
</div>
<h3>Fazit</h3>
<p>So, damit wisst ihr nun alles über Columns und wie man sie verwendet. Besonders schön an ihnen finde ich die Tatsache, dass Browser, die die Technik noch nicht beherrschen, einfach auf die &#8220;normale&#8221; Darstellungsweise zurückfallen (Paragraphen untereinander statt nebeneinander). Ein sinnvolles Einsatzgebiet sind natürlich News-Portale, die sehr breit sind. Auf solchen Seiten lohnt es sich  lange Artikel in kürzere Spalten zu teilen um die Lesbarkeit zu verbessern. Ich wünsche wie immer viel Spaß! <img src='https://www.normansblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>https://www.normansblog.de/css3-im-detail-columns/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>CSS3 im Detail: Border-Image</title>
		<link>https://www.normansblog.de/css3-im-detail-border-image/</link>
		<comments>https://www.normansblog.de/css3-im-detail-border-image/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 22:33:41 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[CSS3]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=2305</guid>
		<description><![CDATA[CSS3 im Detail: Border-Image - skalierbare Rahmengrafiken können jetzt leicht angefertigt und eingebaut werden, das spart http-Requests und Nerven.]]></description>
			<content:encoded><![CDATA[<p>Ich glaub das wird kein toller Artikel aber fangen wir einfach an.. Teil 6 der <em>CSS3 im Detail</em> &#8211; Reihe: Border-Image.</p>
<p><a href="http://www.normansblog.de/css3-im-detail-border-image/"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/css3.jpg" alt="" title="css3" width="180" height="120" class="alignright size-full wp-image-1902" /></a>Bei dieser Technik geht es prinzipiell darum eine Grafik als <code>border</code> für jedes beliebige Element zu benutzen. Was das soll? Nun ja, manche Leute mögen es bunt und lassen sich ausgefallene Rahmen einfallen. Damit man nicht mehrere Hintergrundbilder deswegen zurecht schneiden muss, hält nun mit CSS3 <code>border-image</code> Einzug.</p>
<p><span id="more-2305"></span></p>
<blockquote class="idea"><h3>Browserunterstützung</h3>
<p>Folgende Browser unterstützen diese Technik bereits:</p>
<p class="center"><a href="http://www.firefox.com"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/logo_firefox_small.png" alt="Firefox" title="Firefox" width="50" height="50" class="alignnone size-full wp-image-1946" /></a> <a href="http://www.apple.com/safari"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/logo_safari_small.png" alt="Safari" title="Safari" width="50" height="50" class="alignnone size-full wp-image-1949" /></a> <a href="http://www.opera.com"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/logo_opera_small.png" alt="Opera" title="Opera" width="50" height="50" class="alignnone size-full wp-image-1948" /></a> <a href="http://www.google.com/chrome"><img src="http://www.normansblog.de/wp-content/uploads/2011/04/logo_chrome_new_small.png" alt="Chrome" title="Chrome" width="50" height="50" class="alignnone size-full wp-image-1945" /></a></p>
</blockquote>
<h3>Vorbereitung</h3>
<p>Die Basis bildet natürlich eine Grafik. Diese muss so aufgebaut sein, dass sie aus neun Bereichen besteht: vier Ecken, vier Kanten und der Mitte, hier dargestellt durch Pikachus. <img src='https://www.normansblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://www.normansblog.de/wp-content/uploads/2010/04/pikachu.png"><img src="http://www.normansblog.de/wp-content/uploads/2010/04/pikachu.png" alt="" title="pikachu" width="123" height="147" class="aligncenter size-full wp-image-2310" /></a></p>
<h3>Syntax</h3>
<p>Kommen wir also zur Sache, wie schon aus vorhergehenden Teilen bekannt, haben die Browser unterschiedliche Präfixe, so auch bei <code>border-image</code>.</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;">div<span style="color: #6666ff;">.borderimage</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">border-style</span><span style="color: #00AA00;">:</span><span style="color: #993333;">solid</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">border-width</span><span style="color: #00AA00;">:</span><span style="color: #933;">49px</span> <span style="color: #933;">41px</span><span style="color: #00AA00;">;</span>
	-moz-border-image<span style="color: #00AA00;">:</span><span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">pikachu.png</span><span style="color: #00AA00;">&#41;</span> <span style="color: #cc66cc;">49</span> <span style="color: #cc66cc;">41</span> <span style="color: #993333;">repeat</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Firefox */</span>
	-webkit-border-image<span style="color: #00AA00;">:</span><span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">pikachu.png</span><span style="color: #00AA00;">&#41;</span> <span style="color: #cc66cc;">49</span> <span style="color: #cc66cc;">41</span> <span style="color: #993333;">repeat</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Safari, Chrome */</span>
	-o-border-image<span style="color: #00AA00;">:</span><span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">pikachu.png</span><span style="color: #00AA00;">&#41;</span> <span style="color: #cc66cc;">49</span> <span style="color: #cc66cc;">41</span> <span style="color: #993333;">repeat</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Opera */</span>
	border-image<span style="color: #00AA00;">:</span><span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">pikachu.png</span><span style="color: #00AA00;">&#41;</span> <span style="color: #cc66cc;">49</span> <span style="color: #cc66cc;">41</span> <span style="color: #993333;">repeat</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* W3C Standard */</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Wichtig ist, dass <code>border-style</code> einen wert ungleich <code>none</code> hat und mit <code>border-width</code> könnt ihr die Breite des Rahmes bestimmen, in meinem Fall sind die Werte die Maße eines Pikachus. Damit sollten wir ungefähr so eine Box bekommen:</p>
<div style="border-style:solid;border-width:49px 41px;-moz-border-image:url(http://www.normansblog.de/wp-content/uploads/2010/04/pikachu.png) 49 41 repeat;-webkit-border-image:url(http://www.normansblog.de/wp-content/uploads/2010/04/pikachu.png) 49 41 repeat;-o-border-image:url(http://www.normansblog.de/wp-content/uploads/2010/04/pikachu.png) 49 41 repeat;border-image:url(http://www.normansblog.de/wp-content/uploads/2010/04/pikachu.png) 49 41 repeat;border-width:49px 41px;line-height:100px;width:255px;margin:20px auto;text-align:center;">Div mit Pikachu-Border <img src='https://www.normansblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </div>
<p>Kurze Erklärung, welcher Teil hier was bewirkt.. mit der URL gibt man natürlich den Pfad zum Bild an. Danach folgen die beiden Werte für die Rahmenbreite. Hier können 1-4 Werte stehen, ein Wert für jede Seite. In diesem Fall ist ein Pikachu 41 Pixel breit und 49 Pixel hoch. Als letztes folgt noch ein Schlüsselwort, von denen es genau drei Stück zur Auswahl gibt:</p>
<ol>
<li><em>repeat</em> &#8211; das Bild wird einfach wiederholt</li>
<li><em>stretch</em> &#8211; die Kantenstücke werden auf die volle Breite bzw. Höhe gestreckt</li>
<li><em>round</em> &#8211; die Kantenstücke werden etwas verzogen damit kein Pikachu abgeschnitten werden muss</li>
</ol>
<p>Obiges Beispiel benutzt <strong>repeat</strong>, hier nun eins mit <strong>round</strong>&#8230;</p>
<div style="border-style:solid;border-width:49px 41px;-moz-border-image:url(http://www.normansblog.de/wp-content/uploads/2010/04/pikachu.png) 49 41 round;-webkit-border-image:url(http://www.normansblog.de/wp-content/uploads/2010/04/pikachu.png) 49 41 round;-o-border-image:url(http://www.normansblog.de/wp-content/uploads/2010/04/pikachu.png) 49 41 round;border-image:url(http://www.normansblog.de/wp-content/uploads/2010/04/pikachu.png) 49 41 round;border-width:49px 41px;line-height:100px;width:255px;margin:20px auto;text-align:center;">Div mit rounded Pikachu-Border</div>
<p>(Webkit-Browser scheinen mit <em>round</em> im Moment wohl ein Problem zu haben.)</p>
<p>&#8230; und eins mit <strong>stretch</strong>&#8230;</p>
<div style="border-style:solid;border-width:49px 41px;-moz-border-image:url(http://www.normansblog.de/wp-content/uploads/2010/04/pikachu.png) 49 41 stretch;-webkit-border-image:url(http://www.normansblog.de/wp-content/uploads/2010/04/pikachu.png) 49 41 stretch;-o-border-image:url(http://www.normansblog.de/wp-content/uploads/2010/04/pikachu.png) 49 41 stretch;border-image:url(http://www.normansblog.de/wp-content/uploads/2010/04/pikachu.png) 49 41 stretch;border-width:49px 41px;line-height:100px;width:255px;margin:20px auto;text-align:center;">Div mit stretched Pikachu-Border</div>
<h3>Fazit</h3>
<p>Jo, so geht das. Ich geb zu, das Pikachu-Beispiel ist vielleicht nicht gerade realistisch, zeigt aber was für einen Unfug man mit der neuen Technik treiben kann. Border-Image ist keine große Revolution, vereinfacht aber doch einige Dinge und vermindert auf jeden Fall die Anzahl an Grafiken, die man für aufwendige Rahmen bräuchte. Ich wünsch euch viel Spaß beim Ausprobieren. <img src='https://www.normansblog.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>https://www.normansblog.de/css3-im-detail-border-image/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>CSS3 im Detail: Border-Radius</title>
		<link>https://www.normansblog.de/css3-im-detail-border-radius/</link>
		<comments>https://www.normansblog.de/css3-im-detail-border-radius/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 14:20:12 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[CSS3]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=2140</guid>
		<description><![CDATA[CSS3 im Detail: Border Radius - Runde Ecken können jetzt per CSS3 jedem beliebigem Element verpasst werden, ohne Grafiken, ohne Extra-Markup.]]></description>
			<content:encoded><![CDATA[<p>Runde fünf von <em>CSS3 im Detail</em> &#8211; Border-Radius.</p>
<p><a href="http://www.normansblog.de/css3-im-detail-border-radius/"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/css3.jpg" alt="" title="css3" width="180" height="120" class="alignright size-full wp-image-1902" /></a>Entschuldigt die enorme Verzögerung aber ich hatte bisschen Prüfungsstress und viel Arbeit, sodass mir dann die Motivation gefehlt hat noch diese Artikel zu schreiben. Sei&#8217;s drum, heute gehts um eine nützliche Technik, mit der man runde Ecken erstellen kann. Früher musste man immer mindestens zwei Grafiken erstellen, um einer Box runde Ecken zu verpassen &#8211; das wird sich jetzt ändern. <a href="http://www.w3.org/TR/css3-background/#the-border-radius">Border-Radius</a> wird euch gefallen, es erspart einem sehr viel Arbeit und wird von den meisten Browsern schon ganz gut unterstützt.</p>
<p><span id="more-2140"></span></p>
<blockquote class="idea"><h3>Browserunterstützung</h3>
<p>Folgende Browser unterstützen diese Technik bereits:</p>
<p class="center"><a href="http://www.firefox.com"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/logo_firefox_small.png" alt="Firefox" title="Firefox" width="50" height="50" class="alignnone size-full wp-image-1946" /></a> <a href="http://www.apple.com/safari"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/logo_safari_small.png" alt="Safari" title="Safari" width="50" height="50" class="alignnone size-full wp-image-1949" /></a> <a href="http://www.opera.com"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/logo_opera_small.png" alt="Opera" title="Opera" width="50" height="50" class="alignnone size-full wp-image-1948" /></a> <a href="http://www.google.com/chrome"><img src="http://www.normansblog.de/wp-content/uploads/2011/04/logo_chrome_new_small.png" alt="Chrome" title="Chrome" width="50" height="50" class="alignnone size-full wp-image-1945" /></a> <a href="http://ie.microsoft.com/"><img src="http://www.normansblog.de/wp-content/uploads/2010/11/logo_ie_new_small.png" alt="Internet Explorer" title="Internet Explorer" width="50" height="50" class="alignnone size-full" /></a></p>
</blockquote>
<h3>Einsatzgebiete</h3>
<p>Sogenannte &#8220;runde Ecken&#8221; spielen in heutiger Zeit eine immer größere Rolle, alle modernen UIs benutzen sie an nahezu allen Elementen. Manchmal recht großzügig, dann wieder nur mit der Lupe zu erkennen, ein gutes Beispiel sind aktuelle Windows Versionen (Vista oder 7), die extrem viel Aufwand in diese Richtung betreiben. Folgender Screen soll das einmal illustrieren..</p>
<div id="attachment_2156" class="wp-caption aligncenter" style="width: 501px"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/win7_window.jpg" alt="Fenster in Windows 7" title="win7_window" width="481" height="243" class="size-full wp-image-2156" /><p class="wp-caption-text">Ein Fenster in Windows 7 hat viele runde Ecken: der Fensterrahmen, die Buttons oben rechts, der Rahmen um die markierte Festplatte, etc.</p></div>
<p>Warum? Weil runde Ecken angenehmer anzusehen sind und das ganze Design etwas auflockern. Fenster mit richtigen Ecken, wie bei Windows 2000 und davor, wirken heutzutage altbacken und hässlich.</p>
<h3>Syntax</h3>
<p>Border-Radius wird von den Browsern durch unterschiedliche Präfixe unterstützt.</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;">div<span style="color: #6666ff;">.rounded</span> <span style="color: #00AA00;">&#123;</span>
-moz-border-radius<span style="color: #00AA00;">:</span><span style="color: #933;">10px</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Firefox - alte Syntax */</span>
-webkit-border-radius<span style="color: #00AA00;">:</span><span style="color: #933;">10px</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Safari, Chrome - alte Syntax */</span>
<span style="color: #000000; font-weight: bold;">border-radius</span><span style="color: #00AA00;">:</span><span style="color: #933;">10px</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* alle neuen Browser, W3C Standard */</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Diese Anweisungen bewirken, dass die Ecken eines <code>divs</code> mit der Klasse <em>rounded</em> abgerundet werden. Folgendes Beispiel, hat zur Verdeutlichung der Rundungen zusätzlich eine Schwarze Border bekommen.</p>
<div style="-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;margin:20px;border:2px solid #222;height:200px;background:url(http://www.normansblog.de/wp-content/uploads/2009/11/firefox-512-150x150.png) no-repeat center center #adf;"></div>
<p><code>border-radius</code> kann aber nicht nur mit einem Wert gesteuert werden. Maximal sind 4 Werte möglich, wobei jeder davon ein Ecke kontrolliert, im Uhrzeigersinn beginnend mit der links oben. Folgender Code bewirkt z.B., dass nur die beiden Ecken oben abgerundet werden, die unten bleiben eckig.</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;">div<span style="color: #6666ff;">.rounded_up</span> <span style="color: #00AA00;">&#123;</span>
-moz-border-radius<span style="color: #00AA00;">:</span><span style="color: #933;">10px</span> <span style="color: #933;">10px</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Firefox - alte Syntax */</span>
-webkit-border-radius<span style="color: #00AA00;">:</span><span style="color: #933;">10px</span> <span style="color: #933;">10px</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Safari, Chrome - alte Syntax */</span>
<span style="color: #000000; font-weight: bold;">border-radius</span><span style="color: #00AA00;">:</span><span style="color: #933;">10px</span> <span style="color: #933;">10px</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* alle neuen Browser, W3C Standard */</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<div style="-moz-border-radius:10px 10px 0 0;-webkit-border-radius:10px 10px 0 0;border-radius:10px 10px 0 0;margin:20px;border:2px solid #222;height:200px;background:url(http://www.normansblog.de/wp-content/uploads/2009/11/firefox-512-150x150.png) no-repeat center center #adf;"></div>
<p>Natürlich kann man auch &#8220;unterschiedlich runde Ecken&#8221; machen, indem man einfach verschiedene Werte benutzt, hier gilt: <em>Probieren geht über Studieren</em>.</p>
<blockquote class="warning"><p><a href="http://www.apple.com/safari"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/logo_safari_small.png" alt="Safari" title="Safari" width="50" height="50" class="alignright size-full wp-image-1949" /></a>Safari spackt hier noch etwas rum. Es kommt mit 4 Werten nicht klar und ignoriert deswegen den Befehl. Da es aber die selbe Engine wie Chrome nutzt, wird sich hier demnächst bestimmt eine Besserung einstellen. Bis es soweit ist, kann man sich diesen Artikel auf <a href="http://www.css3.info/preview/rounded-border/">CSS3.info</a> mal durchlesen.</p>
<p><strong>Update:</strong> Mit Safari 5 sollte alles funktionieren.</p>
</blockquote>
<h3>Fazit</h3>
<p>Ein wahnsinnig mächtiger Befehl, Border-Radius lässt uns schnell und komfortabel Rundungen an allen Elementen erstellen. Das lästige Zuschneiden von Grafiken und der damit verbundene Aufwand über CSS-Formatierungen (Stichwort: <a href="http://www.jankoatwarpspeed.com/post/2008/04/30/make-fancy-buttons-using-css-sliding-doors-technique.aspx">Sliding Doors</a>) entfällt vollständig. Das spart mal wieder jede Menge Traffic und Zeit beim Aufbau einer Seite. Viel Spaß damit! <img src='https://www.normansblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>https://www.normansblog.de/css3-im-detail-border-radius/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>CSS3 im Detail: Background Gradients</title>
		<link>https://www.normansblog.de/css3-im-detail-background-gradients/</link>
		<comments>https://www.normansblog.de/css3-im-detail-background-gradients/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 01:33:46 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[CSS3]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=2080</guid>
		<description><![CDATA[CSS3 im Detail: Background Gradients - damit kann man jede Art von Verläufen darstellen, frei skalierbar und ganz ohne Grafiken.]]></description>
			<content:encoded><![CDATA[<p>Etwas verspätet nun auch der vierte Teil von <em>CSS3 im Detail</em>!</p>
<p><a href="http://www.normansblog.de/css3-im-detail-background-gradients/"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/css3.jpg" alt="" title="css3" width="180" height="120" class="alignright size-full wp-image-1902" /></a>Dieses mal erwarten euch lineare und radiale Farbverläufe (engl. gradients) in CSS, mit deren Hilfe wir einige ganz hübsche Effekte erzielen können. Benutzt werden sie überall dort, wo wir eine <code>url()</code> angeben können. In den folgenden Beispielen werden wir sie aber im Zusammenhang mit <code>background</code> verwenden, indem wir statt einem Hintergrundbild den gewünschten Verlauf angeben.</p>
<p><span id="more-2080"></span></p>
<p style="border-radius:5px;background:#c00;color:white;padding:0 5px">Achtung, ich verwende im Artikel noch die alte Syntax. Sobald ich Zeit habe, werde ich den Text updaten. Bis dahin lest bitte folgende <a style="color:#fff" href="https://developer.mozilla.org/en-US/docs/CSS/linear-gradient">Dokumentation zu Farbverläufen (MDN)</a>.</p>
<blockquote class="idea"><h3>Browserunterstützung</h3>
<p>Folgende Browser unterstützen diese Technik bereits:</p>
<p class="center"><a href="http://www.firefox.com"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/logo_firefox_small.png" alt="Firefox" title="Firefox" width="50" height="50" class="alignnone size-full wp-image-1946" /></a> <a href="http://www.apple.com/safari"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/logo_safari_small.png" alt="Safari" title="Safari" width="50" height="50" class="alignnone size-full wp-image-1949" /></a> <a href="http://www.opera.com"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/logo_opera_small.png" alt="Opera" title="Opera" width="50" height="50" class="alignnone size-full wp-image-1948" /></a> <a href="http://www.google.com/chrome"><img src="http://www.normansblog.de/wp-content/uploads/2011/04/logo_chrome_new_small.png" alt="Chrome" title="Chrome" width="50" height="50" class="alignnone size-full wp-image-1945" /></a> <a style="opacity:0.3;" href="http://ie.microsoft.com/"><img src="http://www.normansblog.de/wp-content/uploads/2010/11/logo_ie_new_small.png" alt="Internet Explorer" title="Internet Explorer" width="50" height="50" class="alignnone size-full" /></a><br/><small>(IE ab Version 10)</small></p>
</blockquote>
<h3>Syntax</h3>
<p>Prinzipiell muss man zwischen zwei Arten von Farbverläufen unterscheiden:</p>
<ol>
<li>Lineare Verläufe, geradliniger Farbverlauf von zwei oder mehr Farben</li>
<li>Radiale Verläufe, kreisförmiger Farbverlauf von zwei oder mehr Farben</li>
</ol>
<h3>Linearer Verlauf</h3>
<p>Zuerst einmal ein einfacher, linearer Verlauf:</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;">div<span style="color: #6666ff;">.lin_grad</span> <span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">background</span><span style="color: #3333ff;">:-moz-linear-</span>gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#fff</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#adf</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Firefox */</span>
<span style="color: #000000; font-weight: bold;">background</span><span style="color: #3333ff;">:-webkit-linear-</span>gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#fff</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#adf</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Safari, Chrome */</span>
<span style="color: #000000; font-weight: bold;">background</span><span style="color: #3333ff;">:-o-linear-</span>gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#fff</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#adf</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Opera */</span>
<span style="color: #000000; font-weight: bold;">background</span><span style="color: #3333ff;">:-ms-linear-</span>gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#fff</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#adf</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* IE */</span>
<span style="color: #000000; font-weight: bold;">background</span><span style="color: #3333ff;">:linear-</span>gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#fff</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#adf</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* W3C Standard */</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p><strong>Anmerkung:</strong> Das Firefox Logo im Vordergrund wird als zusätzlicher Background eingebunden, <a href="http://www.normansblog.de/css3-im-detail-multiple-backgrounds/">siehe Teil 2</a>.</p>
<div style="margin:20px;height:200px;background:url(http://www.normansblog.de/wp-content/uploads/2009/11/firefox-512-150x150.png) no-repeat center center,-moz-linear-gradient(top, #fff, #adf);background:url(http://www.normansblog.de/wp-content/uploads/2009/11/firefox-512-150x150.png) no-repeat center center,-webkit-linear-gradient(top, #fff, #adf);background:url(http://www.normansblog.de/wp-content/uploads/2009/11/firefox-512-150x150.png) no-repeat center center,-o-linear-gradient(top, #fff, #adf);background:url(http://www.normansblog.de/wp-content/uploads/2009/11/firefox-512-150x150.png) no-repeat center center,-ms-linear-gradient(top, #fff, #adf);background:url(http://www.normansblog.de/wp-content/uploads/2009/11/firefox-512-150x150.png) no-repeat center center,linear-gradient(top, #fff, #adf);"></div>
<p>Prinzipiell haben die Verlauf-Funktionen 4 Argumente um einen Farbverlauf näher zu beschreiben. Die Argumente sind einmal <code>linear</code> oder <code>radial</code>, welche angeben um welchen Typ von Verlauf es sich handelt. Firefox bietet 2 separate Funktionen dafür an, Safari/Chrome nutzen eine Funktion für beide Typen. Es folgen dann der Start- bzw. Endpunkt und somit die Richtung des Verlaufs. Zu guter Letzt werden noch die Farbcodes für Start- und Endfarbe benötigt.</p>
<p>Bei den Webkit-Browsern erscheint mir dir Syntax insgesamt etwas komplizierter. Also es kann sein, dass es auch kürzer geht aber ich bin ehrlich gesagt froh, dass ich überhaupt einen funktionierenden Verlauf mit Safari hinbekommen habe. <img src='https://www.normansblog.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><strong>Update 1:</strong> Mittlerweile hat Webkit die Syntax an die von Gecko angepasst, auch Opera unterstützt ab Version 11.10 lineare Verläufe mit einem eigenen Prefix.</p>
<p><strong>Update 2:</strong> Die <abbr title="13.04.2011">heute</abbr> herausgegebene Platform Preview des Internet Explorer 10 unterstützt beide Arten von Verläufen.</p>
<p><strong>Update 3:</strong> Opera <del datetime="2011-12-06T20:05:59+00:00">12</del> <ins datetime="2011-12-06T20:05:59+00:00">11.6</ins> unterstützt radiale Verläufe per Prefix.</p>
<h3>Radialer Verlauf</h3>

<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;">div<span style="color: #6666ff;">.rad_grad</span> <span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">background</span><span style="color: #3333ff;">:-moz-radial-</span>gradient<span style="color: #00AA00;">&#40;</span><span style="color: #993333;">center</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#fff</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#adf</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Firefox */</span>
<span style="color: #000000; font-weight: bold;">background</span><span style="color: #3333ff;">:-webkit-radial-</span>gradient<span style="color: #00AA00;">&#40;</span><span style="color: #993333;">center</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#fff</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#adf</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Safari, Chrome */</span>
<span style="color: #000000; font-weight: bold;">background</span><span style="color: #3333ff;">:-o-radial-</span>gradient<span style="color: #00AA00;">&#40;</span><span style="color: #993333;">center</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#fff</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#adf</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Opera */</span>
<span style="color: #000000; font-weight: bold;">background</span><span style="color: #3333ff;">:-ms-radial-</span>gradient<span style="color: #00AA00;">&#40;</span><span style="color: #993333;">center</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#fff</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#adf</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* IE */</span>
<span style="color: #000000; font-weight: bold;">background</span><span style="color: #3333ff;">:radial-</span>gradient<span style="color: #00AA00;">&#40;</span><span style="color: #993333;">center</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#fff</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#adf</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* W3C Standard */</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<div style="margin:20px;height:400px;background:url(http://www.normansblog.de/wp-content/uploads/2009/11/firefox-512-150x150.png) no-repeat center center,-moz-radial-gradient(center, #fff, #adf);background:url(http://www.normansblog.de/wp-content/uploads/2009/11/firefox-512-150x150.png) no-repeat center center,-webkit-radial-gradient(center, #fff, #adf);background:url(http://www.normansblog.de/wp-content/uploads/2009/11/firefox-512-150x150.png) no-repeat center center,-o-radial-gradient(center, #fff, #adf);background:url(http://www.normansblog.de/wp-content/uploads/2009/11/firefox-512-150x150.png) no-repeat center center,-ms-radial-gradient(center, #fff, #adf);background:url(http://www.normansblog.de/wp-content/uploads/2009/11/firefox-512-150x150.png) no-repeat center center,radial-gradient(center, #fff, #adf);"></div>
<p>Um einen radialen Verlauf zu bekommen, gehen wir genauso vor wie oben. Im Firefox ist es ganz einfach: Startpunkt, Startfarbe, Endfarbe. Webkit bereitet mir etwas Kopfzerbrechen.. soweit ich das verstanden habe, muss man hier zwei Kreise angeben mit jeweils einem Startpunkt und den Radius des Kreises, sowie Start- und Endfarbe.</p>
<p>Ich will das jetzt mal nicht weiter vertiefen und euch verwirren. Am besten ihr lest euch mal die Spezifikationen durch. Zwei Artikel im <abbr title="Mozilla Developer Network">MDN</abbr> erklären sowohl <a href="https://developer.mozilla.org/en/CSS/linear-gradient">linear-gradient</a> als auch <a href="https://developer.mozilla.org/en/CSS/radial-gradient">radial-gradient</a> (beides auf Englisch).</p>
<h3>Fazit</h3>
<p>Background Gradients könnten in Zukunft recht interessant werden. Lineare Verläufe werden heutzutage bereits auf fast allen Webseiten eingesetzt (Hintergründe, Buttons). Radiale Verläufe machen sich sicherlich gut, um bestimmte Sachen zu highlighten. Der größte Vorteil ist, dass somit keine Grafiken mehr gebraucht werden, die sinnlos Zeit und Bandbreite vergeuden. Die Syntax ist zwar nicht die einfachste aber mit etwas Geduld und Übung lernt man sie schon kennen. Ich hoffe, dass Webkit hier trotzdem nochmal nachbessert und die Funktion irgendwie vereinfacht. Mit Firefox hingegen kommt man recht schnell ans Ziel.</p>
<p>Lange Rede, kurzer Sinn: Probiert euch am besten selbst mal an den Verläufen, kombiniert eventuell das Ganze dann noch mit mehreren Backgrounds und/oder Background-Size und ihr werdet auf einige lustige Ergebnisse stoßen. Viel Spaß. <img src='https://www.normansblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>https://www.normansblog.de/css3-im-detail-background-gradients/feed/</wfw:commentRss>
		<slash:comments>36</slash:comments>
		</item>
		<item>
		<title>CSS3 im Detail: Background-Size</title>
		<link>https://www.normansblog.de/css3-im-detail-background-size/</link>
		<comments>https://www.normansblog.de/css3-im-detail-background-size/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 00:00:47 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[CSS3]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=2023</guid>
		<description><![CDATA[CSS3 im Detail: Background-Size - mit CSS3 Hintergrundgrafiken vergrößern, verkleinern, strecken, zerren oder einfach nur füllend auf den Bildschirm bringen.]]></description>
			<content:encoded><![CDATA[<p>Die <em>CSS3 im Detail</em>-Reihe geht in die dritte Runde!</p>
<p><a href="http://www.normansblog.de/css3-im-detail-background-size/"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/css3.jpg" alt="" title="css3" width="180" height="120" class="alignright size-full wp-image-1902" /></a>Im dritten Teil werden wir eine weitere Möglichkeit unter die Lupe nehmen, die es uns erlaubt <code>background</code> noch weiter zu manipulieren. Dabei soll es uns um das Ändern der Größe des Hintergrundes gehen. Kurz gesagt, wir reden über <code>background-size</code>.</p>
<p><span id="more-2023"></span></p>
<blockquote class="idea"><h3>Browserunterstützung</h3>
<p>Folgende Browser unterstützen diese Technik bereits:</p>
<p class="center"><a href="http://www.firefox.com"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/logo_firefox_small.png" alt="Firefox" title="Firefox" width="50" height="50" class="alignnone size-full wp-image-1946" /></a> <a href="http://www.apple.com/safari"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/logo_safari_small.png" alt="Safari" title="Safari" width="50" height="50" class="alignnone size-full wp-image-1949" /></a> <a href="http://www.opera.com"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/logo_opera_small.png" alt="Opera" title="Opera" width="50" height="50" class="alignnone size-full wp-image-1948" /></a> <a href="http://www.google.com/chrome"><img src="http://www.normansblog.de/wp-content/uploads/2011/04/logo_chrome_new_small.png" alt="Chrome" title="Chrome" width="50" height="50" class="alignnone size-full wp-image-1945" /></a> <a href="http://ie.microsoft.com/"><img src="http://www.normansblog.de/wp-content/uploads/2010/11/logo_ie_new_small.png" alt="Internet Explorer" title="Internet Explorer" width="50" height="50" class="alignnone size-full" /></a></p>
</blockquote>
<h3>Syntax</h3>
<p>Background-Size wird zwar von vielen Browsern unterstützt, allerdings hat jedes Programm noch seine eigene Implementierung mit eigener Syntax. Alle folgenden Anweisungen sind nötig, um <code>background-size</code> auf allen Browsern, sofern diese die Technik auch unterstützen, zum Laufen zu bringen.</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;">div<span style="color: #6666ff;">.bg_size</span> <span style="color: #00AA00;">&#123;</span>
	-moz-background-size<span style="color: #00AA00;">:</span><span style="color: #933;">50%</span> <span style="color: #933;">25%</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Firefox */</span>
	-webkit-background-size<span style="color: #00AA00;">:</span><span style="color: #933;">50%</span> <span style="color: #933;">25%</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Safari, Chrome */</span>
	background-size<span style="color: #00AA00;">:</span><span style="color: #933;">50%</span> <span style="color: #933;">25%</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Opera, IE, W3C Standard */</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Die beiden Werte sind entweder Prozentangaben (prozentuale Breite und Höhe des Elements mit dem Hintergrund) oder Längenangaben in px, em oder sonstwas, dann gibt man direkt die Breite und Höhe des Hintergrundbildes an.</p>
<h4>background-size:50% 25%</h4>
<div style="margin:20px;height:200px;background:url(http://www.normansblog.de/wp-content/uploads/2009/11/firefox-512-150x150.png) no-repeat center center #adf;-moz-background-size:50% 25%;-webkit-background-size:50% 25%;background-size:50% 25%;"></div>
<h4>background-size:100px 10em</h4>
<div style="margin:20px;height:200px;background:url(http://www.normansblog.de/wp-content/uploads/2009/11/firefox-512-150x150.png) no-repeat center center #adf;-moz-background-size:100px 10em;-webkit-background-size:100px 10em;background-size:100px 10em;"></div>
<p>Neben diesen Möglichkeiten können wir aber auch noch zwischen den Schlüsselwerten <code>contain</code> und <code>cover</code> wählen. Contain skaliert das Bild so groß wie möglich aber noch so klein, dass es vollständig in das Element passt. Cover hingegen skaliert das Bild so klein es geht aber füllt das Element vollständig aus.</p>
<blockquote class="warning"><p><a href="http://www.apple.com/safari"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/logo_safari_small.png" alt="Safari" title="Safari" width="50" height="50" class="alignright size-full wp-image-1949" /></a>Die nachfolgenden Anweisungen funktionieren nicht in Safari. Dieser nutzt noch eine alte Implementierung, die kein cover oder contain beinhaltet.</p>
<p><strong>Update:</strong> Seit Version 5 (08.06.2010) besteht das Problem in Safari nicht mehr.</p>
</blockquote>
<h4>background-size:contain</h4>
<div style="margin:20px;height:200px;background:url(http://www.normansblog.de/wp-content/uploads/2009/11/firefox-512-150x150.png) no-repeat center center #adf;-moz-background-size:contain;-webkit-background-size:contain;background-size:contain;"></div>
<h4>background-size:cover</h4>
<div style="margin:20px;height:200px;background:url(http://www.normansblog.de/wp-content/uploads/2009/11/firefox-512-150x150.png) no-repeat center center #adf;-moz-background-size:cover;-webkit-background-size:cover;background-size:cover;"></div>
<h3>Fazit</h3>
<p>An sich ist das eine schöne Sache aber die Implementierung ist noch nicht in allen modernen Browsern gleich.. von daher seh ich noch keinen wahnsinnig großen Vorteil. Es macht sicherlich Sinn, wenn man Vektorgrafiken als Hintergrundbilder benutzt, dann kann man diese wunderbar verlustlos skalieren. Für <code>cover</code> oder <code>contain</code> gibt es sicherlich mehr Anwendungsfälle, z.B. <a href="http://ringvemedia.com/">gibt es Seiten</a>, die derzeit recht aufwändig versuchen ihr Hintergrundbild immer auf 100% Fensterbreite zu ziehen. Mit <code>background-size:cover</code> ist das jetzt kein Problem mehr.</p>
<p>Einmal müssen wir noch über Backgrounds reden, das nächste Mal geht&#8217;s nämlich um Background-Gradients, danach geht es dann mit Bordern weiter. <img src='https://www.normansblog.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>https://www.normansblog.de/css3-im-detail-background-size/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>CSS3 im Detail: Multiple Backgrounds</title>
		<link>https://www.normansblog.de/css3-im-detail-multiple-backgrounds/</link>
		<comments>https://www.normansblog.de/css3-im-detail-multiple-backgrounds/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 00:00:29 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[CSS3]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=2008</guid>
		<description><![CDATA[CSS3 im Detail: Multiple Backgrounds - bisher konnte man immer nur eine Hintergrundgrafik pro Element angeben, mit CSS3 gehört diese Grenze der Vergangenheit an.]]></description>
			<content:encoded><![CDATA[<p>Willkommen zum zweiten Teil der <em>CSS3 im Detail</em>-Reihe! <img src='https://www.normansblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://www.normansblog.de/css3-im-detail-multiple-backgrounds/"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/css3.jpg" alt="" title="css3" width="180" height="120" class="alignright size-full wp-image-1902" /></a>Diesmal geht es um die Möglichkeit einem Element mehrere Hintergrundbilder zu vergeben. Bisher war es nur möglich <strong>1 Bild pro Element</strong> als Hintergrund zu definieren. Wollte man mehr, mussten sogenannte Wrapper um das Element gesetzt werden. Das verursacht unnötiges Mark-up, was vielen schon lange ein Dorn im Auge war. Das zusätzliche Mark-up war sicherlich auch einer der Hauptgründe für die Einführung von <em>Multiple Backgrounds</em>.</p>
<p><span id="more-2008"></span></p>
<blockquote class="idea"><h3>Browserunterstützung</h3>
<p>Folgende Browser unterstützen diese Technik bereits vollständig:</p>
<p class="center"><a href="http://www.firefox.com"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/logo_firefox_small.png" alt="Firefox" title="Firefox" width="50" height="50" class="alignnone size-full wp-image-1946" /></a> <a href="http://www.apple.com/safari"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/logo_safari_small.png" alt="Safari" title="Safari" width="50" height="50" class="alignnone size-full wp-image-1949" /></a> <a href="http://www.opera.com"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/logo_opera_small.png" alt="Opera" title="Opera" width="50" height="50" class="alignnone size-full wp-image-1948" /></a> <a href="http://www.google.com/chrome"><img src="http://www.normansblog.de/wp-content/uploads/2011/04/logo_chrome_new_small.png" alt="Chrome" title="Chrome" width="50" height="50" class="alignnone size-full wp-image-1945" /></a> <a href="http://ie.microsoft.com/"><img src="http://www.normansblog.de/wp-content/uploads/2010/11/logo_ie_new_small.png" alt="Internet Explorer" title="Internet Explorer" width="50" height="50" class="alignnone size-full" /></a></p>
</blockquote>
<h3>Syntax</h3>
<p>Damit man die neue Technik nutzen kann, muss man lediglich mehrer URLs, das Attachment und die Position des Bildes in die <code>background</code>-Anweisung schreiben.</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;">div<span style="color: #6666ff;">.multiple_bgs</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;">url</span><span style="color: #00AA00;">&#40;</span>example_1.jpg<span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">no-repeat</span> <span style="color: #000000; font-weight: bold;">left</span> <span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span>
	<span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span>example_2.jpg<span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">no-repeat</span> <span style="color: #000000; font-weight: bold;">right</span> <span style="color: #000000; font-weight: bold;">bottom</span><span style="color: #00AA00;">,</span>
	<span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span>example_3.jpg<span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">no-repeat</span> <span style="color: #993333;">center</span> <span style="color: #993333;">center</span> <span style="color: #cc00cc;">#adf</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<div style="margin:20px;height:400px;background:url(http://www.normansblog.de/wp-content/uploads/2009/11/firefox-512-150x150.png) no-repeat left top,url(http://www.normansblog.de/wp-content/uploads/2009/11/firefox-512-150x150.png) no-repeat right bottom,url(http://www.normansblog.de/wp-content/uploads/2009/11/firefox-512-150x150.png) no-repeat center center #adf;"></div>
<h3>Anwendungen</h3>
<p>Ein gutes Beispiel ist mein Blog. Für die Darstellung des Contents benötige ich 3 Grafiken: den oberen Bereich, den Mittelteil und den unteren Bereich. Natürlich musste ich dafür 2 Wrapper um den eigentlich Content legen. Diese könnten entfallen, wenn ich Multiple Backgrounds nutzen würde.</p>
<p><strong>Update:</strong> Mittlerweile mach ich das auch. <img src='https://www.normansblog.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h3>Vor- und Nachteile</h3>
<p>Durch den Wegfall des zusätzlichen Mark-ups wird der Code etwas schlanker und semantisch korrekter.</p>
<p>Für den IE und Opera gibt es derzeit noch keine Lösungen oder Alternativen, von daher ist die Technik noch relativ unpraktikabel.</p>
<h3>Fazit</h3>
<p>Multiple Backgrounds lohnt sich nur an Stellen, die nicht so wichtig sind oder wenn man seine Leserschaft genau kennt und weiß, dass davon die meisten mit Firefox/Safari/Chrome unterwegs sind.</p>
<p>Viel Spaß beim Basteln! Wir sehen uns beim nächsten Mal. <img src='https://www.normansblog.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>https://www.normansblog.de/css3-im-detail-multiple-backgrounds/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CSS3 im Detail: RGBa</title>
		<link>https://www.normansblog.de/css3-im-detail-rgba/</link>
		<comments>https://www.normansblog.de/css3-im-detail-rgba/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 01:01:05 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[CSS3]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=1900</guid>
		<description><![CDATA[CSS3 im Detail: RGBa - endlich kann man Hintergründe, Schrift und Border halbtransparent machen und brauch dazu keine PNGs.]]></description>
			<content:encoded><![CDATA[<p>Hallo und herzlich willkommen zum ersten Teil meiner <em>CSS3 im Detail</em>-Reihe. <img src='https://www.normansblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://www.normansblog.de/css3-im-detail-rgba/"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/css3.jpg" alt="" title="css3" width="180" height="120" class="alignright size-full wp-image-1902" /></a>Während dieser Reihe möchte ich euch gern die wichtigsten Neuerungen, die <a href="http://www.w3.org/TR/css3-roadmap/">CSS3</a> mit sich bringt, vorstellen und einzeln näher betrachten. Weiterhin wird die Unterstützung in der derzeitigen Browserlandschaft aufgezeigt und welche Vor- und eventuell auch Nachteile die Techniken haben.</p>
<p>Im ersten Teil von <em>CSS3 im Detail</em> dreht sich alles um <a href="http://www.w3.org/TR/css3-color/#rgba-color">den neuen Farbraum RGBa</a>.</p>
<p><span id="more-1900"></span></p>
<blockquote class="warning"><p><a href="http://www.microsoft.com/ie"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/logo_ie_small.png" alt="Internet Explorer" title="Internet Explorer" width="50" height="50" class="alignright size-full wp-image-1947" /></a>Eins vorweg: Der Internet Explorer in Version 6, 7 und 8 unterstützt noch <em>keines</em> der Features. IE9 hingegen beherrscht erste CSS3 Spezifikationen. Mehr Infos gibts auf meiner <a href="http://www.normansblog.de/demos/browser-support-checklist-css3/">Browser Support Checklist CSS3</a>.</p>
</blockquote>
<h3 style="clear:both;">Neuer Farbraum &#8211; RGBa</h3>
<p>RGBa steht für <em>Red-Green-Blue-alphachannel</em>, also einem Quadrupel aus drei Farbwerten (Rot, Grün und Blau) und einem Transparenzwert (<a href="http://de.wikipedia.org/wiki/Alphakanal">Alphakanal</a>). Damit stellt es eine Weiterentwicklung des schon bekannten RGB Farbraumes dar und unterscheidet sich im Wesentlichen nur durch den vierten Kanal.</p>
<blockquote class="idea"><h3>Browserunterstützung</h3>
<p>Folgende Browser unterstützen diese Technik bereits vollständig:</p>
<p class="center"><a href="http://www.firefox.com"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/logo_firefox_small.png" alt="Firefox" title="Firefox" width="50" height="50" class="alignnone size-full wp-image-1946" /></a> <a href="http://www.apple.com/safari"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/logo_safari_small.png" alt="Safari" title="Safari" width="50" height="50" class="alignnone size-full wp-image-1949" /></a> <a href="http://www.opera.com"><img src="http://www.normansblog.de/wp-content/uploads/2010/02/logo_opera_small.png" alt="Opera" title="Opera" width="50" height="50" class="alignnone size-full wp-image-1948" /></a> <a href="http://www.google.com/chrome"><img src="http://www.normansblog.de/wp-content/uploads/2011/04/logo_chrome_new_small.png" alt="Chrome" title="Chrome" width="50" height="50" class="alignnone size-full wp-image-1945" /></a> <a href="http://ie.microsoft.com/"><img src="http://www.normansblog.de/wp-content/uploads/2010/11/logo_ie_new_small.png" alt="Internet Explorer" title="Internet Explorer" width="50" height="50" class="alignnone size-full" /></a></p>
</blockquote>
<h3>Syntax</h3>
<h4>RGBa ist ganz einfach:</h4>

<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: #6666ff;">.rgba</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span>rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">0.75</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p style="margin:20px;padding:20px;font:bold 28px/30px arial;background:#adf url(http://www.normansblog.de/wp-content/uploads/2009/11/firefox-512-150x150.png) no-repeat left center;color:rgba(255, 255, 255, 0.75);">75% Weißer Text</p>
<p>RGBa erlaubt es uns mit Hilfe des vierten Wertes eine Transparenz anzugeben. Ich habe hier 0.75 gewählt, d.h. der Text ist genau zu 75% sichtbar und zu 25% transparent. Es dürfen nur Werte zwischen 0 und 1 angegeben werden, wobei 0 für vollständig transparent (unsichtbar) und 1 für vollständig sichtbar steht.</p>
<h4>Zum Vergleich das bekannte RGB:</h4>

<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: #6666ff;">.rgb</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #993333;">rgb</span><span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">255</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p style="margin:20px;padding:20px;font:bold 28px/30px arial;background:#adf url(http://www.normansblog.de/wp-content/uploads/2009/11/firefox-512-150x150.png) no-repeat left center;color:rgb(255, 255, 255);">100% Weißer Text</p>
<p>Die alte Angabe von Farben in RGB bietet uns diese Möglichkeit nicht.</p>
<h3>Anwendungen</h3>
<p>Kleine Ursache, große Wirkung..</p>
<p>Da RGBa kann überall dort verwendet werden, wo <code>color</code> zum Einsatz kommt. Als Schriftfarbe habt ihr es eben gesehen, es bieten sich uns aber noch andere Anwendungsmöglichkeiten an:</p>
<h4>RGBa als Hintergrundfarbe</h4>

<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: #6666ff;">.trans</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span>rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">200</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">0.5</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<div style="margin:20px;background:transparent url(http://www.normansblog.de/wp-content/uploads/2009/11/firefox-512-150x150.png) no-repeat left center;">
<p style="padding:20px;font:bold 14px/18px arial;background-color:rgba(200, 0, 255, 0.5);color:#fff;">Dieser Absatz hat einen zu 50% transparenten, lila Hintergrund (sieht auf weißem Hintergrund wie Rosa aus).</p>
</div>
<h4>RGBa als Rahmenfarbe</h4>

<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: #6666ff;">.trans</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;">8px</span> <span style="color: #993333;">solid</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">180</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">0.25</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<div style="margin:20px;background:transparent url(http://www.normansblog.de/wp-content/uploads/2009/11/firefox-512-150x150.png) no-repeat left center;">
<p style="padding:20px;font:bold 14px/18px arial;border:8px solid rgba(0, 180, 0, 0.25);">Dieser Absatz hat einen zu 75% transparenten, grünen Rahmen.</p>
</div>
<h3>Vor- und Nachteile</h3>
<blockquote><p>Häh, das kann ich doch auch mit PNGs und Opacity machen, wozu brauch man das?</p>
</blockquote>
<p>Das stimmt wohl. Der entscheidende Vorteil von RGBa ist jedoch, dass ich mir die PNG Datei und den dazugehörigen HTTP-Request sparen kann. Opacity (was es übrigens offiziell auch erst mit CSS3 gibt) hingegen macht leider nicht nur den Hintergrund, sondern auch den Inhalt des Elements transparent.</p>
<p>Der Nachteil von RGBa ist <strong>noch</strong> ganz klar die fehlende Unterstützung des IEs. Wenn man es sich erlauben kann, sollte man daher einfach eine Fallbacklösung in Betracht ziehen. D.h. dass man dem IE anstatt der RGBa Werte einfach nur die äquivalenten RGB Werte übergibt:</p>
<h4>Lösung für den IE</h4>

<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;">.trans</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span>rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">180</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">0.25</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* der IE ignoriert diese Zeile */</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #993333;">rgb</span><span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">190</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">230</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">190</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* entspricht in etwa der selben Farbe */</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<h3>Fazit</h3>
<p>RGBa wird sich, wenn es das nicht schon bei vielen getan hat, durchsetzen. Es ist sehr flexibel und hat im Grunde keine Nachteile. Durch den Wegfall von unnötigen halbtransparenten PNG Dateien spart man außerdem Traffic und die Seite kann schneller geladen werden.</p>
<p>Ich hoffe die Beispiele waren hilfreich und wünsche euch viel Spaß beim experimentieren! Bis zum nächsten Mal. <img src='https://www.normansblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>https://www.normansblog.de/css3-im-detail-rgba/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Simple jQuery Accordion</title>
		<link>https://www.normansblog.de/simple-jquery-accordion/</link>
		<comments>https://www.normansblog.de/simple-jquery-accordion/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 20:26:53 +0000</pubDate>
		<dc:creator>Norman</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.normansblog.de/?p=1587</guid>
		<description><![CDATA[Wie macht man eigentlich.. Habt ihr schon mal eine Seite mit so einem netten Accordion-Effekt gesehen und euch gefragt wie das geht? Ich erkläre es euch, schaut euch doch aber erstmal die Demo an, damit ihr wisst, was ich meine. Wie ihr seht, klappt immer der Bereich auf, auf den geklickt wird. Alle anderen Blöcke [...]]]></description>
			<content:encoded><![CDATA[<p>Wie macht man eigentlich..</p>
<p><a href="http://www.normansblog.de/simple-jquery-accordion/"><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>Habt ihr schon mal eine Seite mit so einem netten Accordion-Effekt gesehen und euch gefragt wie das geht? Ich erkläre es euch, schaut euch doch aber erstmal <a href="http://www.normansblog.de/demos/simple-jquery-accordion/">die Demo</a> an, damit ihr wisst, was ich meine.</p>
<p>Wie ihr seht, klappt immer der Bereich auf, auf den geklickt wird. Alle anderen Blöcke bleiben dagegen geschlossen oder schließen sich. Wir bedienen uns hier einfach jQuery und schreiben ein paar Zeilen Code, die den gewünschten Accordion-Effekt realisieren.</p>
<p><span id="more-1587"></span></p>
<div class="demolink"><a href="http://www.normansblog.de/demos/simple-jquery-accordion/">Accordion Demo</a></div>
<h3>HTML-Gerüst</h3>
<p>Bevor wir anfangen müssen wir unser HTML aber entsprechend vorbereiten..</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;">h3</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;trigger&quot;</span>&gt;</span>Accordion Box 3<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;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;toggle_container&quot;</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>Lorem ipsum dolor sit amet...<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>Jeder dieser Blöcke besteht aus einer Überschrift, die später anklickbar sein wird und einem Container, der den eigentlichen Inhalt des Blocks enthält. Wichtig ist, dass wir die Klassen <em>trigger</em> den Überschriften und <em>toggle_container</em> den Containern geben, da später unser jQuery-Code an Hand derer die Aktionen ausführt. Es ist also egal, ob die Überschrift eine <code>h1</code>, <code>h2</code> oder einfach nur ein <code>div</code> ist, wichtig ist die Klasse und dass danach sofort der Container folgt.</p>
<h3>jQuery-Code</h3>
<p>Nun zum eigentlichen Code. Vergesst aber nicht, dass ihr vor diesem Script die jQuery-Bibliothek in euer Dokument einbinden müsst! Wie das geht, erfahrt ihr auf der<a href="http://docs.jquery.com/How_jQuery_Works"> offiziellen jQuery-Seite</a>.</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
</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: #009900;">&#40;</span><span style="color: #3366CC;">'.trigger'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">not</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.trigger_active'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">next</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.toggle_container'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">hide</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.trigger'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</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: #000066; font-weight: bold;">var</span> trig <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> trig.<span style="color: #660066;">hasClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'trigger_active'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			trig.<span style="color: #660066;">next</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.toggle_container'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slideToggle</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'slow'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			trig.<span style="color: #660066;">removeClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'trigger_active'</span><span style="color: #009900;">&#41;</span><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>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.trigger_active'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">next</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.toggle_container'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slideToggle</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'slow'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.trigger_active'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">removeClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'trigger_active'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			trig.<span style="color: #660066;">next</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.toggle_container'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slideToggle</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'slow'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			trig.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'trigger_active'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Nun zur Erklärung, was da eigentlich abläuft..</p>
<ol>
<li>Erst nachdem das <a href="http://de.wikipedia.org/wiki/Document_Object_Model">DOM</a> vollständig geladen ist, greift das Script.</li>
<li>Schließe alle Container, deren Übschrift nicht die Klasse <em>trigger_active</em> hat.</li>
<li>Klickt man auf ein Element der Klasse <em>trigger</em> wird geprüft:
<ul>
<li>Hat es auch die <em>trigger_active</em>-Klasse? Dann mach den darauf folgenden Container zu und entferne die active-Klasse.</li>
<li>Ansonsten schließe alle offenen Container und öffne nur den Container, der zur gerade angeklickten Überschrift gehört und gib dieser die active-Klasse.</li>
</ul>
</li>
<li>Es wird kein Wert am Ende der Funktion zurückgegeben (sollte eine Überschrift gleichzeitig ein Link sein).</li>
</ol>
<blockquote class="idea">
<h4>Zu 2.: Stichwort &#8211; Accessibility</h4>
<p>Das Schließen der Container würde auch über CSS (display:none) gehen aber was ist, wenn JavaScript nicht aktiviert ist? Dann würden die Leute den Inhalt der Container nicht mehr sehen, weil das Accordion nicht funktioniert.</p>
</blockquote>
<h3>Styling per CSS</h3>
<p>Um das Ganze noch abzurunden, hier der CSS-Code der Demo.</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
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.trigger</span> <span style="color: #00AA00;">&#123;</span>
	-moz-border-radius<span style="color: #00AA00;">:</span><span style="color: #933;">5px</span><span style="color: #00AA00;">;</span>
	-webkit-border-radius<span style="color: #00AA00;">:</span><span style="color: #933;">5px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">border-radius</span><span style="color: #00AA00;">:</span><span style="color: #933;">5px</span><span style="color: #00AA00;">;</span>
	-moz-box-shadow<span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span> <span style="color: #933;">1px</span> <span style="color: #933;">1px</span> <span style="color: #cc00cc;">#fff</span> <span style="color: #993333;">inset</span><span style="color: #00AA00;">;</span>
	-webkit-box-shadow<span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span> <span style="color: #933;">1px</span> <span style="color: #933;">1px</span> <span style="color: #cc00cc;">#fff</span> <span style="color: #993333;">inset</span><span style="color: #00AA00;">;</span>
	box-shadow<span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span> <span style="color: #933;">1px</span> <span style="color: #933;">1px</span> <span style="color: #cc00cc;">#fff</span> <span style="color: #993333;">inset</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #3333ff;">:-moz-linear-</span>gradient<span style="color: #00AA00;">&#40;</span><span style="color: #993333;">center</span> <span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#e9e9e9</span> <span style="color: #933;">50%</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#ddd</span> <span style="color: #933;">50%</span><span style="color: #00AA00;">&#41;</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;">#ddd</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;">#ddd</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#888</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">cursor</span><span style="color: #00AA00;">:</span><span style="color: #993333;">pointer</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;">5px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #933;">5px</span><span style="color: #00AA00;">;</span>
	<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: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">388px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.trigger_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;">#333</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.toggle_container</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;">5px</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;">380px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<blockquote class="idea"><p>Wenn ihr das Problem habt, dass die Animation nicht flüssig ist sondern abrupt endet, versucht mal der Klasse <code>trigger_container</code> eine feste Breite zu geben. Damit sollte es klappen.</p>
</blockquote>
<p>Allerdings ist das natürlich nur ein sehr rudimentäres Aussehen. Wie wäre es zum Beispiel mit einem Plus- oder Minussymbol, damit Benutzer gleich wissen: &#8220;Ah, hier kann ich also etwas auf-/zuklappen&#8221;? Eurer Kreativität sind hier natürlich keine Grenzen gesetzt. Viel Spaß mit eurem Accordion. <img src='https://www.normansblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="demolink"><a href="http://www.normansblog.de/demos/simple-jquery-accordion/">Accordion Demo</a></div>
]]></content:encoded>
			<wfw:commentRss>https://www.normansblog.de/simple-jquery-accordion/feed/</wfw:commentRss>
		<slash:comments>54</slash:comments>
		</item>
		<item>
		<title>Wenn CSS nicht mehr reicht..</title>
		<link>https://www.normansblog.de/when-css-is-not-enough/</link>
		<comments>https://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="https://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='https://www.normansblog.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>https://www.normansblog.de/when-css-is-not-enough/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Problemlösung</title>
		<link>https://www.normansblog.de/puzzle-solution/</link>
		<comments>https://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='https://www.normansblog.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>https://www.normansblog.de/puzzle-solution/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Einblick in CSS3</title>
		<link>https://www.normansblog.de/preview-on-css3/</link>
		<comments>https://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="https://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='https://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='https://www.normansblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>https://www.normansblog.de/preview-on-css3/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>CSS Einsteiger Tutorial #3</title>
		<link>https://www.normansblog.de/css-beginner-tutorial-3/</link>
		<comments>https://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="https://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="https://www.normansblog.de/css-beginner-tutorial-1/">Teil #1 (XHTML+CSS, Syntax)</a></li>
<li><a href="https://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='https://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='https://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="https://www.normansblog.de/css-beginner-tutorial-1/">Teil #1 (XHTML+CSS, Syntax)</a></li>
<li><a href="https://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='https://www.normansblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p></blockquote>
]]></content:encoded>
			<wfw:commentRss>https://www.normansblog.de/css-beginner-tutorial-3/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>CSS Einsteiger Tutorial #2</title>
		<link>https://www.normansblog.de/css-beginner-tutorial-2/</link>
		<comments>https://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="https://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="https://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='https://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='https://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='https://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="https://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="https://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='https://www.normansblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p></blockquote>
]]></content:encoded>
			<wfw:commentRss>https://www.normansblog.de/css-beginner-tutorial-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>CSS Einsteiger Tutorial #1</title>
		<link>https://www.normansblog.de/css-beginner-tutorial-1/</link>
		<comments>https://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="https://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='https://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='https://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='https://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='https://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="https://www.normansblog.de/css-beginner-tutorial-2/">Teil #2 (Syntax, Selektoren, Box-Model)</a></li>
<li><a href="https://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='https://www.normansblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p></blockquote>
]]></content:encoded>
			<wfw:commentRss>https://www.normansblog.de/css-beginner-tutorial-1/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Überschrift mit Schatten</title>
		<link>https://www.normansblog.de/shadedheadlines/</link>
		<comments>https://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='https://www.normansblog.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>https://www.normansblog.de/shadedheadlines/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
