【问题标题】:CSS blocks is not working on Gmail App MobileCSS 块不适用于移动版 Gmail 应用程序
【发布时间】:2020-12-07 22:37:05
【问题描述】:

我在使用 Gmail 应用程序(移动)查看电子邮件时遇到了这个问题:

  • 除了 Gmail 应用程序之外,所有电子邮件客户端上的表格列都在移动设备上堆叠

我注意到样式在 google 上不起作用,但如果我使用内联的 CSS(例如 style="background-color:red")它可以工作。

我看到很多文章说在 gmail 上不起作用,但另一种说法是如果你把它放在标签内。

主布局:

@using Sitecore.Mvc.Analytics.Extensions

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <!--[if !mso]><!-->
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <!--<![endif]-->
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>
        <!-- Used for storing title of the email -->
        @Html.Sitecore().Field("Subject")
    </title>

    <!-- The VisitorIdentification control ensures that people viewing this page with a traditional web browser will be classified as humans not bots. This control is not required if people only view messages using Email clients -->
    @Html.Sitecore().VisitorIdentification()

    @if (Sitecore.Context.PageMode.IsExperienceEditorEditing)
    {
        <link href="~/Assets/5-Components.min.css" rel="stylesheet" />
    }
        <style type="text/css">
            body {
                margin: 0px !important;
                padding: 0px !important;
            }

            .wrapper > tbody > tr > td {
                box-sizing: border-box;
            }

            @@media only screen and (max-width:720px) {
                .wrapper {
                    width: 90% !important;
                    margin: auto;
                }

                .templateColumnContainer {
                    display: block !important;
                    /* padding: 0 !important; */
                    width: 100% !important;
                }

                .marginBtm {
                    margin-bottom: 0px;
                }

                .footerLeft {
                    border-right: 5px #c2c2c2 solid;
                    border-bottom: 0px #c2c2c2 solid !important;
                }

                .footerRight {
                    border-left: 5px #c2c2c2 solid;
                    border-top: 0px #c2c2c2 solid !important;
                }
            }
        </style>
</head>

<body style="min-height: 97vh; background-color:#c2c2c2; font-family: Arial, Helvetica, sans-serif; box-sizing: border-box" class="@((Sitecore.Context.PageMode.IsExperienceEditorEditing) ? "edit-mode" : string.Empty)">
    <div style="min-height: 97vh; margin:0; padding-top: 16px; background-color:#c2c2c2; font-family: Arial, Helvetica, sans-serif; box-sizing: border-box">
    

        <center>
            @Html.Sitecore().Placeholder("mail-body")
        </center>
    </div>
</body>
</html>

组件占位符:


@model XX.Project.EXM.Models.ColumnComponent

<table width="600" cellpadding="0" cellspacing="0" class="wrapper">
    <tbody>
        <tr>
            <td width="50%" class="templateColumnContainer marginBtm" style="background-color: @Model.BackgroundColor; border: 5px #c2c2c2 solid; Padding: @Model.getFormattedPaddingDistance(); color:@Model.TextColor;">
                @Html.Sitecore().DynamicPlaceholder("mail-left-double-column")
            </td>
            <td width="50%" class="templateColumnContainer" style="background-color: @Model.BackgroundColor; border: 5px #c2c2c2 solid; Padding: @Model.getFormattedPaddingDistance(); color:@Model.TextColor;">
                @Html.Sitecore().DynamicPlaceholder("mail-right-double-column")
            </td>
        </tr>
    </tbody>
</table>

【问题讨论】:

  • 电子邮件客户端各不相同,没有标准。这是费尔南多的狂野西部。移动设备上的 GMail 应用程序可能正在从您的 &lt;head&gt; 部分中删除 &lt;style&gt; 元素。对于电子邮件,使用内联样式总是更安全。
  • 如果您想尝试一个经过良好测试的电子邮件解决方案,请查看Cerberus。查看他们的文档,您会看到关于电子邮件 CSS 的各种提示。

标签: html css asp.net razor


【解决方案1】:

当 GMail 在您的 CSS 中遇到错误时,它会从头部删除整个 &lt;style&gt; 块。

媒体查询前面有 2 个@ 符号。

@@media only screen and (max-width:720px) {

【讨论】:

  • @ 是 Razor 中的保留字符,这就是我使用@@的原因
  • 我明白了。最终输出是什么样子的?
  • 该页面不尊重样式,仍然显示另一列旁边的列,但如果我将样式直接放在 td 上,它可以工作。我不能这样做,因为我希望它是动态的,如果它是移动的,请将一列放在另一列之上。
猜你喜欢
  • 2023-02-24
  • 2019-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-24
  • 1970-01-01
  • 1970-01-01
  • 2021-04-09
相关资源
最近更新 更多