<?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>McSeven - primus esse delectat &#187; Blog</title> <atom:link href="http://www.mcseven.me/category/webtechniken/blog/feed/" rel="self" type="application/rss+xml" /><link>http://www.mcseven.me</link> <description>ey Mac, working hardly or hardly working?</description> <lastBuildDate>Mon, 19 Dec 2011 15:19:37 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>Pimp-My-WordPress a.k.a. das Table-of-Content-Plugin</title><link>http://www.mcseven.me/2010/08/pimp-my-wordpress-a-k-a-das-table-of-content-plugin/</link> <comments>http://www.mcseven.me/2010/08/pimp-my-wordpress-a-k-a-das-table-of-content-plugin/#comments</comments> <pubDate>Wed, 18 Aug 2010 22:14:39 +0000</pubDate> <dc:creator>McSeven</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[Inhaltsverzeichnis]]></category> <category><![CDATA[Plugin]]></category> <category><![CDATA[t.o.c]]></category> <category><![CDATA[table of content]]></category> <category><![CDATA[TinyTOC]]></category> <category><![CDATA[toc]]></category> <category><![CDATA[WordPress]]></category><guid
isPermaLink="false">http://www.mcseven.me/?p=947</guid> <description><![CDATA[Vorwort HEUREKA! Wie lange schon geht mir auf die Nerven, dass WordPress keine Inhaltsverzeichnisse unterstützt. Die Suche nach &#8220;table of content&#8221; in der Plugin-Seite fördert nur wenig zu Tage, ganz selten ist eines der gefundenen Plugins überhaupt mit WP 3+ kompatibel, gefallen hat mir keines. Ziel ist doch nur, aus den Überschriften der verschiedenen Level [...]]]></description> <content:encoded><![CDATA[<h1>Vorwort</h1><p>HEUREKA! Wie lange schon geht mir auf die Nerven, dass WordPress keine Inhaltsverzeichnisse unterstützt. Die Suche nach &#8220;table of content&#8221; in der Plugin-Seite fördert nur wenig zu Tage, ganz selten ist eines der gefundenen Plugins überhaupt mit WP 3+ kompatibel, gefallen hat mir keines. Ziel ist doch nur, aus den Überschriften der verschiedenen Level eines Artikels ein popeliges Inhaltsverzeichnis zu erzeugen.</p><p>Nun ja, nachdem dem Inschenör nichts zu schwör ist, wird ab heute selbst Hand angelegt. Die Grundlage bildete das noch am ehesten brauchbare Plugin &#8220;<a
href="http://php4every1.com/scripts/tiny-table-of-contents-wordpress-plugin/">TinyTOC</a>&#8220;, welches aber auch eigene Tags erwartet, um Überschriften zu erkennen.</p><p>Nachdem ich gerne die Qualitätsmarke &#8220;made-in-Germany&#8221; auf eigene Entwicklungen stempele, ist&#8217;s nicht genug, ein Inhaltsverzeichnis zu erzeugen, sondern auch mit einer uralten HTML-Schwäche zu brechen &#8211; den Kapitelnummern. Warum können verschachtelte <em>Heading</em>-Tags nicht entsprechend (1., 1.1., 1.1.2, etc.) ausgegeben werden?! Es ist selbst mit CSS nicht möglich, entsprechende Funktionalität zu implementieren.</p><p>Zeit wird&#8217;s für ein Redesign.</p><h1>Beschreibung</h1><p>Das Plugin kann im Wesentlichen die folgenden zwei Aufgaben übernehmen.</p><h2>Erweiterung von Überschriften um Kapitelnummern</h2><p>Das Plugin scannt den gesamten Text eines Posts, egal ob in Seite  aufgeteilt (&#8220;paginated&#8221;) oder nicht, und extrahiert die Überschriften  aus den <em>h1</em>-<em>h6</em> HTML-Tags. Sofern der Autor die  Verschachtelung korrekt durchgeführt hat, sprich alle Ebenen sind  aufsteigend hintereinander angeordnet (1. -&gt; 1.1. -&gt; 1.1.1., nicht  1. -&gt; 1.1.1.), erstellt das Plugin korrekte intern Einträge.</p><p>Aus diesen erzeugt es quasi-eindeutige, zumindest aber statische ID-Attribute und weist sie den jeweiligen <em>h*</em>-Tags auf der aktuellen Seite (&#8220;Page&#8221;) zu. Dies geschieht unabhängig von den Gliederungsebenen, jede Überschrift erhält eine eigene ID.</p><p>Danach werden optional aus den Einstellungen im Admin-Interface und den jeweiligen Gliederungsebenen Kapitelnummern erzeugt (z.B. I., I.1, I.2, II., II.1., etc.) und diese dem Text der Überschrift vorangestellt.</p><p>Es lassen sich dafür drei Dinge einstellen:</p><ol><li>Die Tiefe der Nummerierung von Level 1 &#8211; Level 9.</li><li>Der Nummernstil der Ebene:<ul><li>nicht nummerieren</li><li>Arabische Ziffern: 1, 2, 3, &#8230;</li><li>Römisch Klein: i, ii, iii, iv, &#8230;</li><li>Römisch Groß: I, II, III, IV, &#8230;</li><li>Alphabetisch Klein: a, b, c, &#8230;</li><li>Alphabetisch Groß: A, B, C, &#8230;</li></ul></li><li>Ein abschließendes Zeichen der Ebene:<ul><li>keines</li><li>immer den Punkt (1., 2.)</li><li>Punkt, wenn nicht letzte Ebene (1, 1.1, 1.1.1, etc.)</li><li>immer Klammer (1),2),3))</li><li>Klammer, wenn nicht letzte Ebene (1, 1)1, 1)1)1, etc.)</li></ul></li></ol><p>Das sollte eine maximale Flexibilität für die meisten Einsatzzwecke geben.</p><h2>Erzeugen des Inhaltsverzeichnisses</h2><p>Wenn gewünscht, erzeugt das Plugin auch ein Inhaltsverzeichnis. Nahezu unabhängig von der Nummerierung von oben können auch hier ein paar Einstellungen vorgenommen werden:</p><ul><li>Kapiteltiefe: Bis zu welchem Level soll der TOC aufgebaut werden.</li><li>Soll es eine flache Liste werden, eine aus <em>&lt;ul&gt;</em>-Elementen erzeugte, oder sollen die Kapitelnummern von oben übernommen werden (dann ist TOC-Tiefe auf die Nummerierungstiefe von oben begrenzt!).</li></ul><p>Da die <em>&lt;ul&gt;</em>-Tags und die Nummerierungselemente flach untereinander liegen und nicht verschachtelt sind, erhalten die einzelnen Ebenen jeweils eine oder mehrere CSS-Klassen:</p><ul><li>tinytoc_level_<em>n</em>: Selbsterklärend, in welchem Level befindet das <em>&lt;li&gt;</em>- oder <em>&lt;div&gt;</em>-Element.</li><li>current_page: Ist das Ziel des Links auf der aktuellen Seite zu finden?</li><li>fiurst_in_block: Wenn ein neuer Level-Block aufgemacht wird (z.B. von 1. -&gt; 1.1.), erhält das erste Element im neuen Block diese Klasse.</li><li>last_in_block: Wenn Level-Block beendet wird (z.B. von 1.1. -&gt; 2.), erhält das letzte Element im Block diese Klasse.</li></ul><p>Damit kann das Verzeichnis beliebig gestyled und angeordnet werden.</p><h1>Fazit</h1><p>Das Stück Software ist weit davon entfernt, sauber oder schön programmiert zu sein, oder fertig. Ich habe im Moment nur leider gar keine Zeit zum weiterentwickeln und habe nur einen 2 Tage-Hack gesucht, um eben den Blog etwas zu verbessern. Hier der <a
href="http://www.mcseven.me/wp-content/uploads/2010/08/tiny-table-of-contents-tinytoc.zip">TinyTOC-Extended-Quellcode</a>, soweit es geht kommentiert (Hinweis: Ich übernehme keine Haftung für oder gebe Garantien irgendwelcher Art auf die Software; Verwendung erfolgt auf eigenes Risiko!). Zum Installieren einfach in das /plugins-Verzeichnis kopieren, im Admin-Interface bei Plugins aktivieren und -wichtig- mindestens einmal die Konfiguration speichern.</p> ]]></content:encoded> <wfw:commentRss>http://www.mcseven.me/2010/08/pimp-my-wordpress-a-k-a-das-table-of-content-plugin/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Automatischer Kategorie-RSS-Link im Webbrowser</title><link>http://www.mcseven.me/2009/05/automatischer-kategorie-rss-link-im-webbrowser/</link> <comments>http://www.mcseven.me/2009/05/automatischer-kategorie-rss-link-im-webbrowser/#comments</comments> <pubDate>Sat, 02 May 2009 11:35:06 +0000</pubDate> <dc:creator>McSeven</dc:creator> <category><![CDATA[Blog]]></category><guid
isPermaLink="false">http://www.mcseven.me/?p=384</guid> <description><![CDATA[Wenn euer Wordpress-Theme den RSS-Link im Webbrowser automatisch so anpassen soll, dass bei Ansicht einer Kategorie immer diese statt der gesamte Blog abonniert wird, wird euch dieser Artikel weiterhelfen.]]></description> <content:encoded><![CDATA[<p>Normalerweise habt ihr im Webbrowser in der Adresszeile einen RSS-Button, der den gesamten Blog abonniert. Im HTML-Quelltext der header.php wird dies oben bei den Meta-Daten meist durch den RSS Autodiscover erledigt; die Zeile lautet:</p><div
class="php geshi php" style="font-family:monospace;"><div
class="head">RSS Autodiscover für den gesamten Blog</div><ol><li
class="li1"><div
class="de1"><span
class="sy0">&lt;</span>link rel<span
class="sy0">=</span><span
class="st0">&quot;alternate&quot;</span> type<span
class="sy0">=</span><span
class="st0">&quot;application/rss+xml&quot;</span> title<span
class="sy0">=</span><span
class="st0">&quot;&lt;?php bloginfo(&#39;name&#39;); ?&gt;&quot;</span> href<span
class="sy0">=</span><span
class="st0">&quot;&lt;?php bloginfo(&#39;rss2_url&#39;); ?&gt;&quot;</span> <span
class="sy0">/&gt;</span></div></li></ol></div><p>Möchte man nun erreichen, dass bei jeder Kategorieansicht der Webbrowser die Kategorie zum Abonnieren anbietet, so muß eine Weiche programmiert werden. Es werden dabei die Kategorien auch hierarchisch abonniert, also Eltern- und alle Kinderkategorien. Ersetzt obige Zeile durch den Quelltext wie folgt:</p><div
class="php geshi php" style="font-family:monospace;"><div
class="head">RSS Autodiscover für Geamt-Blog und Einzel-Kategorien mit Pretty Permalinks</div><ol><li
class="li1"><div
class="de1"><span
class="kw2">&lt;?php</span> <span
class="kw1">if</span> <span
class="br0">&#40;</span>is_category<span
class="br0">&#40;</span><span
class="br0">&#41;</span><span
class="br0">&#41;</span> <span
class="br0">&#123;</span> <span
class="sy1">?&gt;</span></div></li><li
class="li1"><div
class="de1">&nbsp; <span
class="sy0">&lt;</span>link</div></li><li
class="li1"><div
class="de1">&nbsp; &nbsp;rel<span
class="sy0">=</span><span
class="st0">&quot;alternate&quot;</span></div></li><li
class="li1"><div
class="de1">&nbsp; &nbsp;type<span
class="sy0">=</span><span
class="st0">&quot;application/rss+xml&quot;</span></div></li><li
class="li2"><div
class="de2">&nbsp; &nbsp;title<span
class="sy0">=</span><span
class="st0">&quot;&lt;?php bloginfo(&#39;name&#39;); ?&gt; &amp;raquo; Kategorie &lt;? single_cat_title(); ?&gt;&quot;</span></div></li><li
class="li1"><div
class="de1">&nbsp; &nbsp;href<span
class="sy0">=</span><span
class="st0">&quot;&lt;?php echo get_category_link(get_query_var(&#39;cat&#39;));?&gt;feed/rss2&quot;</span></div></li><li
class="li1"><div
class="de1">&nbsp; <span
class="sy0">/&gt;</span></div></li><li
class="li1"><div
class="de1"><span
class="kw2">&lt;?php</span> <span
class="br0">&#125;</span> <span
class="kw1">else</span> <span
class="br0">&#123;</span> <span
class="sy1">?&gt;</span></div></li><li
class="li1"><div
class="de1">&nbsp; <span
class="sy0">&lt;</span>link</div></li><li
class="li2"><div
class="de2">&nbsp; &nbsp;rel<span
class="sy0">=</span><span
class="st0">&quot;alternate&quot;</span></div></li><li
class="li1"><div
class="de1">&nbsp; &nbsp;type<span
class="sy0">=</span><span
class="st0">&quot;application/rss+xml&quot;</span></div></li><li
class="li1"><div
class="de1">&nbsp; &nbsp;title<span
class="sy0">=</span><span
class="st0">&quot;&lt;?php bloginfo(&#39;name&#39;); ?&gt;&quot;</span></div></li><li
class="li1"><div
class="de1">&nbsp; &nbsp;href<span
class="sy0">=</span><span
class="st0">&quot;&lt;?php bloginfo(&#39;rss2_url&#39;); ?&gt;&quot;</span></div></li><li
class="li1"><div
class="de1">&nbsp; <span
class="sy0">/&gt;</span></div></li><li
class="li2"><div
class="de2"><span
class="sy1">&lt;?</span> <span
class="br0">&#125;</span> <span
class="sy1">?&gt;</span></div></li></ol></div><p>Anmerkung: Es funktioniert nur, wenn ihr Pretty Permalinks aktiviert habt, also eure Kategorien mittels ausgeschriebener URLs ansprechen könnt. Falls ihr kein mod_rewrite auf eurem Server habt, müßt ihr obigen ersten Link so  schreiben:</p><div
class="php geshi php" style="font-family:monospace;"><div
class="head">RSS Autodiscover für Geamt-Blog und Einzel-Kategorien ohne mod_rewrite</div><ol><li
class="li1"><div
class="de1">&nbsp; <span
class="sy0">&lt;</span>link</div></li><li
class="li1"><div
class="de1">&nbsp; &nbsp;rel<span
class="sy0">=</span><span
class="st0">&quot;alternate&quot;</span></div></li><li
class="li1"><div
class="de1">&nbsp; &nbsp;type<span
class="sy0">=</span><span
class="st0">&quot;application/rss+xml&quot;</span></div></li><li
class="li1"><div
class="de1">&nbsp; &nbsp;title<span
class="sy0">=</span><span
class="st0">&quot;&lt;?php bloginfo(&#39;name&#39;); ?&gt; &amp;raquo; Kategorie &lt;? single_cat_title(); ?&gt;&quot;</span></div></li><li
class="li2"><div
class="de2">&nbsp; &nbsp;href<span
class="sy0">=</span><span
class="st0">&quot;http://www.euerBlogUrl.com/wp-rss2.php?cat=&lt;?php echo get_query_var(&#39;cat&#39;);?&gt;&quot;</span></div></li><li
class="li1"><div
class="de1">&nbsp; <span
class="sy0">/&gt;</span></div></li></ol></div><p>Das resultiert dann in einem Feed URL ähnlich diesem:</p><p>http://www.euerBlogUrl.com/wp-rss2.php?cat=20</p> ]]></content:encoded> <wfw:commentRss>http://www.mcseven.me/2009/05/automatischer-kategorie-rss-link-im-webbrowser/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Automatische Silbentrennung mit Hyphenator</title><link>http://www.mcseven.me/2009/04/automatische-silbentrennung-mit-hyphenator/</link> <comments>http://www.mcseven.me/2009/04/automatische-silbentrennung-mit-hyphenator/#comments</comments> <pubDate>Fri, 17 Apr 2009 18:54:30 +0000</pubDate> <dc:creator>McSeven</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[Hyphenator]]></category> <category><![CDATA[JavaScript]]></category> <category><![CDATA[Plugin]]></category> <category><![CDATA[Silbentrennung]]></category> <category><![CDATA[WordPress]]></category><guid
isPermaLink="false">http://www.mcseven.me/?p=327</guid> <description><![CDATA[Beischreibung der automatischen Silbentrennung per Javascript sowie Integration in WordPress. Außerdem im Angebot: Ein wenig Theorie.]]></description> <content:encoded><![CDATA[<h1>Vorwort</h1><p>Es war mir in einigen Artikeln aufgefallen, dass bei bestimmten Schriftgrößeneinstellungen im Webbrowser lange Wörter , die am Ende der Zeile nicht mehr hinpassen, vollständig in die nächste Zeile rutschen. Das gibt einen unschönen Effekt des &#8220;Flattertextes&#8221; bei linksbündiger Anordnung oder, bei blocksatzorientierter Anordnung große Lücken zwischen einzelnen Wörtern. Es fehlt also eine automatische Silbentrennnung, die aus langen Wörtern schön umgebrochenen, getrennten Fließtext macht.</p><h1>Theorie</h1><p>Zu Textsatz und Silbentrennung existiert <a
title="Silbentrennung per JavaScript" href="http://www.mnn.ch/hyph/silbentrennung1.html" target="_blank">hier</a> ein sehr guter Artikel, der auch auf die universelle Silbentrennung, erfunden bzw. erarbeitet von Frankling Mark Liang im Jahr 1983, eingeht. Der Autor hat diesen Algorithmus dann in <a
title="Hyphenator" href="http://code.google.com/p/hyphenator/" target="_blank">JavaScript</a> umgesetzt und liefert auch die entsprechenden Musterdateien für viele Sprachen mit.</p><p>Ich möchte die Quelle kurz zusammenfassen und einige Gedanken festhalten:</p><ol><li>Schriftgrößen sind im Internet (HTML, CSS) variabel, sofern die Seite &#8220;gut&#8221; programmiert ist, und hängen allein vom darstellenden Programm oder Gerät ab.</li><li>Je nach Schriftgröße ändert sich die Anzahl der Wörter, die in eine Zeile passen: je größer die Schrift, desto weniger Worte pro Zeile</li><li>Damit ein Webbrowser ein Wort oder ein Wortteil in eine neue Zeile rückt, muss es vom Rest abtrennt werden, sonst rutscht das gesamte Wort eine Zeile tiefer.</li></ol><h1>Notwendige Schritte</h1><p>Es muss dem Webbrowser folglich mitgeteilt werden, an welchen Stellen ein Wort umgebrochen werden kann. Allerdings ergeben sich einige Schwierigkeiten:</p><ol><li>Aktuelle Schriftgröße und -Art sind weder dem Webserver noch dem DOM (JavaScript) des Browsers bekannt. Man kann nicht herausbekommen, wieviele Pixel breit ein bestimmtes Wort ist, um eventuell die Pixelbreite für alle Wörter pro Zeile zu ermitteln.</li><li>Damit Suchfunktionen erhalten bleiben, kann der Datenbestand auf dem Server nicht verändert werden, sondern muss als ungetrennter, zusammenhängender Fließtext verbleiben.</li><li>Es existiert keine CSS(2)-Property &#8220;hyphenate&#8221; oder ähnlich.</li><li>Eine Trennung mittels &#8220;hart&#8221; codiertem Trennstrich &#8220;-&#8221; kommt wegen 1) nicht in Frage.</li></ol><p>Glücklicherweise gibt es einen Ausweg. Das Zeichen lautet &#8220;&amp;shy;&#8221; und zeigt dem Webbrowser an, wo ein Wort getrennt werden kann. Gleichzeitig aber wird es von der Darstellung ausgenommen und hat keinen Einfluß auf die Wortbreite. Als Beispiel würde man das Wort &#8220;Silbentrennung&#8221; im HTML-Quelltext korrekt</p><div
class="html geshi html" style="font-family:monospace;"><div
class="head">Demonstration des SHY-Special-Chars</div><ol><li
class="li1"><div
class="de1">Sil&amp;shy;ben&amp;shy;tren&amp;shy;nung</div></li></ol></div><p>schreiben und der Webbrowser könnte korrekt umbrechen.</p><h1>Lösung</h1><p>Nun wäre der erste mögliche Schritt, einfach nach den Regeln des Herrn Liang die Texte in der Datenbank zu verändern und entsprechende &#8220;&amp;shy;&#8221;s in jedes Wort einzufügen. Das würde aber den Verlust der Suchfunktionalität oder zuminedest einige Performance-Einbußen nach sich ziehen, da die Shy-Tags für jede Suche wieder entfernt werden müssen.</p><p>Eine bessere Lösung läßt sich mit JavaScript realisieren. Man muss einfach &#8220;nur&#8221; über einen gegebenen Text iterieren, die einzelnen Wörter mit mehr als x Zeichen (getrennt durch Whitespace, also Leerzeichen, Tabulator, neue Zeile, etc.) nach Herrn Liangs Regeln trennen, und für jede Trennung ein &#8220;&amp;shy;&#8221; Tag einfügen. Danach schreibt man den Text mit neuen Tags wieder über <em>.innerHTML=&#8221;$newText&#8221;;</em> zurück in den HTML-Quelltext.</p><p>Der Webbrowser kann dann selbst anhand von Schriftgröße und -Art entscheiden, welches Wort wann und wo umzubrechen ist. Leute ohne JavaScript sehen den Text ganz normal ohne Umbrüche.</p><h1>&#8230;und in WordPress</h1><p>Eine Schwierigkeit hatte ich, den Hyphenator zum Laufen zu bekommen. Zuerst hatte ich ihn manuell in mein Theme installiert, also JavaScript-Datei und Patterns kopiert, das DIV-Tag mit Klasse &#8220;entry&#8221; noch um &#8220;hyphenate&#8221; erweitert und die Darstellung probiert.</p><p>Leider hat das mit dem Plugin highlight-source-pro nicht zusammengepaßt, die Quelltexte waren nicht mehr in der Schriftart Courier.</p><p>Der zweite Versuch mit dem WordPress-Plugin &#8220;Hyphenator&#8221; war dann von Erfolg gekrönt. Man muss zwar noch immer im DIV-Tag &#8220;entry&#8221; die Klasse &#8220;hyphenate&#8221; ergänzen, es scheint sich aber nicht mehr auf die PRE-Tags von highlight-source-pro auszuwirken. Ich habe die genaue Ursache allerdings nicht erforscht; dass es so funktioniert, hat schon gereicht <img
src='http://www.mcseven.me/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p>Einziger Wehrmutstropfen: FireFox 2 unterstützt die Tags nicht und behält die Wörter ohne Umbruch bei.</p> ]]></content:encoded> <wfw:commentRss>http://www.mcseven.me/2009/04/automatische-silbentrennung-mit-hyphenator/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>Schwierigkeiten mit DIV-Tags im IE6</title><link>http://www.mcseven.me/2009/04/schwierigkeiten-mit-div-tags-im-ie6/</link> <comments>http://www.mcseven.me/2009/04/schwierigkeiten-mit-div-tags-im-ie6/#comments</comments> <pubDate>Thu, 09 Apr 2009 15:17:31 +0000</pubDate> <dc:creator>McSeven</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[CSS]]></category> <category><![CDATA[DIV]]></category> <category><![CDATA[IE6]]></category> <category><![CDATA[Internet Explorer]]></category> <category><![CDATA[Internet Explorer 6]]></category><guid
isPermaLink="false">http://www.mcseven.me/?p=287</guid> <description><![CDATA[Mehr Browserkompatibilität für den Internet Explorer 6 wird in diesem Artikel beschrieben.]]></description> <content:encoded><![CDATA[<p>Und noch ein Darstellungsfehler ausgemerzt: Der IE6 hat die Höhe von &lt;<em>div</em>&gt;-Tags immer willkürlich interpretiert und z.B. den grauen Zusatz-Block (CSS-Klasse &#8220;<em>postmetadata</em>&#8220;) unter jeder Seite viel zu hoch dargestellt, wenn mehrere davon vorhanden waren. Woran es genau liegt weiß ich nicht, aber es scheint zu klappen, wenn man ihm den Style um &#8220;<em>height:2pt</em>&#8221; oder ähnlich ergänzt vorlegt.</p><p>Damit scheinen auch andere IE-Versionen kein Problem zu haben, nur der FireFox stellt die Höhe dann (normgerecht!) viel zu gering dar und der Kasten stimmt dort nicht mehr.</p><p>Die Lösung ist schließlich eine zweite CSS-Datei, die nur per Kommentar-Browser-Weiche eingebunden wird. Ich habe in die header.php also wie folgt eingefügt:</p><div
class="html geshi html" style="font-family:monospace;"><div
class="head">Browserweiche</div><ol><li
class="li1"><div
class="de1">&lt;!&#8211;[if IE 6]&gt;</div></li><li
class="li1"><div
class="de1">&nbsp; &lt;link rel=&quot;stylesheet&quot; href=&quot;&lt;?php bloginfo(&#39;stylesheet_directory&#39;); ?&gt;/style_ie6.css&quot; type=&quot;text/css&quot; /&gt;</div></li><li
class="li1"><div
class="de1">&lt;![endif]&#8211;&gt;</div></li></ol></div><p>Das zugehörige CSS schaut so aus:</p><div
class="css geshi css" style="font-family:monospace;"><div
class="head">CSS speziell für den IE6</div><ol><li
class="li1"><div
class="de1"><span
class="re1">.postmetadata</span> <span
class="br0">&#123;</span></div></li><li
class="li1"><div
class="de1">&nbsp; <span
class="kw1">color</span><span
class="sy0">:</span> <span
class="re0">#666666</span><span
class="sy0">;</span></div></li><li
class="li1"><div
class="de1">&nbsp; <span
class="kw1">padding</span><span
class="sy0">:</span> <span
class="re3">2px</span> <span
class="re3">2px</span> <span
class="re3">2px</span> <span
class="re3">4px</span><span
class="sy0">;</span></div></li><li
class="li1"><div
class="de1">&nbsp; <span
class="kw1">border</span><span
class="sy0">:</span> <span
class="re3">1px</span> <span
class="kw2">solid</span> <span
class="re0">#e1e1e1</span><span
class="sy0">;</span></div></li><li
class="li2"><div
class="de2">&nbsp; <span
class="kw1">height</span><span
class="sy0">:</span> <span
class="re3">4pt</span><span
class="sy0">;</span></div></li><li
class="li1"><div
class="de1">&nbsp; <span
class="kw1">background-color</span><span
class="sy0">:</span> <span
class="re0">#f7f7f7</span><span
class="sy0">;</span></div></li><li
class="li1"><div
class="de1">&nbsp; <span
class="kw1">font-size</span><span
class="sy0">:</span><span
class="re3">8pt</span><span
class="sy0">;</span></div></li><li
class="li1"><div
class="de1">&nbsp; <span
class="kw1">display</span><span
class="sy0">:</span><span
class="kw2">block</span><span
class="sy0">;</span></div></li><li
class="li1"><div
class="de1"><span
class="br0">&#125;</span></div></li></ol></div><p>Jetzt läuft&#8217;s in allen Browsern super.</p> ]]></content:encoded> <wfw:commentRss>http://www.mcseven.me/2009/04/schwierigkeiten-mit-div-tags-im-ie6/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Darstellungsprobleme mit Highlight-Source-Pro und IE6</title><link>http://www.mcseven.me/2009/04/darstellungsprobleme-mit-highlight-source-pro-und-ie6/</link> <comments>http://www.mcseven.me/2009/04/darstellungsprobleme-mit-highlight-source-pro-und-ie6/#comments</comments> <pubDate>Wed, 08 Apr 2009 19:03:26 +0000</pubDate> <dc:creator>McSeven</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[GeSHi]]></category> <category><![CDATA[Highlight-Source-Pro]]></category> <category><![CDATA[Internet Explorer]]></category> <category><![CDATA[Plugin]]></category> <category><![CDATA[WordPress]]></category><guid
isPermaLink="false">http://www.mcseven.me/?p=271</guid> <description><![CDATA[Dieser Artikel beschreibt eine Änderung am Plugin highlight-source-pro, damit auch der IE6 mit den generierten Quelltexten zurecht kommt.]]></description> <content:encoded><![CDATA[<p>Das Problem tauchte nur im IE6 auf und läßt sich einfach beschreiben: Nach jedem Source-Highlight-Block war der folgende nachfolgende Inhalt um ca. 50 Pixel nach links verschoben; in meinem Falle (nachdem das Eltern &lt;<em>div</em>&gt; mit <em>overflow:hidden;</em> ausgestattet ist) sogar größtenteils unsichtbar. Nach langer Suche bin ich darauf gekommen, dass der IE6 mit den Border-Deklarationen der Klasse &#8220;.geshi&#8221; Probleme hat. Eigentlich sollte die linke dicke Rahmenlinie dazu dienen, bei zeilen-nummerierten Quelltexten die Ziffern grauer (<em>#dddddd</em>) als den Rest (<em>#eeeeee</em>) zu hinterlegen.</p><p>Defacto funktioniert das aber nicht:</p><ul><li>Zum einen wird in jedem Browser das Padding der &lt;ol&gt;-Liste anhand der ersten  (= niederwertigsten) Ziffer bestimmt und eben nicht anhand des Punkts. Das hat dann zur Folge, dass zwar die Ziffer über der graueren Border plaziert werden, der Punkt aber nicht.</li><li>Zum anderen kommt eben der IE6 damit nicht klar und verschiebt reproduzierbar nachfolgenden Source um genau die Border-Breite nach links.</li></ul><p>Ich habe jetzt als Lösung die Border-Deklarationen entfernt aus der &#8220;all.css&#8221; im highlight-source-pro Ordner der Instanz und ein GIF-Hintergrund (2000&#215;1 Pixel) mit zwei verschieden grauen Bereichen erstellt. Die CSS schaut wie folgt aus:</p><div
class="css geshi css" style="font-family:monospace;"><div
class="head">Neue Klassen für IE6-Kompatibilität</div><ol><li
class="li1"><div
class="de1"><span
class="re1">.geshi</span> <span
class="br0">&#123;</span></div></li><li
class="li1"><div
class="de1">&nbsp; <span
class="kw1">width</span><span
class="sy0">:</span> <span
class="re3"><span
class="nu0">100</span>%</span><span
class="sy0">;</span></div></li><li
class="li1"><div
class="de1">&nbsp; <span
class="kw1">white-space</span><span
class="sy0">:</span><span
class="kw2">nowrap</span><span
class="sy0">;</span> &nbsp; &nbsp; &nbsp; &nbsp;<span
class="coMULTI">/* Keinen Zeilenumbruch */</span></div></li><li
class="li1"><div
class="de1">&nbsp; <span
class="kw1">background</span><span
class="sy0">:</span><span
class="kw2">url</span><span
class="br0">&#40;</span><span
class="co2">b.gif</span><span
class="br0">&#41;</span><span
class="sy0">;</span> &nbsp; &nbsp; <span
class="coMULTI">/* neu erstellte Grafik, 2000&#215;1, 40px #dddddd, Rest #eeeeee */</span></div></li><li
class="li2"><div
class="de2">&nbsp; <span
class="kw1">border</span><span
class="sy0">:</span><span
class="re3">1px</span> <span
class="kw2">dotted</span> <span
class="re0">#666666</span><span
class="sy0">;</span></div></li><li
class="li1"><div
class="de1">&nbsp; <span
class="kw1">overflow</span><span
class="sy0">:</span> <span
class="kw2">auto</span><span
class="sy0">;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span
class="coMULTI">/* Für Mozilla; DIV-Tag wächst mit, daher nur x-bar */</span></div></li><li
class="li1"><div
class="de1">&nbsp; <span
class="kw1">margin</span><span
class="sy0">:</span> <span
class="re3">5px</span> <span
class="re3">0px</span> <span
class="re3">5px</span> <span
class="re3">0px</span><span
class="sy0">;</span> &nbsp; <span
class="coMULTI">/* Platz oben und unten */</span></div></li><li
class="li1"><div
class="de1">&nbsp; overflow-x<span
class="sy0">:</span> <span
class="kw2">auto</span><span
class="sy0">;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span
class="coMULTI">/* Für IEs: Einziger Weg, um im IE6 die horizontale Bar zu bekommen */</span></div></li><li
class="li1"><div
class="de1">&nbsp; overflow-y<span
class="sy0">:</span> <span
class="kw2">hidden</span><span
class="sy0">;</span> &nbsp; &nbsp; &nbsp; &nbsp;<span
class="coMULTI">/* Für IEs: Einziger Weg, die vertikale Bar zu verstecken */</span></div></li><li
class="li2"><div
class="de2">&nbsp; <span
class="kw1">padding-bottom</span><span
class="sy0">:</span><span
class="re3">20px</span><span
class="sy0">;</span> &nbsp; &nbsp; &nbsp; <span
class="coMULTI">/* Für IEs: Würden sonst die letzte Zeile verschlucken; */</span></div></li><li
class="li1"><div
class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span
class="coMULTI">/* &nbsp; Mozilla zeigt eben unten 20px leer an; ist zu verschmerzen. */</span></div></li><li
class="li1"><div
class="de1">&nbsp; <span
class="kw1">font-family</span><span
class="sy0">:</span><span
class="st0">&quot;Courier New&quot;</span><span
class="sy0">,</span> <span
class="kw2">monospace</span><span
class="sy0">;</span></div></li><li
class="li1"><div
class="de1"><span
class="br0">&#125;</span></div></li><li
class="li1"><div
class="de1">&nbsp;</div></li><li
class="li2"><div
class="de2"><span
class="re1">.geshi</span> ol <span
class="br0">&#123;</span> <span
class="kw1">margin-left</span><span
class="sy0">:</span><span
class="re3">22px</span><span
class="sy0">;</span> <span
class="kw1">padding</span><span
class="sy0">:</span><span
class="nu0">0</span><span
class="sy0">;</span> <span
class="coMULTI">/* border-left:3em solid #ddd;*/</span> <span
class="br0">&#125;</span></div></li><li
class="li1"><div
class="de1"><span
class="re1">.geshi</span> ol<span
class="sy0">,</span> <span
class="re1">.geshi</span> ol li <span
class="br0">&#123;</span> <span
class="kw1">list-style-type</span><span
class="re2">:decimal-leading-</span>zero<span
class="sy0">;</span> <span
class="br0">&#125;</span></div></li><li
class="li1"><div
class="de1"><span
class="re1">.geshi</span> <span
class="re1">.head</span> <span
class="br0">&#123;</span> <span
class="kw1">font-style</span><span
class="sy0">:</span><span
class="kw2">italic</span><span
class="sy0">;</span> <span
class="kw1">font-weight</span><span
class="sy0">:</span><span
class="kw2">bold</span><span
class="sy0">;</span> <span
class="kw1">color</span><span
class="sy0">:</span><span
class="re0">#666</span><span
class="sy0">;</span> <span
class="coMULTI">/*border-left:3em solid #ddd;*/</span> <span
class="kw1">padding</span><span
class="sy0">:</span><span
class="re3">0.5em</span> <span
class="nu0">0</span> <span
class="nu0">0</span> <span
class="re3">0.5em</span><span
class="sy0">;</span> <span
class="br0">&#125;</span></div></li><li
class="li1"><div
class="de1"><span
class="re1">.geshi</span><span
class="re1">.no</span> ol <span
class="br0">&#123;</span> <span
class="kw1">border-left</span><span
class="sy0">:</span><span
class="kw2">none</span><span
class="sy0">;</span> <span
class="kw1">padding-left</span><span
class="sy0">:</span><span
class="re3">1em</span><span
class="sy0">;</span> <span
class="br0">&#125;</span></div></li><li
class="li1"><div
class="de1"><span
class="re1">.geshi</span><span
class="re1">.no</span> <span
class="re1">.head</span> <span
class="br0">&#123;</span> <span
class="kw1">border-left</span><span
class="sy0">:</span><span
class="kw2">none</span><span
class="sy0">;</span> <span
class="kw1">padding-left</span><span
class="sy0">:</span><span
class="re3">1em</span><span
class="sy0">;</span> <span
class="br0">&#125;</span></div></li><li
class="li2"><div
class="de2"><span
class="re1">.geshi</span><span
class="re1">.no</span> ol<span
class="sy0">,</span> <span
class="re1">.geshi</span><span
class="re1">.no</span> li <span
class="br0">&#123;</span> <span
class="kw1">list-style-type</span><span
class="sy0">:</span><span
class="kw2">none</span><span
class="sy0">;</span> <span
class="br0">&#125;</span></div></li></ol></div><p>Kleine Anmerkung zum <em>margin-left</em> des &lt;<em>ol</em>&gt;-Selectors: Hier nur 22px, weil die Zählung in den Browsern bei der ersten Ziffer beginnt. Hätten wir beispielsweise die Ziffer &#8220;22.&#8221;, so würde die Zählung links von der zweiten &#8220;2&#8243;, also zwischen beiden &#8220;2&#8243;ern beginnen.</p><p>Vorteil: Es klappt auch im IE6 wie gewünscht.</p><p>Nachteil: Nicht mehr XHTML-konform; wenn man die Schrift vergrößert, werden irgendwann die Ziffern über den dunkleren grauen Bereich hinauswachsen. Beim Verkleinern passiert das nicht, da hier das <em>padding</em> in Pixeln greift und nicht mit verkleinert wird.</p> ]]></content:encoded> <wfw:commentRss>http://www.mcseven.me/2009/04/darstellungsprobleme-mit-highlight-source-pro-und-ie6/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Neue Navigation, Nachtrag</title><link>http://www.mcseven.me/2009/04/neue-navigation-nachtrag/</link> <comments>http://www.mcseven.me/2009/04/neue-navigation-nachtrag/#comments</comments> <pubDate>Wed, 08 Apr 2009 18:32:20 +0000</pubDate> <dc:creator>McSeven</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[CSS]]></category> <category><![CDATA[DHTML]]></category> <category><![CDATA[JavaScript]]></category> <category><![CDATA[Navigation]]></category> <category><![CDATA[WordPress]]></category><guid
isPermaLink="false">http://www.mcseven.me/?p=265</guid> <description><![CDATA[Einige notwendige Ergänzungen zum neuen Navigationsbaum; geht wegen der gewünschten Browserkompatibilität leider nicht ohne DHTML, aber lesen Sie selbst...]]></description> <content:encoded><![CDATA[<p>Das neue Menü ist jetzt einen Tag am Laufen gewesen, nur hat sich bei der Benutzung herausgestellt, dass das mit reinem CSS doch nicht besonders praktisch ist. Stellen wir uns diesen Baum vor:</p><pre>Test 1 [+]
  Test 1.1
  Test 1.2
  Test 1.3
  Test 1.4
Test 2
Test 3</pre><p>Würde ich nun mit der Maus über den &#8220;Test 1&#8243;-Link fahren, klappt der Baum wie gewünscht aus. Ich könnte auch Unter-Items (1.*) anwählen und hätte keine Probleme. Würde ich aber unter &#8220;1.4&#8243; fahren, so würde die Klasse &#8220;:hover&#8221; des &#8220;Test 1&#8243;-Knotens nicht mehr aktiv sein und der Baum zusammenklappen; leider klappen damit 4 Items auf einmal ein und meine Maus wäre sofort außerhalb des Baumes.</p><p>Wenn ich nur zwei Level habe, so ist das kein Problem; bei dreien aber könnte ich bestimmte Menüpunkte nicht mehr erreichen. Außerdem kann der Internet Explorer 6 damit nichts anfangen.</p><p>Ich habe mich daher entschieden, DHTML zu verwenden. Ein unter FireFox und Internet Explorer laufendes JavaScript sieht dann so aus:</p><div
class="javascript geshi javascript" style="font-family:monospace;"><div
class="head">Neues JavaScript zum Navigieren</div><ol><li
class="li1"><div
class="de1"><span
class="kw2">function</span> addPlussesToTree<span
class="br0">&#40;</span><span
class="br0">&#41;</span> <span
class="br0">&#123;</span></div></li><li
class="li1"><div
class="de1">&nbsp; <span
class="kw2">var</span> navTree <span
class="sy0">=</span> document.<span
class="me1">getElementById</span><span
class="br0">&#40;</span><span
class="st0">&quot;sidebar&quot;</span><span
class="br0">&#41;</span><span
class="sy0">;</span></div></li><li
class="li1"><div
class="de1">&nbsp; <span
class="kw1">if</span> <span
class="br0">&#40;</span><span
class="sy0">!</span>navTree<span
class="br0">&#41;</span> <span
class="br0">&#123;</span> <span
class="kw3">alert</span><span
class="br0">&#40;</span><span
class="st0">&quot;N1&quot;</span><span
class="br0">&#41;</span><span
class="sy0">;</span> <span
class="kw1">return</span><span
class="sy0">;</span> <span
class="br0">&#125;</span></div></li><li
class="li1"><div
class="de1">&nbsp; <span
class="kw2">var</span> myLiTags <span
class="sy0">=</span> navTree.<span
class="me1">getElementsByTagName</span><span
class="br0">&#40;</span><span
class="st0">&quot;li&quot;</span><span
class="br0">&#41;</span><span
class="sy0">;</span></div></li><li
class="li2"><div
class="de2">&nbsp; <span
class="kw1">if</span> <span
class="br0">&#40;</span><span
class="sy0">!</span>myLiTags<span
class="br0">&#41;</span> <span
class="br0">&#123;</span> <span
class="kw3">alert</span><span
class="br0">&#40;</span><span
class="st0">&quot;N1&quot;</span><span
class="br0">&#41;</span><span
class="sy0">;</span> <span
class="kw1">return</span><span
class="sy0">;</span> <span
class="br0">&#125;</span></div></li><li
class="li1"><div
class="de1">&nbsp; <span
class="kw1">for</span> <span
class="br0">&#40;</span>i<span
class="sy0">=</span><span
class="nu0">0</span><span
class="sy0">;</span> i<span
class="sy0">&lt;</span>myLiTags.<span
class="me1">length</span><span
class="sy0">;</span> i<span
class="sy0">++</span><span
class="br0">&#41;</span> <span
class="br0">&#123;</span></div></li><li
class="li1"><div
class="de1">&nbsp; &nbsp; <span
class="co1">//Notwendig wegen IE Auto-Uppercase-TagsNames</span></div></li><li
class="li1"><div
class="de1">&nbsp; &nbsp; <span
class="kw2">var</span> test <span
class="sy0">=</span> myLiTags<span
class="br0">&#91;</span>i<span
class="br0">&#93;</span>.<span
class="me1">innerHTML</span>.<span
class="me1">toLowerCase</span><span
class="br0">&#40;</span><span
class="br0">&#41;</span><span
class="sy0">;</span></div></li><li
class="li1"><div
class="de1">&nbsp; &nbsp; <span
class="kw1">if</span> <span
class="br0">&#40;</span>test.<span
class="me1">indexOf</span><span
class="br0">&#40;</span><span
class="st0">&quot;&lt;ul&quot;</span><span
class="br0">&#41;</span><span
class="sy0">&gt;-</span><span
class="nu0">1</span><span
class="br0">&#41;</span> <span
class="br0">&#123;</span></div></li><li
class="li2"><div
class="de2">&nbsp; &nbsp; &nbsp; <span
class="kw2">var</span> imgEl <span
class="sy0">=</span> document.<span
class="me1">createElement</span><span
class="br0">&#40;</span><span
class="st0">&quot;img&quot;</span><span
class="br0">&#41;</span><span
class="sy0">;</span></div></li><li
class="li1"><div
class="de1">&nbsp; &nbsp; &nbsp; imgEl.<span
class="me1">src</span> <span
class="sy0">=</span> <span
class="st0">&#39;&lt;?php bloginfo(&quot;stylesheet_directory&quot;); ?&gt;/images/icon_plus.gif&#39;</span><span
class="sy0">;</span></div></li><li
class="li1"><div
class="de1">&nbsp; &nbsp; &nbsp; imgEl.<span
class="me1">border</span> <span
class="sy0">=</span> <span
class="st0">&quot;0&quot;</span><span
class="sy0">;</span></div></li><li
class="li1"><div
class="de1">&nbsp; &nbsp; &nbsp; imgEl.<span
class="me1">onmouseover</span> <span
class="sy0">=</span> openTree<span
class="sy0">;</span></div></li><li
class="li1"><div
class="de1">&nbsp; &nbsp; &nbsp; imgEl.<span
class="me1">style</span>.<span
class="me1">cursor</span> <span
class="sy0">=</span> <span
class="st0">&quot;pointer&quot;</span><span
class="sy0">;</span></div></li><li
class="li2"><div
class="de2">&nbsp; &nbsp; &nbsp; myLiTags<span
class="br0">&#91;</span>i<span
class="br0">&#93;</span>.<span
class="me1">insertBefore</span><span
class="br0">&#40;</span>imgEl<span
class="sy0">,</span> myLiTags<span
class="br0">&#91;</span>i<span
class="br0">&#93;</span>.<span
class="me1">getElementsByTagName</span><span
class="br0">&#40;</span><span
class="st0">&quot;ul&quot;</span><span
class="br0">&#41;</span><span
class="br0">&#91;</span><span
class="nu0">0</span><span
class="br0">&#93;</span><span
class="br0">&#41;</span><span
class="sy0">;</span></div></li><li
class="li1"><div
class="de1">&nbsp; &nbsp; <span
class="br0">&#125;</span></div></li><li
class="li1"><div
class="de1">&nbsp; <span
class="br0">&#125;</span></div></li><li
class="li1"><div
class="de1"><span
class="br0">&#125;</span></div></li><li
class="li1"><div
class="de1">&nbsp;</div></li><li
class="li2"><div
class="de2"><span
class="kw2">function</span> openTree<span
class="br0">&#40;</span><span
class="br0">&#41;</span> <span
class="br0">&#123;</span></div></li><li
class="li1"><div
class="de1">&nbsp; <span
class="kw1">if</span> <span
class="br0">&#40;</span><span
class="kw1">this</span>.<span
class="me1">src</span>.<span
class="me1">indexOf</span><span
class="br0">&#40;</span><span
class="st0">&quot;plus&quot;</span><span
class="br0">&#41;</span><span
class="sy0">&gt;</span><span
class="nu0">0</span><span
class="br0">&#41;</span> <span
class="br0">&#123;</span></div></li><li
class="li1"><div
class="de1">&nbsp; &nbsp; <span
class="kw1">this</span>.<span
class="me1">parentNode</span>.<span
class="me1">getElementsByTagName</span><span
class="br0">&#40;</span><span
class="st0">&quot;ul&quot;</span><span
class="br0">&#41;</span><span
class="br0">&#91;</span><span
class="nu0">0</span><span
class="br0">&#93;</span>.<span
class="me1">style</span>.<span
class="me1">display</span> <span
class="sy0">=</span> <span
class="st0">&quot;block&quot;</span><span
class="sy0">;</span></div></li><li
class="li1"><div
class="de1">&nbsp; &nbsp; <span
class="kw1">this</span>.<span
class="me1">src</span><span
class="sy0">=</span><span
class="st0">&#39;&lt;?php bloginfo(&#39;</span>stylesheet_directory<span
class="st0">&#39;); ?&gt;/images/icon_minus.gif&#39;</span><span
class="sy0">;</span></div></li><li
class="li1"><div
class="de1">&nbsp; <span
class="br0">&#125;</span> <span
class="kw1">else</span> <span
class="br0">&#123;</span></div></li><li
class="li2"><div
class="de2">&nbsp; &nbsp; <span
class="kw1">this</span>.<span
class="me1">parentNode</span>.<span
class="me1">getElementsByTagName</span><span
class="br0">&#40;</span><span
class="st0">&quot;ul&quot;</span><span
class="br0">&#41;</span><span
class="br0">&#91;</span><span
class="nu0">0</span><span
class="br0">&#93;</span>.<span
class="me1">style</span>.<span
class="me1">display</span> <span
class="sy0">=</span> <span
class="st0">&quot;none&quot;</span><span
class="sy0">;</span></div></li><li
class="li1"><div
class="de1">&nbsp; &nbsp; <span
class="kw1">this</span>.<span
class="me1">src</span><span
class="sy0">=</span><span
class="st0">&#39;&lt;?php bloginfo(&#39;</span>stylesheet_directory<span
class="st0">&#39;); ?&gt;/images/icon_plus.gif&#39;</span><span
class="sy0">;</span></div></li><li
class="li1"><div
class="de1">&nbsp; <span
class="br0">&#125;</span></div></li><li
class="li1"><div
class="de1"><span
class="br0">&#125;</span> &nbsp;</div></li><li
class="li1"><div
class="de1">&nbsp;</div></li><li
class="li2"><div
class="de2">addPlussesToTree<span
class="br0">&#40;</span><span
class="br0">&#41;</span><span
class="sy0">;</span></div></li></ol></div><p>Natürlich kann man aus dem Ereignis <em>onmouseover</em> in Zeile 10 auch ein <em>onclick</em>-Ereignis machen, dann klappt der Baum erst beim Klicken auf. Eine Anmerkung zur Parameterübergabe der Funktion <em>openTree()</em>: Weise ich per JavaScript einem Element eine Funktion für ein Ereignis zu, so steht innerhalb der Funktion die Pseudo-Klasse <em>this </em>immer als das aufrufende Element zur Verfügung; ich brauche also nicht, wie von HTML her gewohnt, <em>element.ereignis = &#8220;funktion(this)&#8221;</em> zu schreiben.</p><p>Sicherstellen, dass er aufgeklappt bleibt, wenn die Seite z.B. in einem Unterpunkt neu geladen wird, der User also auf den Unterpunkt geklickt hat, kann man es aber wieder mit CSS:</p><div
class="css geshi css" style="font-family:monospace;"><div
class="head">CSS, um den Baum nach Klick auf Kind-Knoten offen zu halten</div><ol><li
class="li1"><div
class="de1"><span
class="coMULTI">/* CATS Allgemein */</span></div></li><li
class="li1"><div
class="de1"><span
class="re1">.cat-item</span> a <span
class="br0">&#123;</span> <span
class="kw1">display</span><span
class="sy0">:</span><span
class="kw2">inline</span><span
class="sy0">;</span> <span
class="br0">&#125;</span></div></li><li
class="li1"><div
class="de1"><span
class="re1">.cat-item</span> ul <span
class="br0">&#123;</span> <span
class="kw1">list-style</span><span
class="sy0">:</span><span
class="kw2">none</span><span
class="sy0">;</span> <span
class="br0">&#125;</span></div></li><li
class="li1"><div
class="de1"><span
class="re1">.cat-item</span> ul li <span
class="br0">&#123;</span> <span
class="kw1">list-style</span><span
class="sy0">:</span><span
class="kw2">none</span><span
class="sy0">;</span> <span
class="br0">&#125;</span></div></li><li
class="li2"><div
class="de2">&nbsp;</div></li><li
class="li1"><div
class="de1"><span
class="coMULTI">/* CSS::Aufklappen Ebene 1 */</span></div></li><li
class="li1"><div
class="de1"><span
class="re1">.cat-item</span> ul <span
class="br0">&#123;</span> <span
class="kw1">display</span><span
class="sy0">:</span><span
class="kw2">none</span><span
class="sy0">;</span> <span
class="br0">&#125;</span></div></li><li
class="li1"><div
class="de1">&nbsp;</div></li><li
class="li1"><div
class="de1"><span
class="coMULTI">/* CSS::Aufklappen Ebene 2 */</span></div></li><li
class="li2"><div
class="de2"><span
class="re1">.cat-item</span> ul li img <span
class="br0">&#123;</span> <span
class="kw1">display</span><span
class="sy0">:</span><span
class="kw2">inline</span><span
class="sy0">;</span> <span
class="br0">&#125;</span></div></li><li
class="li1"><div
class="de1">&nbsp;</div></li><li
class="li1"><div
class="de1"><span
class="coMULTI">/* CSS::Aufklappen Ebene 3 */</span></div></li><li
class="li1"><div
class="de1"><span
class="re1">.cat-item</span> ul li ul <span
class="br0">&#123;</span> <span
class="kw1">display</span><span
class="sy0">:</span><span
class="kw2">none</span><span
class="sy0">;</span> <span
class="br0">&#125;</span></div></li><li
class="li1"><div
class="de1">&nbsp;</div></li><li
class="li2"><div
class="de2"><span
class="coMULTI">/* CSS::Erhalten Ebene 1 */</span></div></li><li
class="li1"><div
class="de1"><span
class="re1">.current-cat-item</span> ul <span
class="br0">&#123;</span> <span
class="kw1">display</span><span
class="sy0">:</span><span
class="kw2">block</span><span
class="sy0">;</span> <span
class="br0">&#125;</span></div></li><li
class="li1"><div
class="de1"><span
class="re1">.current-cat-item</span> img <span
class="br0">&#123;</span> <span
class="kw1">display</span><span
class="sy0">:</span><span
class="kw2">none</span><span
class="sy0">;</span> <span
class="br0">&#125;</span></div></li><li
class="li1"><div
class="de1">&nbsp;</div></li><li
class="li1"><div
class="de1"><span
class="coMULTI">/* CSS::Erhalten Ebene 2 */</span></div></li><li
class="li2"><div
class="de2"><span
class="re1">.current-cat-ancestor</span> ul <span
class="br0">&#123;</span> <span
class="kw1">display</span><span
class="sy0">:</span><span
class="kw2">block</span><span
class="sy0">;</span> <span
class="br0">&#125;</span></div></li><li
class="li1"><div
class="de1"><span
class="re1">.current-cat-ancestor</span> img <span
class="br0">&#123;</span> <span
class="kw1">display</span><span
class="sy0">:</span><span
class="kw2">none</span><span
class="sy0">;</span> <span
class="br0">&#125;</span></div></li><li
class="li1"><div
class="de1">&nbsp;</div></li><li
class="li1"><div
class="de1"><span
class="coMULTI">/* CSS::Erhalten Ebene 3 */</span></div></li><li
class="li1"><div
class="de1"><span
class="re1">.current-cat-ancestor</span> ul li<span
class="re1">.current-cat-ancestor</span> ul <span
class="br0">&#123;</span> <span
class="kw1">display</span><span
class="sy0">:</span><span
class="kw2">block</span><span
class="sy0">;</span> <span
class="br0">&#125;</span></div></li><li
class="li2"><div
class="de2"><span
class="re1">.current-cat-ancestor</span> ul li<span
class="re1">.current-cat-ancestor</span> img <span
class="br0">&#123;</span> <span
class="kw1">display</span><span
class="sy0">:</span><span
class="kw2">none</span><span
class="sy0">;</span> <span
class="br0">&#125;</span></div></li></ol></div><p>Ich habe die <em>display</em>-Property der <em>img</em>-Tags noch so gesetzt, dass ein Baum, der gerade durch Klick auf ein Kind-Element offen bleiben soll, auch nicht mehr geschlossen werden kann; sonst wäre ja der Bezugspunkt unsichtbar.</p><p>Ein Wort noch zu deaktiviertem JavaScript: Sollte kein JS verfügbar sein, so erhält der Benutzer keinen Hinweis auf Kindsknoten. Sie werden zwar nach dem Neu-Laden wegen CSS aufgeklappt dargestellt, aber eben nicht in Echtzeit.</p><p>Eventuell wäre es deswegen sinnvoll, in einem nächsten WordPress-Release eine CSS-Klasse &#8220;page-item-haschildren&#8221; zu den &#8220;page-items&#8221; und &#8220;cat-items&#8221; mit auszugeben.</p> ]]></content:encoded> <wfw:commentRss>http://www.mcseven.me/2009/04/neue-navigation-nachtrag/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Neues Navigationsmenü</title><link>http://www.mcseven.me/2009/04/neues-navigationsmenu/</link> <comments>http://www.mcseven.me/2009/04/neues-navigationsmenu/#comments</comments> <pubDate>Tue, 07 Apr 2009 19:44:56 +0000</pubDate> <dc:creator>McSeven</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[Baumstruktur]]></category> <category><![CDATA[CSS]]></category> <category><![CDATA[JavaScript]]></category> <category><![CDATA[Navigation]]></category> <category><![CDATA[WordPress]]></category><guid
isPermaLink="false">http://www.mcseven.me/?p=247</guid> <description><![CDATA[Dieser Artikel beschreibt die neue Navigationsfunktion im Baum auf der rechten Seite.]]></description> <content:encoded><![CDATA[<h1>Funktionsbeschreibung</h1><p>Heute hab ich der Seite einmal eine bessere Navigation verpaßt. Zwar gibt ja schon sehr viele Navigationsplugins, aber trotz zweitägiger Suche habe keines gefunden, das folgende Funktionalitäten ermöglicht:</p><ol><li>Es werden in jedem Nav-Baum (Seiten, Kategorien, usw.) beim Laden der Seite nur die Ebene1-Elemente angezeigt.</li><li>Sollte ein Element &#8220;Kinder&#8221; haben, so muss das irgendwie kenntlich gemacht werden (z.B. ein &#8220;Plus&#8221;-Icon).</li><li>Wenn ich mit der Maus über ein solches Eltern-Element drüberfahre, sollen sich die Kinder der nächsten Ebene aufklappen. Ich möchte nicht erst noch auf das Eltern-Element klicken müssen, das behindert die Navigation. Drüberfahren muss reichen.</li><li>Die beschriebene Funktion sollte möglichst bei allen Elementen (also auch in der 5. Ebene) funktionieren.</li><li>Optional: Wenn möglich ohne Javascript</li></ol><p>Nun ja, folgendes kam dabei heraus: WordPress ordnet die Navigation mittels <strong>U</strong>nordered <strong>L</strong>ists (<em>&lt;ul&gt;</em>-Tag) und verpaßt den Elementen in der Sidebar unterschiedliche CSS-Klassen.</p><ul><li>Jede Ebene ist für sich in ein &lt;ul&gt;-Tag sortiert, die Liste enthält als &lt;li&gt; alle Navigationspunkte der jeweiligen Ebene (also ein UL für Ebene 1, je eines für Ebene 1.1 und 1.2, usw.)</li><li>Die <em>&lt;ul&gt;</em> der Kinder-Ebene wird innerhalb des <em>&lt;li&gt;</em>-Tags der Elternebene plaziert.</li><li>Es haben alle Nav-Punkte z.B. der &#8220;Seiten&#8221;-Navigation mindestens die CSS-Klasse &#8220;page_item&#8221; und &#8220;page-item-$id&#8221; (beachte den Unterschied im Trennzeichen: Underscore &#8220;_&#8221; und Minus &#8220;-&#8221;!). Im Blog-Menü lauten sie entsprechend &#8220;cat_item&#8221; und &#8220;cat-item-$id&#8221;.</li></ul><h1>CSS-Teil</h1><p>Wir können das Aufklappen und den aufgeklappten Baum beim neu laden der Seite also alleine über CSS ohne JavaScript lösen:</p><div
class="css geshi css" style="font-family:monospace;"><ol><li
class="li1"><div
class="de1"><span
class="coMULTI">/* PAGES Allgemein */</span></div></li><li
class="li1"><div
class="de1"><span
class="re1">.page_item</span> a <span
class="br0">&#123;</span> <span
class="kw1">display</span><span
class="sy0">:</span><span
class="kw2">inline</span><span
class="sy0">;</span> <span
class="br0">&#125;</span> <span
class="coMULTI">/* Um die Bilder in die gleiche Zeile zu rutschen */</span></div></li><li
class="li1"><div
class="de1"><span
class="re1">.page_item</span> ul <span
class="br0">&#123;</span> <span
class="kw1">list-style</span><span
class="sy0">:</span><span
class="kw2">none</span><span
class="sy0">;</span> <span
class="br0">&#125;</span> <span
class="coMULTI">/* keine Bullets vor irgendwelchen Listen */</span></div></li><li
class="li1"><div
class="de1"><span
class="re1">.page_item</span> ul li <span
class="br0">&#123;</span> <span
class="kw1">list-style</span><span
class="sy0">:</span><span
class="kw2">none</span><span
class="sy0">;</span> <span
class="br0">&#125;</span> <span
class="coMULTI">/* same here */</span></div></li><li
class="li2"><div
class="de2"><span
class="coMULTI">/* &#8212; */</span></div></li><li
class="li1"><div
class="de1">&nbsp;</div></li><li
class="li1"><div
class="de1"><span
class="coMULTI">/* CSS::Aufklappen Ebene 1 */</span></div></li><li
class="li1"><div
class="de1"><span
class="coMULTI">/* Anmerkung zu CSS: Leider wirken sich die nächsten drei Zeilen</span></div></li><li
class="li1"><div
class="de1"><span
class="coMULTI">auf *alle* Knoten aus, egal wie verschachtelt sie sein mögen.</span></div></li><li
class="li2"><div
class="de2"><span
class="coMULTI">Deswegen müssen wir weiter unten für jeden der drei Fälle hier</span></div></li><li
class="li1"><div
class="de1"><span
class="coMULTI">noch spezifizieren, dass eine Ebene weiter drunter eben *nicht*</span></div></li><li
class="li1"><div
class="de1"><span
class="coMULTI">eingeblendet werden soll.</span></div></li><li
class="li1"><div
class="de1"><span
class="coMULTI">Oder anders: Hier wird der gesamte Baum eingeblendet; weiter</span></div></li><li
class="li1"><div
class="de1"><span
class="coMULTI">unten blenden wir die Kinder wieder aus. */</span></div></li><li
class="li2"><div
class="de2"><span
class="re1">.page_item</span> ul <span
class="br0">&#123;</span> <span
class="kw1">display</span><span
class="sy0">:</span><span
class="kw2">none</span><span
class="sy0">;</span> <span
class="br0">&#125;</span> <span
class="coMULTI">/* Alle Unterebenen per default zugeklappt */</span></div></li><li
class="li1"><div
class="de1"><span
class="re1">.page_item</span><span
class="re2">:hover </span>ul <span
class="br0">&#123;</span> <span
class="kw1">display</span><span
class="sy0">:</span><span
class="kw2">inherit</span><span
class="sy0">;</span> <span
class="br0">&#125;</span> <span
class="coMULTI">/* beim Hovern einblenden */</span></div></li><li
class="li1"><div
class="de1"><span
class="re1">.page_item</span><span
class="re2">:hover </span>img <span
class="br0">&#123;</span> <span
class="kw1">display</span><span
class="sy0">:</span><span
class="kw2">none</span><span
class="sy0">;</span> <span
class="br0">&#125;</span> <span
class="coMULTI">/* Plus ausblenden */</span></div></li><li
class="li1"><div
class="de1">&nbsp;</div></li><li
class="li1"><div
class="de1"><span
class="coMULTI">/* CSS::Aufklappen Ebene 2 */</span></div></li><li
class="li2"><div
class="de2"><span
class="re1">.page_item</span> ul li img <span
class="br0">&#123;</span> <span
class="kw1">display</span><span
class="sy0">:</span><span
class="kw2">inline</span><span
class="sy0">;</span> <span
class="br0">&#125;</span></div></li><li
class="li1"><div
class="de1"><span
class="re1">.page_item</span><span
class="re2">:hover </span>ul li ul <span
class="br0">&#123;</span> <span
class="kw1">display</span><span
class="sy0">:</span><span
class="kw2">none</span><span
class="sy0">;</span> <span
class="br0">&#125;</span></div></li><li
class="li1"><div
class="de1"><span
class="re1">.page_item</span><span
class="re2">:hover </span>ul li img <span
class="br0">&#123;</span> <span
class="kw1">display</span><span
class="sy0">:</span><span
class="kw2">inline</span><span
class="sy0">;</span> <span
class="br0">&#125;</span> <span
class="coMULTI">/* Plus ausblenden */</span></div></li><li
class="li1"><div
class="de1">&nbsp;</div></li><li
class="li1"><div
class="de1"><span
class="coMULTI">/* CSS::Aufklappen Ebene 3 */</span></div></li><li
class="li2"><div
class="de2"><span
class="re1">.page_item</span> ul li ul <span
class="br0">&#123;</span> <span
class="kw1">display</span><span
class="sy0">:</span><span
class="kw2">none</span><span
class="sy0">;</span> <span
class="br0">&#125;</span></div></li><li
class="li1"><div
class="de1"><span
class="re1">.page_item</span> ul li<span
class="re2">:hover </span>ul <span
class="br0">&#123;</span> <span
class="kw1">display</span><span
class="sy0">:</span><span
class="kw2">inherit</span><span
class="sy0">;</span> <span
class="br0">&#125;</span></div></li><li
class="li1"><div
class="de1"><span
class="re1">.page_item</span> ul li<span
class="re2">:hover </span>img <span
class="br0">&#123;</span> <span
class="kw1">display</span><span
class="sy0">:</span><span
class="kw2">none</span><span
class="sy0">;</span> <span
class="br0">&#125;</span></div></li><li
class="li1"><div
class="de1">&nbsp;</div></li><li
class="li1"><div
class="de1"><span
class="coMULTI">/* CSS::Erhalten Ebene 1 */</span></div></li><li
class="li2"><div
class="de2"><span
class="re1">.current_page_item</span> ul <span
class="br0">&#123;</span> <span
class="kw1">display</span><span
class="sy0">:</span><span
class="kw2">inherit</span><span
class="sy0">;</span> <span
class="br0">&#125;</span></div></li><li
class="li1"><div
class="de1"><span
class="re1">.current_page_item</span> img <span
class="br0">&#123;</span> <span
class="kw1">display</span><span
class="sy0">:</span><span
class="kw2">none</span><span
class="sy0">;</span> <span
class="br0">&#125;</span></div></li><li
class="li1"><div
class="de1">&nbsp;</div></li><li
class="li1"><div
class="de1"><span
class="coMULTI">/* CSS::Erhalten Ebene 2 */</span></div></li><li
class="li1"><div
class="de1"><span
class="re1">.current_page_ancestor</span> ul <span
class="br0">&#123;</span> <span
class="kw1">display</span><span
class="sy0">:</span><span
class="kw2">inherit</span><span
class="sy0">;</span> <span
class="br0">&#125;</span></div></li><li
class="li2"><div
class="de2"><span
class="re1">.current_page_ancestor</span> img <span
class="br0">&#123;</span> <span
class="kw1">display</span><span
class="sy0">:</span><span
class="kw2">none</span><span
class="sy0">;</span> <span
class="br0">&#125;</span></div></li><li
class="li1"><div
class="de1">&nbsp;</div></li><li
class="li1"><div
class="de1"><span
class="coMULTI">/* CSS::Erhalten Ebene 2 */</span></div></li><li
class="li1"><div
class="de1"><span
class="re1">.current_page_ancestor</span> ul li<span
class="re1">.current_page_ancestor</span> ul <span
class="br0">&#123;</span> <span
class="kw1">display</span><span
class="sy0">:</span><span
class="kw2">inherit</span><span
class="sy0">;</span> <span
class="br0">&#125;</span></div></li><li
class="li1"><div
class="de1"><span
class="re1">.current_page_ancestor</span> ul li<span
class="re1">.current_page_ancestor</span> img <span
class="br0">&#123;</span> <span
class="kw1">display</span><span
class="sy0">:</span><span
class="kw2">none</span><span
class="sy0">;</span> <span
class="br0">&#125;</span></div></li></ol></div><p>CSS-Klassen werden nicht rekursiv angewendet, deswegen ist es unbedingt erforderlich, jeden möglichen Pfad im Baum mit Klassen zu versehen. Ich habe dies oben für die Seiten-Navigation mit maximal drei Ebenen erledigt.</p><p>Sollte der Benutzer nun vom Eltern-Element wegfahren, um zu einem Kind-Element zu gelangen, so macht das nichts, er ist ja immer noch über dem allumspannenden <em>&lt;li&gt;</em>-Tag drüber. Das Menü bleibt also aufgeklappt.</p><h1>JavaScript-Teil</h1><p>Leider gibt WordPress in einer Ebene nicht aus, ob sich noch Kinder darin befinden. Es ist mir also nicht gelungen, das Plus-Icon oder einen Text alleine auf CSS basierend an das &lt;a&gt;-Tag zu hängen. Meine Idee wäre gewesen, dem &lt;ul&gt;-Tag der Kind-Ebene ein neues Element voranzustellen:</p><div
class="css geshi css" style="font-family:monospace;"><ol><li
class="li1"><div
class="de1"><span
class="re1">.page_item</span> ul<span
class="re2">:before </span><span
class="br0">&#123;</span></div></li><li
class="li1"><div
class="de1">&nbsp; <span
class="kw1">content</span><span
class="sy0">:</span><span
class="kw2">url</span><span
class="br0">&#40;</span><span
class="st0">&quot;img/plus.gif&quot;</span><span
class="br0">&#41;</span><span
class="sy0">;</span></div></li><li
class="li1"><div
class="de1"><span
class="br0">&#125;</span></div></li></ol></div><p>Leider wertet der Browser das insofern korrekt aus, als dass der den Content anzeigt, aber nur, wenn das Element sichtbar ist (display=&#8217;inherit&#8217;). Außerdem ist das CSS2-Funktionalität, die im Internet-Explorer nicht funktioniert.</p><p>Ich komme deswegen nicht um JavaScript-Benutzung:</p><div
class="javascript geshi javascript" style="font-family:monospace;"><ol><li
class="li1"><div
class="de1"><span
class="kw2">function</span> addPlussesToTree<span
class="br0">&#40;</span><span
class="br0">&#41;</span> <span
class="br0">&#123;</span></div></li><li
class="li1"><div
class="de1">&nbsp; <span
class="kw2">var</span> navTree <span
class="sy0">=</span> document.<span
class="me1">getElementById</span><span
class="br0">&#40;</span><span
class="st0">&quot;sidebar&quot;</span><span
class="br0">&#41;</span><span
class="sy0">;</span></div></li><li
class="li1"><div
class="de1">&nbsp; <span
class="kw1">if</span> <span
class="br0">&#40;</span><span
class="sy0">!</span>navTree<span
class="br0">&#41;</span> <span
class="br0">&#123;</span> <span
class="kw1">return</span><span
class="sy0">;</span> <span
class="br0">&#125;</span></div></li><li
class="li1"><div
class="de1">&nbsp; <span
class="kw2">var</span> myLiTags <span
class="sy0">=</span> navTree.<span
class="me1">getElementsByTagName</span><span
class="br0">&#40;</span><span
class="st0">&quot;li&quot;</span><span
class="br0">&#41;</span><span
class="sy0">;</span></div></li><li
class="li2"><div
class="de2">&nbsp; <span
class="kw1">if</span> <span
class="br0">&#40;</span><span
class="sy0">!</span>myLiTags<span
class="br0">&#41;</span> <span
class="br0">&#123;</span> <span
class="kw1">return</span><span
class="sy0">;</span> <span
class="br0">&#125;</span></div></li><li
class="li1"><div
class="de1">&nbsp; <span
class="kw1">for</span> <span
class="br0">&#40;</span>i<span
class="sy0">=</span><span
class="nu0">0</span><span
class="sy0">;</span> i<span
class="sy0">&lt;</span>myLiTags.<span
class="me1">length</span><span
class="sy0">;</span> i<span
class="sy0">++</span><span
class="br0">&#41;</span> <span
class="br0">&#123;</span></div></li><li
class="li1"><div
class="de1">&nbsp; &nbsp; <span
class="kw1">if</span> <span
class="br0">&#40;</span>myLiTags<span
class="br0">&#91;</span>i<span
class="br0">&#93;</span>.<span
class="me1">innerHTML</span>.<span
class="me1">indexOf</span><span
class="br0">&#40;</span><span
class="st0">&quot;&lt;ul&quot;</span><span
class="br0">&#41;</span><span
class="sy0">&gt;-</span><span
class="nu0">1</span><span
class="br0">&#41;</span> <span
class="br0">&#123;</span></div></li><li
class="li1"><div
class="de1">&nbsp; &nbsp; &nbsp; <span
class="kw2">var</span> imgEl <span
class="sy0">=</span> document.<span
class="me1">createElement</span><span
class="br0">&#40;</span><span
class="st0">&quot;img&quot;</span><span
class="br0">&#41;</span><span
class="sy0">;</span></div></li><li
class="li1"><div
class="de1">&nbsp; &nbsp; &nbsp; imgEl.<span
class="me1">src</span> <span
class="sy0">=</span> <span
class="st0">&#39;&lt;?php bloginfo(&#39;</span>stylesheet_directory<span
class="st0">&#39;); ?&gt;/images/icon_plus.gif&#39;</span><span
class="sy0">;</span></div></li><li
class="li2"><div
class="de2">&nbsp; &nbsp; &nbsp; imgEl.<span
class="me1">border</span> <span
class="sy0">=</span> <span
class="st0">&quot;0&quot;</span><span
class="sy0">;</span></div></li><li
class="li1"><div
class="de1">&nbsp; &nbsp; &nbsp; myLiTags<span
class="br0">&#91;</span>i<span
class="br0">&#93;</span>.<span
class="me1">insertBefore</span><span
class="br0">&#40;</span>imgEl<span
class="sy0">,</span> myLiTags<span
class="br0">&#91;</span>i<span
class="br0">&#93;</span>.<span
class="me1">getElementsByTagName</span><span
class="br0">&#40;</span><span
class="st0">&quot;ul&quot;</span><span
class="br0">&#41;</span><span
class="br0">&#91;</span><span
class="nu0">0</span><span
class="br0">&#93;</span><span
class="br0">&#41;</span><span
class="sy0">;</span></div></li><li
class="li1"><div
class="de1">&nbsp; &nbsp; <span
class="br0">&#125;</span></div></li><li
class="li1"><div
class="de1">&nbsp; <span
class="br0">&#125;</span></div></li><li
class="li1"><div
class="de1"><span
class="br0">&#125;</span></div></li><li
class="li2"><div
class="de2">addPlussesToTree<span
class="br0">&#40;</span><span
class="br0">&#41;</span><span
class="sy0">;</span></div></li></ol></div><p>Innerhalb des if-Statements kann eingebaut werden, wie und wo die Information über vorhandene Kindknoten erscheinen soll; bei mir eben nach dem Link als Plus-Icon.</p><p>Ich habe dieses Script in meine footer.php meines Themes eingebaut, nachdem ich den absoluten Pfad zu den Images brauche und ich das Script deswegen einmal durch den PHP-Parser schicken muss. JavaScript-Dateien (*.js) nimmt der nämlich nicht.</p><p>Falls ein User JavaScript ausgeschaltet hat, so macht das nichts, er sieht eben dann die Plus-Zeichen nicht. Anregungen oder Fragen gerne in die Kommentare&#8230;</p> ]]></content:encoded> <wfw:commentRss>http://www.mcseven.me/2009/04/neues-navigationsmenu/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Neues Skin</title><link>http://www.mcseven.me/2009/02/neues-skin/</link> <comments>http://www.mcseven.me/2009/02/neues-skin/#comments</comments> <pubDate>Mon, 02 Feb 2009 11:30:36 +0000</pubDate> <dc:creator>McSeven</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[Skin]]></category> <category><![CDATA[Theme]]></category> <category><![CDATA[WordPress]]></category><guid
isPermaLink="false">http://www.mcseven.me/?p=100</guid> <description><![CDATA[Heureka - Es kommt ein Theme geladen!]]></description> <content:encoded><![CDATA[<p>Wahrscheinlich ist aller Anfang schwer, aber nachdem das bisherige Theme nicht besonders prickelnd war, hab ich mal ein neues erstellt. Hintergrundgrafiken und mehrere CSS-Klassen sind aus dem Theme <a
title="Theme Birdie bei wordpress.org" href="http://wordpress.org/extend/themes/birdie" target="_blank">Birdie</a> von Autor <a
title="Solberg bei wordpress.org" href="http://wordpress.org/extend/themes/profile/solberg" target="_blank">Solberg</a>.</p><p>Schreibt mir, was euch gefällt, oder was noch verbessert werden könnte. Speziell fällt mir da die Navigationsleiste bei mehreren Seiten ein: Ist es gut, dass die oben und unten erscheint? Mein Hintergedanke war, dass einige vielleicht gleich zu einer Seite gehen möchten und andere den Text immer bis ganz unten lesen.</p><p>Dann sind alle zufrieden&#8230; so long <img
src='http://www.mcseven.me/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /></p> ]]></content:encoded> <wfw:commentRss>http://www.mcseven.me/2009/02/neues-skin/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: basic
Database Caching 46/119 queries in 0.059 seconds using disk: basic
Object Caching 887/981 objects using disk: basic

Served from: www.mcseven.me @ 2012-02-08 04:27:15 -->
