Próbuję utworzyć wiadomość e-mail w formacie HTML, która będzie poprawnie wyświetlana we wszystkich powszechnie używanych klientach poczty e-mail. Zawijam całą wiadomość e-mail w tabeli i chciałbym, aby miała szerokość do 98% dostępnej szerokości, ale nie większą niż 800 pikseli. Lubię to:
<table style="width:98%; max-width:800px;">
Ale nie robię tego w ten sposób, ponieważ zgodnie z tym Outlook 2007 nie obsługuje właściwości szerokości CSS.
Zamiast tego robię to:
<table width="98%">
Czy istnieje sposób na ustawienie maksymalnej szerokości bez polegania na CSS?
html
email
html-email
css
Tim Goodman
źródło
źródło
Odpowiedzi:
Tak, istnieje sposób na emulację
max-width
przy użyciu tabeli, co zapewnia zarówno responsywny, jak i przyjazny dla programu Outlook układ. Co więcej, rozwiązanie to nie wymaga warunkowych komentarzy.Załóżmy, że potrzebujesz odpowiednika wyśrodkowanego
div
zmax-width
z350px
. Tworzysz tabelę, ustawiasz szerokość na100%
. Tabela zawiera trzy komórki w rzędzie. Ustaw szerokość środkaTD
na350
(używając HTMLwidth
atrybutu , a nie CSS) i gotowe.Jeśli chcesz, aby zawartość była wyrównana do lewej, a nie wyśrodkowana, po prostu pomiń pierwszą pustą komórkę.
Przykład:
W jsfiddle daję obramowanie tabeli, abyś mógł zobaczyć, co się dzieje, ale oczywiście nie chciałbyś takiego w prawdziwym życiu:
http://jsfiddle.net/YcwM7/
źródło
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/ ...Istnieje sztuczka, którą można zrobić w programie Outlook 2007, używając warunkowych komentarzy HTML.
Poniższy kod upewni się, że tabela Outlooka ma szerokość 800 pikseli, a nie maksymalną, ale działa lepiej niż pozostawienie tabeli w całym oknie.
źródło
Krótka odpowiedź: nie.
Długa odpowiedź:
Stałe formaty działają lepiej w przypadku wiadomości e-mail w formacie HTML. Z mojego doświadczenia wynika, że najlepiej udawać, że jest rok 1999, jeśli chodzi o e-maile HTML. Podaj wyraźne informacje i używaj atrybutów HTML (width = "650"), jeśli to możliwe, w definicjach tabel, a nie CSS (style = "width: 650px"). Używaj stałych szerokości, bez wartości procentowych. Szerokość stołu o szerokości 650 pikseli to bezpieczny zakład. Użyj wbudowanego CSS, aby ustawić właściwości tekstu.
Nie chodzi o to, co działa w „e-mailach HTML”, ale raczej o mnogość klientów poczty e-mail i ich ograniczoną (a czasami celowo tak w przypadku Gmaila, Hotmaila itp.) Możliwość renderowania HTML.
źródło
Trochę za późno na imprezę, ale to załatwi sprawę. Zostawiłem przykład na 600, ponieważ większość ludzi będzie tego używać:
Podobnie jak w przykładzie Shaya, z tym wyjątkiem, że obejmuje to również max-width do pracy z resztą klientów, którzy mają wsparcie, a także drugą metodę zapobiegania rozszerzaniu (zapytanie o media), które jest potrzebne w Outlook'11.
W głowie:
W ciele:
Oto kolejny przykład tego w użyciu: Responsywne e-maile z potwierdzeniem zamówienia na urządzenia mobilne?
źródło
To rozwiązanie, które mi się sprawdziło
https://gist.github.com/elidickinson/5525752#gistcomment-1649300 , dzięki @ philipp-klinz
źródło
max-width
. To wszystko zastąpi<div style="max-width: ...px">...</div>
. W przypadku wiadomości e-mail, nad którą pracowałem, gdy znalazłem tę istotę, było to jedyne rozwiązanie, które sprawiło, że wszystko wyglądało dobrze w programach Outlook 2010, 2013 i 2016.0px
padding
S imargin
S, jak również0
cellpadding
icellspacing
. Możliwe, że określenieline-height
zadziałałoby jako substytutfont-size
wypełnienia czasów, któreheight
nie są przestrzegane (chciałbym przetestować to na wszystkichtr
s, a następnie na wszystkich,td
aby zobaczyć dokładnie, gdzie jest to potrzebne). @EdL, jeśli jesteś w stanie uzyskać lżejsze rozwiązanie działające, a także to, które byłoby świetne - opublikuj to tutaj i w tym powiązanym tekście