ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
638
638
EMPFEHLEN
-
22.11.11 07:32 #1
- Registriert seit
- Nov 2007
- Beiträge
- 255
Hi ihr,
ich habe auf einer Seite, ein Div,.. das ist in einem (variablen) Textfluß eingebunden und hat keine Feste Position!
jetzt möchte ich in diesen DIV (feste Höhe & Breite) mehrere Divs relativ anordnen (soll ein Säulemdiagramm werden [natürlich mir Dynamischen höhen und breiten,...])
beim ersten DIV ist das ja noch einfach,...
Code :1
position: relative; top: ".$reltop."px; left: ".$relleft."px;
aber ab dem 2. Positioniert er dann immer relativ zum ersten,...
Klar,... ich weiß ja wo das erste ist und wie groß,... ich könnte dann "einfach" RECHNEN
-> aber das ist find ich etwas sehr umständlich!
gibts da ne bessere lösung?
-> das ist jetzt einfach mal etwas wirrer Quählcode (wird natürlich noch als schleife aufgebaut und mit dynamischen werten,....) aber vll. wird ja jemand daraus schlau was ich will und kann mir helfen
Wie man sieht habe ich bei reltop einen Korrektuffaktor! Warum wird dieser benötigt? Ist das einfach mein border?PHP-Code:$dxheight = 220;
echo "<div id='diag' style='border: 1px solid #567; height: ".$dxheight."px; '>";
$height = 50;
$height = $height / 100 * $dxheight;
$reltop = $dxheight - $height - 1;
echo "<div style='background: #31304A; position: relative; top: ".$reltop."px;
left: 10px; width: 25px; border: 1px solid #567; height: ".$height."px; '></div>";
$height = 20;
$height = $height / 100 * $dxheight;
$reltop = $dxheight - $height - 1 - $reltop - 3;
echo "<div style='background: #4A304A; position: relative; top: ".$reltop."px;
left: 45px; width: 25px; border: 1px solid #567; height: ".$height."px; '></div>";
$height = 70;
$height = $height / 100 * $dxheight;
$reltop = $dxheight - $height - 1;
echo "<div style='background: #304A4A; position: relative; top: ".$reltop."px;
left: 80px; width: 25px; border: 1px solid #567; height: ".$height."px; '></div>";
$height = 50;
$height = $height / 100 * $dxheight;
$reltop = $dxheight - $height - 1;
echo "<div style='background: #617A94; position: relative; top: ".$reltop."px;
left: 115px; width: 25px; border: 1px solid #567; height: ".$height."px; '></div>";
$height = 50;
$height = $height / 100 * $dxheight;
$reltop = $dxheight - $height - 1;
echo "<div style='background: #304A3E; position: relative; top: ".$reltop."px;
left: 150px; width: 25px; border: 1px solid #567; height: ".$height."px; '></div>";
$height = 50;
$height = $height / 100 * $dxheight;
$reltop = $dxheight - $height - 1;
echo "<div style='background: #947B61; position: relative; top: ".$reltop."px;
left: 185px; width: 25px; border: 1px solid #567; height: ".$height."px; '></div>";
$height = 50;
$height = $height / 100 * $dxheight;
$reltop = $dxheight - $height - 1;
echo "<div style='background: #6F5C49; position: relative; top: ".$reltop."px;
left: 220px; width: 25px; border: 1px solid #567; height: ".$height."px; '></div>";
$height = 50;
$height = $height / 100 * $dxheight;
$reltop = $dxheight - $height - 1;
echo "<div style='background: #4A3130; position: relative; top: ".$reltop."px;
left: 255px; width: 25px; border: 1px solid #567; height: ".$height."px; '></div>";
$height = 50;
$height = $height / 100 * $dxheight;
$reltop = $dxheight - $height - 1;
echo "<div style='background: #4A4A30; position: relative; top: ".$reltop."px;
left: 290px; width: 25px; border: 1px solid #567; height: ".$height."px; '></div>";
echo "</div>";
Vielen Dank
-
Huhu,
also primär würde ich eine fixe Säulenbreite und einen fixen Abstand zwischen den Säulen festlegen (oder später dynamisch berechnen).
Dann auf jedenfall die Höhen in einen Array rein!
Ich hoff ich hab jetzt keinen Fehler drin, ist natürlich nicht getestet.PHP-Code:$sbreite = 30;
$sabstand = 15;
$hoehen = array(10, 20, 15, 40, 50, 23, 21, 20, 80, 20, 45);
echo "<div id='diag' style='border: 1px solid #567; height: ".$dxheight."px; '>";
for($i = 0; $i < 10; $i++)
{
//aktuelle Höhe berechnen
$height = $hoehen[$i] / 100 * $dxheight;
//relative höhen-Position berechnen
$reltop = $dxheight - $height - 1;
//relative breiten-Position berechnen
$relleft = $sbreite * $i + $sabstand * $i;
//Ausgabe
echo "<div style='background: #31304A; position: relative; top: ".$reltop."px;
left: ".$relleft."px; width: ".$sbreite."px; border: 1px solid #567; height: ".$height."px; '></div>";
}
echo "</div>";
Aber vielleicht hilft es dir ja weiter, bei deinen Überlegungen...
€: letzte Frage wegen dem Korrekturfaktor: Ja, das ist der border...
Gruß
-
23.11.11 08:10 #3
- Registriert seit
- Nov 2007
- Beiträge
- 255
Hallo,
Vielen Dank,... genau das wollte ich auch so machen
array und schleife und so
...
Aber das eigentliche Problem wurde leider nicht gelöst....
evtl. habe ich auch nur einen Denkfehler,... aber gerade ist es so, das er die erste Säule zum DIAG-DIV richtig Positioniert,... aber ab dann hält er sich nicht mehr an das DIAG-DIV sondern an die letzte säule,...
eine lösung wäre, das ich die erste säule positioniere und dann die top-pos anhand der 2. säule errechne,... -> dieser weg gefällt mir aber nicht ganz!
kann ich beim Positionieren keinen bezug auf ein bestimmtes objekt nehmen?
Grüße
-
Puh, da fragst du mich echt zu viel. Selbst wenn es unbequem/unschön ist, würde ich es einfach mal mit der relativen Position des vorherigen Objekts probieren...
Eine Erklärung, warum das nicht von der absoluten Position aus gesetzt wird, versteh ich nicht ganz. Müsste theoretisch automatisch so sein.
Die Alternative wäre, statt einen Leerraum zu lassen (Abstand zw. DIVs), einfach eine unsichtbare Säule mit der maximalen Höhe einzufügen. Dann ist der Ursprung wieder ganz oben, wenn ich da richtig nachgedacht habe!
Gruß
-
Nimm doch eine UL-Liste und floate die LI's
Hier mal ein beispiel. Vielleicht kannst du es ja gebrauchen.
Diagramm
p.s. Die id und title Attribute sind nur beispielhaftGeändert von djheke (23.11.11 um 19:05 Uhr)
Ähnliche Themen
-
Mit css div in Spalten anordnen
Von Pixelakrobat im Forum CSSAntworten: 1Letzter Beitrag: 08.11.11, 11:31 -
GridLayout anordnen
Von andreas2000 im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 6Letzter Beitrag: 27.12.05, 13:25 -
Polygone anordnen
Von OGAME im Forum Cinema 4DAntworten: 3Letzter Beitrag: 25.12.05, 17:37 -
Anordnen von Elementen mit CSS
Von tantebootsy im Forum HTML & XHTMLAntworten: 9Letzter Beitrag: 24.04.05, 16:38 -
Objekte anordnen
Von Al-m im Forum 3D Studio MaxAntworten: 5Letzter Beitrag: 24.11.04, 13:27





Zitieren
Login





