Ich habe mich gefragt, ob ich in den Attributen width und height width und height in Prozent angeben kann.
Nun, ich denke, das ist offensichtlich, denn wenn ich es versuche, ändert sich die Größe, aber es scheint die Qualität meines Bildes zu beeinträchtigen.
Hier ist ein Beispiel für mein Markup mit festen Attributen:
<img src="#" width="346" height="413">
Jetzt, während Sie versuchen, dies zu verkleinern, sagen wir um die Hälfte, über Prozentsätze:
<img src="#" width="50%" height="50%">
Ich bekomme etwas ganz anderes als:
<img src="#" width="173" height="206.5">
Ich glaube, ich verwechsle nur grundlegend meine prozentualen Aufschläge oder so etwas, weil es einen merklichen Unterschied zwischen meinem zweiten und dritten Beispiel gibt.
UPDATE: Hey, danke an alle für all die hilfreichen Beiträge!
Ich mag den jQuery-Vorschlag von Pat wirklich sehr, nur weil ich mit einem einzigen Snippet, wie er vorgeschlagen hat, den Selektor tatsächlich ändern und ihn auf alle Bilder anwenden kann, die von meiner Fancybox betroffen sind, wie folgt:
$('img.FancyBox').each(function(){
$(this).width($(this).width() * 0.25);
});
Wie geil ist das denn!
Sie können den Live-Effekt hier auf meiner Website überprüfen: http://www.marioplanet.com/product.htm
Es funktioniert ziemlich gut, wenn man bedenkt, dass ich, sobald ich es mit meiner SQL Server-Datenbank verbinde, dieses eine jQuery-Snippet einfach auf alle Bilder der FancyBox-Klasse auf meinen Produktseiten anwenden kann.
Danke Leute!
Diese prozentualen Breiten in Ihrem zweiten Beispiel beziehen sich tatsächlich auf den Container, den Sie <img>
ist in und nicht die tatsächliche Größe des Bildes. Angenommen, Sie haben den folgenden Markup:
<div style="width: 1000px; height: 600px;">
<img src="#" width="50%" height="50%">
</div>
Das resultierende Bild ist 500 Pixel breit und 300 Pixel hoch.
jQuery Resize
Wenn Sie versuchen, ein Bild auf 50% seiner Breite zu reduzieren, können Sie dies mit einem Ausschnitt aus jQuery tun:
$( "img" ).each( function() {
var $img = $( this );
$img.width( $img.width() * .5 );
});
Stellen Sie einfach sicher, dass Sie zuerst alle Attribute für Höhe/Breite = 50% entfernen.
Sie können den einen oder anderen Wert einstellen (nur nicht beide) und das sollte das gewünschte Ergebnis bringen.
<img src="#" height="50%">
Hier ist der Unterschied:
Dadurch wird das Bild auf die Hälfte seiner Originalgröße eingestellt.
<img src="#" width="173" height="206.5">
Dadurch wird das Bild auf die Hälfte der verfügbaren Präsentationsfläche eingestellt.
<img src="#" width="50%" height="50%">
Wenn Sie dies beispielsweise als einziges Element auf die Seite setzen, wird versucht, 50% der Breite der Seite in Anspruch zu nehmen, sodass sie möglicherweise größer als ihre ursprüngliche Größe ist - nicht die Hälfte ihrer ursprünglichen Größe, wie Sie es erwarten .
Wenn das Bild größer als das Originalformat dargestellt wird, erscheint es stark pixelig.
width = "50%" und height = "50%" setzen die Attribute width und height auf die Hälfte der Breite und Höhe des übergeordneten Elements, wenn ich mich nicht irre. Wenn Sie nur die Breite oder Höhe festlegen, sollte auch die Breite oder Höhe auf den Prozentsatz des übergeordneten Elements festgelegt werden, wenn Sie Prozente verwenden.
Angesichts des Mangels an Informationen zur ursprünglichen Bildgröße würde die Angabe von Prozentsätzen für die Breite und Höhe zu sehr fehlerhaften Ergebnissen führen. Wenn Sie sicherstellen möchten, dass ein Bild an eine bestimmte Stelle auf Ihrer Seite passt, müssen Sie einen serverseitigen Code verwenden, um diese Neuskalierung zu verwalten.
Versuchen Sie, die Eigenschaft scale in css3 zu verwenden:
75% des Originals:
-moz-transform:scale(0.75);
-webkit-transform:scale(0.75);
transform:scale(0.75);
50% des Originals:
-moz-transform:scale(0.5);
-webkit-transform:scale(0.5);
transform:scale(0.5);
Von W3Schools
Die Höhe in Prozent des enthaltenen Elements (wie "20%").
Also denke ich, dass sie das Element bedeuten, in dem sich der Div befindet?