z-index im IE?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • z-index im IE?

    hallo alle zusammen!



    ich code gerade meine website und bin dabei auf ein sehr blödes problem gestoßen.

    meine navigation besteht aus per z-index überlagerten elementen.

    der effekt ist der folgende:

    wenn eine elemente ge"hovert" wird, dann rückt es gegenüber den anderen in den vordergrund im css wechselt das element den z-wert von "z-index:0" auf "z-index:20", die zahl ist willkürlich gewählt, sie sollte nur wesentlich höher sein als die anderen und das ist sie.



    im firefox 2.0.x, sowie opera 9.21 und safari (beta-version für win) funktioniert das optimal. nur der IE 6 macht zicken.

    denn er highlighted das element mit dem gewünschten effekt aber ohne den z-index zu beachten!?


    ..hat jemand vllt schon mal diese erfahrung gemacht und weiß wie das zu lösen ist? das wäre echt super.. denn der effekt ist einfach klasse.




    mfg
  • wie sieht denn der entsprechende Code-Ausschnitt aus?
    Handelt es sich um ein Blockelement wie DIV? Hast du eine position definiert?

    z-index (Schichtposition bei Überlappung)
    Diese Eigenschaft wirkt nur in Verbindung mit einer Angabe zu position. Wenn Sie mehrere Elemente positionieren, deren Anzeigebereiche sich überlappen, werden die Elemente normalerweise in der Reihenfolge übereinander angezeigt, in der sie definiert werden. Im Quelltext später notierte Elemente überdecken vorhergehende. Sie können die Reihenfolge ändern, indem Sie für die einzelnen Elemente Werte vergeben. Elemente mit höherem Wert überdecken Elemente mit niedrigerem.

    http://de.selfhtml.org/css/eigenschaften/positionierung.htm#z_index
  • hi donut!



    also es handelt sich um ein inline-element

    ich poste mal den code eines navi-elementes

    Quellcode

    1. <a href="index2.html">
    2. <ul id="box_startseite">
    3. <li class="spacer"><h2><a href="index2.html">&nbsp;&nbsp;Startseite</a></h2></li>
    4. </ul>
    5. </a>


    und hier der css code:

    Quellcode

    1. #box_startseite{
    2. position: absolute;
    3. width: 152px;
    4. height: 153px;
    5. margin-top: 50px;
    6. z-index: 0;
    7. background-color: transparent;
    8. }
    9. .test123{
    10. }
    11. .spacer{
    12. padding-top: 133px;
    13. padding-left: 0px;
    14. list-style-type: none;
    15. }
    16. .spacer h2{
    17. font-size: 17px;
    18. text-decoration: none;
    19. }
    20. .spacer a {
    21. border: 0px solid black;
    22. padding-top: 133px;
    23. padding-right: 60px;
    24. padding-bottom:2px;
    25. padding-left:0px;
    26. background-image:url(../images/navi/startseite_normal.gif);
    27. background-position:center;
    28. background-attachment:scroll;
    29. background-repeat:no-repeat;
    30. color: #0c5259;
    31. text-decoration: none;
    32. }
    33. .spacer a:hover {
    34. color: black;
    35. border: 0px solid black;
    36. padding-top: 133px;
    37. padding-right: 60px;
    38. padding-left:0px;
    39. background-image: url(../images/navi/startseite_hover.gif);
    40. background-position:center;
    41. background-attachment:scroll;
    42. background-repeat:no-repeat;
    43. color: #0c5259;
    44. text-decoration:none;
    45. }
    46. #box_startseite:hover{
    47. position: absolute;
    48. z-index: 100;
    49. }
    Alles anzeigen


    ..ich habe jez position: absolute hinzugefügt aber das hat leider nix gebracht.


    ..ich hoffe dass es nicht daran liegt, dass es keine block elemente sind. weil ich hab es zuerst mit block-elementen versucht, den gewünschten effekt aber nicht hinbekommen.


    gruß
  • Ein Link um einen <ul> ? Das gehört sich aber wirklich nicht.

    für den IE-Test müsste ich neustarten. Also probiers einfach mal selber als Blockelement aus.

    Quellcode

    1. #box_startseite{
    2. position: absolute;
    3. display:block;
    4. .....
    5. }

    Auch wenns anders ausschaut, so haben wir das Problem wenigstens eingeschränkt.

    Testest du den Code eigentlich seperat oder in deiner Website? Ich will nur verhindern, dass es vielleicht ein DOM Fehler außenrum ist, der die Browser unterschiedlich handeln lässt. Und teste am besten auch ohne die ganzen zusätzlichen Tags wie <a> und <h2>.
  • hi!


    also das mit display: block;


    hat leider nichts gebracht.


    ich weiß dass sich das nich gehört aber ich hab es trotzdem gemacht wegen diesem hier:


    ich wollte folgende navi bauen

    verschieden bilder mit dem navitext wie zb "startseite"

    der navi text sollte von SUMAs trotzdemgelsen werden köönnenn..un wenn der in bildern steht können die das ja nich lesen.

    deswegen wollte ich die beiden bilder sozugagen nur im "hintergrund"
    ..dann hab ich fleißig mit divs experemenitert um diesen effekt von wechselnden bildern mit dem text im vordergrund überhaupt hinzubekommen (ohne berücksichtigung des z-index)
    ..mit divs und darum einen a-href tag ging das im IE aber nciht...(verstößt anscheinden auch gegen XHTML 1.0 transitional


    ...un dann hab ich gedacht, dass ich einfach eine UL nehme mit einme LI, diesen dann "strecke" sodass man das hintergrund bild sehene kann. un dann darum noch einen link baue, dass man nicht nur auf den text mit der maus gehen muss, damit sich das bild im hintergrund verändert, sondern, dass sich das bild auch verändert wenn man auf das bild mit der maus geht. denn das ist am intuitivsten finde ich.



    hoffe du hast verstanden was ich meine :)


    gruß und danke für deine mühe




    *edit*
    den code test ich in der website direkt (die allerdings local ist un nich extern aufem serv im netz)


    *edit2*

    ich musss jez leider weg un komm heut ned mehr an den rechner.. schaue morgen nochmal rein!!
    danke nochmal!
  • ohje.. dann lass uns z-index an dieser Stelle mal vergessen und schau dir mal diese Website an:

    parkour-sport.de

    Das ganze Navigationselement ist klickbar und im Hintergrund werden Bilder angezeigt, die sich beim Hover austauschen. Dass das Bild hier neber dem Text ist, ist gewollt. Natürlich kannst du den Hintergrund auch hinter das ganze Element legen.

    Code:

    Quellcode

    1. <td colspan="2" class="nav">
    2. <ul>
    3. <li><a href="/" title="parkour">Home</a></li>
    4. <li><a href="/moves.html">Moves</a></li>
    5. </ul>
    6. </td>

    Quellcode

    1. td.nav ul {
    2. margin:0px;
    3. padding:0px;
    4. }
    5. td.nav li {
    6. list-style-type: none;
    7. }
    8. td.nav a {
    9. display: block;
    10. margin:5px;
    11. padding:5px;
    12. padding-left:30px;
    13. border-bottom: 2px solid #909090;
    14. background-image:url('/bg.jpg');
    15. background-position:left center;
    16. background-repeat:no-repeat;
    17. }
    18. td.nav a:hover {
    19. background-image:url('/bg-red.jpg');
    20. background-position:left center;
    21. background-repeat:no-repeat;
    22. border-bottom: 2px solid #ff0000;
    23. }
    Alles anzeigen
    Bilder
    • navigation-css.png

      3,58 kB, 190×81, 650 mal angesehen
  • hi



    ..sowas ähnliches hab ich auch schonmal gemacht....

    ..nur dies mal wollte ich halt was anderes mit überlappenden navi-elementen wie oben schon beschrieben.


    ...mit DOM kenn ich mich leider noch nich so gut aus, würde man damit das eher realisieren können? denn javascript würde ich bei einer navi nciht benutzen wollen, auch wenn durch ajax javascript wieder einiges an anhänger gewinnen konnte bin ich davon nicht wirklich überzeugt.

    wenn es aber wirklich nciht anders geht muss wohl JS herhalten..was aber wirklich nicht das gelbe vom ei wäre.




    heißt dass das ich mein ziel mit überlappenden elementen, die komlett klickbar sind gar nicht per css erreichen kann(zumindest, dass es dann auch im IE klappt)?





    gruß
  • DOM ist einfach nur eine Repräsentierung von HTML Code als Baum. Nichts magisches. Wollte damit nur sagen, dass es Sinn macht, das Problem herauszukapseln.

    Sry, ich verstehe immer noch nicht für was du den z-index brauchst. Gibts denn irgendwo eine Online Demo oder Screenshots?
    Ohne diesen Zusammenhang sehe ich da nur ein Hintergrundbild das ausgetauscht wird (was ja ganz unabhängig vom z-index ist)

    Jedenfalls kannst du :hover beim IE<7 nur auf <a> anwenden. Meist kannst du das durch Verwendung eines Links als Blockelement umgehen.

    Bei cssplay findest du Browserunabhängige Lösungen:
    cssplay.co.uk/menus/dropdown.html
  • hi donut!

    ich hab jetzt mal zwei bilder gemacht wie die ganze sache am ende aussehen soll.

    ich hoffe dann wird auch klar warum ich den z-index eigentlich doch brauche meiner meinung nach.

    :)

    bei cssplay hatte ich schon vorbeigeschaut aber keine passende lösung gefunden.



    gruß
    Bilder
    • OCVZI.jpg

      3,26 kB, 300×100, 351 mal angesehen
    • OCUJW.jpg

      3,22 kB, 300×100, 349 mal angesehen