small-step: Abstand eines Elements zum unteren Seitenrand ermitteln

Hallo alle,

ich habe ein Problem an dem ich mir gerade die Zähne ausbeiße. Momentan integriere ich ein Control in ein größeres Projekt. Bei dem Control handelt es sich um so eine Art Google Suggest-Nachbau, also um eine Textbox unter der ein IFrame mit einer Vorschlagsliste aufklappt wenn Text eingegeben wird. Jetzt möchte ich allerdings, dass die Liste, wenn nicht genügend Platz nach unten vorhanden ist, nach oben aufgeklappt wird. Leider schaffe ich es nicht die absolute Seitenhöhe (nicht Fensterhöhe) zu ermitteln. Darüber hinaus ergibt sowohl document.documentElement.scrollTop; als auch document.body.scrollTop; 0, was laut http://www.quirksmode.org/js/doctypes.html gar nicht möglich sein dürfte. Ich gehe davon aus, dass auf der Seite einfach ein bisschen zuviel JavaScript die Positionierung der Elemente bestimmt - die Seite besteht aus mehreren Layern bei denen die Sichtbarkeit je nach Bedarf umgeschaltet wird.

Zwei Ansätze hätte ich. Mit der aktuellen Seitenhöhe und der Position des Conrols (die ich berechnen kann) könnte ich entscheiden ob die Vorschlagsliste + Position größer als die Seitenhöhe ist. Oder, hätte ich den Abstand nach unten, könnte ich diesen mit der Höhe der Vorschlagsliste vergleichen.

Leider habe ich beides nicht. Mittlerweile frage ich mich außerdem, was ich mit scrollTop eigentlich wollte, ich weiß sowieso nicht wie hoch die Seite ist...

Ich bin schwer verwirrt...

Kann mir jemand einen Tipp geben?

Danke und Gruß,
small-step

  1. Quelle von: Selfi

    Nicht für bestimmte Bildschirmauflösung schreiben
    Das Erzwingen von festen Breiten durch Einsatz von verschachtelten Tabellen und "blinden Pixeln" ist mittlerweile so verbreitet im Web, dass manche Homepage-Autoren schon gar nicht mehr wissen, dass einfaches HTML normalen Fließtext erzeugt, der sich der Fenstergröße des Browsers anpasst. Nun hat es keinen Sinn, das Erzwingen von Mindestbreiten völlig zu verteufeln. Tabellen mit mehreren Spalten und entsprechendem Inhalt benötigen nun mal eine gewisse Breite, und HTML ist auch nicht WML (eine Sprache speziell zum Erstellen von Web-Seiten für Handy-Displays). Wenn Sie aber vor der Frage stehen, ob Sie Ihre Web-Seiten für eine 1024er- oder eine 800er-Bildschirmauflösung "optimieren" sollen - dann stehen Sie vor der falschen Frage. Denn viele Anwender surfen mit mehreren Instanzen des Web-Browsers und öffnen Verweise zu anderen Seiten gerne in neuen Browser-Fenstern. Diese Fenster werden oft nicht im Vollbildmodus angezeigt. Auch haben viele Anwender Programme offen, die grundsätzlich einen Teil des Bildschirms einnehmen und immer angezeigt werden - z.B. Instant-Messaging-Programme wie ICQ. All diese Anwender machen Ihnen also ohnehin nicht die Freude, das Browser-Fenster extra wegen Ihren Seiten auf maximale Bildschirmgröße zu bringen. Grübeln Sie daher nicht lange über anzunehmende Durchschnittswerte von Bildschirmgrößen. Ein paar hundert Pixel (also eine sehr unbestimmte Angabe) in der Breite können Sie voraussetzen, aber das ist auch alles.

    Verwenden Sie bei Tabellen oder Frames tendenziell eher prozentuale Breiten- und Höhenangaben. Absolute Pixelangaben haben nur dort einen Sinn, wo beispielsweise die erste Spalte einer blinden Tabelle über einem farblich zweigeteilten Hintergrundbild liegen soll. Ansonsten sollten Sie sich nicht zu sehr auf solche Vorstellungen wie die versteifen, dass eine Grafik oder ein Absatz bei jedem Anwender genau 10,8 cm vom linken Rand entfernt beginnt. Wenn das bei Ihnen gut aussieht, bedeutet das noch lange nicht, dass es bei jemand anderem gut aussieht, und in einigen Fällen könnte es auch ausgesprochen schlecht aussehen.

    1. Hallo Plutonium,

      hast Du heute eigentlich vor auch noch etwas sinnvolles zu schreiben? Vielleicht versuchst Du es mal damit die Frage zu lesen bevor Du irgendwas schreibst. Dein letztes Posting war auch nicht gerade von großem Wert...

      Davon abgesehen halte ich "Selfi" für eine der dämlichsten Abkürzungen die für SELFHTML möglich sind.

      Ich habe nicht vor für eine bestimmte Bildschirmauflösung zu schreiben. Wenn Du mein Posting gelesen hättest wüsstest Du das.

      Ich hasse den Spruch, aber hier kann ich nicht anders...

      "Wer lesen kann ist klar im Vorteil"

      Gruß,
      small-step

  2. hi,

    Leider schaffe ich es nicht die absolute Seitenhöhe (nicht Fensterhöhe) zu ermitteln. Darüber hinaus ergibt sowohl document.documentElement.scrollTop; als auch document.body.scrollTop; 0, was laut http://www.quirksmode.org/js/doctypes.html gar nicht möglich sein dürfte.

    Und das Ermitteln der Seitenhöhe wie auf http://www.quirksmode.org/viewport/compatibility.html vorgeschlagen klappt auch nicht?

    Zwei Ansätze hätte ich. Mit der aktuellen Seitenhöhe und der Position des Conrols (die ich berechnen kann) könnte ich entscheiden ob die Vorschlagsliste + Position größer als die Seitenhöhe ist. Oder, hätte ich den Abstand nach unten, könnte ich diesen mit der Höhe der Vorschlagsliste vergleichen.

    Zweiteres gibt es nicht, bzw. wohl nur dann, wenn du es über ersteres berechnest.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }