Link und Hover Definitionen
Stingray
- css
0 Aquariophile0 AndreasW0 Sven Rautenberg0 Sven Rautenberg0 AndreasW
0 CarstenP0 CarstenP
0 Kai Lahmann
Moinsen;
Ist es möglich direkt oben im Head mehrere Definitionen für a:link und a:hover reinzuschreiben, so dass man zum Beispiel einer Tabelle einfach nur ne bestimmte ID gibt und dann auch die dazugehörigen CSS Styles benutzt?
Also dass in einer Tabelle dann mal links gelb sind, und in nem anderen Teil der Tabelle links grpn sind?
Wenn ja, wie kennzeichnet man die Styles im Head?
MfG, Sting,
Dieser Text ist frei erfunden und stellt keinen Anspruch
auf Korrektheit bzw. Richtigkeit! Daher wird vom Autor
keinerlei Haftung für den Inhalt übernommen!
Vor Nachahmung wird abgeraten. Um untenstehenden Text
lesen zu dürfen, müssen Sie dieser Vereinbarung zustimmen.
-----------------------------------------------------------
Hallo
mach es in einer CSS Datei
zum Beispiel:
a:link { text-decoration:none; }
a:visited { text-decoration:line-through; }
a:hover { text-decoration:underline; }
a:active { text-decoration:underline; }
a.schwarz:link { color:#000000; }
a.schwarz:visited { color:#000000; }
a.schwarz:hover { color:#000000; }
a.schwarz:active { color:#000000; }
a.rot:link { color:#000000; }
a.rot:visited { color:#000000; }
a.rot:hover { color:#000000; }
a.rot:active { color:#000000; }
LG
Aquariophile
PS.:
Die Lösung ist speziell für die Sache mit den Links.
Wenn Du generelle Definitionen für Tables willst,
dann
table.name { foo }
Moinsen;
Tach,
Ist es möglich direkt oben im Head mehrere Definitionen für a:link und a:hover reinzuschreiben, so dass man zum Beispiel einer Tabelle einfach nur ne bestimmte ID gibt und dann auch die dazugehörigen CSS Styles benutzt?
Ja
Also dass in einer Tabelle dann mal links gelb sind, und in nem anderen Teil der Tabelle links grpn sind?
a:link { /* styles für alle Links */ }
a:visited { /* styles für alle Links */ }
a:focus { /* styles für alle Links */ }
a:hover { /* styles für alle Links */ }
a:active { /* styles für alle Links */ }
table#id a:link { /* styles für alle Links in der Tabelle id */ }
table#id a:visited { /* styles für alle Links in der Tabelle id */ }
table#id a:focus { /* styles für alle Links in der Tabelle id */ }
table#id a:hover { /* styles für alle Links in der Tabelle id */ }
table#id a:active { /* styles für alle Links in der Tabelle id */ }
Beim Link braucht nichts angegeben zu werden, nur die Tabelle braucht in diesem Fall ein id-Attribut mit Wert "id" (der natürlich angepaßt werden kann).
Ähnlich funktioniert es auch, wenn den Tabellen class-Attribute mitgegeben werden, dann halt per
table.classname a:link usw.
Wenn ja, wie kennzeichnet man die Styles im Head?
s.o.
MfG, Sting,
Andreas
Yo!
Also dass in einer Tabelle dann mal links gelb sind, und in nem anderen Teil der Tabelle links grpn sind?
a:link { /* styles für alle Links */ }
a:visited { /* styles für alle Links */ }
a:focus { /* styles für alle Links */ }
a:hover { /* styles für alle Links */ }
a:active { /* styles für alle Links */ }
table#id a:link { /* styles für alle Links in der Tabelle id */ }
table#id a:visited { /* styles für alle Links in der Tabelle id */ }
table#id a:focus { /* styles für alle Links in der Tabelle id */ }
table#id a:hover { /* styles für alle Links in der Tabelle id */ }
table#id a:active { /* styles für alle Links in der Tabelle id */ }
Funktioniern nicht. Warum? Weil der Selektor "table#id a" folgendes Konstrukt selektiert:
<table id="id"><a href="link">Linktext</a></table>
Aber nicht:
<table id="id"><tr><td><a href="link>Linktext</a></td></tr></table>
Variante 1 ist aber kein valides HTML und dürfte daher eher selten anzutreffen sein.
Besser:
td.klasse a:link { ... }
und
<td class="klasse">Text <a href="link">Linktext</a> Text</td>
Warum eine Klasse und keine ID? Netscape 4 versteht nur allgemeine ID-Definitionen mit "#id {...}", aber keine speziell ans Tag gebundene Definition wie "div#id { ... }". Die Variante mit Klassen ist da weitaus besser.
Wenn aber wirklich nur die Tabelle eine ID hat, und irgendwo innerhalb der Tabelle ein Link deshalb speziell formatiert werden soll, dann geht auch folgender Selektor:
table#id * a:link {...}
Das Sternchen steht (wenn SelfHTML korrekt ist) für beliebig viele Zwischentags (in diesem Fall also <tr> und <td>). Nachteil: Netscape 4 versteht das nicht. Sowas ist also eine interessante Möglichkeit, CSS-Angaben vor Netscape 4 zu verstecken (genauso wie die explizite Tag-Angabe bei IDs oben).
- Sven Rautenberg
Yoyo!
Mist, Blödsinn erzählt...
Funktioniern nicht.
Doch.
Warum? Weil der Selektor "table#id a" folgendes Konstrukt selektiert:
<table id="id"><a href="link">Linktext</a></table>
Stimmt noch...
Aber nicht:
<table id="id"><tr><td><a href="link>Linktext</a></td></tr></table>
Stimmt nicht.
Trotzdem ist diese Art des Selektors in Netscape 4 nicht möglich, weil der nur Klassen an Tags anbinden kann, IDs aber immer ohne Tag sein müssen: table.klasse geht, table#id geht nicht.
- Sven Rautenberg
Yoyo!
Hi,
Mist, Blödsinn erzählt...
Allerdings.
Trotzdem ist diese Art des Selektors in Netscape 4 nicht möglich, weil der nur Klassen an Tags anbinden kann, IDs aber immer ohne Tag sein müssen: table.klasse geht, table#id geht nicht.
Daß Netscape 4 kein CSS2 kann, ist bekannt. Das hat aber nichts damit zu tun, daß dieses Konstrukt zulässig ist. Siehe http://www.w3.org/TR/REC-CSS2/selector.html#id-selectors
Auf den ersten Blick mag es sinnlos erscheinen, vor die id noch ein Element zu hängen, da id-Werte ja dokumentweit eindeutig sein müssen.
Aber eine CSS-Datei kann ja auf mehrere Dokumente angewendet werden, und da kann die id ja zulässigerweise mehrfach benutzt werden - auch für unterschiedliche Elemente.
- Sven Rautenberg
Andreas
Moin nochmal!
Auf den ersten Blick mag es sinnlos erscheinen, vor die id noch ein Element zu hängen, da id-Werte ja dokumentweit eindeutig sein müssen.
Aber eine CSS-Datei kann ja auf mehrere Dokumente angewendet werden, und da kann die id ja zulässigerweise mehrfach benutzt werden - auch für unterschiedliche Elemente.
Ich meinte auch nicht, daß das Element vor der ID falsch ist - sondern lediglich, daß Netscape 4 es nicht kennt und deshalb nicht interpretiert. Sowas sollte bei einer Lösung IMO dazugesagt werden. Und gerade dann, wenn man so einfach Abhilfe schaffen kann (indem man wahlweise Klassen nimmt oder das Element nicht angibt).
- Sven Rautenberg
Moin nochmal!
Tach
Ich meinte auch nicht, daß das Element vor der ID falsch ist - sondern lediglich, daß Netscape 4 es nicht kennt und deshalb nicht interpretiert. Sowas sollte bei einer Lösung IMO dazugesagt werden.
Dazu hätte ich wissen müssen, daß der Uralt-Müll-Browser auch damit ein Problem hat - ich befasse mich mit dem Teil nicht mehr.
Und gerade dann, wenn man so einfach Abhilfe schaffen kann (indem man wahlweise Klassen nimmt oder das Element nicht angibt).
Daß das auch mit Klassen machbar ist, habe ich in meinem ersten Posting erwähnt:
<cite>
Ähnlich funktioniert es auch, wenn den Tabellen class-Attribute mitgegeben werden, dann halt per table.classname a:link usw.
</cite>
- Sven Rautenberg
Andreas
Hallo Sven!
table#id a:link { /* styles für alle Links in der Tabelle id */ }
table#id a:visited { /* styles für alle Links in der Tabelle id */ }
table#id a:focus { /* styles für alle Links in der Tabelle id */ }
table#id a:hover { /* styles für alle Links in der Tabelle id */ }
table#id a:active { /* styles für alle Links in der Tabelle id */ }
Funktioniern nicht. Warum? Weil der Selektor "table#id a" folgendes Konstrukt selektiert:
<table id="id"><a href="link">Linktext</a></table>
Aber nicht:
<table id="id"><tr><td><a href="link>Linktext</a></td></tr></table>
Das wäre mir neu (und anscheinend auch dem W3C ;-)
Beispiel-Zitat von http://www.w3.org/TR/REC-CSS2/selector.html#descendant-selectors:
[...]
H1 { color: red }
EM { color: red }
H1 EM { color: blue }
The third rule will match the EM in the following fragment:
<H1>This <SPAN class="myclass">headline
is <EM>very</EM> important</SPAN></H1>
Da hier zwischen H1 und EM noch ein SPAN liegt, sollte es nach Deiner Aussage aber nicht funktionieren.
XY * AB sagt dagegen, daß zwischen XY und AB (mindestens) ein weiteres Element liegen _muß_, damit die Vormatierungen greifen (siehe auf obiger Seite direkt unter dem Beispiel). Würde in dem Problem dieses Threads also genauso funktionieren ;-)
Viele Grüße
Carsten
Hello again,
...und ich sollte mir mal angewöhnen, vor dem Posten noch mal den Forumsindex neu zu laden... ;-)
Viele Grüße
Carsten
hi
Funktioniern nicht. Warum? Weil der Selektor "table#id a" folgendes Konstrukt selektiert:
<table id="id"><a href="link">Linktext</a></table>
Aber nicht:
<table id="id"><tr><td><a href="link>Linktext</a></td></tr></table>
doch!
Was du meinst wäre table#id > a{}
Grüße aus Bleckede
Kai