Es gibt in letzter Zeit eine Reihe von Techniken, die für den Umgang mit responsiven Bildern verwendet werden. Das heißt, Lösungen, die uns helfen, das richtige Bild für den jeweiligen Anlass zu liefern (z. B. Bildschirmgröße und verfügbare Bandbreite). Sie alle machen die Dinge ein wenig anders. Um den Überblick zu behalten, haben Christopher Schmitt und ich diese Tabelle mit Techniken erstellt.
Die Tabelle enthält die Daten, aber lassen Sie uns diese durch die Brille praktischer Fragen verdauen.
Um zu entscheiden, welche Technik für Sie und Ihr Projekt die richtige ist, können die folgenden Fragen als Leitfaden dienen. Viele der Fragen können für Ihr Projekt relevant sein, daher müssen Sie sortieren, welche Techniken für welche Szenarien geeignet sind und die Überschneidungen finden.
Habe ich Legacy-Inhalte?
Was wirklich bedeutet... habe ich Legacy-Inhalte, die nicht praktikabel zu aktualisieren sind? Zum Beispiel habe ich Tausende von Seiten mit Inhalten auf CSS-Tricks und nur einen einzigen Schreibmitarbeiter.

<img /> auf der Website zurückgehen und aktualisieren, also brauche ich eine Technik, die es mir erlaubt, diese in Ruhe zu lassen.Die einzige Technik, die ich kenne und die absolut keine Markup-Änderungen erfordert, ist Adaptive Images. Sie funktioniert, indem Anfragen für Bilder über eine PHP-Datei geleitet werden, die intelligent Bilder der entsprechenden Größe für die Bildschirmbreite liefert (und bei Bedarf erstellt).
Eine weitere Frage, die Sie sich stellen sollten, ist, ob Sie sich für Legacy-Inhalte interessieren. Vielleicht ist der Großteil des Traffics auf Ihrer Website für neuere Inhalte bestimmt, bei denen Sie Markup-Änderungen vornehmen können und somit andere Techniken nutzen können. Wenn das der Fall ist, lesen Sie weiter, um diese anderen Techniken zu entdecken.
Wenn Sie ein kleines Projekt, ein brandneues Projekt oder ein Projekt mit Legacy-Inhalten haben, das Sie zurückverfolgen und aktualisieren können, können Sie auch eine Technik wählen, die spezielles Markup erfordert. Lesen Sie also weiter.
Ist mir spezielles Markup wichtig?
Dies ist im Grunde eine Unterfrage des obigen Punktes. Viele Techniken erfordern die Verwendung von speziellem HTML. Zum Beispiel müssen Sie bei HiSRC höher aufgelöste Bilder als data-attributes einfügen
<img src="200x100.png" data-1x="400x200.png" data-2x="800x400.png" />
Ich würde sagen, das ist eine saubere, gültige, semantische Technik, aber es bedeutet auch, dass Sie diese Attribute für jedes <img /> auf Ihrer Website benötigen, was auf Websites mit viel Legacy-Inhalt möglicherweise nicht möglich ist.
Wenn Sie wissen, dass spezielles Markup (oder spezialisiertes CSS) keine Option für Sie ist, dann ist Adaptive Images wirklich die einzige Option. Sogar Sencha.IO erfordert das Präfixieren des src-Attributs, was bei Legacy-Inhalten möglicherweise nicht möglich ist.
Ist mir die Semantik wichtig?
Einige Techniken für responsive Bilder beinhalten Markup, das nicht streng semantisch ist. Letztendlich gibt es nur einen Weg, wie ein Bild semantisch sein kann. Das ist, wenn der src darauf verweist, dass es sich um ein echtes Bild handelt, und es alt-Text hat, der dieses Bild beschreibt. Brad Frost fasst es gut zusammen.
@stowball Leider ist es nicht so einfach. Ein Bild eines Pferdes muss ein Bild eines Pferdes sein, sonst ist es kein Bild eines Pferdes. :)
— Brad Frost (@brad_frost) April 5, 2012
Mit anderen Worten, wenn die Technik zu irgendeinem Zeitpunkt erfordert, dass der src des Bildes fehlt oder auf ein transparentes GIF (oder ähnliches) verweist, ist das nicht semantisch.
Warum machen das einige Techniken für responsive Bilder? Weil ein Bild mit einem src, das auf dieses Bild eines Pferdes verweist, bedeutet, dass dieses Bild heruntergeladen wird, sobald es vom Browser analysiert wird. Es gibt keine praktische Möglichkeit, dies zu verhindern. Selbst wenn Sie diesen src super schnell gegen eine geeignetere Version austauschen, laden Sie jetzt zwei Bilder statt eines herunter, was einen Performance-Hit statt eines Performance-Gewinns darstellt. Sie mögen entscheiden, dass das akzeptabel ist (z. B. „Desktop“-Umgebungen haben normalerweise mehr Bandbreite). Normalerweise ist das Bild im src die kleinstmögliche Bilddatei, wenn diese Technik eingesetzt wird.
Wenn Ihnen die Semantik wichtig ist, sollten Sie sich Adaptive Images (oben behandelt) oder HiSRC ansehen, ein Plugin von Christopher Schmitt, das Sie mit einem semantischen src-Attribut verwenden können.
Einige der Techniken verwenden
Ist mir die Gültigkeit wichtig?
Gültigkeit im Sinne von „Ist es gültig?“ laut dem W3C Markup Validation Service. Validierung ist ein Werkzeug, das Ihnen hilft, Probleme zu finden und besseres Markup zu schreiben. Aber nur weil etwas nicht gültig ist, heißt das nicht, dass es schlecht oder falsch ist. Wenn ungültiger Code in allen Browsern wunderbar funktioniert, sollten Sie und niemand sonst sich darum kümmern.
Wenn Ihnen die Gültigkeit wichtig ist (vielleicht verlangt ein Kunde irrational danach und hält Ihren Gehaltsscheck als Geisel), dann gibt es einige Techniken, die Sie nicht verwenden können. Die picturefill-Technik verwendet zum Beispiel das <picture></picture>-Element, um seine Magie zu wirken. Dies könnte schließlich standardisiert werden, ist es aber noch nicht, also ist es technisch gesehen ungültige Syntax. Außerdem ist es erforderlich, dass <img />-Elemente ein src-Attribut haben, so dass Techniken, die dieses entfernen, um das Problem der doppelten Bildanfrage zu umgehen, ungültig sind.
Ich würde diese Techniken empfehlen, wenn Gültigkeit eine Anforderung für Sie ist: Adaptive Images, HiSRC oder Responsive Enhance. Alle verwenden eine einfache, gültige <img />-Syntax, die ein src enthält.
Ist mir Art Direction wichtig?
Einige Techniken für responsive Bilder liefern unterschiedliche Auflösungsversionen desselben Bildes. Das macht zwar die Dinge einfacher (d. h. weniger Arbeit), ist aber möglicherweise nicht akzeptabel. Hier ist ein visuelles Beispiel.

src. In der Mitte ein etwas größeres Bild, das auf (hüstel) „Tablets“ verwendet werden könnte. Rechts das größte der Bilder.(credit)Diese Bilder sind handgefertigt von einem Designer, beschnitten, um Bedeutung und Wirkung zu erhalten. Wenn Sie das Bild auf der rechten Seite nehmen und nur verkleinern würden, wären die Personen im Bild sehr klein und die Wirkung des Bildes ginge verloren.
Wenn diese Idee der Art Direction für Ihr Projekt wichtig ist, benötigen Sie eine Technik, die es Ihnen ermöglicht, genau anzugeben, welcher src unter welchen Umständen geliefert werden soll. Das ist perfekt für picturefill, das es Ihnen ermöglicht, sehr spezifisch über Quellen zu sein und was welche Umstände erhalten.
<picture>
<source src="small.jpg" />
<source src="medium.jpg" media="(min-width: 400px)" />
<source src="large.jpg" media="(min-width: 800px)" />
</picture>
JavaScript erledigt den Rest.
Ist mir JavaScript wichtig?
Die meisten dieser Techniken für responsive Bilder nutzen JavaScript, um ihre Magie zu wirken. Manche nur ein winziges bisschen, um einen Cookie zu setzen, aber trotzdem JavaScript. Manche von ihnen verlangen, dass Sie ein <img /> in einem
Was ist mit Abhängigkeiten von JavaScript-Bibliotheken?
HiSRC und rwdImages sind beide von jQuery abhängig. Wenn Ihr Projekt eine andere Bibliothek verwendet, sind diese wahrscheinlich nichts für Sie. Aber hey, Sie könnten sie portieren und Open Source daraus machen! Wenn Sie keine Bibliothek verwenden, nun, Sie sollten wahrscheinlich eine haben, aber lassen wir das mal beiseite.
Sind mir Server-Side-Komponenten wichtig?
Einige dieser Techniken sind nicht ausschließlich von JavaScript abhängig. Adaptive Images wirkt seine Magie hauptsächlich durch .htaccess und PHP. Nun, .htaccess setzt einen Apache-Server voraus. Und, obwohl wir natürlich alle PHP lieben (hüstel), laufen viele Websites auf Technologien wie Ruby oder Python.
Responsive Images (die ursprüngliche Technik von Filament Group) verwendet ebenfalls .htaccess. Wenn Sie also etwas wie Nginx als Webserver verwenden, ist dies entweder ausgeschlossen oder Sie müssen die .htaccess-Komponente in die ähnliche, aber andersartige Syntax von Nginx portieren.
Ist mir Bandbreitentests wichtig?
Das Testen der Browserfensterbreite und das Treffen von Entscheidungen, welches Bild basierend darauf geliefert werden soll, ist ziemlich cool und fundamental für das Konzept der responsiven Bilder. Aber es ist wirklich nur die Hälfte dessen, worauf die Entscheidung, welches Bild geliefert werden sollte, basieren sollte. Die andere Hälfte ist die verfügbare Bandbreite. Wenn der Benutzer eine sehr schnelle Internetverbindung hat, ist das Liefern großer Bilder in Ordnung. Wenn der Benutzer eine sehr langsame Internetverbindung hat, sollte er kleinere Bilder erhalten (unabhängig von der Bildschirmgröße). Leider existieren native Bandbreiten-Media-Queries nicht.
Zwei der aktuellen Techniken führen Bandbreitentests als Teil ihrer Entscheidungsfindung durch: Foresight.js und HiSRC (beide basieren auf der Technik in Foresight.js). Es funktioniert, indem eine Testdatei heruntergeladen und gemessen wird, wie lange es gedauert hat (konfigurierbar). Der Test selbst ist ein geringer Performance-Hit, aber theoretisch ist die Einsparung durch das Liefern von Bildern basierend auf der Kenntnis der aktuellen Bandbreite ein Netto-(Verstehen Sie es?)-Gewinn.
Ist mir die Abhängigkeit von Dritten wichtig?
Sencha.IO ist eine völlig externe Methode zur Handhabung responsiver Bilder. Soweit ich weiß, funktioniert es großartig und hatte keine größeren Ausfallzeiten, aber natürlich besteht immer dieses Risiko.
Sie denken vielleicht: Wow, die Sencha.IO-Technik ist wirklich cool, aber ich mache mir Sorgen wegen der Abhängigkeit von Dritten. Ich wünschte, ich könnte das auf meinem eigenen Server ausführen. Wenn Sie diesen Weg gehen möchten, gibt es die öffentliche WURFL-Datenbank und diese Server Side Responsive Images-Technik, die das lokal nutzt.
Es gibt auch externe Dienste wie Device Atlas Cloud, die die Geräteerkennung für Sie durchführen. Es ist auch eine Abhängigkeit von Dritten für Ihre App. Zweifellos ist ihr Ziel und Fokus, jederzeit erreichbar und schnell zu sein, aber Sie müssen sehr vorsichtig sein, auf wen und was Sie sich für Ihr Geschäft verlassen.
Einige weitere Drittanbieterdienste: ReSRC.it, Responsive.io, Thumber.io
Ist ein bestimmtes CMS mit spezifischen CMS-Funktionen beteiligt?
Nehmen wir an, Ihr Projekt ist in WordPress. WordPress hat einen integrierten Media-Uploader. Wenn Sie ein Bild damit hochladen, kann es mehrere Versionen (herunterskaliert) dieses Bildes für Sie erstellen. Das ist ziemlich cool und mächtig, und Sie könnten/sollten das nutzen.
Das ist aber kein reines WordPress-Ding. Ich bin sicher, die Konzepte, die hier im Spiel sind, könnten in jedem Content-Management-System umgesetzt werden (oder umgesetzt werden).
Sind mir doppelte Anfragen egal, solange die Lösung Mobile First ist?
Viele dieser Lösungen versuchen, das Problem bestmöglich zu lösen: nur eine einzige Anfrage für die richtige Ressource zu stellen. Wenn Sie damit einverstanden sind, die kleinste Version der Datei zu verlinken (damit diese Anfrage auf jeden Fall gemacht wird) und sie bei Bedarf durch größere Bilder zu ersetzen, funktioniert Source Shuffling vielleicht für Sie. Beachten Sie, dass die Bibliothek, die sie verwendet, nun vorschlägt, font-family anstelle von content zu verwenden, um Medienabfrageänderungen zu erkennen.
Kann ich auf die Zukunft warten?
Die Veröffentlichung des „neuen iPad“ (des dritten, für die Langlebigkeit) war Auslöser für viele dieser Techniken und Diskussionen. Seine hohe Pixeldichte ist großartig für Vektoren und große Fotos, aber eigentlich nicht gut für Dinge wie kleine Icons, die hochskaliert werden müssen, um die richtige Größe zu haben, und verschwommen sein können. Aber das Liefern von höher aufgelösten Icons bedeutet größere Dateigrößen und langsamere Websites. Daher die Notwendigkeit, sie nur in Situationen/Umgebungen zu liefern, in denen sie benötigt werden.
Die Welt der Webstandards ist sich dieses Problems bewusst. Es gibt eine ganze Gruppe, die sich damit beschäftigt. Mit der Zeit werden sie es vielleicht lösen, und dann können wir anfangen, jede Methode zu verwenden, die sie entwickeln (vorausgesetzt, sie ist großartig und besser als das, was wir jetzt haben).
Es könnte das Umschalten des src von Bildern über CSS-Inhalt sein, wie Nicolas Gallagher vorgeschlagen hat. Es könnte das <picture></picture>-Element sein. Es könnte ein srclist-Attribut in HTML oder src-Eigenschaft in CSS sein. Es könnte ein Präfix sein.
Es könnte Browser-Informationsanfragen senden, wie bei Client-Hints.
Weitere Ressourcen
- Jason Grigsby hat eine epische dreiteilige Serie über responsive Bilder hier beginnend.
- Christopher Schmitts Folien zu einem ganzen Vortrag über responsive Bilder.
- Mat Marquis über Responsive Images: How they Almost Worked and What We Need
Aber was ist mit dem Höhen-/Breiten-Auto-Trick? Den benutze ich jetzt standardmäßig für responsive Layouts.
#contentwrapper img {
max-width:600px;
height:auto;
}
Das verkleinert das Bild, aber der Punkt dieses Artikels ist es, vorformatierte oder automatisch formatierte Bilder anzusprechen, die kleiner sind – also MB und KB, nicht Höhe und Breite.
Durch das Ausliefern der optimierten Bilder verbrauchen Sie weniger Bandbreite in Fällen, in denen dies angebracht ist, z. B. auf einem kleineren Bildschirm, der ein Bild mit hoher Auflösung nicht richtig anzeigt, oder es wird weniger Bandbreite für diejenigen verbraucht, die sich um die Datengrenzen ihrer Nutzer auf Mobilgeräten kümmern.
Toller Artikel, hoffentlich gibt es in Zukunft eine Standardlösung, besonders da Responsive Web Design immer beliebter wird. Ich hatte noch keine Zeit, mich persönlich damit auseinanderzusetzen (und wenn ich anfange, es mir anzusehen, schrecken mich einige Probleme wie diese ab), aber in Kombination mit diesem Artikel und mangels Plänen für dieses Wochenende denke ich, dass ich mich einfach hineinstürzen und damit herumspielen muss! Danke!
Mein persönlicher Favorit ist die Tag-Lösung – sie scheint einfach die direkteste und am einfachsten zu implementierende zu sein. Eines Tages…
*Picture-Tag – habe ich in Code geschrieben, tue ich.
Tolle Sachen – ich kannte bis jetzt Adaptive Images nicht, habe aber eine ähnliche Technik mit phpThumb oder SLIR (Smart Lencioni Image Resizer) verwendet.
Da mein Standard-CMS MODX ist, ist die Verwendung von phpThumb meine Haupttechnik, da sie in MODX integriert ist und recht gut funktioniert, aber Adaptive Images sieht schön und stromlinienförmig aus und da es auf PHP basiert, weiß ich, dass es gut mit MODX funktionieren wird. Bin irgendwie neugierig, es jetzt auszuprobieren!
Im Allgemeinen ist mir Art Direction am wichtigsten. Weil sich das die Benutzer wünschen.
Sie interessieren sich nicht für Semantik, sie interessieren sich nicht dafür, ob es gültig ist, sie interessieren sich nicht dafür, ob es von einem Dritten stammt und so weiter... aber sie interessieren sich dafür, ob die Personen im Bild so klein sind, dass sie sie nicht erkennen.
ps. Ich sage nicht, dass Sie als Entwickler sich nicht darum kümmern sollten, aber zuerst die Benutzer.
Zustimmung – das ist wichtig. Ihr Punkt ist jedoch etwas vage.
Ich denke, eine Balance aller Aspekte (Art Direction, effizienter Code, semantisches Markup) ist wichtiger, als sich nur auf die Benutzererfahrung zu konzentrieren. Es ist sehr wichtig zu beachten, dass die Benutzererfahrung nicht nur die visuelle Anziehungskraft Ihrer Website ist, sondern auch Dinge wie Ladezeiten und Reaktionsfähigkeit.
Ja, das stimmt. Aber sie kümmern sich auch um die Leistung...
Die Benutzererfahrung sollte auch alle Benutzer einschließen, einschließlich der sehbehinderten Menschen, die auf Screenreader angewiesen sind. Das ist der Hauptgrund, warum ich persönlich Wert auf Semantik legen würde.
Je länger ich diese Webentwicklungsarbeit mache, desto mehr erkenne ich, dass es nicht wirklich wichtig ist, wie hübsch eine Website ist, wenn sie für den Benutzer nicht funktioniert.
Volle Offenlegung – ich habe einen Sohn, der mit 15 Jahren den Großteil seines Sehvermögens verloren hat, er ist jetzt 19. Während Semantik mir vorher wichtig war, ist sie jetzt ein Hauptziel meiner Arbeit.
Die Gemeinschaft der Sehbehinderten ist viel größer, als Sie denken.
Trisha
5/21/2012
Trisha,
Ich stimme zu 110% zu. Manche Entwickler vergessen gerne, dass sie nicht nur für verschiedene Geräte und Bildschirmgrößen gestalten, sondern auch für verschiedene MENSCHEN (dieser ist die größte einzelne Variable ). Erfolgreiches Design vereint Funktionalität mit Ästhetik und gibt beiden die gleiche Bedeutung (ein gutes Beispiel dafür sind Apples Industriedesign). Wenn Sie die Funktionalität ignorieren (oder ihr weniger Bedeutung beimessen), dann bewegen Sie sich in den Bereich der bildenden Kunst statt des Designs (und meines Wissens ist bildende Kunst nicht für jedermann leicht zugänglich – man muss sie verstehen, bevor man Zugang dazu bekommt. Kein zu intuitiver Ansatz für UI-Design). Die Barrierefreiheit ist auch für mich persönlich wichtig, da ich drei Kinder mit besonderen Bedürfnien habe, die täglich davon profitieren.
Gute Entwickler kümmern sich um Barrierefreiheit, und das beinhaltet sowohl Semantik als auch Gültigkeit.
Benutzer mit Behinderungen sollten zuerst kommen!
Eine weitere erwähnenswerte Lösung
http://responsejs.com/
Schade, dass Sie Riloadr in Ihrer Analyse nicht erwähnt haben: https://github.com/tubalmartin/riloadr
Bei einem aktuellen Projekt haben wir mit HiSRC für responsive Bilder begonnen, aber später empfahl uns ein Freund, Riloadr auszuprobieren. Nach einer langen Testphase haben wir wegen seiner Flexibilität zu Riloadr gewechselt.
Es ist das beste Werkzeug, das wir bisher gefunden haben.
„srcset“ wurde hier ausgelassen, was die bisher smarteste „Lösung“ zu sein scheint.
Geschäftsregeln / Anforderungen, Infrastruktur-Updates / -Änderungen werden die Implementierung von „picture“ lahmlegen, und die Geschäftskosten in einer inhaltsintensiven Umgebung mit diesem neuen Tag werden viele Unternehmen daran hindern, diese Auszeichnung weiterzuverfolgen – und mit inhaltsintensiv meine ich *nicht* Blogs, sondern eher FoodNetwork oder HGTV – inhaltsintensiv.
Letztendlich muss jede angenommene Lösung Browser- und Serverunterstützung bieten, egal ob umfangreich oder leicht. Markup-Änderungen/-Updates sind nur ein Teil des Puzzles und sollten *nicht* ausschließlich von Front-End-Entwicklern gefördert werden. FE-Entwickler können den besten Weg nach vorne in Bezug auf Markup vorschlagen, aber die Schwerstarbeit muss vom Front-End entfernt werden.
Toller Artikel! Ein Abschnitt über Performance fehlte mir. Was, wenn mir Performance am wichtigsten ist und ich mich nicht um Semantik oder JavaScript kümmere. Welche Lösung sollte ich verwenden?
Wahrscheinlich etwas Lokales (kein Drittanbieter), das keine Duplikate herunterlädt, kein jQuery oder irgendeine Bibliothek verwendet, sofort auslöst (nicht auf onload wartet), ... irgendwelche Empfehlungen?
Riloadr wird Sie wahrscheinlich zum Lächeln bringen!
Betreff: Bildinhalt – es gibt mehrere Bibliotheken, die sich mit „Bild-Prägnanz“ befassen und einem Computer helfen können zu entscheiden, wo die interessanten Punkte in einem Bild liegen, und entsprechend zuzuschneiden.
Ich dachte, ich erwähne diesen Tweet, der sich auf die Bemühungen des WHATWG bezieht, Markup-Standards zu schaffen, die (eines Tages) all unsere Probleme mit responsiven Bildern lösen würden
„Dringend! RT @wilto Wenn Ihnen responsive Bilder am Herzen liegen, brauchen wir Ihren Beitrag – und das WHATWG muss Ihre Stimme hören. cog.gd/3tt“
*dessen
Toller Artikel, hat mir definitiv viel zum Nachdenken gegeben.
Ich ziehe es vor, spezielles Markup zu vermeiden, da es meiner Erfahrung nach die Browser nur verwirrt und ältere Browser normalerweise versagen. Ja, IE 8 und älter, ich spreche von Ihnen...
Übrigens ist das Design dieses Blogs sehr schön
Eine noch nicht erwähnte Lösung ist Molt. Wie HiSRC verwendet es Datenattribute, um die tatsächlichen Quellen zu definieren, aber ich mag seine minimale Syntax. Z. B.
Toller Artikel, Chris. Ich verwalte den Aufbau einer neuen Social-Web-App und baue gleichzeitig ein neues responsives Framework für mein Unternehmen für zukünftige Projekte auf. Etwas, auf das wir uns sehr stark konzentrieren, ist die Leistung in Bezug auf Geschwindigkeit und Benutzererfahrung. Responsive/adaptive Bilder sind derzeit ein großer Streitpunkt, daher sind Ihre Tabellenkalkulation und Ihr Artikel für mich eine großartige Zeit! Ich bin ein großer Fan Ihrer Video-Screencasts und fände es wirklich cool, Ihre Lieblingsbeispiele in Echtzeit zu sehen.
Nochmal, toller Artikel!
Obwohl für Bilder völlig nutzlos, verwende ich SVG für Icons und Logos. Für ältere Browser tausche ich schnell PNGs ein, es gibt einen Leistungseinbruch, aber normalerweise nur auf Desktop-Umgebungen.
Aufgrund seiner offensichtlichen Benutzerfreundlichkeit überrascht es mich, dass nicht mehr Leute SVG für ihre Icons usw. verwenden.
Toller Artikel, Chris. Danke
Tolle Infos! Mit der steigenden Nachfrage und dem Wachstum von Tablet- und Mobilgeräten gab es eine Explosion von Anforderungen an responsive Websites – je mehr Werkzeuge, desto besser!
Danke für den tollen Überblick, Chris.
Das WHATWG scheint seinen eigenen Vorschlag in Form eines
imgset-Attributs veröffentlicht zu haben.Die meisten Entwickler, einschließlich meiner selbst, sind der festen Überzeugung, dass dies keine Verbesserung gegenüber z. B. einem neuen
picture-Element ist.Außerdem gibt es eine interessante Diskussion in der W3C Responsive Images Community Group über einen anderen Ansatz.
Grundsätzlich geht es darum, ein (paar)
meta-Elemente mit Media Queries hinzuzufügen, um eine „Variable“ zu deklarieren, die im HTML (und CSS/JS?) verwendet wird.Z.B.
Dies würde dann (unter Verwendung eines URI-Templates) Folgendes ermöglichen:
Und potenziell in CSS:
@media (case: breakpoint1) { ... }Wie auch immer, ich denke, es ist ein interessanter Ansatz, der ein paar Probleme löst. Schauen Sie sich den Artikel von @MattWilcox an und teilen Sie Ihre Gedanken.
Toller Beitrag, Bro. Vielleicht geht es nicht um ein Thema, aber für das Umschreiben von Bildtiteln, die SEO betreffen, gibt es in WordPress einige Plugins, die ich benutze, wie z. B. „SEO Friendly Images“. Dieser Artikel ist ausreichend und behandelt viele Themen. Ich warte auf deinen nächsten Beitrag ;-)
Chris, das war meine Idee. Es macht das Ersetzen von img-Tags zum Kinderspiel, da man einfach eine Suche und Ersetzung durchführen kann, entweder im Texteditor oder per SQL – ohne die Quelle zu beeinträchtigen. Es ist wahrscheinlich Unsinn, aber es war nur eine Idee, die ich hatte, um die Picture-Tag-Idee zu verfeinern. Ich würde mich über Ihr Feedback freuen.
http://michaelgunner.co.uk/proposed-responsive-images-syntax/
Meiner Meinung nach ist Matt Wilcox's Adaptive Images meine Empfehlung, wenn Sie PHP verwenden.
– Kein manuelles Erstellen mehrerer Versionen Ihres Bildes erforderlich,
– Kann eigenständig funktionieren, oft ohne Änderungen am Frontend-Markup oder serverseitig
– Kann auch ohne Javascript funktionieren
Toller Beitrag! Es ist am besten, jetzt damit anzufangen, da Retina-Displays bleiben werden. Ich habe Hoffnung, dass sich CSS zusammen mit der Technologie entwickeln wird, um das Design responsiver Websites zu erleichtern.
Die Fortsetzung von CSS3 ist der beste Weg, um Responsivität zu erreichen. Und auch die HTML-Wege funktionieren gut...
Ich liebe das picture-Tag – das kannte ich vorher nicht.
Ich weiß nicht, wie praktikabel es ist, und ob viele Entwickler/Designer bereit sind, mehrere Kopien für jedes Bild zu erstellen, um es zu servieren. Wenn es im Handumdrehen vom CMS erledigt wird, ist es eine ideale Lösung.
Wie schneidet rwdImages im Vergleich zu Adaptive Images ab?
Toller Beitrag. Die Bereitstellung besserer Bilder für so viele verschiedene Arten und fähige Geräte ist heutzutage wirklich hart.
Aber ich hätte wirklich gerne eine Lösung dafür wie CSS Media Query, wie David Hund sagte.
Auf die Frage „Kann ich auf die Zukunft warten?“ – Ich überzeuge mich selbst mit der Antwort „NEIN“!
Denn wir haben bereits mit der Arbeit begonnen und die Nutzer erleben bereits gerätefreundliche Browsererlebnisse mit Responsive Web. Also sollten wir mit dem anfangen, was wir jetzt haben, und uns schrittweise verbessern, bevor wir uns auf eine dedizierte Lösung festlegen.
Ich benutze Foresight.js und es ist ziemlich gut.
Mit der steigenden Nachfrage nach responsiven Websites sind mehr Tipps besser. Toller Beitrag, ich habe heute etwas Neues gelernt. Ich freue mich auf den nächsten Beitrag.
Hallo,
Wir verwenden responsive Bilder bei globo.com.
Wir haben vier verschiedene Versionen für jedes Bild
a) Eine niedrige Qualität (4-5x kleiner als das Original), die im Seitenmarkup serviert wird.
b) Ein vollwertiges „Desktop“-Bild
c) Ein vollwertiges „Tablet“-Bild (intelligent mit Gesichtserkennung zugeschnitten)
d) Ein vollwertiges „Smartphone“-Bild (intelligent mit Gesichtserkennung zugeschnitten)
Wir legen jede URL (außer der niedrigen Qualität) im Markup als data-x-url ab.
Der von uns verwendete Prozess besteht darin, dass wir das Scrollen der Seite überwachen und das Bild mit niedriger Qualität durch das Bild mit hoher Qualität für das jeweilige Gerät ersetzen, nur wenn sich der Nutzer dem Bild „nähert“.
Es hat für uns recht gut funktioniert und wir sind sehr zufrieden mit den Ergebnissen. Unsere Website bewältigt fast 2 Milliarden Seitenaufrufe pro Monat mit 30-40 responsiven Bildern zu jeder Zeit.
Das Werkzeug, das wir zur Handhabung der Stichprobenentnahme und des Zuschneidens von Bildern verwenden, wurde von uns selbst entwickelt und als Open Source veröffentlicht (https://github.com/globocom/thumbor/wiki).
Viele Grüße,
Bernardo Heynemann
Tech Lead @ globo.com
Sie könnten möglicherweise eine Kombination aus Media Queries verwenden, die Breite anpassen und dann mit `clip` einen bestimmten Bereich für ein `img` hervorheben. Dies ist jedoch möglicherweise mehr Ärger als Nutzen, da `clip` nur funktioniert, wenn Sie absolut positionieren und Sie die oberen, linken, rechten und unteren Offsets berechnen müssen.
Nur ein Gedanke!
Hier ist ein jQuery-Plugin, das ein vollständiges HTML-Fragment per Ajax in die Seite lädt, basierend auf der aktuellen Fensterbreite (und Pixeldichte). Es kann verwendet werden, um den Server anzuweisen, entsprechend große Bild-src-URLs usw. zu liefern. Es ist ein Fork von Githubs Pjax-Loader. Es basiert nicht auf dem User Agent oder Cookies – nur auf der Fensterbreite.
http://stephanfowler.github.com/responsive-content/
Korrektur zu dieser URL
http://responsivecontent.net/
Ich verwende derzeit sehr niedrig aufgelöste Bilder im Markup und wechsle sie dann mit Javascript gegen ein Bild mit voller Auflösung aus, nachdem die Seite vollständig geladen ist. Das beschleunigt das Laden der Seite und liefert letztendlich das hochwertigste Bild.
Dies ist ein großartiger Artikel, der hervorhebt, warum es schwierig ist, eine Lösung für responsive Bilder zu entwickeln, und warum es vielleicht nie „eine für alle“ geben wird. Ich denke/hoffe, dass eine Einigung zwischen Standards und Browserentwicklern die meisten Anwendungsfälle lösen kann.
Ich wollte auch auf eine Ungenauigkeit hinweisen. Scott Jehl's picturefill-Lösung benötigt *kein* ``-Element. Sie verwendet ``, ist also tatsächlich standardkonform. Natürlich haben Sie Recht, dass JavaScript erforderlich ist, wenn auch mit einem HTML-Fallback, der angezeigt wird, wenn kein JS verfügbar ist.
Sehr schöner Artikel, ein weiterer interessanter Artikel, den ich euch gerne lesen lassen würde, ist http://mobile.smashingmagazine.com/2013/07/08/choosing-a-responsive-image-solution/ Sie können ein klareres Bild von einigen beliebten responsiven Lösungen bekommen.
Meine Frage ist: Ich habe vorher gehört, dass Hintergrundbilder in CSS Media Queries die Leistung reduzieren, weil alle Bilder in verschiedenen Größen vom Server heruntergeladen werden und einige unnötige Anfragen gesendet werden. Stimmt das?
Pixtulate ist ein Drittanbieter-Service für responsive Bilder, der sowohl skalieren als auch zuschneiden kann, einschließlich der Verwendung von Brennpunkten für Art-Direction-Zwecke. Er ermöglicht es Ihnen, responsive Bilder zu liefern, Thumbnails nach Bedarf zu erstellen und Heldenbilder intelligent zuzuschneiden.
Diese Liste ist großartig, aber sie erwähnt SVG clowncar nicht. In meinen Tests ist SVG clowncar mit mehr Vorabarbeit verbunden, um Ihre Breakpoints zu entwickeln, aber es hat keine der Nebenwirkungen von JavaScript oder experimentellen Markup-basierten Lösungen.
Ich verwende es seit 5 Monaten auf einer Produktionswebsite und bin nur auf zwei Probleme gestoßen
* Benutzer können nicht mit der rechten Maustaste klicken und die Bild-src anzeigen
* Sie müssen ein Link-Element mit korrekter schema.org-Markup für Suchmaschinen hinzufügen
Eine weitere Technik, die nach der Veröffentlichung dieses Artikels aufkam, ist Slimmage. Es vermeidet absichtlich Art Direction – aber wenn Sie das nicht benötigen, bietet es alles andere. Geschwindigkeit, CSS-Media-Query-Unterstützung, keine doppelten Netzwerkanfragen und vollständige Browserkompatibilität.
Es erfordert eine serverseitige Komponente (am häufigsten wird es mit ImageResizer verwendet), kann aber mit jedem RIAPI-kompatiblen Backend funktionieren.
Ich wollte etwas Einfaches und auf den Punkt gebrachtes, also hier ist mein Ansatz für das Problem mit JavaScript.
https://github.com/smasala/responsive-images-js
Picturefill 2.0 ist da und ich denke, ihre Lösung mit dem PICTURE-Element und mehreren SRC-Attributen ist bisher die sauberste.