PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Auflösung des Browsers ermitteln



Qudus
21-01-2006, 15:59
hi

Wird die Auflösung des Browsers des Clients irgendwie beim Request an den Server übermittelt, so dass ich diese Information per PHP auswerten kann? Oder bleibt die einzige Möglichkeit, das über JavaScript herauszubekommen?

Gruß, Qudus

peschmae
21-01-2006, 17:42
Das wird nicht übermittelt (wer sagt denn auch dass am anderen Ende ein Browser hängt?).

Mit JavaScript kannst du das natürlich rausfinden - aber ich finde es im allgemeinen viel besser möglichst auflösungsunabhängige Seiten zu machen...

MfG Peschmä

Qudus
21-01-2006, 20:49
...aber ich finde es im allgemeinen viel besser möglichst auflösungsunabhängige Seiten zu machen...

Darauf lege ich auch immer sehr viel Wert. Aber wenn Du diesen Thread (http://www.mrunix.de/forums/showthread.php?t=42818) liest, weißt Du, warum ich das brauche. Das Problem resultiert aus einer Unzulänglichkeit vin HTML und CSS, behaupte ich.

Gruß, Qudus

undefined
21-01-2006, 22:51
Was soll an Overflow nicht gehen?Zeige mal deinen Code.

Qudus
21-01-2006, 23:55
Was soll an Overflow nicht gehen?Zeige mal deinen Code.


<doctype blabla xhtml 1.0 blabla>
<html style="height: 100%;">
<body style="height: 100%;">
<table border="0" cellspacing="0" cellpadding="0" class="w100 h100" style="border: 1px solid black;">
<tr>
<td style="padding: 5px; height: 100px;">
<div style="border: 1px solid black; background-color: cyan; height: 100%;">
a<br />
b<br />
c<br />
</div>
</td>
<td style="padding: 5px; height: 100px;">
<div style="border: 1px solid black; background-color: cyan; height: 100%;">
a<br />
b<br />
c<br />
</div>
</td>
</tr>
<tr>
<td style="padding: 5px; width: 100px; height: 100%;">
<div style="border: 1px solid black; background-color: cyan; height: 100%; overflow: hidden;">
<!--ganz viel Inhalt, der die Höhe des div-Tags überschreitet-->
</div>
</td>
<td style="padding: 5px; height: 100%;">
<div style="border: 1px solid black; background-color: cyan; height: 100%; overflow: auto;">
<!--ganz viel Inhalt, der die Breite und Höhe des div-Tags überschreitet-->
</div>
</td>
</tr>
</table>
</body>
</html>

Das overflow:auto wirkt nun nur, wenn width und height absolut angegeben werden.
In der Breite klappt das zwar, aber nicht in der Höhe. Der Inhalt des linken div-Tags spannt Selbiges in der Höhe soweit auf, dass der komplett reinpasst und der Inhalt des overflow-auto-divs spannt seinen div zwar nicht in der Breite aber in der Höhe auf. Der x-Achsen Scrollbar erscheint und tut seinen Dienst.

Ach ja: Ich verwende den Firefox. Ich weiß jetzt nicht wie es im IE klappt. Aber es sollte später auf beiden Browsern klappen.

undefined
22-01-2006, 15:32
Also ein Div in ein Table zu setzen ist weniger Sinnvoll, es ist zwar auch ein Inline Element aber eher für Outline gedacht. Verwende hier besser <span> ;) Zum Table DIV kann keine Element Referenz auf eine Table nehmen weil es deren Attribute nicht erben kann ;) Hier der Stein der weisen ;)


<?php
echo '<?xml version="1.0" encoding="utf-8"?>';

function fuellen()
{
$o = null;
for( $i = 0; $i < 500; $i++ ) {
$o .= ( $i % 30 == 0 ) ? "<br/>" : $i . " ";
}
return $o;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head dir="ltr">
<title>layer</title>
<meta name="GENERATOR" content="Quanta Plus" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
/* <![CDATA[ */
div.ElternElement {
position: absolute;
width: 98%;
height: 98%;
}
div.Links {
float: left;
width: 50%;
height: 50%;
overflow: auto;
background-color: Green;
}
div.Rechts {
float: right;
width: 50%;
height: 50%;
overflow: auto;
background-color: Gray;
}
div.Spacer {
height: 2px;
clear: both;
}
/* ]]> */
</style>
</head>
<body>
<div class="ElternElement">
<div class="Links">
<?php echo fuellen(); ?>
</div>
<div class="Rechts">
<?php echo fuellen(); ?>
</div>
<div class="Spacer"><!-- Bugfix Opera und IE --></div>
<div class="Links">
<?php echo fuellen(); ?>
</div>
<div class="Rechts">
<?php echo fuellen(); ?>
</div>
<div class="Spacer"><!-- Bugfix Opera und IE --></div>
</div>
</body>
</html>

Qudus
23-01-2006, 00:56
Also ein Div in ein Table zu setzen ist weniger Sinnvoll, es ist zwar auch ein Inline Element aber eher für Outline gedacht. Verwende hier besser <span> ;)

div ist kein inline-Element sondern ein block-Element. Und laut Standard darf ich in ein inline-Element kein Block-Element packen (und auch keine Tabelle). Meine Lösung mit javascript hat auch schon sehr gut funktioniert. Aber Deine Lösung mit den absolut positionierten divs ist cool.

Danke

undefined
23-01-2006, 11:58
Wem es Interesssiert, die genaue Beschreibung gibt es im Übrigen hier.
http://de.selfhtml.org//html/referenz/elemente.htm#div