Alat apa yang secara otomatis menyebariskan gaya CSS untuk membuat kode HTML email? [Tutup]

122

Saat Anda melihat di http://www.campaignmonitor.com/css/ Anda mengetahui bahwa Anda perlu menyematkan gaya sebaris di HTML Anda, agar email Anda dapat dibaca di klien email mana pun.

Apakah Anda mengetahui alat atau skrip untuk mengonversi file HTML secara otomatis dengan dideklarasikan menjadi file HTML dengan hanya atribut gaya CCS sebaris?

Sunting : Ada solusi Javascript (yaitu: http://www.robertnyman.com/2006/04/24/get-the-rendered-style-of-an-element/ )? Dengan jQuery?

Pierre-Jean Coudert
sumber
3
Saya baru saja mengajukan pertanyaan serupa tentang Rekomendasi Perangkat Lunak sebagai tindak lanjut dari pertanyaan ini: softwarerecs.stackexchange.com/questions/9983/…
Grzegorz Oledzki
Saya hanya harus menyelesaikan hal yang tepat ini untuk sebuah departemen di tempat kerja. Pertanyaan ini memberikan langkah-langkah yang diperlukan untuk menyelesaikan masalah.
Gopherkhan

Jawaban:

80

Periksa konverter online premailer.dialect.ca atau skrip Python ini untuk melakukannya.

Saleh Al-Zaid
sumber
10
Sepertinya Premailer dipindahkan ke URL baru: premailer.dialect.ca
Matt Huggins
2
Mail chimp menawarkan gaya inliner yang hebat di sini: beaker.mailchimp.com/inline-css
dhornbein
1
premailer.dialect.ca memang bagus, tetapi tersedak di banyak halaman. Ini lebih dari setengah dalam pengujian saya. Misalnya, coba halaman ini.
Nick Woodhams
Jalankan server premailer Anda sendiri ... github.com/TrackIF/premailer-server Mudah dijalankan di ec2: docs.aws.amazon.com/elasticbeanstalk/latest/dg/…
Adam Lane
TIDAK ADA dari mereka yang benar-benar menghapus tag GAYA, yang merupakan masalah utama yang akan Anda tangani
Coldstar
33

Berikut adalah daftar alat bantu inlining siap pakai berbasis web, beberapa telah disebutkan sebelumnya. Jika ada yang terlewat, silakan edit dan tambahkan. Saya tidak bisa menjanjikan setiap karya seperti yang diiklankan, jadi berikan komentar, tetapi jangan tembak pembawa pesan ...

Dan ini salah satu yang bekerja secara terbalik (un-inlining css Anda)

John
sumber
3
MailerMailer adalah satu-satunya yang berfungsi untuk saya sambil menjaga pemformatan tetap utuh.
Jeshurun
20

Jika Anda ingin memiliki solusi PHP, Anda dapat mencoba CssToInlineStyles .

chiborg.dll
sumber
2
naskah php itu ditulis dengan baik. itu tidak menangani flag! important, tetapi itu adalah skrip yang bagus.
Perry Tew
8

Saya menulis perpustakaan Node.js yang disebut Styliner yang CSS di Javascript sisi server.

Ini mendukung lembar gaya KURANG juga (dan mendukung plugin untuk format lain)

SLaks
sumber
7

Anda mungkin ingin melihat PostageApp .

Salah satu fiturnya yang sangat kuat adalah ia memiliki sistem template yang sangat kuat yang dapat secara otomatis menyebariskan HTML dan CSS tanpa masalah apa pun.

( Pengungkapan Penuh: Saya Manajer Produk untuk PostageApp.)

JonLim
sumber
jadi Anda melakukan CSS sebaris di akhir rantai pemrosesan (tepat sebelum mengirim email ke seseorang)?
zazi
6

Ini mungkin sedikit terlambat, tetapi jika Anda ingin membuat HTML Anda sebaik mungkin untuk pemasaran email (dengan menyebariskan css Anda, dan menggunakan sekumpulan alat keren lainnya), gunakan Premailer . Gratis, dan tentu saja, dibuat dalam kemitraan dengan CampaignMonitor itu sendiri.

Semoga membantu.

André Armenni
sumber
1 untuk Premailer. Itu memiliki formulir web dan API yang dapat Anda gunakan untuk mengintegrasikannya ke platform apa pun. Jika Anda menggunakan node.js, ada pembungkusnya di sini .
Jed Watson
6

Saya agak terlambat ke permainan tetapi semoga ini akan membantu seseorang.

Saya menemukan metode jQuery / javascript kecil yang bagus ini yang dapat disematkan ke halaman - http://devintorr.es/blog/2010/05/26/turn-css-rules-into-inline-style-attributes-using-jquery /

Saya telah mengeditnya sedikit untuk mendukung IE dan juga untuk mendukung halaman dengan beberapa file CSS terlampir menerapkan gaya dalam urutan yang benar.

$(document).ready(function ($) {
            var rules;
            for(var i = document.styleSheets.length - 1; i >= 0; i--){
                if(document.styleSheets[i].cssRules)
                    rules = document.styleSheets[i].cssRules;
                else if(document.styleSheets[i].rules)
                    rules = document.styleSheets[i].rules;
                for (var idx = 0, len = rules.length; idx < len; idx++) {
                    if(rules[idx].selectorText.indexOf("hover") == -1) {
                        $(rules[idx].selectorText).each(function (i, elem) {
                            elem.style.cssText = rules[idx].style.cssText + elem.style.cssText;
                        });
                    }
                }
            }
            $('style').remove();
            $('script').remove();
            $('link').remove();
        });

Halaman tersebut kemudian dapat disalin / ditempel ke badan email.

John C
sumber
mengapa Anda menghapus skrip? Dan itu menghapus eksekusi yang saya pikir harus keluar dari for loop.
jcubic
@jcubic Anda benar: penempatan eksekusi hapus, saya akan mengedit. Penghapusan skrip ada di kode asli saya, saya ingin HTML yang lebih bersih hanya dengan apa yang benar-benar diperlukan untuk menampilkan halaman.
John C
Terima kasih banyak untuk skrip ringkas ini, saya telah mencari berjam-jam dan ini adalah solusi terbersih yang saya temukan.
kerzek
1
Berada di perahu yang sama dengan @kerzek. Ini berhasil sampai batas tertentu tetapi beberapa gaya menjadi kacau. Namun versi kode ini bekerja dengan sangat baik (teruji dan semuanya): devintorr.es/blog/2010/05/26/…
radu.luchian
5

Tidak cukup hanya sebariskan CSS Anda. Tidak ada standar yang diamati tentang bagaimana email HTML akan ditampilkan di klien email apa pun yang digunakan. Mereka semua melakukannya secara berbeda, dan semakin Anda mendesain email Anda, semakin besar kemungkinan email itu akan membobol lebih banyak klien. Banyak profesional di bidang ini hanya menggunakan gambar dan tabel dan mungkin beberapa warna latar belakang, tetapi tidak ada yang lain. Selalu sertakan tautan ke situs web yang memiliki salinan email yang berfungsi dan selalu berikan varian teks biasa.

Bjorn
sumber
1

Untuk programmer PHP: periksa konverter online ini atau skrip PHP ini untuk melakukannya.

Peter Krauss
sumber