CSS Link Formatierungs.Problem
Hallo,
ich habe bei meiner Homepage ein Problem mit dem Formatieren von Links mit Hilfe von CSS. Ich finde einfach nicht meinen Fehler.
Am Besten mal ein paar Quellcodeschnippsel:
style.cssa.einleitung:link {text-decoration:none; color:#006600}
datei<div align="justify">
<h4>
<a href="../tipps/icq6/">[Windows-Software] ICQ 6 stylen</a>
</h4>
[b] <p>
<a class="einleitung" href="/tipps/icq6"> blablabla</a><br>
<a class="einleitung" href="/tipps/icq6/">Mehr...</a>
</p>[/b]
[i] <p>
<a class="einleitung" href="www.google.de">TEST</a>
</p>[/i]
</div>
So, das Problem liegt bei dem fett-geschriebenen. Es beachtet einfach nicht die class-Angabe.
Was nun seltsam ist (zumindest für mich):
Wenn ich den Link mit einem www. versehe, so wie im kursiven Text, funktioniert alles wunderbar.
Es hängt also scheinbar vom Link ab, ich verstehe nur nicht warum.
Oder sitzt der Fehler wo anders?
Danke und Gruß
Strg_Alt_Entf ehem. Strg+Alt+Entf
Antwort schreiben
Antwort 1 von DeluxeStyle vom 04.11.2019, 17:33 Options
Mach mal das :link im css weg, gehts dann?
Jein.
Es ändert sich zwar die Farbe (was ich eigentlich nur zu Testzwecken eingesetzt habe), aber der Link ist immer noch unterstrichen.
Nur bei dem kursiven Link namens Test geht es nach wie vor (Farbe und text-decoration:none)
Gruß
Antwort 3 von Supermax vom 04.11.2019, 18:24 Options
Mit welchem Browser hast du das denn getestet? Manche Webbrowser (besonders der IE im "Quirks"-Modus) gehen sehr schlampig mit den CSS-Angaben um.
Nur mit Firefox. IE kann ich nicht testen, da ich Linux verwende.
Gruß
Habe es gerade mit Konqueror (Browser) getestet und der macht es so wie ich es will (also Link nicht unterstreichen).
Weiß jmd. eine Möglichkeit, die von (fast) allen Browsern unterstützt wird?
Gruß
Antwort 6 von derpfleger vom 04.11.2019, 18:51 Options
Wenn ich exakt dein Beispiel aus der Eröffnungsfrage teste, dann klappt deine gewünschte Darstellung problemlos in IE6, FF2, Opera9.
Entweder hast du da noch mehr Code, und der Fehler liegt woanders, oder du hast ganz andere Browser. Mit meinen Browsern kann ich leider dein Problem nicht nachvollziehen...
Gruß derpfleger
Antwort 7 von Supermax vom 04.11.2019, 18:51 Options
Welchen "DOCTYPE" hast du denn angegeben? Ohne gültigen DOCTYPE arbeiten die meisten Browser im Quirksmodus, wo CSS nicht oder anders als erwartet unterstützt wird.
empfehlenswerte Lektüre zum Thema (Englisch)
Danke euch beiden.
Ich gebe euch einfach mal die Seite:
ProblemseiteHTML und CSS sind eigentlich valide.
Gruß
Antwort 9 von derpfleger vom 04.11.2019, 18:59 Options
Habs gerade mit html strict, html transitional und xhtml strict in meinen Browsern getestet und auch ohne doctype: wird immer richtig dargestellt. Ich vermute weiterhin den Fehler woanders im Code des vollständigen Dokumentes .
Antwort 11 von derpfleger vom 04.11.2019, 19:04 Options
wird doch so dargestellt, wie du es willst, oder?
Zitat:
und wo da genau?
Was wo genau? Der Fehler?
Ich kenne mich HTML und CSS-mäßig auch nicht allzugut aus.
Gruß
Antwort 13 von derpfleger vom 04.11.2019, 19:11 Options
Naja, die linktexte werden doch grün und nicht-unterstrichen dargestellt, also so wie du es willst. Der Fehler ist nicht zu sehen.
Abgesehen davon, dass der IE den Inhalt (.inhaltright) unter das .submenu floaten lässt weil es, wenn ich es grob überschlage 2 Pixel zu wenig sind für die width des wrapper.
Zitat:
Naja, die linktexte werden doch grün und nicht-unterstrichen dargestellt, also so wie du es willst. Der Fehler ist nicht zu sehen.
Naja wenn das so ist. Bei mir funktioniert es nämlich beim Firefox2 nicht. Ich verwende ihn allerdings unter Kubuntu
Linux.
Ist halt schon ärgerlich, wenn es nicht überall 100% geht. Wenn ich
text-decoration:none;
zu jedem Link einzeln dazu setze, geht es auch bei mir.
Zitat:
Abgesehen davon, dass der IE den Inhalt (.inhaltright) unter das .submenu floaten lässt weil es, wenn ich es grob überschlage 2 Pixel zu wenig sind für die width des wrapper.
Vielen Dank für die Info. Wie gesagt: Ich habe kein IE.
Gruß und Vielen Dank
Antwort 15 von derpfleger vom 04.11.2019, 19:32 Options
Dann präzisiere ich wenigstens noch: getestet mit FF2.0.0.8 und FF2.0.0.9 .
Schade, da wirst du wohl selbst noch rumspielen müssen, deine Konfiguartion werden ja nicht allzuviele haben.
Eine Idee vielleicht noch: definiere auch ein a:link, das hast du nicht getan. Da will ja die Reihenfolge eingehalten werden.
Und: Opera überschreibt deine Schriftfarbe (weiss) im a:hover mit der grünen Schriftfarbe, da du dort keine einzelnen Pseudoklassen (:link, :visited, :hover :active) für die Klasse .einleitung definiert hast. Das heisst, wenn man die Textteile mit der Maus überfährt, wird zwar der Hintergrund blau, die Schriftfarbe wechselt aber nicht von grün auf weiss und ist so in Opera kaum noch zu lesen.
Zitat:
Und: Opera überschreibt deine Schriftfarbe (weiss) im a:hover mit der grünen Schriftfarbe, da du dort keine einzelnen Pseudoklassen (:link, :visited, :hover :active) für die Klasse .einleitung definiert hast. Das heisst, wenn man die Textteile mit der Maus überfährt, wird zwar der Hintergrund blau, die Schriftfarbe wechselt aber nicht von grün auf weiss und ist so in Opera kaum noch zu lesen.
Ok, werde versuchen, den Fehler (heute oder morgen) zu beheben. Die Farben waren eh nur zufällig ausgewählt (grün passt ja überhaupt nicht zum Rest der Seite...).
Gruß
@derpfleger:
Als das Problem bei Opera beheben wollte, habe ich ganz nebenbei für Firefox unter Linux die Lösung gefunden:
a:link {
color: #000000;
text-decoration:none;
border-bottom: 1px dotted black;
}
a:visited {
color:#000000;
text-decoration: none;
border-bottom: 1px dotted black;
}
a:hover {
color:#ffffff;
text-decoration: none;
border-bottom: none;
background-color:#0066CC;
}
[b]a.einleitung {text-decoration:none; border-bottom:none; color:#000000}
a.einleitung:visited {text-decoration:none; border-bottom:none; color:#000000}
a.einleitung:hover {text-decoration:none; color:#FFFFFF; background-color:0066CC}[/b]
Wenn du das hier ließt kannst du mir ja schreiben, ob's jetzt auch bei Opera funzt.
Antwort 18 von derpfleger vom 04.11.2019, 20:00 Options
Funktioniert bei Opera. Glückwunsch auch zur Lösung für deinen FF.
Gruß derpfleger
Antwort 19 von CSSrules vom 05.11.2019, 08:29 Options
Zitat:
Ohne gültigen DOCTYPE arbeiten die meisten Browser im Quirksmodus
nein, nicht die meisten, sondern ALLE!
Zitat:
Ist halt schon ärgerlich, wenn es nicht überall 100% geht.
mag ärgerlich sein, ist aber so. ZB haben User-Stylesheets grundsätzlich. Vorrang vor deinen Angaben.
Antwort 20 von CSSrules vom 05.11.2019, 09:58 Options
bei der Durchsicht deines Quelltextes:
Zitat:
<div align="justify">
Solche Relikte aus der Vor-CSS-Zeit solltest du vermeiden. Das bläht den Quellcode unnötig auf, ist Dank CSS vollkommen überflüssig, eher kontraproduktiv, und steht daher auch auf der Abschussliste des W3C.
Übrigens leidet dein Quellcode auch an starker DIVitis. Layouten mit CSS bedeutet nicht für alles und jedes noch ein DIV einzufügen. DIVs sind nur eine Krücke, wenn kein semantisch korrektes TAG greifbar ist. Bei dir tauchen aber haufenweise vollkommen überflüssige DIVs auf.
Beispiel:
<div id="menutop">
<div class="menu">
<a href="/tipps" class="menu">Tipps & Tricks</a>
<a class="menu">Fotos</a>
<a class="menu">Musik</a>
<a href="/videothek" class="menu">Videothek</a>
<a class="menu">Fun</a>
<a href="/forum" class="menu">Forum</a>
<a href="/gaestebuch/" class="menu">Gästebuch</a> |
<a href="/ich/" class="menu">TEST</a>
<a href="/vorschlaege" class="menu">URL-Vorschläge</a>
</div>
</div>
Semantisch Korrekt wäre:
<ul id="menutop">
<li><a href="/tipps" >Tipps & Tricks</a></li>
<li><a >Fotos</a></li>
<li><a >Musik</a></li>
<li><a href="/videothek" >Videothek</a></li>
<li>Fun</li>
<li><a href="/forum" >Forum</a></li>
<li><a href="/gaestebuch/" >Gästebuch</a></li>
<li><a href="/ich/" >TEST</a></li>
<li><a href="/vorschlaege" >URL-Vorschläge</a></li>
</ul>
Offensichtlich sind die Links in einer Liste zusammengefasst, also
UL
. Zum Ansprechen aus CSS (aber sogar auch JavaScript) reicht die ID
menutop auch für alle darin enthaltenen Elemente, die Klasse menu ist komplett überflüssig. Informiere dich über
Nachfahrenelemente in CSS. Dass du deine Links nicht untereinander zeigen willst sondern nebeneinander lässt sich - dafür gibts das nämlich - mit CSS festlegen, die Eigenschaft
float auf das umgebende
li
angewendet sollte reichen.