[JS] zwei div-containern die selbe höhe zuweisen?

madbros

Lt. Junior Grade
Registriert
Juni 2004
Beiträge
328
Mahlzeit, Kameraden,

wie weise ich zwei div-containern automatisch die gleiche höhe zu? so dass also beispielsweise der menu-div automatisch genauso hoch ist wie der inhalts-div der durch variablen content verschiedene höhen hat?

danke
 
AW: zwei div-containern die selbe höhe zuweisen?

per javascript die höhe des einen divs auslesen und dem anderen zuweisen
 
AW: zwei div-containern die selbe höhe zuweisen?

hast du ein code-beispiel?
 
AW: zwei div-containern die selbe höhe zuweisen?

einfaches nein hätte auch genügt... :-)

weiß jemand, wie man per javascript die höhe eines div-elementes ausliest?
 
AW: zwei div-containern die selbe höhe zuweisen?

HTML:
<script type="text/javascript">
<!--
function setzeHoeheGleich() {
    var hoeheDiv1 = document.getElementById("div1").height;

    document.getElementById("div2").height = hoeheDiv1;
}
//-->
</script>

Habs nicht getestet, sollte aber klappen.

KoЯn
 
Zuletzt bearbeitet:
AW: zwei div-containern die selbe höhe zuweisen?

wahrscheinlich stelle ich mich zu blöd an, aber es funzt bei mir nicht.
 
AW: zwei div-containern die selbe höhe zuweisen?

Wird ein Fehler angezeigt? Wie gesagt ich habe das Script nicht getestet.
Rufst du die Funktion auch irgendwo auf?
Zum Beispiel:
HTML:
<body onLoad="setzeHoeheGleich();">
Denk auch daran, dass in meinem Code die beiden divs die ids "div1" und "div2" haben müssen.

KoЯn
 
AW: zwei div-containern die selbe höhe zuweisen?

öh ja, vielleicht sollte man das auch aufrufen. bin ich blöd...
 
AW: zwei div-containern die selbe höhe zuweisen?

es geht trotzdem nicht. habe es sowohl mit
HTML:
<body onload="setzehoehegleich();">
als auch mit aufruf des div-elementes selbst versucht.
HTML:
<div id="mitte" onload="setzehoehegleich();">
Der Seitenquelltext sieht so aus:
HTML:
<?php
    error_reporting(E_ALL);
    
// Vorhandene Dateien anmelden
    $dateien = array(); // ein Leeres Array erzeugen
    $dateien['start'] = "start.php";
    $dateien['ueberuns'] = "ueberuns.php";
    $dateien['fotos'] = "album_start.php";
    $dateien['links'] = "links.php";
    $dateien['impressum'] = "impressum.php";
    $dateien['menu_alben'] = "menu_alben.php";
    $dateien['geburt/'] = "album_inhalt.php";
    $dateien['unserehochzeit/'] = "album_inhalt.php";
    $dateien['joshua1/'] = "album_inhalt.php";
    $dateien['joshua2/'] = "album_inhalt.php";
   
// Beginn der eigentlichen Seite
    echo "<html>\n";
    echo "	<head>\n";
    echo "		<title>Homepage von Fred, Antje und Joshua Pollex</title>\n";
	include "browserweiche.php";
    echo "			<script language=\"JavaScript\">\n";
    echo "				window.defaultStatus = \"Homepage von Fred, Antje und Joshua Pollex\";\n";
    echo "				function setzeHoeheGleich() {\n";
    echo "					var hoeheDiv1 = document.getElementById(\"links\").height;\n";
    echo "					    document.getElementById(\"mitte\").height = hoeheDiv1;\n";
    echo "				}\n";
    echo "			</script>\n";
    echo "	</head>\n";
    echo "	<body>\n";
    echo "		<div id=\"root\">\n"; // ganz oberer Div-Holder
    echo "			<div id=\"oben\">\n"; // Counter
    						include "counter.php";
    echo "				</div>\n";
    echo "				<div id=\"links\">\n"; // Menu
							include "menu.php";
    echo "				</div>\n";
    echo "				<div id=\"mitte\" onload=\"setzeHoeheGleich();\">\n"; // Hauptfenster
    
    // Vorhandensein prüfen und inkludieren von angemeldeten Dateien
							if(isset($_GET['inhalt']) AND isset($dateien[$_GET['inhalt']])) {
								include $dateien[$_GET['inhalt']];
							} else {
								include $dateien['start'];
							}
    // Ende
    echo "            </div>\n";
    echo "				<div id=\"rechts\">\n"; // Menu
							include "menu_alben.php";
    echo "				</div>\n";
    echo "            <br style=\"clear:both;\" />\n"; // css-float beenden
    echo "       </div>\n";
    echo "    </body>\n";
    echo "</html>\n";
// Ende der Seite
?>
vielleicht habe ich irgendwo einen fehler gemacht, aber ich finde ihn nicht. kann mir denn keiner helfen?
 
AW: zwei div-containern die selbe höhe zuweisen?

Hallo,

der Fehler liegt darin, dass dem JS-Interpreter zu diesem Zeitpunkt die Höhe noch nicht bekannt ist, weil noch kein Content drin steht. Ruf das Script erst auf, nachdem beide Divs geschlossen worden sind.

Ciao
 
AW: zwei div-containern die selbe höhe zuweisen?

auch nicht... :(

gibt's noch ne andere möglichkeit? ich will ja nur erreichen, dass die beiden div's nachher immer identische höhen haben. geht das auch anders?
 
AW: zwei div-containern die selbe höhe zuweisen?

auch nicht... :(

gibt's noch ne andere möglichkeit? ich will ja nur erreichen, dass die beiden div's nachher immer identische höhen haben. geht das auch anders?
 
AW: zwei div-containern die selbe höhe zuweisen?

madbros schrieb:
auch nicht... :(

gibt's noch ne andere möglichkeit? ich will ja nur erreichen, dass die beiden div's nachher immer identische höhen haben. geht das auch anders?


Du könntest versuchen, die Höhe des ersten Div mit offsetheight abzufragen.
PHP:
var hoeheDiv1 = document.getElementById("links").offsetheight;

Das wäre der Befehl, ob das klappt kann ich Dir aber nicht versprechen. Im IE sollte es das tun, im FF und anderen bin ich mir nicht sicher.


Ciao
 
AW: zwei div-containern die selbe höhe zuweisen?

vielleicht liegts doch an der aufrufstelle. wo sollte ich denn die funktion genau aufrufen, damit es klappen könnte?

ich hab schon webseiten gesehen, wo der menu-bereich und der inhaltsbereich immer gleich hoch sind. die scheinen mit tabellen gearbeitet zu haben. wie würde das denn funktionieren?
 
AW: zwei div-containern die selbe höhe zuweisen?

Könnte auch sein, dass die einfach mit Frames gearbeitet haben. Wenn man im Inhaltsframe scrollt, dann bleibt die Navi an ihrer Stelle, weil sie sich in einem anderen Frame befindet. Hat also gar nichts mit JavaScript zu tun. Ich persönlich bin kein Freund von Frames.
Bei JavaScript musst du außerdem auf die Groß und Kleinschreibung achten. Wenn die Funktion "setzeHoeheGleich()" heißt, dann kannst du sie nicht mit "setzehoehegleich()" aufrufen.
Wenn du den Firefox benutzt, dann schau auch mal in die JavaScript-Konsole (Extras->JavaScript-Konsole). Beim IE wird der Fehler glaube ich unten links als Warnungicon angezeigt. Ein Doppelklick darauf gibt mehr Informationen.

KoЯn
 
AW: zwei div-containern die selbe höhe zuweisen?

interessanterweise wird kein fehler ausgegeben...
 
AW: zwei div-containern die selbe höhe zuweisen?

var div1 = document.getElementById("div1");
var height = window.getComputedStyle(div1,null).height;

sollte es tun. Und sorry dass ich nicht den ganzen Tag im Forum bin ;)
 
AW: zwei div-containern die selbe höhe zuweisen?

OK, ich bin zu blöd. so siehts jetzt aus. in der stylesheet-datei ist nur die position:absolute mit den koordinaten, breite und hintergundfarbe gesetzt. bitte um vorschläge, wie diese funktion aufzurufen ist, damit die höhe von "links" und "mitte" stets identisch sind bzw. jeweils die höhe des höheren von beiden annimmt. momentaner stand: es sollte immer die höhe des links-divs an genommen werden. effekt: null! weder im ff noch im ie.

Code:
<?php
    error_reporting(E_ALL);
    
// Vorhandene Dateien anmelden
    $dateien = array(); // ein Leeres Array erzeugen
    $dateien['start'] = "start.php";
    $dateien['ueberuns'] = "ueberuns.php";
    $dateien['fotos'] = "album_start.php";
    $dateien['links'] = "links.php";
    $dateien['impressum'] = "impressum.php";
    $dateien['menu_alben'] = "menu_alben.php";
    $dateien['geburt/'] = "album_inhalt.php";
    $dateien['unserehochzeit/'] = "album_inhalt.php";
    $dateien['joshua1/'] = "album_inhalt.php";
    $dateien['joshua2/'] = "album_inhalt.php";
   
// Beginn der eigentlichen Seite
    echo "<html>\n";
    echo "	<head>\n";
    echo "		<title>Homepage von Fred, Antje und Joshua Pollex</title>\n";
//	include "browserweiche.php";
	echo "	<LINK REL=\"stylesheet\" HREF=\"config/style1024768.css\" TYPE=\"text/css\">\n";
	echo "			<script language=\"JavaScript\">\n";
	echo "				window.defaultStatus = \"Homepage von Fred, Antje und Joshua Pollex\";\n";
	echo "				function setzeHoeheGleich() {\n";
    echo "					var div1 = document.getElementById(\"links\")\n";
	echo "					var height = window.getComputedStyle(div1,null).height\n";
	echo "				}\n";
	echo "			</script>\n";
    echo "	</head>\n";
    echo "	<body>\n";
    echo "		<div id=\"root\">\n"; // ganz oberer Div-Holder
    echo "			<div id=\"oben\">\n"; // Counter
    						include "counter.php";
    echo "				</div>\n";
    echo "				<div id=\"links\">\n"; // Menu
							include "menu.php";
    echo "				</div>\n";
    echo "				<div id=\"mitte\" onload=\"setzeHoeheGleich()\">\n"; // Hauptfenster
    
    // Vorhandensein prüfen und inkludieren von angemeldeten Dateien
							if(isset($_GET['inhalt']) AND isset($dateien[$_GET['inhalt']])) {
								include $dateien[$_GET['inhalt']];
							} else {
								include $dateien['start'];
							}
    // Ende
    echo "            </div>\n";
    echo "				<div id=\"rechts\">\n"; // Menu
							include "menu_alben.php";
    echo "				</div>\n";
    echo "            <br style=\"clear:both;\" />\n"; // css-float beenden
    echo "       </div>\n";
    echo "    </body>\n";
    echo "</html>\n";
// Ende der Seite
?>

zu betrachten hier: www.madbros.de/test

hüüülfäääääh... :D
 
AW: zwei div-containern die selbe höhe zuweisen?

arg, das ist doch nicht die komplette funktion ;) oder legst du auch immer die hälfte der zutaten für ein rezept aufn tisch und wunderst dich warum kein kuchen draus wird ? :D

du brauchst dann noch:

var div2 = document.getElementById("rechts");
div2.style.height = height;

und wenn du nur ein echo machst, dann kannst du dir das ganze \n sparen :)

also echo "<html>
<head> ... ";
 
Zuletzt bearbeitet:
AW: zwei div-containern die selbe höhe zuweisen?

ok, also die funtion lautet:

Code:
function setzeHoeheGleich() {
     var div1 = document.getElementById("links")
     var height = window.getComputedStyle(div1,null).height
     var div2 = document.getElementById("mitte")
           div2.style.height = height;
}

und ich rufe es hier auf:

Code:
<div id="mitte" onload="setzeHoeheGleich()">

P.S. ich bin in javascript nicht sehr bewandert, also seht mir meine begriffstutzigkeit etwas nach
 
Zurück
Oben