Zur Navigation

Design: fester Content-Bereich? [2]

11 Jörg

Meine erste Frage: War es sinnvoll, daß rote oberste Elterndiv so zu wählen, wie ich es gewählt habe? Was wäre ggf. die Alternative gewesen?

Ich setze position:absolute und :relative nur da ein, wo es unumgänglich ist und arbeite statt desse viel mit float - und da hätte ich wie oben vorgeschlagen mit background-position versucht, die Linien zu platzieren. Es gibt aber viele Wege, die nach Rom führen - wenn deiner funktioniert, kannst du den auch so einsetzen.

Eigentlich bräuchte ich statt einer width=100% eine width=100%-100px , aber das ist offenbar keine zulässige Angabe

Eine Addition oder Substraktion mit verschiedenen Maßeinheiten (hier px und %) ist nicht möglich.

Du kannst aber innerhalb eines Elements mit einer Breite von 100% ein Element legen, welches einen margin-left von 100px hat; oder dem 100% breiten Elternelement ein padding-left von 100px geben.

Ebenso könnte man denke ich left und margin-left (mit negativem Wert) kombinieren, um ein Element 100% - 100px zu positionieren

06.08.2009 11:16

12 lava

Das mit dem Margin geht tatsächlich:


<div style="background-color:#0033CC;height:10px;width:100%;position:absolute;top:200px;left:0px;">

<div style="background-color:#000000;height:10px;margin-left:100px">
</div>

</div>

Ich bin aber überrascht, daß ich dem Kindelement dann gar keine Weite mehr mitgeben muß, denn sonst hätte ich ja wieder dasselbe Problem (wenn ich ihm 100% mitgäbe, würde der margin schlichtweg überschrieben, und an 100%-margin käme ich ja wieder rechnerisch nicht dran): haben Kindelemente IMMER automatisch eine Weite von 100%, wenn man ihnen nichts mitgibt?

06.08.2009 11:52

13 Jörg

haben Kindelemente IMMER automatisch eine Weite von 100%, wenn man ihnen nichts mitgibt?

Die Breite richtet sich dann an dem Inhalt des Element aus und die maximale Breite wird durch die Breite des Elternelements abzüglich Innen- und Außenabstände bestimmt.

06.08.2009 13:31

14 lava

Naja, aber wenn ich einen Hintergrund in der maximalen Breite haben will, unabhängig vom Inhalt, der evtl. weniger breit ist? Es hat erstaunlicherweise tatsächlich so funktioniert, daß das Div scheinbar automatisch die maximale Breite annahm und entsprechend sich die Farbe ausbreitete, aber ich weiß nicht, ob das dann in allen Browsern gültig ist....

06.08.2009 13:53

15 Jörg

Ja, stimmt, das gilt wohl nur für einen Teil der Blockelemente, wie z.B. Tabellen, deren Breite sich nach dem Inhalt ausrichtet. div und p dagegen nehmen die vorhandene Breite ein.

06.08.2009 14:10

16 lava

Die neueste Version ist jetzt hier:

http://neu.bdsm-fantasies.de/float.php

Die Idee, wie es weitergehen soll, ist folgende:

Die aktuelle float.php wird als Basisdatei genommen, wo jetzt der Text fest reingeschrieben steht, wird künftig Inhalt dynamisch erzeugt: entweder nach Aufruf eines Menüpunktes durch include(menuX.php), oder nach Anklicken eines Bildes durch Aufruf einer Funktion mach-bild-groß(X)

Die Bildergalerie soll sich auch dynamisch erzeugen, als mach-bildergalerie(ordner), wobei die Anzahl der angezeigten Bilder dann von der Bildschirmbreite (die man ja mit Javascript kriegt) abhängen müßte; d.h. man lädt so viele kleine Vorschaubilder in die Divs, wie hinpassen - für alle weiteren Bilder des Ordners brauche ich dann noch eine Blätterfunktion....

Damit künftig nicht alle Seiten basisdatei.php?name=menuX heißen, sollte ich dann noch mit .htaccess eine Umleitung auf besser klingende Namen machen.

Nun wäre ich dankbar für Vorschläge, Tipps, Kritik.

Ist es machbar?
Ist es sinnvoll?
Ist es einigermaßen guter Programmierstil?

12.08.2009 18:35

17 Jörg

Machbar wird das wohl sein - es ist halt immer auch eine Frage des Aufwandes.

Du musst halt noch berücksichtigen, dass einige gar kein JavaScript aktiviert haben (inklusive einiger Bots, die die Gallerie indizieren), dass die Bildschirmbreite erst ab dem zweiten Aufruf der Seite zur Verfügung steht und dass der Besucher zwischenzeitlich die Fenstergröße verstellen könnte.

Vielleicht wäre dies auch ein Anwendungsfall für Ajax? das hätte allerdings den Nachteil, dass die Bots den Inhalt gar nicht mehr indizieren...

12.08.2009 19:54

18 lava

Leider ist mir noch ein anderes Problem bei meinem Ansatz aufgefallen: wenn ich jetzt das Fenster kleiner als das Anzeigefenster mache, dann sehe ich nur das untere rechte Viertel der Gesamtansicht -> das ist so natürlich kein Zustand, wenn das Fenster zu klein ist, muß man das obere linke Viertel sehen :(
Damit kriege ich aber Probleme mit meiner Positionierung, ich hatte ja das untere rechte Viertel = rotes Hilfsdiv zu meinem Elternfenster gemacht, um damit ohne Javascript-Auslesung der Variablen den mittigen Aufbau über Prozentangaben hinzukriegen.
Wie kriegt man den Aufbau, den ich möchte, mit divs denn sonst hin, wenn man das Elternfenster NICHT so legt ??? Weiß gerade nicht mehr weiter...

13.08.2009 09:27

19 Jörg

Ich denke, dieses Problem hast du grundsätzlich bei dieser Art der Zentrierung mit der Verschiebung um die Hälfte der Breite / Höhe nach links / oben. Eine horizontale Zentrierung kann alternativ mit margin:right erreicht werden - da wird dann nichts links abgeschnitten, wenn der Anzeigebereich zu klein ist. Für die vertikale Zentrierung kenne ich allerdings keine vergleichbare Alternative. Ich würde solche (vertikalen) Zentrierungen auch nur dann einsetzen, wenn der Anzeigebereich vergleichsweise klein ist.

Mithilfe von JavaScript ließe sich das aber sicher noch korrigieren.

13.08.2009 10:38 | geändert: 13.08.2009 10:39

20 lava

Wie meinst du das mit dem margin:right ?

02.09.2009 11:11