Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>unverständliches Problem mit CSS

unverständliches Problem mit CSS

schmidl20.11.0812:34
Hallo,

ich hab ein riesen Problem, und versteh es nicht.

ein Link:
<a href="company.html">
<span id="company_hover_active" class="leftnavi">About</span>
</a>

<a href="company_02.html">
<span id="company_hover" class="leftnavi">History</span>
</a>


die CSS Datei:
.leftnavi {
    display: block;
    width: 150px;
    height: 12px;
    padding: 6px;
    padding-top:5px;
    padding-bottom: 8px;
    padding-left: 20px;
    font-size: 11px;
    margin: 6px;
    margin-bottom: 10px;
    color: white;
    font-weight: bold;
}

#company_hover {
    background-color: #e5dfe7;
    color: #7c5d87;
    text-decoration: none;
}
#company_hover_active, #company_hover:hover {
    background-color: #7c5d87;
    color: white;
    text-decoration: none;
}  

Bei company_hover ist die Breite richtig
ändert sich die Klasse auf company_hover_active wird der Balken kurz..
company_hover:hover (was ja das selbe ist wie hover_active) belässt die Länge auch richtig!

Ich werd Wahnsinnig, wieso ist denn das so?

Wär echt super wenn jemand Rat wüsste, is schon relativ Dringend..

Danke!
„ich auch nicht.“
0

Kommentare

kcnb8
kcnb820.11.0812:44
Also wenn ich mir jetzt deinen Code in ein nacktes HTML-Dokument einfüge, sind die Balken alle gleich lang und alles sieht gut aus?!

Vielleicht beisst sich dein CSS-Code mit anderen Klassen in deinem Stylesheet?
„"Life on Earth may be quite expensive, but it includes a free annual trip around the sun." - Ashleigh Brilliant“
0
schmidl20.11.0813:19
Hmm Danke,

komm nicht drauf..

http://www.gat-foodessentials.com/neuesite/company.html

Was stimmt denn daran nicht? fällt dir vielleicht was auf?

Das ärgerliche an der ganzen Sache ist ja, die Seite hat schon wunderbar funktioniert und ich hätte nur noch ein bisschen anpassen müssen..

Dann hab ich mir die im IE angesehen und bin auf nen Fehler gestossen..

ARGH wie ich diesen IE (zumindest in der Version 6) hasse!
„ich auch nicht.“
0
Michael Schmidt
Michael Schmidt20.11.0813:31
Hast du den DOCTYPE korrekt gesetzt?
Wenn nicht, schaltet der IE in den Quirksmode, soweit ich weiß...

Gruß,
Schmiddl
„Trautman: "Er wird kommen und er wird mich hier rausholen." Russischer Offizier: "Was, glaubt dieser Mann, wer er ist? Gott?" Trautman: "Nein, Gott kennt Gnade!"“
0
BenderB20.11.0813:32
Ein Fehler ist schonmal, dass du die ID "company_hover" mehrmals benutzt.
Hast du schonmal Firebug über die Seite laufen lassen?
0
uplift
uplift20.11.0813:33
Der Fehler muss in company_hover_active stecken, das ist ja der einzige Unterschied zu den anderen.
„Computer erleichtern uns ungemein die Arbeit an Problemen, die wir ohne sie nicht hätten. Ich habe keine Lösung, aber ich bewundere das Problem.“
0
Michael Schmidt
Michael Schmidt20.11.0813:35
Ja, DOCTYPE sieht korrekt aus (Hätte ich ja gleich gucken können

CU
Schmiddl
„Trautman: "Er wird kommen und er wird mich hier rausholen." Russischer Offizier: "Was, glaubt dieser Mann, wer er ist? Gott?" Trautman: "Nein, Gott kennt Gnade!"“
0
schmidl20.11.0813:35
Ich glaube ich hab's jetzt!

Man das is mal wieder blöd von mir..
Hat mit der Hauptnavigation zu tun.

Habe die IDs gleich benannt!


Aber danke für den Tipp!


EDIT: Plötzlich so viele Kommentare.

Danke euch allen!
„ich auch nicht.“
0
sierkb20.11.0813:41
schmidl
Habe die IDs gleich benannt!

Genau das habe ich just auch herausgefunden, als ich die Seite durch das Tidy-/Validator-Add-On von Firefox betrachtet habe:

Result: 3 Fehler / 0 Warnungen

line 31 column 35 - Fehler: ID "company_hover_active" already defined
line 21 column 76 - Info: ID "company_hover_active" first defined here
line 33 column 38 - Fehler: ID "company_hover" already defined
line 32 column 38 - Info: ID "company_hover" first defined here
line 35 column 176 - Fehler: required attribute "alt" not specified

0
schmidl20.11.0813:50
Um Validen Code zu erstellen darf man ne ID immer nur 1 mal vergeben.

Man vorhin hat alles mit Klassen super funktioniert..

Verdammter IE.. -.-

Danke sierkb für den Hinweis, dieses Validator-Add-On werd ich mir auch mal ansehen.
„ich auch nicht.“
0
sierkb20.11.0814:28
schmidl
Um Validen Code zu erstellen darf man ne ID immer nur 1 mal vergeben.
Man vorhin hat alles mit Klassen super funktioniert..
Verdammter IE.. -.-

Der IE ist zwar ein Krüppel-Browser, aber für Fehler Deinerseits kann er nichts. Und eine ID heißt ID, weil sie nur ein einziges Mal pro Dokument vergeben werden darf. Wenn das nicht eingehalten wird, mag das eigentlich kein Browser gerne bzw. unvorhergesehenen Ergebnissen und Missinterpretationen seitens des Browsers sind Tür und Tor geöffnet. Am wenigsten halt sowas Schwaches wieder IE. Aber eben alle anderen Browser eigentlich auch nicht.
dieses Validator-Add-On werd ich mir auch mal ansehen.

Gibt's seit neuestem auch für Safari: . In der Version allerdings im Unterschied zu dem Plugin für Firefox nur mit Tidy. Das HTML Validator-Add-On für Firefox hat sowohl Tidy bzw. TidyLib mit an Bord als auch die wichtige OpenSP Bibliothek, welche der Referenz-Validator, der W3C Markup Validator (von dem übrigens voraussichtlich noch im Laufe diesen heutigen Tages die Version 0.8.4 veröffentlicht und online gestellt werden wird), auch als Grundlage verwendet. Das Plugin für den Firefox hat somit den Vorteil, je nach Konfiguration sich Webdokumente entweder von Tidy oder von OpenSP oder von beiden nacheinander/gleichzeitig analysieren zu lassen, also eine sehrt ähnliche Situation entsteht wie beim Referenz-Validator des W3C. Den gibt es für den Mac übrigens auch als eigenständiges, leicht zu installierendes Programm: . Da wahrscheinlich heute abend (oder im Laufe dieses Nachmittags) die neue Version 0.8.4 des W3C Validators erscheinen wird, wird jenes Programm dann wohl mit ein paar Wochen Verzögerung nachziehen.
0
gibtsNicht20.11.0814:39
Mal eine generelle Frage: Warum ein span in einen a hineinpacken, wenn man das auch (und sauber) mittels

<a id="meineID" class="meineKlasse" ...>
machen könnte

Und wenn ich schon beim aufräumen bin wäre die Klasse auch gleich fällig, wenn die Links eh in einem Block lägen - Beispiel

<div id="leftvavi">
  <a class="active">...</a>
  <a class="notActive">...</a>
</div>

Im CSS sieht das dann ungefähr so aus:

#leftnavi a {
display: block;
width: 150px;
height: 12px;
padding: 6px;
padding-top:5px;
padding-bottom: 8px;
padding-left: 20px;
font-size: 11px;
margin: 6px;
margin-bottom: 10px;
color: white;
font-weight: bold;
}

#leftnavi a.notActive {
background-color: #e5dfe7;
color: #7c5d87;
text-decoration: none;
}

#leftnavi a.active,#leftnavi a.active:hover {
background-color: #7c5d87;
color: white;
text-decoration: none;
0
sierkb20.11.0815:05
gibtsNicht:

Das kam mir auch als Erstes in den Sinn, als ich den Code bzw. den Code-Schnipsel gesehen habe. Aber dieses Fass jetzt aufzumachen, wäre dann wohl zuviel des Guten bzw. wäre über eine schnelle Problemlösung hinausgeschossen. Da gäbe es sicher noch viel mehr Stellen für Optimierungen und Vermeidung von Redundanzen bzw. für den eleganten Einsatz von CSS und Reduzierung von (möglicherweise überflüssigem) Markup-Code zu finden, da habe ich auch schon ein paar Stellen entdeckt -- abgesehen von der, die Du da grad' angeführt hast...
0
schmidl20.11.0815:26
@ sierkb:

Ja klar, war es diesmal mein Fehler, aber vorhin hatte ich nicht so viele gleiche IDs, sondern Klassen aber da brachte dann der IE6 (IE7 hat's geschafft) was durcheinander.
Somit musste ich auf Klassen und IDs ausweichen.

@ gibtsNicht:

Weiß ehrlich gesagt selbst nicht wieso ich da noch extra ein span-element hineingepackt habe, aber wie gesagt es ist schon dringend und möcht jetzt nur mal sehen dass ich zum Termin damit fertig werde und es funktioniert.
Unter die Haube guckt der Kunde sowieso nicht.

Aufräumen kann ich dann immer noch.
Aber danke trozdem.
„ich auch nicht.“
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.