Breite und höhe

Hallo, Wie kann man via PHP einem DIV’s Container eine feste breite und höhe angeben?
Ich möchte damit nur ein Darstellungsproblem bei Opera beheben.

Für vorschläge bin ich äußerst dankbar.

kann mit der frage direkt nix anfangen.
mit den jeweiligen css eigenschaften:
willst du einfach nur nem div ne feste größe geben von daher dürfte reichen

breite und höhe dann z.B: in px, overflow auto dafür dass das ganze nicht kaputt geht wenn der inhalt der div größer wird als die div selbst (werden dann scrollbalken eingefügt)

oder willst du mit php die werte je nach content zuordnen?

wenn nur bei Opera eine feste Breite und Höhe angegeben werden soll:

funktioniert auch nur, wenn der User-Agent nicht modifiziert wurde.

Vielleicht ist ja auch die Seite selbst fehlerhaft oder aber durch
das verwendete CSS werden die browser-Stilvorlagen nicht
komplett überschrieben. In solchen Fällen ist es immer sinnvoller,
erstmal solche Probleme zu beseitigen.

Sollte man hingegen wirklich herausbekommen, daß es sich um
einen Fehler von Opera handelt, so ist es effektiver, bei Opera
eine Fehlermeldung einzuschicken, damit der Fehler behoben
wird, statt mit bizarren und unzuverlässigen Konstruktionen
herumzuspielen. Denn wenn der Fehler bei Opera behoben wird,
bekämen ja auch solche Opera-Versionen den modifizierten
Unfug zu sehen, die gar nicht von dem Problem betroffen sind.
Ich meine, Opera hat da schon mal mit Erfolg von microsoft viel
Geld eingeklagt, weil die mit einer ähnlichen Konstruktion
exklusiv für den Opera-browser irgendwelchen Unfug gesendet
haben, anderes Zeug als für andere browser.

Da hätte ich mich wohl noch ein bisschen genauer ausdrücken müssen.
Hier ein ausschnit für das zutreffende-div’s:

<div id=fen>";
switch($menue)
{case"suche":include("mh/ich_suche.php"); break; usw...}
 if(!isset($bild) OR empty($bild));
else echo"<div id=nima><a href=$bild target=_blank><img src=$bild  /></a></div>";
</div>"

Und die zwei css Angaben sehen wie folgt aus:

#kasten4, #fen {overflow-y:auto; overflow-x:hidden; width:80%; height:70%; z-index:2;}

Für die höhen Angabe habe ich schon so ziehmlich alles ausprobiert.
Wenn es dafür wirklich keine Lösung gibt, werde ich wohl über den Tipp, von @HOFFMANN, einen Hinweiß an OPERA zu senden, mal nachdenken.

Ich vergaß noch zu erwähnen, das ich auch schon via PHP versucht habe dies zu lösen.

$gr=$width; $height;
$width="400px"; $height="400px";

Ich weiß nur nicht so richtig, wie ich das einsetzen soll.

[size=150]Weiß denn niemand eine Lösung?[/size]

Moin,

im Prinzip kannst du doch schlichtweg bei der Ausgabe die Breite und Höhe setzen (oder nicht?)

else echo"<div id=nima><a href=$bild target=_blank style='width:$breite; height:$hoehe;'><img src=$bild  /></a></div>";
</div>"

Du kannst alternativ auch per .htaccess PHP in CSS erlauben bzw. CSS auch mit PHP parsen :wink:
Die .htaccess würde so aussehen:

AddType application/x-httpd-php .css

MfG
myPages

Und der Fehler tritt nur im Opera auf, und nicht im Firefox???

Poste mal einen Link zu der Seite, ich vermute da einen vergessenen DOCTYPE, oder einen fehlerhaften Header/Head-Bereich :wink:

Was mir vor allem dabei auffällt, ist das es in CSS2 kein
overflow-x und overflow-y gibt. Ein browser, der das korrekt
interpretiert, sollte diese Angaben komplett ignorieren.

Mag sein, daß es ein CSS3-Modul gibt, wo das in einem
Arbeitsentwurf steht, ohne Vorsilbe ist das aber derzeit einfach
fehlerhaftes CSS. Wenn Opera exakt diese Angaben ignoriert,
funktioniert der browser völlig korrekt und andere browser, auf
die das in der derzeit aktuellen Version irgendwelche
Auswirkungen hat, funktionieren fehlerhaft.

Jedenfalls muß man die CSS-Angaben korrigieren und dann kann
man wieder gucken, ob da noch relevante Unterschiede
zwischen den browsern auftreten.

Gestern habe ich mich noch mal Stunden lang damit beschäfftigt und den Fehler größten teils berichtigt. Es war doch nur eine falsch zugeordnete CSS Deklaration.
@myPages:

Stimmt, so müsste das gemacht werden. Eigendlich ist das ja so auch logisch. Ich kam aber einfach nicht drauf.

@michi7x7:
Ja, der Fehler trat nur in Opera auf. Die anderen Browser sind etwas Fehlertolleranter.
Und nein, in der Head und Doctype angabe stimmte auch alles. (Da hatte ich auch nicht’s geändert.)
Der Link zu der Seite, ist meine Homepage.
Aber nicht wundern, seit der gestrigen Änderung, sind diverse andere CSS Deklarationen zerschossen. Da muß ich noch ein bißchen dran arbeiten.

@HOFFMANN:
Da hattest du anfangs wohl doch recht gehabt mit den Falschen CSS Angaben als Grund.
Ich bin gestern schon fast verzweifelt gewesen, nur um dies heraus zu bekommen.

[quote]Was mir vor allem dabei auffällt, ist das es in CSS2 kein
overflow-x und overflow-y gibt. Ein browser, der das korrekt
interpretiert, sollte diese Angaben komplett ignorieren.[/quote]
Da irrst du dich aber diesmal. Diese Werte wurden bis jetzt von jedem Browser korrekt angezeigt. Auch bei OPERA. Zumindest war das bei mir so.

Also, noch mal an allen ein Dank von mir.

overflow-x und overflow-y sind ein von microsoft geschaffenes
Problem, weil die sich dabei nicht an die CSS-Spezifikation
gehalten haben und dem Kram keine microsoft-spezifische
Vorsilbe gegeben haben. Innerhalb von CSS2 ist das also einfach
ungültiger Blödsinn.
Allerdings wurden die beiden dann doch irgendwann als Vorschlag
in ein CSS3-Modul aufgenommen, der aber noch nicht den Status
erreicht hat, daß das irgendein browser ohne Vorsilbe
implementieren sollte.

Nun gibt es eben das Problem, daß der MSIE den Kram schon seit
vielen Jahren interpretiert, was dazu geführt hat, daß dies auch
einige Autoren wirklich verwenden, was zu falschen
Fehlermeldungen bei anderen browser-Anbietern geführt hat, die
sich eventuell genötigt sahen, das dann doch bereits zu
implementieren, obwohl sie es noch nicht sollten. Das wiederum
führt dann eben bei mehreren browsern dazu, daß diese dies
fälschlich interpretieren, obwohl sie es (noch) nicht sollten,
wieder einmal ein von microsoft verursachtes Problem, welches
die Welt eigentlich nicht braucht ;o)
Bei Opera gab es da auch wohl Anfragen/falsche Fehlermeldungen,
mag ja sein, daß die dann auch eingeknickt sind, wobei das nicht
in der aktuellen Dokumentation steht, daß Opera das
interpretieren täte.

Fazit jedenfalls: Als Autor sollte man das nicht verwenden,
solange das entsprechende CSS3-Modul noch nicht als endgültige
Empfehlung raus ist

Es gibt doch außer Javascript eigendlich keine andere Möglichkeit, einen einzelnen Scrollbereich zu unterbinden. Oder?
Nebenbei hatte das aber auch nicht’s mit dem Fehlerproblem zu tun. Das war ein anderer Grund gewesen.

nehm overflow:auto;
dann sollten die scrollbalken nur dann erscheinen, wenn sie gebraucht werden.

Bei gelegenheit wird’s probeweise geändert. Danke für den Tipp. Hab’s aber auch gewußt.