เครื่องมือใดในการสร้างสไตล์ CSS แบบอินไลน์โดยอัตโนมัติเพื่อสร้างโค้ด HTML ของอีเมล [ปิด]


122

เมื่อคุณดูที่http://www.campaignmonitor.com/css/คุณได้เรียนรู้ว่าคุณจำเป็นต้องฝังสไตล์อินไลน์ใน HTML ของคุณเพื่อให้สามารถอ่านอีเมลของคุณในโปรแกรมรับส่งเมลใด ๆ

คุณรู้หรือไม่ว่าเครื่องมือหรือสคริปต์ใด ๆ ในการแปลงไฟล์ HTML โดยอัตโนมัติโดยประกาศเป็นไฟล์ HTML ที่มีแอตทริบิวต์สไตล์ CCS แบบอินไลน์เท่านั้น

แก้ไข : โซลูชัน Javascript ใด ๆ (เช่น: http://www.robertnyman.com/2006/04/24/get-the-rendered-style-of-an-element/ )? ด้วย jQuery?


3
ฉันเพิ่งถามคำถามที่คล้ายกันในคำแนะนำซอฟต์แวร์เพื่อติดตามคำถามนี้: softwarerecs.stackexchange.com/questions/9983/…
Grzegorz Oledzki

ฉันต้องแก้ปัญหาตรงนี้ให้กับแผนกที่ทำงาน คำถามนี้ระบุขั้นตอนที่จำเป็นในการแก้ปัญหา
Gopherkhan

คำตอบ:


80

ตรวจสอบตัวแปลงออนไลน์premailer.dialect.caหรือสคริปต์ Pythonนี้เพื่อทำ


10
ดูเหมือนว่า Premailer จะย้ายไปยัง URL ใหม่: premailer.dialect.ca
Matt Huggins

2
Mail chimp
dhornbein

1
premailer.dialect.ca นั้นยอดเยี่ยม แต่มันทำให้เกิดความสับสนในหลาย ๆ หน้า มันมากกว่าครึ่งในการทดสอบของฉัน ตัวอย่างเช่นลองใช้หน้านี้
Nick Woodhams

เรียกใช้เซิร์ฟเวอร์พรีเมล์ของคุณเอง ... github.com/TrackIF/premailer-serverทำงานง่ายบน ec2: docs.aws.amazon.com/elasticbeanstalk/latest/dg/…
Adam Lane

ไม่มีใครลบแท็ก STYLE ซึ่งเป็นปัญหาหลักที่คุณจะจัดการ
Coldstar

33

นี่คือรายการของเครื่องมือฝังในเว็บที่พร้อมใช้งานซึ่งมีการกล่าวถึงก่อนหน้านี้ หากมีสิ่งใดที่ฉันพลาดไปอย่าลังเลที่จะแก้ไขและเพิ่มเข้าไป ฉันไม่สามารถสัญญาว่าแต่ละงานจะทำงานตามที่โฆษณาดังนั้นโปรดแสดงความคิดเห็น แต่อย่ายิงผู้ส่งสาร ...

และนี่คือสิ่งที่ทำงานในลักษณะย้อนกลับ (ยกเลิกการใส่ css ของคุณ)


3
MailerMailer เป็นเครื่องเดียวที่ใช้ได้ผลสำหรับฉันในขณะที่ยังคงการจัดรูปแบบไว้เหมือนเดิม
Jeshurun

20

หากคุณต้องการที่จะมีวิธีการแก้ปัญหา PHP, คุณสามารถลองCssToInlineStyles


2
สคริปต์ php นั้นเขียนได้ดี มันไม่ได้จัดการแฟล็ก! important แต่ก็เป็นสคริปต์ที่ดีไม่น้อยไปกว่ากัน
Perry Tew


8

ฉันเขียนไลบรารี Node.js ชื่อStylinerที่แทรก CSS ใน Javascript ฝั่งเซิร์ฟเวอร์

รองรับ LESS สไตล์ชีทด้วย (และรองรับปลั๊กอินสำหรับรูปแบบอื่น ๆ )


7

คุณอาจต้องการที่จะดูที่PostageApp

หนึ่งในคุณสมบัติที่แข็งแกร่งจริงๆคือมีระบบเทมเพลตที่แข็งแกร่งมากซึ่งสามารถแทรก HTML และ CSS โดยอัตโนมัติโดยไม่มีปัญหาใด ๆ

(การเปิดเผยข้อมูลทั้งหมด:ฉันเป็นผู้จัดการผลิตภัณฑ์ของ PostageApp)


ดังนั้นคุณกำลังทำ CSS inlining ที่ส่วนท้ายของห่วงโซ่การประมวลผล (ก่อนที่จะส่งอีเมลถึงใครบางคน)?
zazi

6

นี้อาจจะเป็นเพียงเล็กน้อยสายเกินไป แต่ถ้าคุณต้องการที่จะทำให้ HTML ของคุณที่ดีที่สุดสำหรับการตลาดอีเมล (โดยอินไลน์ CSS ของคุณและใช้พวงของเครื่องมือเย็นอื่น ๆ ) ให้ใช้Premailer ฟรีและแน่นอนทำร่วมกับ CampaignMonitor เอง

หวังว่าจะช่วยได้


+1 สำหรับ Premailer มีทั้งรูปแบบเว็บและ API ซึ่งคุณสามารถใช้เพื่อรวมเข้ากับแพลตฟอร์มใดก็ได้ หากคุณกำลังใช้ Node.js มีเสื้อคลุมที่นี่
Jed Watson

6

ฉันเล่นเกมช้าไปหน่อย แต่หวังว่านี่จะช่วยใครบางคนได้

ฉันพบวิธี jQuery / javascript เล็ก ๆ น้อย ๆ ที่สามารถฝังลงในหน้าได้ - http://devintorr.es/blog/2010/05/26/turn-css-rules-into-inline-style-attributes-using-jquery /

ฉันได้แก้ไขเล็กน้อยเพื่อรองรับ IE และรองรับเพจที่แนบไฟล์ CSS หลายไฟล์โดยใช้สไตล์ตามลำดับที่ถูกต้อง

$(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();
        });

จากนั้นสามารถคัดลอก / วางหน้าลงในเนื้อหาอีเมลได้


ทำไมคุณถึงลบสคริปต์? และการดำเนินการลบเหล่านั้นฉันคิดว่าควรไปนอกลูป
jcubic

@jcubic คุณพูดถูกเรื่องตำแหน่งของการดำเนินการลบฉันจะแก้ไข การลบสคริปต์อยู่ในโค้ดเดิมของฉันฉันต้องการ HTML ที่สะอาดขึ้นโดยมีเฉพาะสิ่งที่จำเป็นจริงๆในการแสดงหน้า
John C

ขอบคุณมากสำหรับสคริปต์ที่กระชับนี้ฉันมองหามาหลายชั่วโมงแล้วและนี่เป็นวิธีแก้ปัญหาที่สะอาดที่สุดที่ฉันพบ
kerzek

1
อยู่ในเรือลำเดียวกับ @kerzek. สิ่งนี้ได้ผลในระดับหนึ่ง แต่บางสไตล์ก็ยุ่งเหยิง อย่างไรก็ตามรหัสเวอร์ชันนี้ใช้งานได้ดีเยี่ยม (ทดสอบแล้วและทุกอย่าง): devintorr.es/blog/2010/05/26/…
radu.luchian

5

การแทรก CSS ของคุณเพียงอย่างเดียวไม่เพียงพอ ไม่มีมาตรฐานที่สังเกตได้ว่าอีเมล HTML จะแสดงอย่างไรในโปรแกรมรับส่งเมลใด ๆ ที่ใช้ พวกเขาล้วนทำแตกต่างกันไปและยิ่งคุณออกแบบอีเมลของคุณมากเท่าไหร่ก็ยิ่งมีโอกาสที่อีเมลจะทำลายลูกค้าได้มาก ผู้เชี่ยวชาญหลายคนในพื้นที่นี้ใช้เพียงแค่รูปภาพและตารางและอาจใช้สีพื้นหลังบ้าง แต่ไม่มีอะไรอื่น รวมลิงก์ไปยังเว็บไซต์ที่มีสำเนาอีเมลที่ใช้งานได้และระบุรูปแบบข้อความธรรมดาเสมอ




โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.