Nehmen wir an, Sie haben eine HTML-E-Mail mit 3 Spalten entworfen. Aufgrund der eingeschränkten und seltsamen CSS-Unterstützung in E-Mail-Clients erfolgt das E-Mail-Design mit Tabellen. Dieses 3-Spalten-Design sieht auf größeren Bildschirmen gut aus, wird aber auf kleinen Bildschirmen unbeholfen gequetscht. Theoretisch würde eine Media Query uns hier retten, aber da wir nicht einmal auf Floats zählen können, können wir uns erst recht nicht auf diese verlassen. Es gibt jedoch noch einen Weg.
In diesem Artikel werde ich einige Ideen rund um responsive E-Mails ansprechen. Dies sind keine robusten, produktionsreifen Ideen, ich fand es einfach nur unterhaltsam, darüber nachzudenken. Inspiriert hat mich ein Vortrag von Fabio Carneiro. Fabio arbeitet bei MailChimp und kümmert sich um die ganze harte Arbeit des E-Mail-Layouts und teilte in diesem Vortrag einige der Ideen hinter responsiven E-Mails. Er hat auch einen Treehouse-Kurs über E-Mail.
Jason Rodriguez hat kürzlich auch ein wenig zu diesem Thema geschrieben.
Zeilen mit align=”left”
Hier sind einige Blöcke in einem Layout

Sie denken vielleicht: Jeder dieser Blöcke wird eine <td> sein. Aber nein, wenn das der Fall wäre, könnten Sie sie in der eingeschränkten CSS-Welt von E-Mails niemals zum Umbrechen bringen.
Tatsächlich ist jeder Block eine <table align="left">. Align ist ein alter, veralteter Attribut, aber es wird immer noch in allen E-Mail-Clients unterstützt. Es ist so ähnlich wie float, aber wir können float nicht verwenden. Ich stelle es mir eher so vor, als ob Sie die Tabelle wie ein inline-block Element verhalten lassen. Sie können ihre Breite kontrollieren, sie kann auf der gleichen Zeile wie andere Elemente stehen und sie kann trotzdem umbrechen.
Das wäre also so
<table class="main-wrapping-table">
<tr>
<td>
<table align="left" style="width: 33.33%">
</table>
<table align="left" style="width: 33.33%">
</table>
<table align="left" style="width: 33.33%">
</table>
</td>
</tr>
</table>
Es gäbe auch eine Menge anderer Inline-CSS, die Zentrierung und so weiter erledigen, aber dies ist das Layout-Konzept.
Wenn wir diese Idee auf andere Zeilen mit unterschiedlicher Anzahl von Blöcken ausdehnen, erhalten wir dies

Keine schlechte Basis, wenn man nichts verwendet, was kein E-Mail-Client kann.
Umbrechbare Zeilen mit min-width
Einige E-Mail-Clients unterstützen min-width. Wenn wir dies also auf die Blöcke anwenden, die es benötigen, können wir diese Zeilen an einer sinnvollen Stelle umbrechen lassen.
Sie könnten das CSS direkt auf den Tabellenblock anwenden, so wie
<table align="left" style="width: 33.33% min-width: 200px;" class="chunk">
<table>

Ein bisschen besser. Jetzt bricht jeder Block dort, wo er muss, und wird nie zu gequetscht.
Platz ausfüllen mit @media query
Einige E-Mail-Clients unterstützen @media Queries. Wenn dies der Fall ist, zielen wir auf diese Blöcke ab und stellen sicher, dass sie den Platz besser ausfüllen, wenn diese Umbrüche auftreten.
/* Figure out where the breaks happen and use that in the media query */
@media (max-width: 400px) {
.chunk {
width: 100% !important;
}
}

Ein bisschen besser. Sie könnten das besser machen als ich, indem Sie sicherstellen, dass alle Umbrüche genau so erfolgen, wie Sie es planen.
Nicht zu breit mit max-width
Genauso wie zu gequetscht schlecht ist, kann zu breit auch schlecht sein. Warum nicht die Container-Tabelle in Browsern, die max-width unterstützen, begrenzen.
<table style="max-width: 600px; margin: 0 auto;" class="main-table">
</table>

Demo
Auch dies ist noch nicht ganz produktionsreif, es demonstriert nur die Ideen.
Siehe den Pen „Responsive“ E-Mail von Chris Coyier (@chriscoyier) auf CodePen.
Wenn Sie etwas Produktionsreifes wünschen, würde ich wahrscheinlich Email Blueprints von MailChimp verwenden. Es scheint, dass sie einen starren, festen Haltepunkt verwenden. So werden entweder eine „Desktop“- oder eine „Mobile“-Version angezeigt, je nachdem, wie viel Platz verfügbar ist. „Adaptives“ Design, sozusagen. Ich kann mir vorstellen, dass das im HTML-E-Mail-Design wünschenswert ist.
Gute Sachen. Danke!
Eine coole Idee, aber ich frage mich, ob E-Mail-Clients externe CSS/LESS/SCSS mit Media Queries lesen können, warum erstellen wir E-Mail-Vorlagen auf Tabellen, wenn sie auf Divs erstellt werden könnten und das das Leben einfacher machen würde.
Ich bin ziemlich sicher, dass die meisten Mailer es nicht erlauben würden (ich müsste eine Vielzahl testen, um sicher zu sein), aber es hat die gleiche informationsbezogene Schwachstelle wie das Laden externer Bilder. Jede E-Mail könnte auf http://example.com/${UNIQUE_TRACKING_TOKEN}.css verweisen, was dem Absender dann mitteilen würde, ob/wann eine E-Mail geöffnet/gelesen wurde. Ich gehe davon aus, dass der Benutzer dies explizit aktivieren müsste, selbst wenn es möglich wäre.
Man kann keine externen CSS laden oder zumindest nicht alle E-Mail-Clients unterstützen es. Soweit ich weiß, kann man sich auch bei Layouts mit Divs nicht verlassen, da E-Mail-Clients unterschiedliche CSS-Unterstützung haben.
chris hat einige Artikel und Richtlinien zu diesem Thema und einige Erklärungen, warum wir bei Tabellenlayouts bleiben müssen. Und zuletzt, eine Möglichkeit, CSS-Präprozessoren wie LESS, SASS zu verwenden, besteht darin, sie in reguläres CSS zu kompilieren. In den Head-Tag einfügen und mit einem Link in Inline-Style-CSS umwandeln.
Ich hoffe, das hilft
Entschuldigung, in meinem letzten Kommentar meinte ich mit „Link“ zur Konvertierung, dass man diesen Link verwenden soll: Premailer, der in Chris' Artikel using-css-in-html-emails-the-real-story zu finden ist.
Ich hoffe, das hilft!
Ich bin verwirrt mit Media Queries. Ich muss es einmal ausprobieren, um meinen Kopf freizubekommen.
E-Mails lesen keine externen Stile. Fügen Sie sie in den Kopf Ihres Dokuments ein und fügen Sie sie dann in das nette Tool von Mailchimp ein, um Ihre Stile inline zu übertragen. http://templates.mailchimp.com/resources/inline-css/
Ein Grund, warum sie keine externen Stile lesen, ist, dass man mit kreativem serverseitigem Code leicht aufzeichnen kann, wann E-Mails geöffnet werden. Sie hätten IP-Adressen und unter der Annahme von Query-String-Spielereien könnten Sie die Gewohnheiten von Leuten ziemlich klar verfolgen. Es gibt Datenschutzbedenken. Auch wenn Sie dies vielleicht nicht tun... es gibt viele E-Mail-Vermarkter, die es definitiv tun würden.
Nur Google darf Einzelpersonen verfolgen (und Sie fragten sich, warum Google Analytics für 99 % seiner Nutzerbasis kostenlos war) :-)
Aufschlussreicher Artikel wie immer, Chris!
Um auf Felix aufzubauen
Die meisten E-Mail-Clients entfernen jegliche
headund sogarbodyTags vollständig, daher sind Inline-Styles Ihre einzige sichere Wette. Glücklicherweise gibt es [Premailer] (http://premailer.dialect.ca „Premailer“), der Ihnen hilft, alle Ihre externen oder internen Stile inline zu übertragen, wenn Sie fertig sind.Wenn Sie weitere großartige Ressourcen für den Einstieg in die Gestaltung responsiver HTML-E-Mails suchen, habe ich vor ein paar Monaten einen ausführlichen Leitfaden geschrieben. Er enthält eine kostenlose Vorlage, die Sie verwenden können, um Ihre eigene E-Mail zu erstellen. Klicken Sie einfach auf den Link zu meiner Website oder klicken Sie hier für den Leitfaden.
Ich weiß, dass Sie kein großer Fan von Frameworks sind, Chris, aber da Sie Mailchimp empfehlen, warum nicht Ink von Zurb
Es ist responsiv und behauptet, Ihnen zu ermöglichen,
Ausgezeichneter Artikel…
Wirklich gut gefallen …. Dude…
Es ist ein guter Artikel, nicht nur im Sinne des relativen Layouts in E-Mail-Clients. Aber er sagt auch, was wir nicht verwenden dürfen und was E-Mail-Clients zulassen….
Danke Chris
Gut gemacht, Mann!
Ist es also besser, den Mailchimp-Mailclient dafür zu verwenden, Chris?
Ich benutze dieses http://www.emailonacid.com/blog/details/C13/emailology_a_free_responsive_email_template_using_media_queries_-_part_i
Hatte nie ein Problem.
Ich arbeite als Frontend-Entwickler, aber in einer Marketingabteilung, daher gehört die E-Mail-Entwicklung zu meinem Alltag. Traurigerweise…
Ich mag die E-Mail-Vorlagen von Zurb wirklich, http://zurb.com/playground/responsive-email-templates . Ich weiß, dass Sie sie schon einmal in Ihrer Show erwähnt haben. Ich denke, was die Leute an E-Mails stört, ist, wenn man anfängt, Bilder, Rahmen, CTAs und alle Teile zusammenzufügen und dabei versucht, ein Gleichgewicht zu halten, und das mit guten Prozentangaben, ohne verrückt zu werden.
Ich denke, das ist es, was Frameworks wie 960grid, Bootstrap, Zurb die Leute ersparen.
Chris, das sind einige großartige Ideen zum Nachdenken. Danke, dass Sie responsiven E-Mails etwas Aufmerksamkeit schenken!
Meine wichtigste Erkenntnis ist, wie man an responsive E-Mails herangeht, die keine Media Queries erfordern. Eines meiner aktuellen Probleme ist, was man für E-Mail-Clients tun soll, die keine Media Queries und die damit verbundene Flexibilität unterstützen. Derzeit: Gmail, Android Mail, Mailbox; beliebte E-Mail-Clients, die nicht ignoriert werden sollten.
Was Sie oben angesprochen haben, gibt uns etwas zum Nachdenken. Danke + Prost!
Media Queries in E-Mails werden meiner Erfahrung nach nur für iPhones verwendet, um das Haupt-Hero-Bild durch ein mobiltauglicheres (320px) Bild zu ersetzen. Soweit ich das beurteilen kann, sollte der Rest des obigen Codes Ihren E-Mails ermöglichen, auf die meisten anderen Geräte zu reagieren. Einfache prozentuale Breiten und alles!
Ich stimme der Verwendung der Mailchimp Blueprint E-Mail-Vorlagen zu. Sie sind fantastisch und haben mir in der Vergangenheit geholfen. Ich schätze die Jungs und Mädels, die daran arbeiten müssen, sehr!
Margin: 0 auto funktioniert nicht in einigen der beliebtesten Clients. Sie könnten align=”” oder sogar sogar verwenden.
Was Sie verwenden können/nicht können
http://www.campaignmonitor.com/css/
Ich denke, die MailChimp-Vorlagen umschließen sogar nur ein
<center>-Tag um alles.Tabellen zu fluten ist gefährlich. Ich arbeite im E-Mail-Design und insbesondere Outlook 2007, 2010 und 2013 verhalten sich bei schwebenden Tabellen eigenartig, fügen Ränder hinzu und je nach Inhalt stapeln sie die Tabellen wie eine Leiter und enthüllen weißen Raum.
Der sicherste Weg über alle E-Mail-Clients hinweg ist meiner Erfahrung nach immer noch, Spalten als TDs zu behandeln und min-width und display block, width 100% in der Media Query zu setzen.
Ich habe in den letzten Jahren ziemlich viele responsive E-Mails erstellt und es gibt ein paar Punkte, die ich empfehlen würde
Verwenden Sie NIEMALS horizontale Abstände. Möchten Sie irgendwo Platz? Verwenden Sie eine leere Tabellenzelle (MSO und andere haben seltsame Abstände).
Erstellen Sie das Desktop-Layout vollständig mit Inline-Styles. Alles für Mobilgeräte kann in Style-Tags im Head platziert werden (!important Flags werden benötigt).
Verwenden Sie Attributselektoren in CSS anstelle von Klassenselektoren. Ich bin noch nie auf Programme gestoßen, die damit Probleme haben, aber ich habe von einigen gehört, die es tun. (Also wäre es block[class=”blockClass”] { })
Campaign Monitor ist Ihr Freund.
Die GMail-App für Android ist Mist.
Interessante und sehr fundierte Ideen, außer dass Outlook gerne zusätzlichen Platz hinzufügt und die Drei-Tabellen-Ausrichtung viel zusätzlichen Code erfordert, damit sie angezeigt werden, geschweige denn umbrechen. Machen Sie weiter; senden Sie diesen Code an sich selbst an einen Outlook 2013-Client.
Sie müssen einige border-collapse-Einstellungen für die umgebende Tabelle hinzufügen und zur Sicherheit die Schriftgröße und Zeilenhöhe der umgebenden TD reduzieren, um sicherzustellen, dass alles bündig abschließt. Outlook hat die schlechte Angewohnheit, jeden Abstand als nicht-brechendes Leerzeichen zu betrachten.
Das ist gut zu wissen. Nur um es noch einmal zu sagen, wie ich es im Artikel gesagt habe: Dies ist kein produktionsreifer Code. Es geht nur darum, einige der cleveren Überlegungen vorzustellen, die hinter der Erstellung „responsiver“ E-Mails auf einer Grundlage stecken, die keine Media Queries oder andere fortgeschrittenere CSS erfordert.
@Robert, ausgezeichneter Leitfaden, danke!
Was E-Mail-Clients angeht, die keine responsiven E-Mails rendern können, hier ist, was ich tue.
Ich nehme einfach meine E-Mail-Liste, filtere Gmail und andere intelligente E-Mail-Clients heraus und sende nur die responsive Version an sie. Alle anderen erhalten eine reguläre Version. Kein Bedarf, die Erkennung in der E-Mail selbst zu versuchen, wenn Sie Ihre E-Mail-Liste einfach filtern können.
Ich glaube nicht, dass Outlook prozentuale Breiten unterstützt?
Nachdem ich viele Arbeitsstunden in den Gräben des E-Mail-Codes für „große Produktions“-E-Mails wie Yelp’s Weekly verbracht habe, kann ich ohne Zweifel sagen, dass der beste Gesamtansatz für E-Mails die Verwendung flexibler Breiten als Cross-Device-Ansatz ist. Verwenden Sie Media Queries für kleine Verbesserungen, wenn Sie sie haben (z. B. Randanpassungen & Bilddimensionen). Sagen Sie Designern, sie sollen mehrspaltige E-Mail-Designs vermeiden und die Nachricht so einfach wie möglich halten. Wenn mehrere Spalten notwendig sind, können Sie min-width auf dem Container verwenden, um mobile Clients zum Herauszoomen zu zwingen, was oft etwas besser aussieht und lesbarer ist als extrem schmale Spalten mit großem Text.
Seltsamerweise funktioniert max-width unter iOS nicht, daher musste ich stattdessen etwas wie das verwenden
@media only screen and (min-width: 606px) {.content {width: 605px !important;}
}
Ich habe das Ink (http://zurb.com/ink/) Framework ausprobiert. Ich hatte damit gute Erfahrungen für Newsletter in Mails. Es unterstützt viele Clients, Browser und mobile Geräte. Es gibt einige gute Regeln zu befolgen und es dauert nicht lange, bis man loslegen kann!
Danke fürs Teilen, wie üblich ein toller Artikel.