Ich habe viele Bilder auf einer Seite, einer Galerie. Ich möchte, dass die Bilder scharf bleiben, damit ich keine Browser-Skalierung vornehme. Ich verwende die ursprünglichen Abmessungen des Bildes.
Dies funktioniert jedoch nur, wenn die Zoomstufe des Browsers 100% beträgt. Wenn ich die Zoomstufe vergrößere oder verkleinere, nimmt die Qualität der Bilder ab.
Einige Clients haben standardmäßig unterschiedliche Zoomstufen. Ich habe mich gefragt, wie Sie damit umgehen können und ob wir überhaupt damit umgehen?
Prost
Antworten:
Ich denke, die meisten anderen Antworten haben den Punkt verfehlt: Hier geht es nicht darum, die Benutzereinstellungen zu überschreiben, sondern darum, Bilder mit der besten Qualität in dem üblichen Szenario zu liefern, in dem dem Gerät eines Benutzers mehr als ein physisches Pixel für jedes CSS-Pixel, auch bekannt als " Referenzpixel ", zugewiesen wird "in Ihrem Bild, was dazu führt, dass der Browser das Bild vergrößert, pixelig und körnig macht.
Meine Lösungsvorschläge unten, aber zuerst hier sind die vier Möglichkeiten, wie dies passieren kann:
width: 200px; height: 200px;
wird also tatsächlich skaliert das 200 x 200 Pixel große Bild über mehr als 200 x 200 Pixel, wodurch es möglicherweise körnig wird.All dies führt zu Johns Problem, dass eine Bildergalerie überraschend körnig aussieht.
Ich hatte gehofft, dass jemand eine großartige Lösung für dieses Problem finden würde, aber hier sind meine bevorzugten Optionen, beginnend mit den effektivsten, aber am wenigsten universellen Möglichkeiten:
Wenn 1. und 2. nicht möglich sind, es aber wirklich wichtig ist und die Bildqualität wichtiger ist als zum Beispiel die Ladezeit, verdoppeln Sie einfach das Bild.
Dies ist, was Google mit seinem Logo auf seiner Homepage macht: Sie zerdrücken ein 538 x 190 Pixel großes PNG-Bild in einem 269 x 95 Pixel großen Container. Es ist auch mehr oder weniger so, wie reaktionsschnelle Bilder funktionieren.
Früher galt dies als schlechte Praxis, da alte Versionen des Internet Explorers beim Verkleinern von Bildern schrecklich waren. Diese werden heute jedoch nur noch sehr selten verwendet und sind weitaus seltener als Bildschirme mit hoher Pixeldichte. Es ist immer noch etwas unerwünscht, da es die Bildgröße und damit die Ladezeit erhöht - das ist ein Kompromiss, den Sie von Fall zu Fall beurteilen müssen.
quelle
Wie DA01 kommentierte , sollten Sie nichts dagegen unternehmen.
Der Zoom ist eine benutzerdefinierte Option und wird daher von ihnen gesteuert. Die Einstellungen, mit denen sie sich anlegen, sollten nicht in Ihrer Verantwortung liegen.
Sie können verschiedene Browser und Versionen berücksichtigen und was nicht, aber vernünftigerweise sollten Sie den Zoom eines Benutzers nicht berücksichtigen.
Sicher können Sie 125% oder 150% ausmachen (und müssen es möglicherweise nicht einmal). Aber 200%, 300%, mehr? Das ergibt einfach keinen Sinn.
Was ist, wenn der Benutzer das kontrastreiche Windows-Design verwendet? Was ist, wenn sie ständig die Lupe benutzen? Wen interessiert das?
Idealerweise ist Ihre Website so flexibel, dass es keinen Unterschied zwischen kleinen Zoomunterschieden macht, aber die Qualität der Bilder nimmt mit dem Zoom ab, aber das liegt nicht in Ihrer Verantwortung.
Dies ist natürlich nur meine Meinung, aber das Unternehmen, für das ich arbeite, teilt den Kunden ausdrücklich mit, dass wir ihre Zoomeinstellungen nicht unterstützen.
quelle
Andere Leute haben einige großartige Tipps zu den Problemen gegeben, mit denen Sie konfrontiert werden. Ich bin in diesem Bereich nicht gut genug, um ein gutes Tutorial zu erstellen, aber ...
Möglicherweise möchten Sie eine reaktionsfähige Site entwerfen, die sich an die Auflösung / das Gerät des Benutzers anpasst, und dann suchen Sie wahrscheinlich nach Code, mit dem Bilder auf Anforderung in Dateien mit höherer oder niedrigerer Auflösung umgewandelt werden können, anstatt die vorhandenen Bilder zu strecken und zu komprimieren.
Als ich das letzte Mal versuchte, verwendete ich media-query.js und picturefill.js. Siehe: http://responsivedesign.is/resources/images/picture-fill . Ich hatte ein dreispaltiges Layout, bei dem einige Bilder zwei Spalten umfassen würden ... Wenn das Browserfenster klein genug wäre, würden die großen Bilder auf eine kleinere Res-Version umgestellt, die nur eine Spalte breit wäre. Der Browser des Benutzers lädt nur die Version der benötigten Datei. (und in meinem Fall würde das Maurer-Plugin alles verschieben, um es unterzubringen).
Natürlich muss Ihr Benutzer dann Javascript aktiviert haben ...
quelle
Sie können die Hand des Benutzers nicht erzwingen. Die Benutzereinstellungen gehören nicht Ihnen. Einstellungen und deren Umgehung sind eine schlechte Idee. Es kann einen Grund geben, warum der Benutzer etwas unternommen hat. In beiden Fällen können Sie für die verschiedenen Geräte keine Garantie übernehmen.
In der Tat, wenn Sie in die technische Seite gehen, wird es noch interessanter. Sie geben wirklich die Schlüssel zum Königreich mit Ihrer Webseite. Sehen Sie, wie der Benutzer die Webseite herunterlädt, und der Benutzer kann nun damit machen, was er will. Sie haben keine Kontrolle über diese Ebene, sie läuft immerhin auf dem Computer des Benutzers und er kann tun, was er will. Selbst stackexhange sieht auf meinem Computer / Handy nicht so aus wie auf Ihrem. Ich ändere einige Aspekte der Benutzeroberfläche automatisch, um zwei Rendering-Fehler zu beheben und zwei Verknüpfungen hinzuzufügen.
quelle
Das ärgerliche Verhalten beim Hochskalieren von Bildern auf HiDPI-Bildschirmen, das zu verschwommenen Fotos führt (auch bekannt als der Albtraum der Fotografen), hat mich auch schon seit einiger Zeit beunruhigt. Ich habe mich auch gefragt, dass es kein einfaches CSS-Attribut gibt, um dies für Bilder zu deaktivieren.
Meine aktuelle Lösung mit CSS sieht folgendermaßen aus:
Der nächste Schritt wäre die Verwendung von Klassen zum Definieren und Festlegen verschiedener Bildgrößen, falls erforderlich. Ich kenne keine Möglichkeit, die Bildgrößen dynamisch zu ermitteln. Die CSS-Funktion attr () scheint dafür nicht zu funktionieren.
quelle
Das wäre also eher eine Programmierfrage. Mit JQuery oder auch nur Flugzeug-CSS können Sie jedoch verschiedene Bilder basierend auf der Bildschirmbreite, Bildschirmhöhe usw. des Benutzers anzeigen.
Auch dies ist wahrscheinlich nicht der Stack-Exchange zu fragen.
quelle
Sie können dies einfach per HTML im Kopf der Seite hinzufügen
Dies wird von Entwicklern nicht für jede Art von Website empfohlen, sollte jedoch die gewünschten Ergebnisse liefern.
quelle
Hoffe, es hilft: CSS-Regel transformieren: Skalieren auf Body-Tag oder andere - nicht perfekt, siehe hier, bitte:
/programming/23099849/stop-firefox-dpi-scaling-when-windows-setting-is-at-125/42755741#42755741
quelle