Estou tentando criar um e-mail em HTML que será exibido corretamente em todos os clientes de e-mail amplamente usados. Estou empacotando todo o e-mail em uma tabela e gostaria que ele tivesse uma largura de até 98% da largura disponível, mas não superior a 800 pixels. Como isso:
<table style="width:98%; max-width:800px;">
Mas não estou fazendo assim, pois de acordo com este Outlook 2007 não suporta a propriedade de largura do CSS.
Em vez disso, estou fazendo isso:
<table width="98%">
Existe alguma maneira de também definir uma largura máxima sem depender de CSS?
html
email
html-email
css
Tim Goodman
fonte
fonte
Respostas:
Sim, existe uma maneira de emular
max-width
usando uma tabela, proporcionando um layout responsivo e amigável ao Outlook. Além do mais, esta solução não requer comentários condicionais.Suponha que você queira o equivalente a centralizado
div
commax-width
de350px
. Você cria uma tabela, define a largura para100%
. A tabela possui três células em uma linha. Defina a largura do centroTD
para350
(usando o HTMLwidth
atributo , não CSS) e pronto.Se você deseja que seu conteúdo seja alinhado à esquerda em vez de centralizado, apenas deixe de fora a primeira célula vazia.
Exemplo:
No jsfiddle, eu dou uma borda à mesa para que você possa ver o que está acontecendo, mas obviamente você não iria querer uma na vida real:
http://jsfiddle.net/YcwM7/
fonte
style="max-width: 100%; height: auto; width: auto; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box;"
<img src="file.jpg" "width="350" alt="" style="display:block;width:100%" />
litmus.com/community/discussions/…Há um truque que você pode fazer no Outlook 2007 usando comentários html condicionais.
O código a seguir garantirá que a tabela do Outlook tenha 800 px de largura, não a largura máxima, mas funciona melhor do que permitir que a tabela se estenda por toda a janela.
fonte
A resposta curta: não.
A longa resposta:
Os formatos fixos funcionam melhor para emails em HTML. Em minha experiência, é melhor fingir que é 1999 quando se trata de e-mails em HTML. Seja explícito e use atributos HTML (largura = "650") sempre que possível nas definições de sua tabela, não CSS (estilo = "largura: 650px"). Use larguras fixas, sem porcentagens. Uma mesa com largura de 650 pixels é uma aposta segura. Use CSS embutido para definir propriedades de texto.
Não é uma questão de o que funciona em "emails HTML", mas sim a abundância de clientes de email e sua capacidade limitada (e às vezes deliberadamente no caso do Gmail, Hotmail, etc.) de renderizar HTML.
fonte
Um pouco tarde para a festa, mas isso resolverá. Deixei o exemplo em 600, pois é isso que a maioria das pessoas usará:
Semelhante ao exemplo de Shay, exceto que também inclui largura máxima para trabalhar no resto dos clientes que têm suporte, bem como um segundo método para evitar a expansão (consulta de mídia) que é necessária para o Outlook '11.
Na cabeça:
No corpo:
Aqui está outro exemplo em uso: E -mails de confirmação de pedido responsivos para dispositivos móveis?
fonte
Esta é a solução que funcionou para mim
https://gist.github.com/elidickinson/5525752#gistcomment-1649300 , graças a @ philipp-klinz
fonte
max-width
. Essa coisa toda iria substituir<div style="max-width: ...px">...</div>
. Para o e-mail em que eu estava trabalhando quando descobri essa essência, essa foi a única solução que fez as coisas parecerem certas no Outlook 2010, 2013 e 2016.0px
padding
s emargin
s, bem como0
cellpadding
ecellspacing
. É possível especificarline-height
que funcionaria como um substituto parafont-size
preencher os temposheight
não respeitados (eu gostaria de testar em todos os setr
depois em todos ostd
s para ver exatamente onde é necessário). @EdL se você conseguir fazer uma solução mais leve funcionar tão bem como esta, seria incrível - poste aqui e no link principal