iPhone mail: table doesn't stretch to 100% because of an anchor tag?

16,635

Solution 1

<body style="min-width: 100%">

fixes the problem.

Solution 2

Ok, I found a working solution:

Just set:

table {
    width: 99%; /* 99.99 % doesn't seem to work */
    margin: 0 auto;
}

To get rid of the very small minimal gap, I just set the background-color the same as my table.

Fixed for now!

Solution 3

Just posted this solution to a related issue: Link in 100% width table results in 90% width table

This MacRumors thread provides a solution to the issue: http://forums.macrumors.com/showthread.php?t=1158457

Try to put align="center" and style="text-align:center" onto the first table and then put style="text-align:left" onto the second one if necessary.

If you wrap your content in a parent table with center alignment, this oddly seems to eliminate the right margin on the iPhone mail reader.

Share:
16,635
Melros
Author by

Melros

Updated on July 29, 2022

Comments

  • Melros
    Melros almost 2 years

    I'm designing an html newsletter which runs so far very correct on every email client.

    On mobile devices it should stretch to 100% width, which it does so far.

    But:

    On iphone mail when the mail opens, for a second I see the hundred percent width until then a space on the right gets added. It's always the same spaced space.

    I tried reducing my code to the minimum to see what the reason could be. There I found out it could be links, it could be a border. Sometimes it works again and then again not.

    Is there some mystery about 100% width on iphone in html newsletters that I didn't yet know about?

    Code:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    
            <title>Newsletter</title>
    
            <style type="text/css">
    
    
                /* Client-specific Styles */
                #outlook a{padding:0;} /* Force Outlook to provide a "view in browser" button. */
                body{width:100% !important;} .ReadMsgBody{width:100%;} .ExternalClass{width:100%;} /* Force Hotmail to display emails at full width */
                body{-webkit-text-size-adjust:none;} /* Prevent Webkit platforms from changing default text sizes. */
    
                /* Reset Styles */
                body{margin:0; padding:0;}
                img{border:0; height:auto; line-height:100%; outline:none; text-decoration:none;}
                table td{border-collapse:collapse; margin: 0; padding: 0;}
                #backgroundTable{height:100% !important; margin:0; padding:0; width:100% !important;}
    
    
                body { 
                    background-color: #EEEDEC; 
                    font-family: Arial, sans-serif;
                    font-size: 15px;
                    line-height: 1.5em;
                    font-weight: 100;
                    text-align: left;
                    width: 100%;
                }
    
    
                p {
                    margin-bottom: 20px;
                }
    
                a {
                    color: #C5111A;
                    font-weight: bold;
                }
    
                table {
                    width: 100%;
                    text-align: left;
                }
    
                img { max-width: 100%; }
    
                table.outter {
                    width: 100%;
                    background-color: #fff;
                }
    
                table.center {
                    width: 100%;
                    background-color: #fff;
                }
    
                h2 {
                    font-family: Arial, sans-serif;
                    font-size: 15px;
                    font-weight: 100;
                    margin-bottom: 20px;
                    height: 30px;
                    line-height: 30px;
                    color: #fff;
                    padding-left: 10px;
                    background-color: #C5111A;
    
                    background: #C5111A;
                    background: -webkit-gradient(linear, left top, left bottom, from(#c4171d), to(#d6404c));
                    background: -webkit-linear-gradient(top, #c4171d, #d6404c);
                    background: -moz-linear-gradient(top, #c4171d, #d6404c);
                    background: -ms-linear-gradient(top, #c4171d, #d6404c);
                    background: -o-linear-gradient(top, #c4171d, #d6404c);
    
                    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#c4171d,endColorstr=#d6404c); 
                    zoom: 1;
    
                    -webkit-border-radius: 3px;
                    -moz-border-radius: 3px;
                    border-radius: 3px;
    
                }
    
    
    
            </style>
    
        </head>
    
        <body leftmargin="0" marginwidth="0" topmargin="0" marginheight="0" offset="0">
            <center>
    
                <table border="0" cellpadding="0" cellspacing="0" height="100%" width="100%" id="main">
    
                 <tr>
                   <td align="center" valign="top">
                    <!-- outter -->
                    <table border="0" cellpadding="0" cellspacing="0" width="100%" class="outter">
    
    
                    <tbody>
    
                        <!-- BEGINN -->
    
    
                        <!-- BOX -->
                        <tr>
                            <td align="center" valign="top">
                                <!-- center -->
                                <table border="0" cellpadding="0" cellspacing="0" width="100%" class="center">
                                    <tbody>
                                        <tr>
                                            <td valign="top" >
    
                                                <!-- box -->
                                                <table border="0" cellspacing="0" width="100%">
                                                    <tbody>
                                                        <tr>
                                                            <td valign="top">
    
                                                                <h2 class="h2">Heading</h2>
    
    
    
    
                                                               <p>This is a Paragraph</p>
                                                               <a href="http://www.google.de">This is a link</a>
    
                                                            </td>
    
    
                                                        </tr>
    
                                                    </tbody>
                                                </table>
                                                <!-- /box -->
    
                                            </td>
                                        </tr>   
                                    </tbody>
                                </table>
                                <!-- /center -->
                            </td>
                        </tr>
    
                        <!-- END -->
    
                    </tbody>
                </table>
    
    </td></tr>
             </table>
    
            </center>
        </body>
    </html>
    

    In this provided code 100% width will only work without the anchor.

  • Melros
    Melros about 12 years
    Thank you for you answer. I've tried this before but it didn't work eather. I am still stuck here.
  • Melros
    Melros almost 12 years
    Thank you for your answer and reactivate my interested in this. I totally ignored it but now came up with an easy fix. See my answer.
  • Melros
    Melros about 11 years
    Have to confirm this, too. I just had the same problem again and fixed it with your answer now. Perfect!