<?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>HTML / XHTML &#8211; webmatze.de</title>
	<atom:link href="https://webmatze.de/category/webseiten-erstellen/html-xhtml/feed/" rel="self" type="application/rss+xml" />
	<link>https://webmatze.de</link>
	<description>Profi Tipps für einen erfolgreichen Internetauftritt</description>
	<lastBuildDate>Thu, 07 Nov 2024 13:16:42 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>
	<item>
		<title>Eine smarte ZSH-Funktion: cat für Dateien und URLs</title>
		<link>https://webmatze.de/eine-smarte-zsh-funktion-cat-fuer-dateien-und-urls/</link>
					<comments>https://webmatze.de/eine-smarte-zsh-funktion-cat-fuer-dateien-und-urls/#respond</comments>
		
		<dc:creator><![CDATA[Mathias Karstädt]]></dc:creator>
		<pubDate>Thu, 07 Nov 2024 13:16:42 +0000</pubDate>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[HTML / XHTML]]></category>
		<guid isPermaLink="false">https://webmatze.de/?p=1072</guid>

					<description><![CDATA[Als Unix/Linux-Nutzer kennen wir alle den beliebten 'cat' Befehl, um Dateiinhalte anzuzeigen. Aber was, wenn wir den gleichen, vertrauten Befehl auch für URLs verwenden möchten? Hier ist eine elegante Lösung in Form einer ZSH-Funktion. Die folgende Funktion erweitert den klassischen 'cat' Befehl so, dass er sowohl mit lokalen Dateien als auch mit URLs umgehen kann: [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Als Unix/Linux-Nutzer kennen wir alle den beliebten 'cat' Befehl, um Dateiinhalte anzuzeigen. Aber was, wenn wir den gleichen, vertrauten Befehl auch für URLs verwenden möchten? Hier ist eine elegante Lösung in Form einer ZSH-Funktion.</p>
<p>Die folgende Funktion erweitert den klassischen 'cat' Befehl so, dass er sowohl mit lokalen Dateien als auch mit URLs umgehen kann:</p>
<p><script src="https://gist.github.com/webmatze/64e94b1df232febed51a36d2932f4807.js"></script></p>
<p>Die Funktion prüft mittels eines regulären Ausdrucks, ob das übergebene Argument eine URL ist. Falls ja, wird <strong>curl</strong> verwendet, um den Inhalt herunterzuladen und anzuzeigen. Bei normalen Dateien wird der Standard-<strong>cat</strong>-Befehl verwendet.</p>
<p>Beispiele für die Verwendung:</p>
<ul>
<li><code>cat datei.txt</code> -&gt; Zeigt den Inhalt einer lokalen Datei</li>
<li><code>cat https://github.com/beispiel</code> -&gt; Zeigt den HTML-Inhalt der Website</li>
</ul>
<p>Die Funktion könnt ihr einfach in eure <code>~/.zshrc</code> einfügen und nach dem Neuladen der Shell sofort nutzen.</p>
<p>Ein kleiner, aber feiner Hack, der den Workflow beim Arbeiten mit Dateien und Webinhalten vereinfacht. Das ist Unix-Philosophie at its best: Bestehende Werkzeuge erweitern, ohne ihre ursprüngliche Funktionalität zu beeinträchtigen.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://webmatze.de/eine-smarte-zsh-funktion-cat-fuer-dateien-und-urls/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Schatten mit CSS Pseudo-Elementen hinzufügen</title>
		<link>https://webmatze.de/schatten-mit-css-pseudo-elementen-hinzufugen/</link>
					<comments>https://webmatze.de/schatten-mit-css-pseudo-elementen-hinzufugen/#respond</comments>
		
		<dc:creator><![CDATA[Mathias Karstädt]]></dc:creator>
		<pubDate>Tue, 02 Aug 2011 21:05:04 +0000</pubDate>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML / XHTML]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[pseudo elements]]></category>
		<guid isPermaLink="false">http://webmatze.de/?p=665</guid>

					<description><![CDATA[In diesem Beitrag möchte ich euch zeigen, wie man mit ganz einfachen Mitteln einen Schatteneffekt an beliebige Block-Elemente hinzufügen kann. Der Clou dabei ist jedoch, dass dafür kein HTML angefasst werden muss, sondern dies ausschließlich über normale CSS Mittel funktioniert. Ja klar, werden jetzt einige rufen. Dafür kann man ja einfach die CSS Deklaration box-shadow verwenden! Richtig. [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><strong>In diesem Beitrag möchte ich euch zeigen, wie man mit ganz einfachen Mitteln einen Schatteneffekt an beliebige Block-Elemente hinzufügen kann. Der Clou dabei ist jedoch, dass dafür kein HTML angefasst werden muss, sondern dies ausschließlich über normale CSS Mittel funktioniert.</strong></p>
<p>Ja klar, werden jetzt einige rufen. Dafür kann man ja einfach die CSS Deklaration <a title="CSS3 box-shadow" href="http://www.w3.org/TR/css3-background/#the-box-shadow">box-shadow</a> verwenden! Richtig. CSS3 erlaubt es seit einiger Zeit, mit <strong>box-shadow</strong> schöne Schatteneffekte an beliebige HTML Elemente zu zaubern und ist dabei ziemlich flexibel.</p>
<p>Aber leider ist es wie mit vielen neuen Dingen - einige Browser unterstützen es noch nicht, oder nur mit speziellen Browserprefixen wie <strong>-moz-</strong>, <strong>-o-</strong> oder<strong> -webkit-</strong>. Dies bedeutet, man muss diese Deklaration für jeden Browser in seiner speziellen Schreibweise wiederholen und bläst damit sein Stylesheet unnötig auf. Und selbst dann werden ältere Browser wie IE8 (und niedriger) oder Opera 10.10 (oder niedriger) <a href="http://www.quirksmode.org/css/contents.html#link5">nicht unterstützt</a>.</p>
<p>Aus diesem Grund möchte ich euch eine weitere Möglichkeit vorstellen, wie man noch einen Schatten erstellen kann.</p>
<h3>Gestatten, Pseudo-Elemente :before und :after</h3>
<p>CSS2 bietet schon seit einiger Zeit die Möglichkeit mit Hilfe der <a href="http://www.w3.org/TR/CSS2/selector.html#before-and-after">Pseudo-Elemente :before und :after</a> Inhalte vor bzw. nach Elementen per CSS hinzuzufügen. So lässt sich zum Beispiel mit folgender Anweisung vor allen Link-Elementen ein Text hinzufügen:</p>
<pre lang="css">a:before {content: "Ich bin ein Link: "}</pre>
<p>Und das alles, ohne etwas am HTML selbst ändern zu müssen. Und ein weiterer Vorteil für uns ist, dass diese Pseudo-Elemente auch schon von einigen älteren Browserversionen unterstützt werden und zudem noch ohne spezielle Prefixe auskommen.</p>
<p><span id="more-665"></span></p>
<h3>Wie entsteht nun der Schatteneffekt?</h3>
<p>Wir nutzen den Umstand, dass der so hinzugefügte Text vom Browser als Block-Element behandelt wird, wenn dieser auch auf ein Block-Element angewandt wird. Er verhält sich also genau so, als wenn wir ein neues DIV-Element hinzugefügt hätten.</p>
<p>Wenn wir dieses Element nun noch mit einer Hintergrundfarbe versehen und entsprechend positionieren, können wir so einen passablen Schatteneffekt erzeugen. Wie genau dies aussieht, könnt ihr nun (endlich) hier sehen:</p>
<div id="box" class="shadowme">Diese Box hat einen schönen Schatten. Wenn Ihr mit der Maus darüberfahrt, seht ihr auch, dass sich der Schatten der Größe der Box anpasst.</div>
<p>Da habt ihr es. Ist der Schatten nicht schön?</p>
<p>Jetzt werde ich euch noch schnell den dazu notwendigen Code zeigen und schon steht euch nichts mehr im Wege, um solche Schatten selbst in euren Seiten zu verwenden.</p>
<p>Hier das HTML:</p>
<pre lang="html4strict">
<div id="box" class="shadowme">Diese Box hat einen schönen Schatten. 
Wenn Ihr mit der Maus darüberfahrt, seht ihr auch, 
dass sich der Schatten der Größe der Box anpasst.</div>
</pre>
<p>Und hier das entsprechende CSS:</p>
<pre lang="css">      
#box {
  background-color: green;
  position: relative;
  width: 50%;
  text-align: center;
  margin: 0px auto;
  padding: 10px;
  color: #fff;
  font-family: sans-serif;
  margin-bottom: 20px;
}
#box:hover {
  font-size: 150%;
}
.shadowme:after {
  content: "";
  background-color: lightGrey;
  position: absolute;
  bottom: -5px;
  right: -5px;
  width: 100%;
  height: 5px;
}
.shadowme:before {
  content: "";
  background-color: lightGrey;
  position: absolute;
  top: 5px;
  right: -5px;
  width: 5px;
  height: 100%;
}</pre>
<p>Ich wünsche Euch viel Spaß damit und bei Fragen oder Hinweisen könnt ihr gerne die Kommentarfunktion verwenden. :)</p>
]]></content:encoded>
					
					<wfw:commentRss>https://webmatze.de/schatten-mit-css-pseudo-elementen-hinzufugen/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Ein einfacher Cross-Browser Tooltip mit Javascript und CSS</title>
		<link>https://webmatze.de/ein-einfacher-cross-browser-tooltip-mit-javascript-und-css/</link>
					<comments>https://webmatze.de/ein-einfacher-cross-browser-tooltip-mit-javascript-und-css/#comments</comments>
		
		<dc:creator><![CDATA[Mathias Karstädt]]></dc:creator>
		<pubDate>Tue, 24 Aug 2010 17:00:43 +0000</pubDate>
				<category><![CDATA[Browser]]></category>
		<category><![CDATA[HTML / XHTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Programmierung]]></category>
		<guid isPermaLink="false">http://webmatze.de/?p=555</guid>

					<description><![CDATA[Vor einiger Zeit habe ich hier auf webmatze.de einen einfachen auf JavaScript und CSS basierenden Tooltip vorgestellt, mit dem sich schnell und einfach Tooltips in die eigenen Seiten integrieren ließen. Dieser funktionierte soweit auch ganz gut in vielen Browsern, doch die Zeit ist nicht stillgestanden und seit der Veröffentlichung hat es einige neue Browserversionen und [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Vor einiger Zeit habe ich hier auf webmatze.de einen <a href="http://webmatze.de/wirklich-einfache-javascript-tooltips/">einfachen auf JavaScript und CSS basierenden Tooltip</a> vorgestellt, mit dem sich schnell und einfach Tooltips in die eigenen Seiten integrieren ließen. Dieser funktionierte soweit auch ganz gut in vielen Browsern, doch die Zeit ist nicht stillgestanden und seit der Veröffentlichung hat es einige neue Browserversionen und sogar <a href="http://webmatze.de/google-chrome-der-neue-browser/">ganz neue Browser</a> gegeben.</p>



<p>Leider führte dies auch dazu, dass das alte Tooltip Script nun leider nicht mehr in allen wichtigen Browsern funktioniert. Aber auch in den Browsern, wo es funktionierte, ist es unter Umständen zu Fehlern gekommen.</p>



<p>Dies will ich nun zum Anlass nehmen und euch ein komplett neues Tooltip Script zur Verfügung stellen.</p>



<h2 class="wp-block-heading">XBT - Der Cross-Browser Tooltip</h2>



<p>Okay, über Namen lässt sich bestimmt streiten, aber irgendwie muss das Kind ja heißen. Das neue Script basiert auf ein paar Zeilen JavaScript und ist nur geringfügig größer als das alte Script. Dafür ist es jedoch viel flexibler zu konfigurieren, kollidiert nicht mit anderen Scripten und lässt sich leicht über CSS beliebig anpassen. Und wer möchte, kann das Script auch ohne Probleme um neue Funktionen erweitern.</p>



<p>Hier könnt ihr den Code sehen:</p>



<span id="more-555"></span>



<pre class="wp-block-code"><code lang="javascript" class="language-javascript line-numbers">(function (window, document, undefined) {
    var XBTooltip = function (element, userConf, tooltip) {
        var config = {
            id: userConf.id || undefined,
            className: userConf.className || undefined,
            x: userConf.x || 20,
            y: userConf.y || 20,
            text: userConf.text || undefined
        };

        var over = function (event) {
                tooltip.style.display = "block";
            },
            out = function (event) {
                tooltip.style.display = "none";
            },
            move = function (event) {
                event = event ? event : window.event;
                if (event.pageX == null &amp;&amp; event.clientX != null) {
                    var doc = document.documentElement, body = document.body;
                    event.pageX = event.clientX + (doc &amp;&amp; doc.scrollLeft || body &amp;&amp; body.scrollLeft || 0) - (doc &amp;&amp; doc.clientLeft || body &amp;&amp; body.clientLeft || 0);
                    event.pageY = event.clientY + (doc &amp;&amp; doc.scrollTop || body &amp;&amp; body.scrollTop || 0) - (doc &amp;&amp; doc.clientTop || body &amp;&amp; body.clientTop || 0);
                }
                tooltip.style.top = (event.pageY + config.y) + "px";
                tooltip.style.left = (event.pageX + config.x) + "px";
            }
        if (tooltip === undefined &amp;&amp; config.id) {
            tooltip = document.getElementById(config.id);
            if (tooltip) tooltip = tooltip.parentNode.removeChild(tooltip)
        }
        if (tooltip === undefined &amp;&amp; config.text) {
            tooltip = document.createElement("div");
            if (config.id) tooltip.id = config.id;
            tooltip.innerHTML = config.text;
        }
        if (config.className) tooltip.className = config.className;
        tooltip = document.body.appendChild(tooltip);
        tooltip.style.position = "absolute";
        element.onmouseover = over;
        element.onmouseout = out;
        element.onmousemove = move;
        over();
    };
    window.XBTooltip = window.XBT = XBTooltip;
})(this, this.document);</code></pre>



<p>Das einzig wirklich benötigte CSS für den Tooltip sieht so aus:</p>



<pre class="wp-block-code"><code lang="css" class="language-css line-numbers">.xbtooltip {
  display: none;
  position: absolute;
  background-color: #fff;
}</code></pre>



<p>Dieser kann aber für jeden einzelnen Tooltip noch einmal separat überschrieben werden. Doch dazu später mehr.</p>



<h2 class="wp-block-heading">Tooltip Beispiele</h2>



<p>Kommen wir also zu ein paar einfachen Beispielen, wie man das XBT Tooltip Script einsetzen kann.</p>



<h3 class="wp-block-heading">Einfacher Tooltip</h3>



<p>Der einfachste mögliche Tooltip benötigt einen Link und ein DIV Element mit dem anzuzeigenden Inhalt für den Tooltip.</p>



<pre class="wp-block-code"><code lang="markup" class="language-markup line-numbers">&lt;a href="http://webmatze.de" onMouseOver="XBT(this, {id:'tt1'})">Ein normaler Tooltip...&lt;/a>
&lt;div id="tt1" className="xbtooltip">...mit bereits vorhandenem Inhalt.&lt;/div></code></pre>



<p>Dem Tooltip Script wird also über eine Konfiguration welche in geschweiften Klammern steht, die <strong>id</strong> des Elementes übergeben, welches den Inhalt für den Tooltip enthält. Mehr ist hier nicht notwendig.</p>



<p>Das entsprechende CSS dazu kann z.B. so aussehen:</p>



<pre class="wp-block-code"><code lang="css" class="language-css line-numbers">#tt1 {
      background-color: #00FFFF;
      color: green;
      padding: 3px;
      width: 120px;
    }</code></pre>



<p>Und so sieht dann der Link mit dem Tooltip aus:</p>



<p><a href="http://webmatze.de" onmouseover="XBT(this, {id:'tt1'})">Ein normaler Tooltip...</a><div id="tt1" class="xbtooltip">...mit bereits vorhandenem Inhalt.</div></p>



<h3 class="wp-block-heading">Inhalt als Konfiguration übergeben</h3>



<p>Wer nicht extra für jeden Tooltip ein extra DIV Element erstellen möchte, kann den gewünschten Inhalt für den Tooltip auch gleich als <strong>text</strong> übergeben. Das kann dann z.B. so aussehen:</p>



<pre class="wp-block-code"><code lang="markup" class="language-markup line-numbers">&lt;a href="http://webmatze.de"
   onMouseOver="XBT(this, {text: '...indem man ihn &amp;lt;strong&amp;gt;als Text&amp;lt;/strong&amp;gt; übergibt', className: 'xbtooltip'})">
Man kann den Inhalt des Tooltips auch dynamisch erstellen lassen...
&lt;/a></code></pre>



<p>Als Konfiguration wird also nicht mehr eine <strong>id</strong> übergeben, sondern ein beliebiger Text, der auch HTML Elemente enthalten kann. Über den Parameter <strong>className</strong> kann man dem Tooltip dann einen beliebigen Style zuordnen.</p>



<p>Und so sieht das Ganze dann aus:</p>



<p><a href="http://webmatze.de"
   onMouseOver="XBT(this, {text: '...indem man ihn &lt;strong&gt;als Text&lt;/strong&gt; übergibt', className: 'xbtooltip'})">
Man kann den Inhalt des Tooltips auch dynamisch erstellen lassen...
</a></p>



<h3 class="wp-block-heading">Den Abstand des Tooltips anpassen</h3>



<p>Wenn man möchte, dass der Tooltip nicht direkt neben dem Mauszeiger, sondern weiter entfernt angezeigt wird, kann man dies über die Konfiguration anpassen. Dazu gibt es die beiden Parameter <strong>x</strong> und <strong>y</strong>.</p>



<pre class="wp-block-code"><code lang="markup" class="language-markup line-numbers">&lt;a<ins> href="http://webmatze.de"</ins> onmouseover="XBT(this, {id: 'tt4', x: 50, y: 50})">Man kann den Abstand des Tooltips anpassen...&lt;/a>
&lt;div id="tt4" class="xbtooltip">
...indem man eine Konfiguration übergibt
&lt;/div></code></pre>



<p>Somit wird der Tooltip nun jeweils 50 Pixel nach rechts und unten verschoben angezeigt.</p>



<p><a href="http://webmatze.de" onmouseover="XBT(this, {id: 'tt4', x: 50, y: 50})">Man kann den Abstand des Tooltips anpassen...</a>
<div id="tt4" class="xbtooltip">
...indem man eine Konfiguration übergibt
</div></p>



<h3 class="wp-block-heading">Funktioniert nicht nur bei Links</h3>



<p>Natürlich kann man den Tooltip auch an andere HTML Elemente hängen. Es muss nicht immer ein Link sein.</p>



<pre class="wp-block-code"><code lang="markup" class="language-markup line-numbers">&lt;div style="position: relative; top: 0px; left: 150px; width: 200px; height: 100px; background-color: #e4e4e4;" 
  onmouseover="XBT(this, {id:'tt2'})">Das
    funktioniert auch mit DIVs statt mit Links...
    &lt;div id="tt2" className="xbtooltip">...soweit der Browser onmouseover auf DIV Elementen unterstützt!&lt;/div>
&lt;/div></code></pre>



<p>Dies würde dann so aussehen:</p>



<div style="position: relative; top: 0px; left: 150px; width: 200px; height: 100px; background-color: #e4e4e4;" onmouseover="XBT(this, {id:'tt2'})">Das funktioniert auch mit DIVs statt mit Links...
<div id="tt2" class="xbtooltip">...soweit der Browser onmouseover auf DIV Elementen unterstützt!</div>
</div>



<h3 class="wp-block-heading">In absolut positionierten Elementen funktioniert es auch</h3>



<p>Mit dem alten Tooltip Script gab es immer Probleme mit Tooltips, die sich in anderen absolut prositionierten Elementen befanden. Hier wurden die Tooltips immer an einer falschen Position angezeigt.</p>



<p>Mit dem neuen Script ist dies nun auch kein Problem mehr:</p>



<pre class="wp-block-code"><code lang="markup" class="language-markup line-numbers">&lt;div style="position: absolute; top: 0px; left: 300px; width: 200px; height: 100px; background-color: #e4e4e4;">
    &lt;a href="http://eventicus.de" onmouseover="XBT(this, {id:'tt3'})">Genauso auch mit Tooltips...&lt;/a>
    &lt;div id="tt3" class="xbtooltip">...die sich in absolut positionierten Elementen befinden.&lt;/div>
&lt;/div></code></pre>



<p>Und so sieht's dann aus:</p>



<div style="position: relative; height: 130px;">
<div style="position: absolute; top: 0px; left: 300px; width: 200px; height: 100px; background-color: #e4e4e4;">
    <a href="http://eventicus.de" onmouseover="XBT(this, {id:'tt3'})">Genauso auch mit Tooltips...</a>
    <div id="tt3" class="xbtooltip">...die sich in absolut positionierten Elementen befinden.</div>
</div>
</div>



<h2 class="wp-block-heading">Fazit</h2>



<p>Ich hoffe ihr könnt mit diesem neuen Script etwas anfangen und wünsche euch viel Spaß damit. Sollten euch doch noch Probleme auffallen, oder sollte es in einem Browser nicht richtig funktionieren, so könnt ihr mir dies wie immer in den Kommentaren mitteilen.</p>



<p>Ich denke auch das neue Script ist immer noch sehr kompakt und einfach zu verwenden. Vielleicht werde ich in Zukunft noch ein paar Funktionen nachrüsten, sofern ihr noch Wünsche habt, die unbedingt enthalten sein sollten.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://webmatze.de/ein-einfacher-cross-browser-tooltip-mit-javascript-und-css/feed/</wfw:commentRss>
			<slash:comments>95</slash:comments>
		
		
			</item>
		<item>
		<title>Wie erstelle ich eine Webseite?</title>
		<link>https://webmatze.de/wie-erstelle-ich-eine-webseite/</link>
					<comments>https://webmatze.de/wie-erstelle-ich-eine-webseite/#comments</comments>
		
		<dc:creator><![CDATA[Mathias Karstädt]]></dc:creator>
		<pubDate>Tue, 11 Aug 2009 12:28:56 +0000</pubDate>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML / XHTML]]></category>
		<category><![CDATA[Planung]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Webseiten erstellen]]></category>
		<category><![CDATA[homepage]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[webhoster]]></category>
		<category><![CDATA[webspace]]></category>
		<guid isPermaLink="false">http://webmatze.de/?p=478</guid>

					<description><![CDATA[An diesem Punkt hat jeder schon einmal gestanden. Man hat so viele verschiedene gute oder auch weniger gute Webseiten im Internet besucht und die eine oder andere gute Information für sich aus diesen Seiten gezogen. Doch wenn man Anderen sein eigenes Wissen oder die eigenen Ansichten und Gedanken mitteilen möchte, wird man nicht drum herum [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>An diesem Punkt hat jeder schon einmal gestanden. Man hat so viele verschiedene gute oder auch weniger gute Webseiten im Internet besucht und die eine oder andere gute Information für sich aus diesen Seiten gezogen. Doch wenn man Anderen sein eigenes Wissen oder die eigenen Ansichten und Gedanken mitteilen möchte, wird man nicht drum herum kommen, sich eine eigene Homepage zu erstellen.</p>
<p>Doch wie genau funktioniert das? Und welche Tools brauche ich dafür? Genau diesen Fragen möchte ich in diesem und in kommenden Artikeln auf den Grund gehen.<br />
<span id="more-478"></span></p>
<h3>Was brauche ich für meine eigene Webseite?</h3>
<p>Um zu starten braucht es eigentlich nicht viel. Die wenigen Dinge, die man wirklich benötigt, habe ich hier mal in einer Liste näher beschrieben.</p>
<ul>
<li><strong>Etwas Zeit</strong><br />
Eine gute Homepage lässt sich nicht einfach in wenigen Minuten erstellen, darum sollte man sich auch die entsprechende Zeit nehmen.</li>
<li><strong>Einen Plan</strong><br />
Man kann keine eigene Webseite erstellen, ohne vorher zu wissen, welches Ziel man eigentlich mit dieser Seite verfolgen will. Möchte man ein Tagebuch schreiben? Will man Informationen zu einem bestimmten Thema zusammentragen und aufbereiten? Will man sich selbst und die eigenen Projekte vorstellen? Oder möchte man eine Plattform für sich und seine Freunde schaffen? Die Möglichkeiten sind grenzenlos, aber man sollte zumindest grob das Thema der Webseite festlegen.</li>
<li><strong>Kenntnisse im Umgang mit HTML, CSS und JavaScript</strong><br />
Man kann keine Homepage erstellen, ohne nicht zumindest die grundlegendsten Bausteine einer Webseite zu kennen. Mit <a href="http://webmatze.de/category/webseiten-erstellen/html-xhtml/">HTML</a> legt man die Struktur und den Inhalt einer Webseite fest. Mit <a href="http://webmatze.de/category/webseiten-erstellen/css/">CSS</a> kann man das Aussehen der einzelnen Elemente einer Webseite kontrollieren und mit <a href="http://webmatze.de/category/webseiten-erstellen/javascript/">JavaScript</a> kann man die Funktionalität der eigenen Seite erweitern. Aber erst die Kombination aus allen Zutaten ergibt eine gute Webseite.</li>
<li><strong>Eine eigene Internetadresse</strong><br />
Ohne eine eigene Domain kann niemand auf die liebevoll erstellten Inhalte zugreifen. Der Domainname ist die Adresse einer Seite im Internet. Daher sollte man sich einen sprechenden Namen für die eigene Homepage ausdenken. Ob nun <em>www.willies-kochrezepte.de</em> oder <em>www.webmatze.de</em> - solange der Name noch nicht vergeben ist, kann man fast jeden Domainnamen registrieren lassen.</li>
<li><strong>Webspeicherplatz</strong><br />
Damit man die erstellen HTML Seiten auch für Jeden zugänglich im Internet ablegen kann, benötigt man etwas Speicherplatz. Diesen Webspeicherplatz oder auch Webspace genannt, wird man sich meistens bei professionellen Webhostern anmieten. Die Kosten dafür sind überwiegend sehr niedrig. Es ist auch möglich, eigene Webserver zu verwenden, doch für eine kleine Homepage reicht meistens weniger aus.</li>
</ul>
<p>Das waren auch schon die wichtigsten Zutaten für die eigene Homepage. Wie man sehen kann, braucht es nicht wirklich viel, um eine eigenen Webseite zu erstellen. Doch für jemanden, der bisher noch nie eine Homepage erstellt hat, können einige der Punkte trotzdem eine Hürde darstellen.</p>
<h3>Schritt für Schritt zur eigenen Webseite</h3>
<p>Gerade für diese Anfänger - und dass meine ich nicht abwertend, denn jeder hat einmal an diesem Punkt begonnen - werde ich in den nächsten Tagen und Wochen in verschiedenen Beiträgen auf die einzelnen oben angesprochenen Punkte näher eingehen. Am Ende wird dann jeder eine Schritt für Schritt Anleitung für die erste eigene Homepage zur freien Verfügung haben.</p>
<p>Auf folgende Punkte werde ich dabei detaillierter eingeben:</p>
<ul>
<li>Wie man das richtige Thema für die eigene Homepage wählt</li>
<li>HTML, CSS und JavaScript - Das Grundgerüst einer Webseite beherrschen</li>
<li>So findet man den passenden Domainnamen für die eigene Webseite</li>
<li>Wie wähle ich den richtigen Webhoster für meine Homepage aus?</li>
<li>Wie bekomme ich mehr Besucher für meine eigenen Webseite?</li>
</ul>
<p>Ich freue mich schon darauf und hoffe, dass der Eine oder Andere von Euch mit Hilfe dieser Anleitungen seine erste eigene Homepage erstellen können wird.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://webmatze.de/wie-erstelle-ich-eine-webseite/feed/</wfw:commentRss>
			<slash:comments>11</slash:comments>
		
		
			</item>
		<item>
		<title>Hierarchische Menüs mit CSS erstellen</title>
		<link>https://webmatze.de/hierarchische-menus-mit-css-erstellen/</link>
					<comments>https://webmatze.de/hierarchische-menus-mit-css-erstellen/#comments</comments>
		
		<dc:creator><![CDATA[Mathias Karstädt]]></dc:creator>
		<pubDate>Thu, 04 Sep 2008 16:38:53 +0000</pubDate>
				<category><![CDATA[Browser]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML / XHTML]]></category>
		<category><![CDATA[webmatze]]></category>
		<guid isPermaLink="false">http://webmatze.de/?p=337</guid>

					<description><![CDATA[Eines der wichtigsten Elemente eines Webauftritts ist das Menü. Das Menü hilft dem Nutzer dabei, sich in komplizierten Seitenstrukturen zurechtzufinden und um schnell an jeden gewünschten Punkt in dieser Hierarchie springen zu können. Auf vielen Seiten werden immer noch Navigationsmenüs verwendet, welche vollständig auf JavaScript aufbauen und bei ausgeschaltetem JavaScript nicht mehr funktionieren. Solche Seiten [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Eines der wichtigsten Elemente eines Webauftritts ist <a href="http://de.wikipedia.org/wiki/Menü_(Computer)">das Menü</a>. Das Menü hilft dem Nutzer dabei, sich in komplizierten Seitenstrukturen zurechtzufinden und um schnell an jeden gewünschten Punkt in dieser Hierarchie springen zu können. </p>
<p>Auf vielen Seiten werden immer noch Navigationsmenüs verwendet, welche vollständig auf JavaScript aufbauen und bei ausgeschaltetem JavaScript nicht mehr funktionieren. Solche Seiten sind dann für Nutzer mit Behinderungen meistens nicht mehr bedienbar.</p>
<div style="text-align:center"><img fetchpriority="high" decoding="async" src="http://webmatze.de/wp-content/uploads/2008/09/css_menu.png" alt="" title="CSS Menü" width="500" height="240" class="alignnone size-full wp-image-377" srcset="https://webmatze.de/wp-content/uploads/2008/09/css_menu.png 520w, https://webmatze.de/wp-content/uploads/2008/09/css_menu-300x144.png 300w" sizes="(max-width: 500px) 100vw, 500px" /></div>
<h3>Das barrierefreie <abbr title="Cascading Style Sheets">CSS</abbr> Menü</h3>
<p>In diesem Beitrag möchte ich euch zeigen, dass man Menüs auch auf <a href="http://www.einfach-fuer-alle.de/blog/">behindertengerechte</a> und <a href="http://blog.techdivision.com/barrierefreie-webseiten/">barrierefreie Weise</a> erstellen kann. Ziel ist es ein Menü zu bauen, dass nur auf aktuellen Standards wie <abbr title="Hypertext Markup Language">HTML</abbr> und <bbr>CSS</abbr> beruht und keine Verwendung von JavaScript macht. So soll es möglich sein, dass Menü auch dann noch bedienen zu können, wenn der Nutzer JavaScript oder gar <a href="http://forum.de.selfhtml.org/archiv/2005/3/t102578/"><abbr>CSS</abbr> im Browser ausgeschaltet</a> hat.</p>
<h3>So sieht das fertige Menü aus</h3>
<p>Hier könnt Ihr schon einmal sehen, wie das Menü aussehen wird. (Wird im IE6 als vertikales Menü angezeigt, während es alle modernen Browser als Drop Down Menü angezeigen.)<br />
<span id="more-337"></span></p>
<ul class="cssmenu">
<li><a href="http://webmatze.de/">Start</a></li>
<li><a href="http://webmatze.de/">Informationen</a>
<ul>
<li><a href="#">Webseiten erstellen</a>
<ul>
<li><a href="http://webmatze.de/category/webseiten-erstellen/html-xhtml/">HTML</a></li>
<li><a href="http://webmatze.de/category/webseiten-erstellen/css/">CSS</a></li>
<li><a href="#">Programmieren</a>
<ul>
<li><a href="http://webmatze.de/category/webseiten-erstellen/javascript/">JavaScript</a></li>
<li><a href="http://webmatze.de/category/webseiten-erstellen/php/">PHP</a></li>
<li><a href="http://java.net">Java</a></li>
<li><a href="http://webmatze.de/category/webseiten-erstellen/flash/">ActionScript</a></li>
<li><a href="http://ruby.org">Ruby</a></li>
</ul>
</li>
<li><a href="http://webmatze.de/category/webseiten-erstellen/flash/">Flash</a></li>
</ul>
</li>
<li><a href="#">Multimedia</a>
<ul>
<li><a href="http://flickr.com">Grafiken</a></li>
<li><a href="http://youtube.com">Videos</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#">Suchen</a>
<ul>
<li><a href="http://google.de">Google</a></li>
<li><a href="http://yahoo.de">Yahoo</a></li>
<li><a href="http://msn.de">MSN</a></li>
</ul>
</li>
<li><a href="http://webmatze.de/about/">Über</a></li>
</ul>
<p style="clear:both"> </p>
<p>Dieses Beispiel hat insgesamt vier Ebenden, wobei jede einzelne Ebene auch noch unterschiedlich per <bbr>CSS</abbr> angepasst werden kann.</p>
<h3>Der HTML Code</h3>
<p>Der Aufbau dieses Menüs per <abbr>HTML</abbr> erfolgt über verschachtelte unsortierte Listen <code>&lt;ul&gt;</code>. Zur besseren Veranschaulichung könnt Ihr hier den <abbr>HTML</abbr> Code betrachten:</p>
<pre lang="html">
<UL class="cssmenu">
	<LI><a href="http://webmatze.de/">Start</a></LI>
	<LI><a href="http://webmatze.de/">Informationen</a>
		<UL>
			<LI><a href="http://webmatze.de/">Webseiten erstellen</a>
				<UL>
					<LI><a href="http://webmatze.de/">HTML</a></LI>
					<LI><a href="http://webmatze.de/">CSS</a></LI>
					<LI><a href="http://webmatze.de/">Programmieren</a>
						<UL>
							<LI><a href="http://webmatze.de/">JavaScript</a></LI>
							<LI><a href="http://webmatze.de/">PHP</a></LI>
							<LI><a href="http://webmatze.de/">Java</a></LI>
							<LI><a href="http://webmatze.de/">ActionScript</a></LI>
							<LI><a href="http://webmatze.de/">Ruby</a></LI>
						</UL>
					</LI>
					<LI><a href="http://webmatze.de/">Flash</a></LI>
				</UL>
			</LI>
			<LI><a href="http://webmatze.de/">Multimedia</a>
				<UL>
					<LI><a href="http://webmatze.de/">Grafiken</a></LI>
					<LI><a href="http://webmatze.de/">Videos</a></LI>
				</UL>
			</LI>
		</UL>
	</LI>
	<LI><a href="http://webmatze.de/">Suchen</a>
		<UL>
			<LI><a href="http://webmatze.de/">Google</a></LI>
			<LI><a href="http://webmatze.de/">Yahoo</a></LI>
			<LI><a href="http://webmatze.de/">MSN</a></LI>
		</UL>
	</LI>
	<LI><a href="http://webmatze.de/">Über</a></LI>
</UL>
</pre>
<p>Wie man sehen kann, gibt es keine besonderen Tricks. Es handelt sich einfach um ganz normalen standardkonformen <abbr>HTML</abbr> Code. Auch ohne <abbr>CSS</abbr> kann man dieses Menü bedienen und alle einzelnen Links aufrufen. </p>
<p>Um das Menü aber etwas ansprechender zu gestalten, wird es durch die folgenden <abbr>CSS</abbr> Anweisungen in die richtige Form gebracht.</p>
<h3>Der CSS Code</h3>
<p>Ich werde jetzt nicht ins Detail gehen, wie genau die einzelnen Anweisungen sich auf die Darstellung des Menüs auswirken. Zum besseren Verständnis habe ich ein paar Kommentare in den <abbr>CSS</abbr> Code mit aufgenommen. Anmerken möchte ich jedoch, dass ich den letzten Teil nur mit aufnehmen musste, weil sich der <abbr title="Internet Explorer Version 6">IE 6</abbr> hier etwas quer stellt und sich nur durch spezielle <abbr>CSS</abbr> Anweisungen dazu bringen lässt, das Menü ebenfalls richtig darzustellen. (Wer möchte, kann den <abbr>IE 6</abbr> speziellen Teil natürlich weglassen.)</p>
<pre lang="css">ul.cssmenu {
	position: relative;
	display: block;
	margin: 0px;
	padding: 0px;
}
ul.cssmenu ul {
	position: relative;
	display: none;
}
ul.cssmenu li {
	position: relative;
	display: inline;
	float: left;
}
/* Menupunkt stylen */
ul.cssmenu li a {
	font-family: arial, sans-serif;
	font-size: 12px;
	line-height: 20px;
	text-decoration: none;
	text-align: center;
	display: block;
	width: 100px;
	height: 20px;
}
ul.cssmenu li:hover > a {
	background-color: #666666;
	color: #FFFFFF;
	font-weight: bold;
}
/* Untermenüpunkt einblenden */
ul.cssmenu li:hover > ul {
	position: absolute;
	top: 20px;
	left: -40px;
	display: inline;
}
/* ab zweite Ebene */
ul.cssmenu li li:hover > ul {
	top: 0px;
	left: 110px;
}
ul.cssmenu li li a {
	width: 150px;
}
/* Farben der einzelnen Ebenen (werden vererbt)*/
ul.cssmenu a {
	color: #000000;
	background-color: #e4e4e4;
}
ul.cssmenu ul a {
	background-color: #d4d4d4;
}
ul.cssmenu ul ul a{
	background-color: #c4c4c4;
}
ul.cssmenu ul ul ul a{
	background-color: #b4b4b4;
}

/* zusätzliche Styleangaben für IE 6 */
/* das Menü wird dort untereinander dargestellt */
ul.cssmenu {
	_text-indent: 10px;
}
ul.cssmenu ul {
	_display: inline;
	_margin-left: 0px;
	_text-indent: 20px;
}
ul.cssmenu ul ul {
	_text-indent: 30px;
}
ul.cssmenu ul ul ul {
	_text-indent: 40px;
}
ul.cssmenu li {
	_float: none;
}
/* Menupunkt stylen */
ul.cssmenu li a {
	_text-align: left;
	_width: 150px;
}
ul.cssmenu a:hover {
	_font-weight: bold;
	_background-color: #666666;
}</pre>
<h3>Fazit</h3>
<p>Wie Ihr sehen könnt ist es gar nicht so schwer auch ohne JavaScript ein ansprechendes Menü zu gestalten. Das hier gezeigte Beispiel lässt sich natürlich leicht durch andere Farben oder Hintergrundgrafiken per <abbr>CSS</abbr> noch weiter verschönern und an die eigenen Bedürfnisse anpassen. Alle modernen Browser sollten damit zurecht kommen - selbstverständlich auch <a href="http://webmatze.de/google-chrome-der-neue-browser/">Googles neuer Chrome Browser</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://webmatze.de/hierarchische-menus-mit-css-erstellen/feed/</wfw:commentRss>
			<slash:comments>12</slash:comments>
		
		
			</item>
		<item>
		<title>Ist display=&#8220;none&#8220; jetzt irrelevant?</title>
		<link>https://webmatze.de/ist-display-none-jetzt-irrelevant/</link>
					<comments>https://webmatze.de/ist-display-none-jetzt-irrelevant/#respond</comments>
		
		<dc:creator><![CDATA[Mathias Karstädt]]></dc:creator>
		<pubDate>Tue, 12 Aug 2008 10:36:41 +0000</pubDate>
				<category><![CDATA[Browser]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML / XHTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Programmierung]]></category>
		<guid isPermaLink="false">http://webmatze.de/?p=370</guid>

					<description><![CDATA[Beim Studieren der aktuellen HTML5 Spezifikation, ist mir ein neues Attribut aufgefallen, welches möglicherweise bald eine große Bedeutung bekommen könnte. Ich spreche hier vom Attribut irrelevant, welches allen HTML Elementen zugewiesen werden darf. Wofür steht irrelevant? Das Attribut irrelevant darf die Werte "true" oder "false" enthalten und gibt an, ob ein so ausgezeichnetes HTML Element [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Beim Studieren der aktuellen <abbr title="Hypertext Markup Language Version 5">HTML5</abbr> Spezifikation, ist mir ein neues Attribut aufgefallen, welches möglicherweise bald eine große Bedeutung bekommen könnte. Ich spreche hier vom Attribut <code><a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/editing.html#irrelevant">irrelevant</a></code>, welches allen <abbr>HTML</abbr> Elementen zugewiesen werden darf.</p>
<h3>Wofür steht irrelevant?</h3>
<p>Das Attribut <code>irrelevant</code> darf die Werte <strong>"true"</strong> oder <strong>"false"</strong> enthalten und gibt an, ob ein so ausgezeichnetes <abbr>HTML</abbr> Element im aktuellen Kontext noch nicht oder nicht mehr relevant ist. So gekennzeichnete Elemente werden vom Browser weder gerendert, noch angezeigt. Das heißt, man kann damit beliebige Elemente ein- und ausblenden.</p>
<p style="text-align:center"><img decoding="async" src="http://webmatze.de/wp-content/uploads/2008/08/html5.png" alt="HTML 5 Draft Recommendation Screenshot" title="HTML 5 Draft Recommendation" width="500" height="240" class="alignnone size-full wp-image-371" srcset="https://webmatze.de/wp-content/uploads/2008/08/html5.png 520w, https://webmatze.de/wp-content/uploads/2008/08/html5-300x144.png 300w" sizes="(max-width: 500px) 100vw, 500px" /></p>
<p>Bisher konnte man diese Funktionalität nur durch das Setzen der <abbr title="Cascading Style Sheets">CSS</abbr> Eigenschaft <code><a href="http://www.w3.org/TR/REC-CSS2/visuren.html#display-prop">display</a></code> auf <strong>display: none</strong> erreichen. Damit werden die entsprechenden Elemente ebenfalls nicht gerendert und angezeigt.</p>
<p>Der Nachteil hier wäre allerdings, dass ein Gerät oder Browser, welcher keine Stylesheets versteht, solche Elemente dann trotzdem darstellen würde. Bei Verwendung von <code>irrelevant</code> würde der entsprechende Teil auch in diesem Fall nicht angezeigt werden. <em>(Vorausgesetzt das Gerät versteht HTML5.)</em><br />
<span id="more-370"></span></p>
<h3>irrelevant schon heute verwenden</h3>
<p>Damit man das neue Attribut in <abbr>HTML</abbr> Seiten verwenden kann, müsste man darauf warten, dass die aktuellen Browser <abbr>HTML 5</abbr> unterstützen. Doch bis es soweit ist, kann es noch eine Weile dauern, zumal <a href="http://www.whatwg.org/specs/web-apps/current-work/">die Spezifikation</a> noch nicht in der finalen Version vorliegt.</p>
<p>Um das Warten aber ein wenig zu verkürzen, kann man die entsprechende Funktionalität in allen aktuellen Browsern auch auf anderem Weg erreichen. Dazu muss man nur zwei einfache <abbr>CSS</abbr> Definitionen in das <abbr>HTML</abbr> Dokument einbinden, und schon wird das Attribut <code>irrelevant</code> richtig ausgewertet.</p>
<pre lang="css">
<style type="text/css">
	*[irrelevant] {
		display: none;
	}
	*[irrelevant="false"] {
		display: inherit;
	}
</style>
</pre>
<p><em>(Man sollte jedoch versuchen möglichst nicht <strong>irrelevant="false"</strong> zu verwenden, sondern statt dessen das Attribut ganz entfernen, da es unter Umständen bei einigen <abbr>HTML</abbr> Elementen zu Problemen in der Darstellung kommen kann.)</em></p>
<p>So kann man nun beliebige Elemente ausblenden lassen:</p>
<pre lang="html">
<P>Laut HTML 5  können nicht relevante Elemente
 ausgeblendet werden, indem ihnen das Attribut irrelevant
 zugewiesen wird. <span irrelevant="true">HTML 5 wird noch
 nicht von allen aktuellen Browsern unterstützt.</span>
 Irrelevante Elemente sind solche, die noch nicht, oder nicht
 mehr relevant sind. Das Attribut sollte auf solche Abschnitte
 angewendet werden, die im aktuellen Kontext nicht relevant
 sind, es aber später durchaus wieder werden können.</P>
</pre>
<p>Wenn man dies mit einem aktuellen Browser wie Firefox 3, Safari 3 oder <abbr title="Internet Explorer">IE</abbr> 8 betrachtet, sollte der zweite Satz nicht mehr angezeigt werden:</p>
<p><em></p>
<p>Laut HTML 5 können nicht relevante Elemente<br />
 ausgeblendet werden, indem ihnen das Attribut irrelevant<br />
 zugewiesen wird. <span irrelevant="true">HTML 5 wird noch<br />
 nicht von allen aktuellen Browsern unterstützt.</span><br />
 Irrelevante Elemente sind solche, die noch nicht, oder nicht<br />
 mehr relevant sind. Das Attribut sollte auf solche Abschnitte<br />
 angewendet werden, die im aktuellen Kontext nicht relevant<br />
 sind, es aber später durchaus wieder werden können.</p>
<p></em></p>
<h3>Elemente per <abbr title="Document Object Model">DOM</abbr> ein- und ausblenden</h3>
<p>Jetzt, da wir mit <code>irrelevant</code> gekennzeichnete Elemente vom Browser ausblenden lassen können, fehlt nur noch der entsprechende JavaScript Code, um dies auch dynamisch per Mausklick durchführen zu können:</p>
<pre lang="javascript">
function hide(elementId) {
	var el = document.getElementById(elementId);
	el.setAttribute('irrelevant',true);
}
function show(elementId) {
	var el = document.getElementById(elementId);
	el.removeAttribute('irrelevant');
}
</pre>
<h3>Fazit</h3>
<p>Wie man sieht, kann man schon heute bestimmte <a href="http://xhtml.com/de/future/x-html-5-versus-xhtml-2/">HTML5 Features</a> verwenden und so die eigenen Seiten für die Zukunft vorbereiten. Ob man das auch tun sollte, sei jedem selbst überlassen. Da ältere Browser möglicherweise mit den hier gezeigten Beispielen nicht zurecht kommen, ist dies nicht unter allen Umständen die beste Wahl. Aber da in den entsprechenden Browsern in dem Fall die zu versteckenden Inhalte einfach angezeigt werden würden, wäre auch kein größerer Schaden entstanden.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://webmatze.de/ist-display-none-jetzt-irrelevant/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Firefox3 kann jetzt auch schüchtern</title>
		<link>https://webmatze.de/firefox3-kann-jetzt-auch-schuechtern/</link>
					<comments>https://webmatze.de/firefox3-kann-jetzt-auch-schuechtern/#comments</comments>
		
		<dc:creator><![CDATA[Mathias Karstädt]]></dc:creator>
		<pubDate>Thu, 07 Aug 2008 10:16:43 +0000</pubDate>
				<category><![CDATA[Browser]]></category>
		<category><![CDATA[HTML / XHTML]]></category>
		<guid isPermaLink="false">http://webmatze.de/?p=368</guid>

					<description><![CDATA[Der Internet Explorer konnte ja schon seit Längerem schüchtern, doch nun ist auch der Firefox nachgezogen und kann jetzt ebenfalls schüchtern. Warum ich solch eine Schwachsinn schreibe? Okay, bevor mir jemand die Tastatur aus der Hand reißt... Was ich mit der Überschrift eigentlich sagen wollte: Firefox unterstützt in der Version 3 nun endlich auch Sollumbrüche [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Der Internet Explorer konnte ja schon seit Längerem schüchtern, doch nun ist auch der Firefox nachgezogen und kann jetzt ebenfalls schüchtern.</p>
<p>Warum ich solch eine Schwachsinn schreibe? Okay, bevor mir jemand die Tastatur aus der Hand reißt... Was ich mit der Überschrift eigentlich sagen wollte: Firefox unterstützt in der Version 3 nun endlich auch Sollumbrüche in Wörtern. Und zwar solche, bei denen der Trennstrich nur dann angezeigt wird, wenn der Umbruch wirklich benötigt wird. Diese "<a href="http://www.w3.org/TR/html401/struct/text.html#h-9.3.3">bedingten Trennstriche</a>", oder im Englischen auch <strong>"soft hyphen"</strong> genannt, werden durch das Zeilenumbruch-Entity <strong>&amp;shy;</strong> im HTML Text definiert.</p>
<p style="text-align: center"><img decoding="async" src="http://webmatze.de/wp-content/uploads/2008/08/firefox_shy.png" alt="Firefox Homepage Screenshot" title="Firefox Homepage" width="500" height="240" class="alignnone size-full wp-image-369" srcset="https://webmatze.de/wp-content/uploads/2008/08/firefox_shy.png 520w, https://webmatze.de/wp-content/uploads/2008/08/firefox_shy-300x144.png 300w" sizes="(max-width: 500px) 100vw, 500px" /></p>
<p>Im folgenden Beispiel wird das vielleicht deutlich:</p>
<pre lang="html">
<P>Soll&shy;um&shy;brü&shy;che können in Wörtern eingefügt
 werden, welche ohne bedingte
 Zei&shy;len&shy;um&shy;brü&shy;che nicht richtig umbrechen</P>
</pre>
<h3>Soft Hyphen = &amp;shy; = schüchtern</h3>
<p>Gut, damit hätten wir das Rätsel auch geklärt. Aber "schüchtern" finde ich in diesem Zusammenhang gar nicht mal so unangebracht. Denn was auf dem ersten Blick vielleicht verlockend erscheint, nämlich den bedingten Trennstrich in jedem Wort eines Textes unterzubringen, ist natürlich auf dem zweiten Blick mehr als bedenklich.</p>
<p>Damit würde man den HTML Code erheblich aufblähen und die Leserlichkeit von Text im HTML deutlich erschweren. Wer solch einen Text später nach bearbeiten muss, wird sicherlich nicht viel Freude an dieser Arbeit haben.</p>
<p>Darum sollte man den bedingten Trennstrich nur <strong>"sehr schüchtern"</strong> anwenden, also nur an Stellen, bei denen es sonst zu Problemen in der Darstellung kommen könnte. Ich könnte mir z.B. <strong>Label</strong> Elemente in einem Formular vorstellen, welche nur eine bestimmte Breite haben sollen und wo man damit zu lange Wörter zum Umbruch zwingen kann, ohne dass das Layout des Formulars zerschossen wird. Hier findet Ihr ein Beispiel dafür, <a href="http://webmatze.de/wie-man-wirklich-ansprechende-formulare-erstellt/">wie man ansprechende Formulare erstellt</a>. Das Gleiche könnte auch auf Spaltenüberschriften einer Tabelle zutreffen, welche nur eine bestimmte Breite haben sollen.</p>
<h3>Fazit</h3>
<p>Ich finde es gut, dass Firefox 3 nun auch bedingte Trennstriche unterstützt, zumal der IE dies schon seit einigen Jahren kann. Weise und sparsam angewendet, können sie sicherlich sehr hilfreich sein. Doch im Netzt gibt es auch Bedenken darüber, was <a href="http://www.peterkroener.de/bedingter-zeilenumbruch-mit-shy-gut-oder-schlecht/">die Verwendung von bedingten Trennstrichen</a> angeht. Was haltet Ihr davon?</p>
]]></content:encoded>
					
					<wfw:commentRss>https://webmatze.de/firefox3-kann-jetzt-auch-schuechtern/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>Wie man wirklich ansprechende Formulare erstellt</title>
		<link>https://webmatze.de/wie-man-wirklich-ansprechende-formulare-erstellt/</link>
					<comments>https://webmatze.de/wie-man-wirklich-ansprechende-formulare-erstellt/#comments</comments>
		
		<dc:creator><![CDATA[Mathias Karstädt]]></dc:creator>
		<pubDate>Tue, 05 Aug 2008 16:57:23 +0000</pubDate>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML / XHTML]]></category>
		<guid isPermaLink="false">http://webmatze.de/?p=335</guid>

					<description><![CDATA[Eines der wichtigsten Elemente in Webseiten sind Formulare. Ohne Formulare wäre es nicht möglich Informationen vom Anwender auf den Server zu übertragen. Es könnten keine Gästebucheinträge gemacht oder Mails über ein Kontaktformular versendet werden. Gerade weil Formulare solch ein wichtiger Bestandteil einer Seite sind, sollte man auch beim Design eines Formulars an den Anwender denken. [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Eines der wichtigsten Elemente in Webseiten sind Formulare. Ohne Formulare wäre es nicht möglich Informationen vom Anwender auf den Server zu übertragen. Es könnten keine Gästebucheinträge gemacht oder Mails über ein Kontaktformular versendet werden.</p>
<p>Gerade weil Formulare solch ein wichtiger Bestandteil einer Seite sind, sollte man auch beim Design eines Formulars an den Anwender denken. Klar strukturierte Formulare mit sinnvollen Bezeichnungen und Beschreibungen der einzelnen Felder helfen dem Nutzer dabei, die benötigten Daten schnell eingeben zu können. Aber auch beim HTML Code der Formulare sollte man sich an allgemein gültige Regeln halten, damit diese z.B. auch von behinderten Anwendern leicht ausgefüllt werden können.</p>
<p style="text-align: center;"><img loading="lazy" decoding="async" src="http://webmatze.de/wp-content/uploads/2008/08/formulardesign.png" alt="Formulardesign Screenshot" title="Formulardesign" width="500" height="240" class="alignnone size-full wp-image-367" srcset="https://webmatze.de/wp-content/uploads/2008/08/formulardesign.png 520w, https://webmatze.de/wp-content/uploads/2008/08/formulardesign-300x144.png 300w" sizes="auto, (max-width: 500px) 100vw, 500px" /></p>
<h3>Formulare richtig aufbauen</h3>
<p>Um ein Formular erstellen zu können, sollte man sich zuerst alle benötigten Daten notieren und sich überlegen, wie man diese als Formularfeld darstellen kann. Namen oder Emails wird man am besten als <a href="http://de.selfhtml.org/html/formulare/eingabe.htm#felder">Texteingabefeld</a> darstellen. Für Beschreibungen oder größere Texte eignet sich die <a href="http://de.selfhtml.org/html/formulare/eingabe.htm#bereiche">Textarea</a> besser. Eine Auswahl, z.B. ob der Nutzer Mann oder Frau ist, lässt sich sowohl durch <a href="http://de.selfhtml.org/html/formulare/auswahl.htm#radiobuttons">Radiobuttons</a> und auch als <a href="http://de.selfhtml.org/html/formulare/auswahl.htm#listen">Auswahlliste</a> darstellen. Mit <a href="http://de.selfhtml.org/html/formulare/auswahl.htm#checkboxen">Checkboxen</a> fragt man schließlich Daten ab, die keine Texteingabe erfordern, sondern nur ausgewählt werden müssen.</p>
<p>Alle verschiedenen Felder sollten möglichst durch ein <a href="http://de.selfhtml.org/html/formulare/strukturieren.htm#label">Label</a> gekennzeichnet werden. Wenn notwendig kann man dies noch durch ausführlichere Beschreibungen ergänzen, wenn sich die benötigten Daten nicht durch ein oder zwei Wörter erklären lassen.</p>
<p>Wenn ein Formular aus mehreren, inhaltlich nicht zusammengehörigen Abschnitten besteht, so sollte man diese durch <a href="http://de.selfhtml.org/html/formulare/strukturieren.htm#gruppieren">Fieldsets</a> logisch aufteilen und mit Legend genauer beschreiben.<span id="more-335"></span></p>
<h3>Ein einfaches Beispiel - Das Kontaktformular</h3>
<p>Zur besseren Veranschaulichung werde ich ein einfaches Kontaktformular aufbauen. Kontaktformulare kann man auf fast jeder Seite finden und sind ein wichtiges Mittel zur Kommunikation zwischen Seitenbesucher und Seitenbetreiber. </p>
<p>Am Ende soll unser Kontaktformular folgendermaßen aussehen:</p>
<form class="wmForm" action="#" method="post">
<fieldset>
<legend>Ihre Kontaktdaten</legend>
<ul>
<li> <label for="name"><span>*</span>Name</label><br />
<input id="name" name="name" type="text" /></p>
<p class="wmHint">Verwenden Sie wenn möglich Vor- und Zuname.</p>
</li>
<li> <label for="email"><span>*</span>Email</label><br />
<input id="email" name="email" type="text" /></p>
<p class="wmHint">Bitte stellen Sie sicher, dass diese Email wirklich existiert.</p>
</li>
<li> <label for="nachricht"><span>*</span>Ihre Nachricht</label><br />
<textarea id="nachricht" name="nachricht"></textarea></p>
<p class="wmHint">
</li>
</ul>
</fieldset>
<fieldset>
<legend>Ich möchte Folgendes gleich kostenlos mitbestellen</legend>
<ul>
<li> <label for="fruehlingskatalog">Frühlingskatalog</label><br />
<input id="fruehlingskatalog" class="checkbox" name="fruehlingskatalog" type="checkbox" /></li>
<li> <label for="sommerkatalog">Sommerkatalog</label><br />
<input id="sommerkatalog" class="checkbox" name="sommerkatalog" type="checkbox" /></li>
<li> <label for="herbstkatalog">Herbstkatalog</label><br />
<input id="herbstkatalog" class="checkbox" name="herbstkatalog" type="checkbox" /></li>
<li> <label for="winterkatalog">Winterkatalog</label><br />
<input id="winterkatalog" class="checkbox" name="winterkatalog" type="checkbox" /></p>
<p class="wmHint">
</li>
</ul>
</fieldset>
<fieldset class="wmButtons">
<input class="wmButton" name="submit" type="button" value="Absenden" /><br />
<input class="wmButton" name="reset" type="reset" value="Eingaben löschen" /><br />
</fieldset>
</form>
<p>Wie man sehen kann, ist das Formular relativ einfach gehalten, sieht aber dennoch ansprechend aus. Erreicht wird dies durch den Einsatz von gut strukturiertem HTML und einfachen CSS Definitionen.</p>
<h3>Der HTML Code</h3>
<p>Beim Aufbau des Formulars mit HTML habe ich darauf geachtet, dass es in allen Browsern bedienbar bleibt und auch für Behinderte mit Screenreadern keine Probleme macht. Die einzelnen Formularfelder wie einzeilige oder mehrzeilige Textfelder wurden in einer Liste untergebracht und mit &lt;LABEL&gt; Elementen versehen. Bei bestimmten Feldern habe ich zusätzlich noch einen längeren, beschreibenden Text hinzugefügt:</p>
<pre lang="html">
<FORM class="wmForm" action="#" method="post">
	<FIELDSET>
		<LEGEND>Ihre Kontaktdaten</LEGEND> 
		<UL>
			<LI>
				<LABEL for="name"><SPAN>*</SPAN>Name</LABEL>
				<INPUT id="name" name="name" type="text" />
				<P class="wmHint">Verwenden Sie wenn möglich Vor- und Zuname.</P>
			</LI>
			<LI>
				<LABEL for="email"><SPAN>*</SPAN>Email</LABEL>
				<INPUT id="email" name="email" type="text" />
				<P class="wmHint">Bitte stellen Sie sicher, dass diese Email wirklich existiert.</P>
			</LI>
			<LI>
				<LABEL for="nachricht"><SPAN>*</SPAN>Ihre Nachricht</LABEL>
				<TEXTAREA id="nachricht" name="nachricht"></TEXTAREA>
				<P class="wmHint"></P>
			</LI>
		</UL>
	</FIELDSET>
	<FIELDSET>
		<LEGEND>Ich möchte Folgendes gleich kostenlos mitbestellen</LEGEND>
		<UL>
			<LI>
				<LABEL for="fruehlingskatalog">Frühlingskatalog</LABEL>
				<INPUT id="fruehlingskatalog" class="checkbox" name="fruehlingskatalog" type="checkbox" />
			</LI>
			<LI>
				<LABEL for="sommerkatalog">Sommerkatalog</LABEL>
				<INPUT id="sommerkatalog" class="checkbox" name="sommerkatalog" type="checkbox" />
			</LI>
			<LI>
				<LABEL for="herbstkatalog">Herbstkatalog</LABEL>
				<INPUT id="herbstkatalog" class="checkbox" name="herbstkatalog" type="checkbox" />
			</LI>
			<LI>
				<LABEL for="winterkatalog">Winterkatalog</LABEL>
				<INPUT id="winterkatalog" class="checkbox" name="winterkatalog" type="checkbox" />
				<P class="wmHint"></P>
			</LI>
		</UL>
	</FIELDSET>
	<FIELDSET class="wmButtons">
		<INPUT class="wmButton" name="submit" type="button" value="Absenden" />
		<INPUT class="wmButton" name="reset" type="reset" value="Eingaben löschen" />
	</FIELDSET>
</FORM>
</pre>
<h3>Die dazugehörigen Style Definitionen</h3>
<p>Damit das Formular auch ansprechend aussieht, muss es natürlich über CSS verschönert werden. Im folgenden CSS sind alle notwendigen Angaben, um die einzelnen Formularelemente auszurichten und farblich gestalten zu können.</p>
<pre lang="css">
.wmForm {
	background-color: #ffffff;
	padding: 10px;
}
.wmForm fieldset.wmButtons input.wmButton {
	float: right;
	width: 150px;
	background-color: #E9F7F6;
	border: 1px solid #7BB9B7;
	color: #7BB9B7;
	margin-left: 10px;
}
.wmForm fieldset legend {
	background-color: #ffffff;
	color: #7BB9B7;
	font-weight: bold;
}
.wmForm ul {
	background-color: #E9F7F6;
	border-top: 2px solid #7BB9B7;
	margin: 0px;
	padding: 0px;
	list-style: none;
}
.wmForm ul li {
	padding: 10px;
	clear: both;
}
.wmForm ul li label {
	display: inline;
	float: left;
	width: 30%;
}
.wmForm ul li label span {
	float: right;
	color: #7BB9B7;
}
.wmForm ul li input,
.wmForm ul li textarea {
	float: right;
	width: 68%;
	background-color: #F0F0F0;
}
.wmForm ul li input:focus,
.wmForm ul li textarea:focus {
	border: 1px solid #7BB9B7;
	background-color: #FFFFFF;
}
.wmForm ul li input.checkbox,
.wmForm ul li input.radio {
	float: left;
	width: 20px;
	border-width: 0px;
}
.wmForm ul li p.wmHint {
	clear: both;
	margin-left: 30%;
	width: 68%;
	text-align: left;
	font-size: 10px;
	padding: 0px 10px;
}
</pre>
<p>Diese Angaben können natürlich beliebig erweitert oder verändert werden, um das Aussehen des Formulars den eigenen Vorstellungen anzupassen.</p>
<h3>Fazit</h3>
<p>Wie man bei diesem Beispiel erkennen kann, müssen Formulare nicht grau und langweilig aussehen. Sie können sehr flexibel an das jeweilige Seitendesign angepasst werden. Der Fantasie sind hier fast keine Grenzen gesetzt, aber man sollte immer darauf achten, dass solch ein Formular leicht bedienbar bleibt. Dies ist vor allem auch dann wichtig, wenn man bedenkt das Formulare auch von Menschen mit Behinderungen ausgefüllt werden können müssen.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://webmatze.de/wie-man-wirklich-ansprechende-formulare-erstellt/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Meta-Description: Wie wichtig ist sie wirklich?</title>
		<link>https://webmatze.de/meta-description-wie-wichtig-ist-sie-wirklich/</link>
					<comments>https://webmatze.de/meta-description-wie-wichtig-ist-sie-wirklich/#comments</comments>
		
		<dc:creator><![CDATA[Mathias Karstädt]]></dc:creator>
		<pubDate>Tue, 15 Jul 2008 14:14:55 +0000</pubDate>
				<category><![CDATA[google]]></category>
		<category><![CDATA[HTML / XHTML]]></category>
		<guid isPermaLink="false">http://webmatze.de/?p=355</guid>

					<description><![CDATA[Wer sich mit Suchmaschinenoptimierung (SEO) beschäftigt, der wird auf jeden Fall auch schon mal etwas von Meta-Tags gehört haben. Meta-Tags beschreiben unter anderem den Inhalt einer Webseite genauer. Sie geben vor allem den Suchmaschinen ein paar Hinweise darüber, was in einer bestimmten Seite zu finden ist. Die bekanntesten Meta-Tags Die bekanntesten Meta-Tags sind hier sicherlich [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Wer sich mit <a href="http://de.wikipedia.org/wiki/Suchmaschinenoptimierung">Suchmaschinenoptimierung</a> (<abbr title="Search Engine Optimization">SEO</abbr>) beschäftigt, der wird auf jeden Fall auch schon mal etwas von <a href="http://de.wikipedia.org/wiki/Meta-Tag">Meta-Tags</a> gehört haben. Meta-Tags beschreiben unter anderem den Inhalt einer Webseite genauer. Sie geben vor allem den Suchmaschinen ein paar Hinweise darüber, was in einer bestimmten Seite zu finden ist.</p>
<h4>Die bekanntesten Meta-Tags</h4>
<p>Die bekanntesten Meta-Tags sind hier sicherlich <span style="font-weight: bold;">Meta-Description</span>:</p>
<pre>&lt;meta name="description" content="Das Meta-Description Tag
enthält eine kurze Beschreibung vom Inhalt einer Webseite." /&gt;</pre>
<p>und <span style="font-weight: bold;">Meta-Keywords</span>:</p>
<pre>&lt;meta name="keywords" content="meta-tags,html,suchmaschinen,
optimierung,seo" /&gt;</pre>
<p>Allerdings ist Meta-Keywords in den Anfangsjahren des Webs massiv missbraucht worden - um bei möglichst vielen Suchanfragen gelistet zu werden, waren viele Webmaster dazu übergegangen, eine riesige Liste an verschiedenen Keywords in dieses Tag einzutragen, auch wenn diese absolut nichts mit dem eigentlichen Inhalt der Seiten zu tun hatten. Daher wird dieses Tag heute von den Suchmaschinen nur noch sehr vorsichtig betrachtet und ausgewertet.</p>
<h4>Eine gute Meta Beschreibung ist wichtig</h4>
<p>Anders ist dies bei dem Meta-Description Tag. Dieses Tag hat auch heute noch eine sehr große Bedeutung und wird von vielen Suchmaschinen ausgewertet. Je nach Art der Suchanfrage, wird der Inhalt dieses Tags auch gerne mal als Textauszug unter dem Suchergebnis angezeigt.</p>
<p style="text-align: center;"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-356" title="Meta-Description" src="http://webmatze.de/wp-content/uploads/2008/07/metadescription.png" alt="Meta-Description Tag in Suchergebnissen" width="500" height="240" srcset="https://webmatze.de/wp-content/uploads/2008/07/metadescription.png 520w, https://webmatze.de/wp-content/uploads/2008/07/metadescription-300x144.png 300w" sizes="auto, (max-width: 500px) 100vw, 500px" /></p>
<p>Der Grund dafür ist, dass die Suchmaschinen den ersten Text, der auf einer HTML Seite gefunden wird, sehr hoch bewerten. Hat man das Meta-Description Tag eingebunden, enthält dieses den ersten Textinhalt, den die Suchmaschine sehen kann. Wird es weggelassen, kann es daher sein, dass statt dessen der Inhalt der Navigation angezeigt wird - wenn diese an erster Stelle in einer Seite steht.</p>
<h4>Wie sollte eine gute Beschreibung aussehen?</h4>
<p>Wenn man sich mal die Suchergebnisse von Google genauer anschaut, dann kann man erkennen, dass die Textauszüge meistens eine Länge von etwa <span style="font-weight: bold;">160 Zeichen</span> haben - also etwa die Länge einer <abbr title="Short Messaging Service">SMS</abbr>. Daher sollte man auch möglichst nicht mehr Text in das Meta-Description Tag schreiben, denn je weniger Text in der Beschreibung steht, um so höher wird jedes einzelne dort enthaltene Wort bewertet werden.</p>
<p>Kurz gesagt: die Beschreibung sollte den Inhalt der Seite so genau wie möglich und in kurzer Form wiedergeben.</p>
<p>Google gibt in seiner <strong>Webmaster Hilfe</strong> dazu <a href="http://www.google.com/support/webmasters/bin/answer.py?answer=35264&amp;topic=8522#writegooddescriptions">sehr gute Hinweise und Tipps</a>.</p>
<p>Ich selbst habe auf webmatze.de leider bisher den Fehler gemacht, auf jeder Seite den gleichen Text in der Meta-Description zu verwenden. Ergebnis ist, dass nun in jedem Suchergebnis, wo webmatze.de auftaucht, der gleiche Textausschnitt angezeigt wird.</p>
<p>Werde mich also hinsetzen und für jeden Blogeintrag eine kurze Beschreibung anfertigen müssen. Und ich möchte gar nicht daran denken, dass es auf webmatze.de bereits <span style="font-weight: bold;">über 300 Blogbeiträge</span> gibt...</p>
]]></content:encoded>
					
					<wfw:commentRss>https://webmatze.de/meta-description-wie-wichtig-ist-sie-wirklich/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>Die Sprache eines Links kennzeichnen</title>
		<link>https://webmatze.de/die-sprache-eines-links-kennzeichnen/</link>
					<comments>https://webmatze.de/die-sprache-eines-links-kennzeichnen/#respond</comments>
		
		<dc:creator><![CDATA[Mathias Karstädt]]></dc:creator>
		<pubDate>Tue, 04 Sep 2007 10:28:40 +0000</pubDate>
				<category><![CDATA[HTML / XHTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<guid isPermaLink="false">http://version3.webmatze.de/2007/09/04/die-sprache-eines-links-kennzeichnen/</guid>

					<description><![CDATA[HTML bietet viele Möglichkeiten, um die Nutzbarkeit der HTML Seiten zu erhöhen. Meist kann dies schon durch einfache Dinge passieren. Wie wäre es zum Beispiel, wenn alle Links einer Seite anzeigen würden, in welcher Sprache die verlinkten Seiten geschrieben sind? Hier steht wie das geht.]]></description>
										<content:encoded><![CDATA[<p>Ein bislang fast nie benutztes Attribut des <strong>&lt;a&gt;</strong> Tags ist das Attribut <strong>hreflang</strong>, welches beschreibt in welcher Sprache die Seite geschrieben ist, zu der ein Link führt. Dieses Attribut darf nur gesetzt werden, wenn auch das <strong>href</strong> Attribut angegeben wurde.</p>
<p>Doch scheint das <strong>hreflang</strong> Attribut keinen wirklichen Nutzen zu haben, da es ja in keiner Weise auf der angezeigten HTML Seite dargestellt wird. In den nächsten Abschnitten möchte ich zwei Wege zeigen, wie man das Attribut doch sichtbar machen kann.</p>
<h2>Die CSS Methode</h2>
<p>Moderne Browser wie Firefox erlauben es per CSS auf Elemente der Seite mit bestimmten Attributen zuzugreifen und diesen dann einen Style zuzuweisen. Dies geschieht, indem man den Attribut Namen in eckigen Klammern hinter den Tag Namen schreibt:</p>
<pre lang="css">a[hreflang] {
	...Styles...
}</pre>
<p><span id="more-12"></span></p>
<p>Mit ein paar weiteren 'Tricks' ist es somit möglich den Inhalt von <strong>hreflang</strong> sichtbar zu machen und z.B. hinter das entsprechende Tag anzufügen:</p>
<pre lang="css">a[hreflang]::after{
	content:" ["attr(hreflang)"]";
}</pre>
<p>Als Ergebnis bekommt man dann einen Link in folgender Form:</p>
<p><a href="http://google.com">Google.com [en]</a></p>
<p>Der Nachteil dabei ist, wie ich schon erwähnt habe, dass solche CSS Definitionen nur in modernen Browsern funktionieren und somit nicht in älteren Browsern wie dem Internet Explorer!<br />
Darum habe ich eine weitere Möglichkeit der Umsetzung ersonnen...</p>
<h2>Die JavaScript Methode</h2>
<p>JavaScript unterstützen heute die meisten Browser. Wenn man also sichergehen will, das die Darstellung der Sprache in all diesem Browsern funktioniert, kann man folgendes Script verwenden.</p>
<pre lang="javascript">function showHreflang() {
	for (var i = 0; i < document.links.length; i++) {
		var link = document.links.item(i);
		var hreflang = link.getAttribute("hreflang");
		if (hreflang != null & hreflang.length > 0) {
			var langText = document.createTextNode(" [" + hreflang + "]");
			var supNode = document.createElement("b");
			supNode.appendChild(langText);
			link.parentNode.insertBefore(supNode, link.nextSibling);
		}
	}
}</pre>
<p>Das Script durchsucht einfach alle Links auf der Seite, schaut nach ob das <strong>hreflang</strong> Attribut definiert wurde und einen Inhalt besitzt und hängt dann den Inhalt in eckigen Klammern hinter den entsprechenden Link.<br />
Sollte der Benutzer JavaScript in seinem Browser ausgeschaltet haben, schadet es auch nichts, dann wird einfach nichts angezeigt, womit derjenige dann auf jeden Fall leben kann.</p>
<h2>Hier das Ergebnis</h2>
<p>Ein Link zu einer Seite auf Deutsch <a hreflang="de" href="http://google.de">Google.de</a> und hier einer zu einer englischen Seite <a hreflang="en" href="http://google.com">Google.com</a>. Und dann darf natürlich auch ein Link nicht fehlen, der keine <strong>hreflang</strong> Angabe besitzt <a href="http://www.webmatze.de">webmatze.de</a>!</p>
<p><script type="text/javascript"><!--
function showHreflang() {
	for (var i = 0; i < document.links.length; i++) {
		var link = document.links.item(i);
		var hreflang = link.getAttribute("hreflang");
		if (hreflang != null) {
			if (hreflang.length != 0) {
				hreflang = " [" + hreflang + "]";
				var langText = document.createTextNode(hreflang);
				var supNode = document.createElement("b");
				supNode.appendChild(langText);
				link.parentNode.insertBefore(supNode, link.nextSibling);
			}
		}
	}
}
showHreflang();
// --></script></p>
]]></content:encoded>
					
					<wfw:commentRss>https://webmatze.de/die-sprache-eines-links-kennzeichnen/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
