+ Antworten
Ergebnis 1 bis 4 von 4

Thema: img hieght an div höhe anpassen

  1. #1
    helmerj ist offline Grünschnabel helmerj befindet sich auf einem aufstrebenden Ast
    registriert
    08-02-2010
    Beiträge
    3

    img hieght an div höhe anpassen

    Hi!

    Ich habe eine ruby on rails Anwendung, welche eine dynamische Seite generiert. Die Seite besteht aus einem wrapper div in welchem je 2 Divs nebeneinander in jeder Zeile angezeigt werden. Links ein schmaleres Div (class="left") mit einem Bild und rechts ein großes Div mit Text (class="right").

    Die Menge an Text ist nicht konstant, weswegen die Höhe des Divs für jeden Datenbankeintrag variiert.

    Was ich gerne erreichen möchte ist, dass die Höhe des schmalen Divs, welches das Bild enthält, immer genauso hoch ist wie die des Divs welches den Text enthält.

    Ich habe schon versucht was mit Javascript zu finden, aber das die beiden divs nur über Klassen zu adressieren sind, die im Dokument zudem mehrfach vorkommen sit die Adressierung Schwierig...

    Für Hilfe oder hinweise wäre ich sehr dankbar.

    LG
    J.

  2.    Empfehlenswerte Literatur von unserem Partner Terrashop

    Das AJAX Kompendium jetzt 84% Rabatt
    Ajax - der Technologiemix aus JavaScript und XML - ist eines der Kernstücke professioneller Web 2.0-Programmierung. Dieses Buch führt Sie auf über 800 Seiten(!) von den ersten JavaScript-Codezeilen bis zur Entwicklung mit Ajax-Frameworks.

    Preis: früher: 49,95€ - jetzt nur: 7,95€

    Hier geht es direkt zum Buch

    Über 1.000 weitere IT-Bücher zum Sonderpreis lieferbar!

  3. #2
    Avatar von kkapsner
    kkapsner ist offline Moderator kkapsner befindet sich auf einem aufstrebenden Ast
    registriert
    28-03-2008
    Beiträge
    5.531

    AW: img hieght an div höhe anpassen

    Ohne die genaue HTML-Struktur können wir dir nicht helfen.

  4. #3
    helmerj ist offline Grünschnabel helmerj befindet sich auf einem aufstrebenden Ast
    registriert
    08-02-2010
    Beiträge
    3

    AW: img height an div höhe anpassen

    Zitat Zitat von kkapsner Beitrag anzeigen
    Ohne die genaue HTML-Struktur können wir dir nicht helfen.
    OK, hier kommts:

    index.html.erb

    Code:
    <h1>Publications</h1>
    <div id="publication_wrapper">
    
    	<div class="right">
            <p>Hier kommt der Text, 
    welcher dynamisch aus der Datenbank geholt wird 
    und zu einer unterschiedlichen H;he des rechten Divs führen 
    kann, sein kann, je nach Menge des Texte</p>
            </div><!-- right -->
    	
    		<div class="left">
    	          <img src="/images/side_image.jpg">
    	        </div><!-- left -->
    		
    		<div class="clear"></div>
        	
    </div><!-- publication_wrapper -->
    Nachfolgend der CSS Code. Das linke Div (.left) wird z.Z. auf eine Höhe von 288px fixiert.

    Code:
    #publication_wrapper .left {float:left;width:150px;height:288px;padding: 5px 0px 5px 0px;margin:10px 0px 10px 0px;overflow:hidden;box-shadow:4px 4px 8px #666;-moz-box-shadow:4px 4px 8px #666;-webkit-box-shadow:4px 4px 8px #666;}
    
    #publication_wrapper .right {float:right;width:770px;padding: 5px 0px 5px 0px;margin:10px 0px 10px 0px;}
    
    .clear              {clear:both;}
    Was ich jetzt gerne erreichen möchte ist, dass wenn das rechte Div z.B. eine Höhe von 200px hat, das von dem Bild in div.left entsprechend 200px gezeigt werden, wenn das rechte Div 400px hat, entsprechend 400px vom Bild gezeigt werden. Die Bilder für das linke Div haben selber eine Höhe von bis zu 1000px.

    LG
    J.

  5. #4
    helmerj ist offline Grünschnabel helmerj befindet sich auf einem aufstrebenden Ast
    registriert
    08-02-2010
    Beiträge
    3

    Lightbulb SOLVED: img height an div höhe anpassen

    Hi, da ich das Problem gelöst habe, poste ich hier mal die Lösung(en)

    1. da ich für die Seite ruby on rails verwende, habe ich mit zwischenzeitlich mit einer ruby-Funktion geholfen, welche anhand der Länge des Textes die ungefähre Höhe ausrechnet. Der Höhe des DIV mit dem Text ergibt sich aus zwei Paragraphen und einer Fußzeile mit links und den Zwischenräumen (padding und margins):

    Code:
    @description_length = 10
    @background_length = 10
    @description_length = project.description.length if project.description?
    @background_length = project.background.length if project.background?
    @image_height = [@description_length/5,@background_length/5.5, 50].sum.round
    @image_height = 200 if @image_height < 200
    In der letzten Zeile setze ich die Mindesthöhe auf 200px fest, weil es sonst bei sehr wenig Text blöd aussah.

    Vorteil:
    • einfach, da mir Bordmitteln gelöst
    Nachteil:
    • sehr ungenau, da der erste Paragraph in Fett, der zweite aber in normaler Schrift angezeigt wird. Eher eine Annäherung als eine genaue Bestimmung...

    2. Die finale Lösung:

    Die finale und nun verwendete Lösung basiert auf jquery und einer kleinen CSS Erweiterung, meines HTML Codes:

    Code:
    <div id="projects_wrapper">
    
    <% @projects.each do |project| %>
        <div class="<%= cycle("even", "odd", :name => "row_class") -%>">
        	<div id="box">
            <div class="right">
    		    <h3><%=h project.project_title %></h3>
    		
    		    <p class="textjustified"><strong><%=h project.description %></strong></p>
    		
    		    <p class="textjustified"><%=h project.background %></p>
    		    <% unless project.labmembers.blank? %>
    			    <p>
    			      Workin on this project: <%= project.labmembers.collect{|l| link_to(l.fullname, l)}.join(", ")%>
    			    </p>
    			<% end %>
           </div><!-- right -->
           <div class="left">
                <img src="/images/side_image_blue_<%= cycle ("09","08","07","06","05","04","03","02","01",  
    			:name => "images") %>.jpg">
            </div><!-- left -->
            
            <div class="clear"></div>
    		</div><!-- box -->
        </div><!-- odd/even -->
    
    <% end %>
    
    </div><!-- projects_wrapper -->
    Entsprechend einer Tabellenzeile habe ich jedes .right .left Paar, also die beiden divs welche in jeder Zeile nebeneinander stehen, in ein Extra Div mit der id="box" eingeschlossen.

    Dann habe ich jquery geladen und das folgenden jquery Script in die Seite eingebunden:

    Code:
    $(document).ready(function () {
    	var $container = $('#projects_wrapper')
    	var $boxes = $container.find('#box')
    	
    	$boxes.each(function () {
    		var $box = $(this); // derzeitige box
    		var $sidebox = $box.find('.left');
    		var height = $box.find('.right').height(); 
    		$sidebox.css({
    			height: height
    		});		
    	});
    });
    Arbeitet sehr genau und einfach. Jetzt brauche ich nur noch den Notfallplan für Leute ohne Javascript..., also wohl meine Ruby Lösung...

    LG
    J

+ Antworten

Ähnliche Themen

  1. Höhe div box auslesen firefox
    Von subjektlos im Forum JavaScript
    Antworten: 3
    Letzter Beitrag: 04-05-2008, 17:45
  2. problem mit div & img
    Von fxsp im Forum JavaScript
    Antworten: 6
    Letzter Beitrag: 05-01-2008, 17:42
  3. script das div id ändert ?
    Von darkstar im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 22-08-2006, 12:02
  4. DIV zentriert in höhe und breite ausgeben...
    Von GELight im Forum JavaScript
    Antworten: 0
    Letzter Beitrag: 03-06-2006, 20:21
  5. Höhe von iFrame an Höhe von Quelldatei anpassen
    Von Amatron im Forum JavaScript
    Antworten: 3
    Letzter Beitrag: 12-11-2005, 15:19

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein