Position von Einblendrahmen bei scrollbaren Tabellen

  • Hallo erstmal alle zusammen,

    habe da ein Problem beim erstellen meiner ersten richtigen Site?
    Seit Stunden doktor ich an einem Entwurf und komme nicht mehr voran.
    Ich habe eine Tabelle die wegen ihrer Größe in einem DIV mit fester Höhe scrollbar eingebettet ist.
    Bei td:hover wird jeweils ein anderer Einblendrahmen mit position:absolute; sichtbar.
    Funktioniert auch alles prima in FF.
    Nur leider blendet der IE die Rahmen an der Stelle ein wo sich die Zellen vor dem Scollen befinden. Also wenn ich über eine Tabellenzelle hover ohne zu scrollen ist alles ok nur bei Tabellenzellen die erst ins Bild "gescrollt" werden müssen erscheinen die Einblendrahmen außerhalb des begrenzenden DIV?
    Opera und Chrome machen das auch leider so.
    Weiß jemand eine Lösung ohne scripts?

    PS position:relative geht leider nicht da sich die Zellengrößen nicht verändern sollen.

  • Ich verstehe dich nicht ganz, meinst du etwa ein anderer Rahmen beim Hovern einer Tabellenreihe?
    Wenn ja, dann musst du das ganz anders machen.

    Guck dir mal das Stylesheet einer Website von mir an, mit der ich ein Tabellenhover gemacht habe:
    http://korsika.pixelwolf.ch/css/korsika.css
    Scroll zum Hoverteil und schaus dir mal an.

    Stell doch bitte einen Link rein oder uploade das irgendwo und stell den Link zur direkten HTML Seite rein, damit wir das mal anschauen können.

  • Ich meine es so, es soll beim Hover über einer Tabellenzelle immer in gleicher relativer Position zu dieser Zelle ein Rahmen eingeblendet werden. FF macht das auch. Aber IE blendet die Rahmen nach dem scrollen relativ zu der Zellenposition vor dem Scrollen ein, also nicht relativ zu der neuen gecrollten position Position der Zelle. Das führt dazu das Tabellenzellen die erst durch das scrollen ins Bild kommen beim Hover den entsprchenden Einblendrahmen immer weit unterhalb der gewünschten Postion einblenden. Der Unsichtbare Div scrollt beim IE scheinbar nicht mit.

    PS: habe eine Lösung -->
    habe den Einblend-DIV in ein Weiteres DIV gepackt und diesem nur die Eigenschaft position:relative; zugewiesen. Jetzt scrollen die EinblendRahmen in allen Browsern mit. Hätte man evtl. auch den td-Tag zuweisen können Puh Bettzeit.

    2 Mal editiert, zuletzt von vasskon (10. Januar 2011 um 02:21)

  • Warum machst du dir das so schwer, wenn du einfach nur ein tr:hover { border: 1px solid examplecolor; } nehmen könntest?

  • Jede Zelle hat einen eigenen einblendrahmen der von einem script mit content gefüllt wird wenn der Zelleninhalt in die vorgesehene Zelle grade nicht mehr passt tr fällt somit aus es muss td sein. Das Problem war wohl das die gecko von IE die Position des Einblendrahmens nur einmal vor dem scrollen berechnet hat der Rahmen obwohl mit position:alsolute eingeblendet also nicht mitscrollte da das Elternelement für die gecko keine eindeutige Position hatte. mit einem zweiten umschliesendem DIV mit position:relative konnt ich die geck dazu bringen den Einblendrahmen immer in Abhänigkeit zu der tatsächlichen Position des Elternelemts zu plazieren -> also mitscrollend. hoffentlich hab ich jetzt nicht großen mist gerschrieben aber was anderes weiß ich nicht :-). Danke für die Tipps.