33 Stimmen

Einstellen der Höhe eines DIV dynamisch

In einer Webanwendung habe ich eine Seite, die ein DIV enthält, das je nach Breite des Browserfensters automatisch angepasst wird.

Ich brauche eine automatische Höhe für das Objekt. Das DIV beginnt ungefähr 300px vom oberen Bildschirmrand entfernt, und seine Höhe sollte bis zum unteren Rand des Browserfensters reichen. Ich habe eine maximale Höhe für das Container-DIV, daher müsste es eine minimale Höhe für das DIV geben. Ich glaube, ich kann das einfach in CSS einschränken und Javascript verwenden, um die Größenänderung des DIV zu steuern.

Mein Javascript ist bei weitem nicht so gut, wie es sein sollte. Gibt es ein einfaches Skript, das ich schreiben könnte, das dies für mich erledigt?

Bearbeiten: Das DIV beherbergt eine Steuerung, die ihre eigene Überlaufbehandlung durchführt (implementiert ihre eigene Scrollleiste).

0voto

Shanti Punkte 1190

Mit geringfügigen Korrekturen:

function rearrange()
{
var windowHeight;

if (typeof window.innerWidth != 'undefined')
{
    windowHeight = window.innerHeight;
}
// IE6 im standardkonformen Modus (d.h. mit einem gültigen Doctype als erstes
// Zeile im Dokument)
else if (typeof document.documentElement != 'undefined'
        && typeof document.documentElement.clientWidth != 'undefined'
        && document.documentElement.clientWidth != 0)
{
    windowHeight = document.documentElement.clientHeight;
}
// ältere Versionen von IE
else
{
    windowHeight = document.getElementsByTagName('body')[0].clientHeight;
}

document.getElementById("foobar").style.height = (windowHeight - document.getElementById("foobar").offsetTop  - 6)+ "px";
}

0voto

mwag Punkte 2818

Inspiriert von @jason-bunting, dasselbe gilt entweder für die Höhe oder Breite:

function resizeElementDimension(element, doHeight) {
  dim = (doHeight ? 'Height' : 'Width')
  ref = (doHeight ? 'Top' : 'Left')

  var x = 0;
  var body = window.document.body;
  if(window['inner' + dim])
    x = window['inner' + dim]
  else if (body.parentElement['client' + dim])
    x = body.parentElement['client' + dim]
  else if (body && body['client' + dim])
    x = body['client' + dim]

  element.style[dim.toLowerCase()] = ((x - element['offset' + ref]) + "px");
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X