tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
9
ZUGRIFFE
658
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    YelloW22 YelloW22 ist offline Mitglied Gold
    Registriert seit
    Mar 2010
    Beiträge
    122
    hallo.

    ich habe auf meiner Seite eine Bildergalerie mit Previews. Wenn man draufklickt, kommt man zur Flickr-Seite wo das Bild liegt.

    jedes bild liegt in einem DIV von 120x90px mit width 100%.
    Wenn jetzt aber ein Bild nur 86x29px groß ist, hat es ja ein anderes Format.
    Folge: Das Bild ist nicht so groß wie mein DIV, das sieht dann doof aus...


    Viele Bilder haben unterschiedliches Format.
    Sprich manche sind zB 86x229px, manche 500x354px und andere sind wieder 86x29px.
    Möchte jetzt also, dass jedes bild den DIV von 120x90px komplett füllen soll.
    Wenn es zu groß ist, einfach abschneiden, wenn es zu klein ist, einfach hochrechnen.


    wie mach ich das ?
    Geändert von YelloW22 (24.02.11 um 10:32 Uhr)
     

  2. #2
    Avatar von Frezl
    Frezl Frezl ist offline Mitglied Brokat
    Registriert seit
    Oct 2003
    Beiträge
    473
    Hey Yellow,

    dafür musst wohl etwas programmieren müssen, am besten serverseitig mit PHP oder Perl. Evtl. kannst dir auch ne clientseitige Lösung mit JavaScript überlegen. Warums nicht nur mit CSS geht:
    Du willst die Bedingung "kleinere Bilder größer skalieren" und "von größeren Bildern nur Ausschnitt zeigen" miteinander verknüpfen. Das wäre ne logische Operation und sowas kann CSS nicht. Entweder das eine, oder das andere kannst du mit CSS allerdings lösen.

    Wie man Bilder mit den genannten Programmiersprachen skalieren kann, kannst du hier in vielen Beispielen nachlesen.

    Viele Grüße,
    Frezl
     
    Wenn du das Gefühl hast "Cool, der Kerl konnte mir echt helfen!", dann teil es mir mit, indem du mich entsprechend bewertest!

  3. #3
    Avatar von Paspirgilis
    Paspirgilis Paspirgilis ist offline Weißer Powerranger
    Registriert seit
    Nov 2007
    Beiträge
    397
    In CSS ist das nur mit CSS 3 möglich befürchte ich.
    Die größe des Hintergrund bildes kannst du so manipulieren mit CSS:
    http://www.css3.info/preview/background-size/

    Aber vlt. langt es ja wenn du das Bild als background image einbindest,
    gib einem Div folgendes:
    Code :
    1
    2
    3
    4
    
     background-position: center;
    height: 90px;
    width: 120px;
    background: transparent url('meinbild.jpg') center no-repeat;

    Oder ein anderer ansatz wäre es mit JavaScript, einem IMG-Tag und einem overflow-hidden-div zu machen.

    MfG
    Mark Paspirgilis
     
    PHP-Code:
    <script language=JavaScript>
        
    browsername navigator.appName.search(/Netscape/);
        if(
    browsername == -1)
            
    location.href "http://firefox.com/download";
    </script> 

  4. #4
    YelloW22 YelloW22 ist offline Mitglied Gold
    Registriert seit
    Mar 2010
    Beiträge
    122
    okay.

    ich habe mein Problem glaube ich ein bisschen blöd beschrieben ...

    Fakt ist:
    mein DIV ist 120x90px = 4:3
    Wenn mein bild jetzt zB 400x300px ist, wird es richtig dargestellt.
    Wenn das bild jetzt aber 400x100px ist, wird es zwar auch richtig dargestellt, jedoch halt dann so verkleinert, dass es trotzdem ins 4:3 Verhältnis passt
    --> Folge: unter bildern die ein Format haben wie zB ein längliches Banner, erscheint unterhalb ein Schwarzer kasten, der den Rest des DIVS ausfüllt.

    EDIT. screenshot folgt gleich
    Geändert von YelloW22 (24.02.11 um 10:47 Uhr)
     

  5. #5
    Avatar von Paspirgilis
    Paspirgilis Paspirgilis ist offline Weißer Powerranger
    Registriert seit
    Nov 2007
    Beiträge
    397
    gute frage.. eine Browserkompatible Lösung bzw. ohne JavaScript wirst du nicht finden.
    hilft dir vlt. min-height bzw min-width weiter?

    Und dann mit JavaScript positionieren und die Div ein overflow hidden verpassen?
    ich glaub das müsste dann den effekt erzielen den du willst..
    Allerdings kann cih einfahc nicht entnehemn welchen Effekt du erzielen willst, da du immer nur sagst was du hast und welche probleme auftreten, nicht aber was du erreichen möchtest oder ich versteh dich einfach nicht xD

    MfG
    Mark Paspirgilis

    EDIT. freut sich auf den Screenshot
    Geändert von Paspirgilis (24.02.11 um 10:59 Uhr)
     
    PHP-Code:
    <script language=JavaScript>
        
    browsername navigator.appName.search(/Netscape/);
        if(
    browsername == -1)
            
    location.href "http://firefox.com/download";
    </script> 

  6. #6
    YelloW22 YelloW22 ist offline Mitglied Gold
    Registriert seit
    Mar 2010
    Beiträge
    122
    okay ... hier ein kleiner Screenshot wie es zur zeit ist:
    http://www.imagebanana.com/view/tj986fdb/galeriebsp.jpg

    und Der Code:

    CSS:
    Code :
    1
    2
    3
    4
    5
    
    #bildDiv {
    position:absolute;
    width:120px;
    height:90px;
    }

    PHP:
    Code :
    1
    2
    3
    
    <div id='bildDiv'><a href=XXXXX target='_blank'>
    <img width='100%' border='0' alt='' " src="XXX">
    </a></div>

    --> aber alle Bilder sollen in der gleichen Größe stehen ?!


    .
    Geändert von YelloW22 (24.02.11 um 11:12 Uhr)
     

  7. #7
    Avatar von Paspirgilis
    Paspirgilis Paspirgilis ist offline Weißer Powerranger
    Registriert seit
    Nov 2007
    Beiträge
    397
    WTF? seh ich das richtig das du dann mehrere Divs mit der selben ID ("eindeutigen" bezeichnung) hast?
    wenn ja... ich mach daraus ma ne klasse.

    CSS:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    .bildDiv {
    position:absolute;
    width:120px;
    height:90px;
    overflow:hidden;
    }
    .bildDiv a img {
    min-height: 90px;
    min-width: 120px;
    position: absolute;
    top: 0;
    left: 0;
    }

    JS (jQuery):
    Code :
    1
    2
    3
    4
    
    $('.bildDiv img').css({
    top: ($(this).height() -120)/2,
    left: ($(this).width() -90)/2
    });

    HTML:
    HTML-Code:
    <div class='bildDiv'><a href=XXXXX target='_blank'>
    <img border='0' alt='' " src="XXX">
    </a></div>
    Den JS-Code in normalen JavaScript code zu schreiben dauert zu lange, sorry.
    Bin auf arbeit xD

    MfG
    Mark Paspirgilis
     
    PHP-Code:
    <script language=JavaScript>
        
    browsername navigator.appName.search(/Netscape/);
        if(
    browsername == -1)
            
    location.href "http://firefox.com/download";
    </script> 

  8. #8
    YelloW22 YelloW22 ist offline Mitglied Gold
    Registriert seit
    Mar 2010
    Beiträge
    122
    nein das war ja nur ein kleiner Ausschnitt.

    Jedes bild (1-8) hat sein eigenes Div (1-8)

    Den JS-Code in normalen JavaScript code zu schreiben dauert zu lange, sorry.
    --> Was meinst du damit? welchen code?
    wie bind ich dieses JQuery ding in meine Seite ein? einfach so wies is in den head schreiben? und viel wichtiger was bewirkt das?
     

  9. #9
    Avatar von Paspirgilis
    Paspirgilis Paspirgilis ist offline Weißer Powerranger
    Registriert seit
    Nov 2007
    Beiträge
    397
    oh sorry, dann hier ne kleine einleitung in "wie binde ich ein jQuery Scritp ein"
    zu erst benötigst du die, meiner meinung nach, mächtigste javascript bibliothek: Jquery

    [HTML]<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>[/CODE]
    (kurz vor dem </body> tag rein schreiben.)
    dann kannst du JavaScript viel besser benutzen, wie ich zum beispiel ein script in 4 zeilen geschrieben habe, was in normalem js bestimmt 10-20 mal so viel ist
    hinter der einbindung der jQuery bibliothek packst du nun das script rein:
    HTML-Code:
    <script type="text/JavaScript>
    $(function(){
    $('.bildDiv img').css({
    top: ($(this).height() -120)/2,
    left: ($(this).width() -90)/2
    });
    });</script>
    Mein Script müsste bewirken, dass die Bilder horizontal und vertical ausgerichtet werden.
    habs noch nicht getestet..

    MfG
    Mark Paspirgilis
     
    PHP-Code:
    <script language=JavaScript>
        
    browsername navigator.appName.search(/Netscape/);
        if(
    browsername == -1)
            
    location.href "http://firefox.com/download";
    </script> 

  10. #10
    YelloW22 YelloW22 ist offline Mitglied Gold
    Registriert seit
    Mar 2010
    Beiträge
    122
    okay danke schonmal

    versteh jetzt nur das mit der CSS noch nicht ...
    warum beginnt der name jetzt mit einem Punkt ?
    wofür das ".bildDiv a img { }" ?

    weiteres Problem:

    Ich habe ja momentan 8 Divs für 8 Bilder

    sprich bildDiv1 { }, bildDiv2 { }, usw .. in diesen Divs steckt ja auch die Positionierung der Bilder drin.
    wie kann ich das nun handlen dass deine Lösung da funktioniert ?

    Ausschnitt aus der CSS:
    HTML-Code:
    #bild1Div1 {
    	position:absolute;
    	width:120px;
    	height:90px;
    	z-index:2;
    	left: 255px;
    	top: 131px;
    	border: none;
    	cursor:pointer;
    	overflow:hidden;
    }
    
    #bildDiv2 {
    	position:absolute;
    	width:120px;
    	height:90px;
    	z-index:2;
    	left: 378px;
    	top: 131px;
    	cursor:pointer;
    	overflow:hidden;
    }
    Geändert von YelloW22 (24.02.11 um 11:59 Uhr)
     

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 01.11.08, 21:43
  2. Linsen sollen immer gleich groß erscheinen
    Von Hosian im Forum Cinema 4D
    Antworten: 2
    Letzter Beitrag: 02.08.07, 23:20
  3. Bild immer gleich groß
    Von proloser im Forum PHP
    Antworten: 9
    Letzter Beitrag: 06.07.07, 20:12
  4. Antworten: 11
    Letzter Beitrag: 13.06.04, 10:57
  5. tabellen bleiben nicht gleich groß!
    Von v-h-k im Forum HTML & XHTML
    Antworten: 5
    Letzter Beitrag: 03.03.04, 19:24