Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

HTML Email Fonts Not Scaling in Mail App on iPhone

I need to create an email template. My email template MUST work in GMail and the mail app on iPhone. I had the template working properly in the mail app on iPhone with Zurb Ink. However, Gmail doesn't support the style tag in HTML emails. For that reason, I removed that framework and started from scratch. Now, the email template works fine in GMail, but the text doesn't scale up in the mail app on the iPhone. The text is all scrunched together. Currently, my HTML looks like this:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" style="height:100%;" height="100%">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="width=device-width" />
    <title>Welcome.</title>
</head>

<body style="background-color:silver; color: #2D2D2D; font-family: 'Helvetica Neue Light', 'HelveticaNeue-Light', 'Helvetica Neue', Arial; font-weight: normal; padding:0; margin: 0; text-align: left; line-height: 1.3; width:100%; height:100%; min-width: 100%; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%; ">
  <table style="border:solid 0px #fff; width:100%;">
    <tr>
      <td align="center" valign="top" style="width: 100%;">
        <center>
          <table style="width:600px; border:solid 0px #fff; border-collapse: collapse;">
            <tr>
              <td align="right" style="text-align: right; vertical-align: middle;">
                <span style="color: #898989; font-size:12px;">Trouble viewing email? <a href="#" style="color: #6B6B6D; text-decoration:underline;">view it in your browser</a></span>
              </td>
            </tr>

            <tr>
              <td style="height:77px; vertical-align: middle; padding-left:35px; background-color:#fff; border-left: solid 1px #D6D6D6; border-right:solid 1px #D6D6D6;">
                <img alt="Welcome." src="http://dummyimage.com/126x36/d907d9/fff.png&text=Hello" height="36" width="126" />
                            </td>
                        </tr>

                        <tr>
                            <td>
                                <img alt="Welcome." width="600" height="250" src="http://dummyimage.com/600x250/d907d9/fff.png&text=Welcome+to+the+new" style="display:block;" />
                            </td>
                        </tr>

                        <tr>
                            <td style="padding:0px 32px 36px 32px; background-color:#fff; border-top:solid 0px #fff;">
                                <div style="color:#92cc0a; padding-top:29px; font-size:36px; font-weight:lighter;">Welcome.</div>
                                <div style="padding-top:15px; font-size:14px; color:#363636;">
                                    Thanks for downloading our app. Prepare to experience a new world of imagination. Check us out on <a style="text-decoration: none;" href="https://www.facebook.com/myApp" target="_blank">Facebook</a>, <a style="text-decoration: none;" href="https://twitter.com/myApp" target="_blank">Twitter</a>, and <a style="text-decoration: none;" href="https://plus.google.com/+myApp/posts" target="_blank">Google +</a> for the latest details. Oh, and tell your friends!
                                </div>

                                <br />
                                Thank You
                            </td>
                        </tr>
                    </table>
                </center>
            </td>
        </tr>
    </table>
</body>

Why isn't the text scaling properly on the mail app on the iPhone. I've included the viewport details. I've included the webkit-text-adjust stuff. Can someone please help me out?

Thank you so much!

like image 457
JQuery Mobile Avatar asked Mar 25 '14 12:03

JQuery Mobile


People also ask

Why is my email font so small on iPhone?

Select Mail Only and use the text size slider to make the display font bigger in the Mail app. If you're using an earlier iOS, go into Settings>Accessibility>Display & Text Size and select Larger Text. Adjust the text size using the slider.


2 Answers

You can't actually rely on styles getting inherited, which means you will have to apply every single style to every single element all the time... This means the font-size on the div won't actually have any effect on the text within it.

For a quick fix I suggest wrapping the text in a paragraph and applying the needed styles to it.

<div style="padding-top:15px; font-size:12px; color:#363636;">
  <p style="font-family: 'Helvetica Neue Light', 'HelveticaNeue-Light', 'Helvetica Neue', Arial; font-weight: normal; font-size: 26px; line-height: 36px;">Thanks for downloading our app. Prepare to experience a new world of imagination. Check us out on <a style="text-decoration: none;" href="https://www.facebook.com/myApp" target="_blank">Facebook</a>, <a style="text-decoration: none;" href="https://twitter.com/myApp" target="_blank">Twitter</a>, and <a style="text-decoration: none;" href="https://plus.google.com/+myApp/posts" target="_blank">Google +</a> for the latest details. Oh, and tell your friends!</p>
</div>

Generally I would advise writing the styles in a style tag and then using a service like http://inliner.cm when you're finished and ready to inline the styles for gmail support. That way you won't have to copy&paste the font-family and default styles everywhere yourself

Using the suggested method of styling your html email in a <style> tag in the head and then using an inliner, you can actually go back to using the ink framework too and still have it work in gmail.

like image 89
fabianfetik Avatar answered Oct 26 '22 09:10

fabianfetik


Add this to your <style> tag:

body{width:100% !important; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%; margin:0; padding:0;}

The width/padding/margin/ms-text is is obviously unrelated, but should also be there.

Also, iPhone uses webkit to render, so you should be able to override the styling manually by adding a class in the <style> tag. Gmail will ignore this of course.

like image 45
John Avatar answered Oct 26 '22 09:10

John