2009-04-26 10 views
116

Al echar un vistazo a http://www.campaignmonitor.com/css/, aprenderá que debe incrustar estilos en línea en su HTML, para que su correo sea leído en cualquier cliente de correo.¿Qué herramientas para alinear estilo CSS automáticamente para crear código HTML de correo electrónico?

¿Conoces alguna herramienta o script para convertir automáticamente un archivo HTML con un archivo declarado en un archivo HTML con solo atributos de estilo CCS en línea?

Editar: ¿Alguna solución de Javascript (es decir: http://www.robertnyman.com/2006/04/24/get-the-rendered-style-of-an-element/)? Con jQuery?

+3

acabo han preguntado una pregunta similar sobre las recomendaciones de software como seguimiento -para esto: http://softwarerecs.stackexchange.com/questions/9983/tool-to-automatically-inline-both-css-and-javascript-into-html –

+0

Solo tenía que resolver esto exactamente para un departamento en el trabajo. Esta pregunta proporcionó los pasos necesarios para resolver el problema. – Gopherkhan

Respuesta

77

Compruebe el convertidor en línea premailer.dialect.ca o este Python script para hacerlo.

+10

Parece que el Premailer se movió a una nueva URL: http://premailer.dialect.ca/ –

+2

Mail chimp ofrece un gran inliner de estilo aquí: [beaker.mailchimp.com/inline-css](http://beaker.mailchimp. com/inline-css) – dhornbein

+1

premailer.dialect.ca es genial, pero se atasca en muchas páginas. Es más de la mitad en mis pruebas. Por ejemplo, prueba esta página. –

6

No es suficiente simplemente con insertar su CSS. No hay estándares observados sobre cómo se mostrará un correo electrónico HTML en cualquier cliente de correo electrónico que se utilice. Todos lo hacen de manera diferente, y cuanto más diseñe su correo electrónico, mayor será la probabilidad de que se rompa en una mayor cantidad de clientes. Muchos profesionales en este espacio simplemente usan imágenes y tablas y tal vez algunos colores de fondo, pero nada más. Siempre incluya un enlace a un sitio web que tenga una copia de trabajo del correo electrónico y siempre proporcione una variante de texto sin formato.

8

Es posible que desee echar un vistazo a PostageApp.

Una de sus características realmente sólidas es que tiene un sistema de plantillas muy robusto que puede alinear automáticamente HTML y CSS sin ningún problema.

(Full Disclosure: soy el administrador de producto para PostageApp.)

+0

, por lo que está haciendo CSS en línea al final de la cadena de procesamiento (¿justo antes de enviar el correo electrónico a alguien)? – zazi

+0

@zazi: Casi al final, sí. – JonLim

20

Si le gustaría tener una solución PHP, puede intentar CssToInlineStyles.

+2

ese script php está bien escrito. no maneja la bandera! important, pero es un buen script, no obstante. –

5

Esto puede ser un poco tarde, pero si desea hacer que su HTML sea lo mejor posible para la comercialización del correo electrónico (mediante la delimitación de su CSS y utilizando otras herramientas geniales), use el Premailer. Es gratis, y por supuesto, se hizo en asociación con CampaignMonitor.

Espero que ayude.

+0

+1 para Premailer. Tiene tanto un formulario web como una API que puede usar para integrarlo en cualquier plataforma. Si está utilizando node.js, hay un contenedor [aquí] (https://github.com/JedWatson/node-premailer). –

6

Escribí una biblioteca de Node.js llamada Styliner que inserta CSS en el lado del servidor de Javascript.

Es compatible con hojas de estilo menos también (y soporta plugins para otros formatos)

4

Estoy un poco tarde al juego pero espero que esto ayude a alguien .

me encontré con este pequeño jQuery/javascript método que puede ser embebido en una página - http://devintorr.es/blog/2010/05/26/turn-css-rules-into-inline-style-attributes-using-jquery/

he editado un poco para apoyar el IE y también para apoyar una página con múltiples archivos CSS adjunta en la aplicación de estilos el orden correcto

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

La página se puede copiar/pegar en el cuerpo del correo electrónico.

+0

¿por qué eliminar script? Y aquellos eliminan la ejecución, creo que debería irse fuera de for loop. – jcubic

+0

@jcubic Tiene razón en cuanto a: la ubicación de la ejecución de eliminación, voy a editar. La eliminación de la secuencia de comandos estaba en mi código original, quería HTML más limpio con solo lo que era realmente necesario para mostrar la página. –

+0

Muchas gracias por este guión conciso, he estado buscando por horas y esta es la solución más limpia que he encontrado. – kerzek

33

Aquí hay una lista de herramientas de línea lista para usar listas para usar, una pareja se ha mencionado anteriormente. Si hay alguno que he perdido, siéntase libre de editar y agregarlos. No puedo prometer cada uno funciona como se anuncia, para dejar comentarios, pero no matar al mensajero ...

Y aquí es uno que funciona a la inversa de (des-inlining el CSS)

+3

MailerMailer fue el único que funcionó para mí manteniendo el formato intacto. – Jeshurun

Cuestiones relacionadas