a:focus wird nicht angezeigt
maggie
- css
Hallo,
ich habe in html eine Liste:
<dl class="menu">
<dt>
Hauptmenü
</dt>
<dd>
Untermenü
</dd>
</dl>
Den Untermenüpunkten möchte ich beim angeklickten Unterpunkt eine andere Hingergrundfarbe geben. Mein CSS Anweisung sieht so aus:
dl.menu dd a:focus {background-color:#dddddd; color:#000000;}
Was ist an diese Style-Anweisung falsch? Das gewünschte wird nicht angezeigt :-(
Gruß
Maggie
Was ist an diese Style-Anweisung falsch? Das gewünschte wird nicht angezeigt :-(
Sie selektiert etwas, was in dienem HTML-Code nicht vorhanden ist.
Zudem solltest du dich mit den Termini "focus" und "active" (insbesondere die zugehörigen Pseudo-Klassen) beschäftigen.
Ggf. wird dich auch interresieren, dass keine der beiden geeignet ist um den derzeitigen Menüpunkt zu Kennzeichnen.
Hi,
<dl class="menu">
<dt>
Hauptmenü
</dt>
<dd>
Untermenü
</dd>
</dl>
>
> Den Untermenüpunkten möchte ich beim angeklickten Unterpunkt eine andere Hingergrundfarbe geben. Mein CSS Anweisung sieht so aus:
> `dl.menu dd a:focus {background-color:#dddddd; color:#000000;}`{:.language-css}
In Deinem Code gibt es kein a-Element - wie soll also ein a-Element den Fokus erhalten?
Ansonsten: Du testest doch nicht etwa mit einem IE? Der kann bis mind. Version 6 mit :focus nichts anfangen.
cu,
Andreas
--
[Warum nennt sich Andreas hier MudGuard?](http://MudGuard.de/)
[O o ostern ...](http://ostereier.andreas-waechter.de/)
Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
Ansonsten: Du testest doch nicht etwa mit einem IE? Der kann bis mind. Version 6 mit :focus nichts anfangen.
Nein, mein Lieblings-Browser ist Firefox ;-)
cu,
Andreas
Hi, sorry, ich wollte meinen Inhalt kürzen, aber dass da ein 'a href' ist, sollte ich schon sagen.
<dl class="menu">
<dt>
<a href="zierdatei.html">Hautpmenü</a>
</dt>
<dd>
<a href="zierdatei.html">Untermenü</a>
</dd>
</dl>
Nein, mein Lieblings-Browser ist Firefox ;-)
Mein Lieblingsbrowser ist Opera - das ist aber unerheblich, wichtig ist welche Browser deine Besucher verwenden und wie wichtig es dir ist, dass deine Besucher eine ordentlich dargestellte Seite angezeigt bekommen.
Mahlzeit maggie,
Hi, sorry, ich wollte meinen Inhalt kürzen, aber dass da ein 'a href' ist, sollte ich schon sagen.
Ja.
MfG,
EKKi
Hi,
<a href="zierdatei.html">Hautpmenü</a>
Wenn Du auf den Link klickst, wird die neue Datei dargestellt - und in der hast Du einen evtl. gleich aussehenden Link noch nicht fokussiert.
Oder verschweigst Du weitere relevante Details (wie z.B. ein <base target="wuergwermachtdennsowas"> oder ein Javascript-setFocus())?
cu,
Andreas
Wenn Du auf den Link klickst, wird die neue Datei dargestellt - und in der hast Du einen evtl. gleich aussehenden Link noch nicht fokussiert.
Oder verschweigst Du weitere relevante Details (wie z.B. ein <base target="wuergwermachtdennsowas"> oder ein Javascript-setFocus())?
Hi,
die Navigation wird in die verlinkte Datei includiert.
Maggie
Hallo
Wenn Du auf den Link klickst, wird die neue Datei dargestellt - und in der hast Du einen evtl. gleich aussehenden Link noch nicht fokussiert.
Oder verschweigst Du weitere relevante Details (wie z.B. ein <base target="wuergwermachtdennsowas"> oder ein Javascript-setFocus())?
die Navigation wird in die verlinkte Datei includiert.
Das ist hier zunächst(!) unerheblich. Mit dem Betätigen des Links wird ein neues Dokument geladen. *Dort* hast du aber noch keinerlei Aktion ausgeführt, so dass dort der Fokus auch nicht auf dem Link liegt. Das sagte MudGuard mit seinem ersten Satz.
So, zum "zunächst". Je nachdem, mit welcher Technik (SSI, PHP, Perl, ...) du die Navigation in das Dokument einfügst, kannst du den Namen des Dokuments ermitteln und innerhalb der Navigation den HTML-Quelltext anpassen, um das Dokument aus der Navigation auszunehmen (Anzeige des Namens ohne Verlinkung) und z.B. mit einer ID oder Klasse zu versehen, die über CSS die optische Darstellung entscheidet.
Tschö, Auge
Das ist hier zunächst(!) unerheblich. Mit dem Betätigen des Links wird ein neues Dokument geladen. *Dort* hast du aber noch keinerlei Aktion ausgeführt, so dass dort der Fokus auch nicht auf dem Link liegt. Das sagte MudGuard mit seinem ersten Satz.
So, zum "zunächst". Je nachdem, mit welcher Technik (SSI, PHP, Perl, ...) du die Navigation in das Dokument einfügst, kannst du den Namen des Dokuments ermitteln und innerhalb der Navigation den HTML-Quelltext anpassen, um das Dokument aus der Navigation auszunehmen (Anzeige des Namens ohne Verlinkung) und z.B. mit einer ID oder Klasse zu versehen, die über CSS die optische Darstellung entscheidet.
Tschö, Auge
Danke, ja Fokus ist mir klar geworden.
Der angeklickte Link soll so aussehen:
dl.menu dd a:active {background-color:#dddddd;}
navi.php
<dl class="menu">
<dt>
<?php
echo '<a href="navi31.php?x=3">navi31</a>';
?>
</dt>
<?php
if(intval($_GET["x"]) == 3)
{
echo '<dd>
<a href="navi31.php?x=3">navi31</a>
<a href="navi32.php?x=3">navi32</a>
<a href="navi33.php?x=3">navi33</a>
</dd>';
}
?>
</dl>
Eingebunden wird die navi.php so:
<?php include ("navi.php"); ?>
Müsste ich nun noch eine ID weitergeben? z.B.
"id="aktiv"";
Hallo
Der angeklickte Link soll so aussehen:
dl.menu dd a:active {background-color:#dddddd;}
Dir ist offensichtlich nicht klar, wie a:active funktioniert. Diese Pseudoklasse kommt *in dem Moment* zum Zug, wenn du mit der Maus einen Link anklickst, und zwar *genau* und *nur* in *diesem Moment*.
navi.php
<?php
if(intval($_GET["x"]) == 3)
{
echo '<dd>
<a href="navi31.php?x=3">navi31</a>
<a href="navi32.php?x=3">navi32</a>
<a href="navi33.php?x=3">navi33</a>
</dd>';
}
?>
Ob man die Links, einen an dem anderen, direkt hintereinandersetzen sollte, lasse ich mal dahingestellt. Allerdings würdest du, wie ich schon schrieb, dem ganzen Dilemma aus dem Weg gehen, wenn du das aktuell zu ladende Dokument identifizieren könntest.
Gehen wir mal davon aus, dass du alle naviXX.php (XX für beliebige Zahl) kennst. Du könntest an dieser Stelle mit einem Array all dieser Dateien arbeiten. Um den Linktext gleich mitzunehmen, bauen wir uns ein assoziatives Array mit beiden Informationen.
~~~php
<?php
$navi = array(
array("navi31.php"=>"navi31"),
array("navi32.php"=>"navi32"),
array("navi33.php"=>"navi33")
);
?>
Wenn es denn zur Ausgabe kommt, kann man dieses Array durchgehen und die aktuell zu ladende Datei ermitteln. Die Prüfung auf $_GET["x"]
lasse ich mal außen vor und stecke die Navigation (innerhalb der von dir verwendeten Definitionsliste) in eine ungeordnete Liste. Weiterhin ist davon auszugehen, dass der Name der aktuell zu ladenden Datei in der Variable $aktuell
gespeichert ist. Praktisch läuft das ein wenig anders, da im Zweifelsfall ein Dateiname in mehreren Verzeichnissen vorkommen kann. Deshalb verwendet man eher eine <http://de.selfhtml.org/html/allgemein/referenzieren.htm#absolut@title=lokal absolute Pfadangabe>.
<?php
echo '<ul>';
foreach ($navi as $key=>$value) {
echo ' <li>';
if ($key==$aktuell) {
// Der Menüpunkt betrifft das aktuelle Dokument.
// Der Menüpunkt wird nicht verlinkt.
echo '<span id="aktiv">'.$value.'</span>';
} else {
// Der Menüpunkt betrifft ein anderes Dokument.
// Der Menüpunkt wird verlinkt.
echo '<a href="'.$key.'?x=3">'.$value.'</a>';
}
echo '</li>';
}
echo '</ul>';
?>
Müsste ich nun noch eine ID weitergeben? z.B.
"id="aktiv"";
Nein, nicht weitergeben, sondern im neu zu ladenden Dokument vergeben.
Tschö, Auge
Hallo
Der angeklickte Link soll so aussehen:
dl.menu dd a:active {background-color:#dddddd;}
Dir ist offensichtlich nicht klar, wie a:active funktioniert. Diese Pseudoklasse kommt *in dem Moment* zum Zug, wenn du mit der Maus einen Link anklickst, und zwar *genau* und *nur* in *diesem Moment*.
Hi Auge, doch, ist mir klar - wollte damit nur sagen/zeigen wie das CSS zum aufgeführten html/php aussieht.
...habe Dir eine Mail geschrieben.
Gruß
Maggie
Mahlzeit maggie,
...habe Dir eine Mail geschrieben.
Ich weiß ja nicht, wie Auge das so sieht ... aber *genau das* ist normalerweise eben gerade *nicht* Sinn und Zweck eines öffentlichen Forums, in dem Probleme genannt, erörtert und meistens auch gelöst werden.
Zumindest wenn Du in Deiner Mail das Problem weiter diskutierst ... wenn es sich um was anderes handelt, ignoriere meinen Hinweis bitte.
MfG,
EKKi
Hallo
...habe Dir eine Mail geschrieben.
Ich weiß ja nicht, wie Auge das so sieht ... aber *genau das* ist normalerweise eben gerade *nicht* Sinn und Zweck eines öffentlichen Forums, in dem Probleme genannt, erörtert und meistens auch gelöst werden.
Zumindest wenn Du in Deiner Mail das Problem weiter diskutierst ... wenn es sich um was anderes handelt, ignoriere meinen Hinweis bitte.
Es handelt sich um etwas anderes. Wenn es denn die weitere "außerforumsche Diskussion" des Problems gewesen wäre, hätte ich sie schon alleine deswegen darauf verwiesen, das weiterhin im Forum zu tun, um zukünftige Sucher nicht im Regen stehen zu lassen.
Weißt' schon: "Keine Panik auf der Titanic, Wasser ist für alle da!".
Tschö, Auge