AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [CSS] Elemente lassen sich in IE6 nur einmal überschreiben?
Thema durchsuchen
Ansicht
Themen-Optionen

[CSS] Elemente lassen sich in IE6 nur einmal überschreiben?

Ein Thema von Phoenix · begonnen am 22. Feb 2006 · letzter Beitrag vom 22. Feb 2006
Antwort Antwort
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.640 Beiträge
 
#1

[CSS] Elemente lassen sich in IE6 nur einmal überschreiben?

  Alt 22. Feb 2006, 13:50
Jaja, Matze hat es ja vorhergesagt.. ich stolpere gerade über eine Eigenart des IE (6 und auch 7).

Der Code unten soll eine Navigation ähnlich der von Lycos realisieren: Ich habe Tabreiter von denen 1, 5 und 6 grau sind, 2 ist grün, 3 ist blau und 4 ist rot (klappt soweit in allen Browsern).

Auf der jeweiligen Seite auf der ich mich befinde (diese ist im html-code durch id="current" markiert) soll anstelle der farbig ausgefüllten Reiter nur der Rahmen in der jeweiligen Farbe angezeigt werden. Da das ja alles kleine Grafiken sind arbeite ich hier mit einem austauschbaren Hintergrund.

Nun mein Problem: In Firefox und Mozilla tut das auch, die aktuelle Seite wird korrekt dargestellt. Im IE funktioniert das allerdings nur bei den Elementen im navschema1 (also den grauen). Die anderen drei Farben tauschen die linke Seite der Grafik (deklariert in #current.navschemaX) nicht aus.

Interessant ist jedoch: Tausche ich den grauen gegen einen beliebigen anderen Block im CSS aus funktioniert diese Farbe, und die graue nicht mehr.

Der IE scheint also irgendwie Probleme damit zu haben, Klassen mit einer ID zu überschreiben.

Kennt jemand dazu einen Hack?

Unten der Code, und das aktuelle Beispiel kann man sich hier live angucken - da sieht man den Unterschied sehr schön.


CSS-Code
Code:
/* hier oben sind die margin- und padding-deklarationen.. nix wildes */

/* normale Graue Navigation */
div.navschema1 { background: url(../images/DarkGray/bg.gif) #dae0d2 repeat-x 50% bottom; }
li.navschema1 { background: url(../images/DarkGray/left.gif) no-repeat left top; }
a.navschema1 {   background: url(../images/DarkGray/right.gif) no-repeat right top;   color: #2C2556; }
a:hover.navschema1 { background: url(../images/DarkGray/right.gif) no-repeat right top; color: #333; }
#current.navschema1 { background-image: url(../images/DarkGray/left_on.gif); }
#current a.navschema1 { background-image: url(../images/DarkGray/right_on.gif); color: #333; }

/* GRÜN */
div.navschema2 { background: url(../images/OliveDrab/bg.gif) #dae0d2 repeat-x 50% bottom; }
li.navschema2 { background: url(../images/OliveDrab/left.gif) no-repeat left top; }
a.navschema2 {   background: url(../images/OliveDrab/right.gif) no-repeat right top;   color: #2C2556; }
a:hover.navschema2 { background: url(../images/OliveDrab/right.gif) no-repeat right top; color: #333; }
#current.navschema2 { background-image: url(../images/DarkGray/left_on.gif); }
#current a.navschema2 { background-image: url(../images/OliveDrab/right_on.gif); color: #333; }
Der HTML-Code:
Code:
    <div id="nav"><a id="navigation" name="navigation"></a>
      <div id="nav_main" class="navschema2">
        <ul class="navschema2">
          <li class="navschema1">[url="index1.php"]Seite 1[/url]
          <li id="current" class="navschema2">[url="index2.php"]Seite 2[/url]
          <li class="navschema3">[url="index3.php"]Seite 3[/url]
          <li class="navschema4">[url="index4.php"]Seite 4[/url]
          <li class="navschema1">[url="index5.php"]Seite 5[/url]
          <li class="navschema1">[url="index6.php"]Seite 6[/url][/list]     </div>
    </div>
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Phistev
(Gast)

n/a Beiträge
 
#2

Re: [CSS] Elemente lassen sich in IE6 nur einmal überschreib

  Alt 22. Feb 2006, 14:05
Wenn du das HTML selber erstellst: vermeide es. Wenn du das PHP o.ä. machen lässt: 'ne if-else-Abfrage sollte ausreichen
Code:
if (site == current)
{
  echo(" id="current");
} else {
  echo(" class="navschema1");
}
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.640 Beiträge
 
#3

Re: [CSS] Elemente lassen sich in IE6 nur einmal überschreib

  Alt 22. Feb 2006, 14:13
Erm.. ich möchte vorschlagen, die Frage durchzulesen und zu verstehen bevor man eine Antwort postet.

Es geht darum, immer verschiedene Navschemas zu haben (die Klassen müssen also immer da bleiben). Eines dieser Navschemas ist das aktuelle (id="current") und muss je nach Klasse (navschemaX) mit 'seinen' Grafiken angezeigt werden.

Da kann man nichts vermeiden oder entweder- oder ausgeben. Weil dann würden mindestens ein Zustand identisch zu einem anderen sein, und das ist nicht das Ziel. Wichtig ist ja gerade, die Kombination aus beidem korrekt auszuwerten, was ja auch Firefox und Opera korrekt machen.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#4

Re: [CSS] Elemente lassen sich in IE6 nur einmal überschreib

  Alt 22. Feb 2006, 14:21
Moin,

ich habs jetzt nicht getestet, aber versuchs mal mit
Code:
.navschema1 #current
anstatt
Code:
#current.navschema1
Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.640 Beiträge
 
#5

Re: [CSS] Elemente lassen sich in IE6 nur einmal überschreib

  Alt 22. Feb 2006, 14:36
Alcaeus, Du bist ein Schatz! Es läuft
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz