tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
638
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    JesusFreak777 JesusFreak777 ist offline Mitglied Brokat
    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

    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 $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>"
    Wie man sieht habe ich bei reltop einen Korrektuffaktor! Warum wird dieser benötigt? Ist das einfach mein border?

    Vielen Dank
     

  2. #2
    Avatar von Lime
    Lime Lime ist offline frisch fruchtig
    Registriert seit
    Jul 2011
    Beiträge
    369
    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!

    PHP-Code:
    $sbreite 30;
    $sabstand 15;
    $hoehen = array(1020154050232120802045);

    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>"
    Ich hoff ich hab jetzt keinen Fehler drin, ist natürlich nicht getestet.

    Aber vielleicht hilft es dir ja weiter, bei deinen Überlegungen...

    €: letzte Frage wegen dem Korrekturfaktor: Ja, das ist der border...

    Gruß
     

  3. #3
    JesusFreak777 JesusFreak777 ist offline Mitglied Brokat
    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
     

  4. #4
    Avatar von Lime
    Lime Lime ist offline frisch fruchtig
    Registriert seit
    Jul 2011
    Beiträge
    369
    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ß
     

  5. #5
    djheke djheke ist offline Mitglied Silber
    Registriert seit
    Sep 2011
    Beiträge
    96
    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 beispielhaft
    Geändert von djheke (23.11.11 um 19:05 Uhr)
     

Ähnliche Themen

  1. Mit css div in Spalten anordnen
    Von Pixelakrobat im Forum CSS
    Antworten: 1
    Letzter Beitrag: 08.11.11, 11:31
  2. GridLayout anordnen
    Von andreas2000 im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 6
    Letzter Beitrag: 27.12.05, 13:25
  3. Polygone anordnen
    Von OGAME im Forum Cinema 4D
    Antworten: 3
    Letzter Beitrag: 25.12.05, 17:37
  4. Anordnen von Elementen mit CSS
    Von tantebootsy im Forum HTML & XHTML
    Antworten: 9
    Letzter Beitrag: 24.04.05, 16:38
  5. Objekte anordnen
    Von Al-m im Forum 3D Studio Max
    Antworten: 5
    Letzter Beitrag: 24.11.04, 13:27

Stichworte