Gmail 将以 % 为单位的最大宽度更改为 px?

Gmail changing max-width in % to px?

我目前正在为各种客户处理 html 电子邮件,并且在使用 gmail 时遇到了一些奇怪的问题 (yay) - 特别是在通过浏览器查看电子邮件时。 (应用程序中没有问题)

只有在小屏幕(例如移动设备)上使用浏览器时才会真正出现此问题 - 所有图像都显示得太宽,尽管有最大宽度,这意味着布局被拉伸并且需要水平滚动。虽然它不会在桌面上引起任何问题,但代码也会发生同样的事情

在我的图像上,我设置了

style="max-width:100% !important;"

内嵌在每张图片上。我的头上还有一个 <style>

img {max-width: 100% !important;}

检查图像元素时(在我的 phone 和电脑上),我没有看到头部最大宽度的迹象,这并非完全出乎意料。

奇怪的是,每张图片仍然有一个内嵌的最大宽度设置 - 但它不再以 % 为单位,而是以 px 为单位。

在 pc 浏览器中检查,内联最大宽度现在显示

    max-width: 1920px;

在我的 phone 上查看(android,内联最大宽度为

    max-width: 767px;

在这种情况下,图片现在太宽了,破坏了布局。所有图像都会发生同样的事情,无论它们的实际大小如何。

我没有看到任何消息告诉我电子邮件已针对我的屏幕进行了调整,也没有看到任何打开或关闭此功能的选项。

有人遇到过这种情况吗?关于如何防止 gmail 弄乱最大宽度或让它遵守头部的最大宽度的任何想法? (据我所知,我已经避免使用 类 或 id 从头部附加样式,google 将这些删除)

甚至更奇怪(或者我正在失去它...)我确定这在昨天工作...

更新:我想我已经解决了为什么它昨天显然可以工作 - 但事实并非如此 - 我在开发工具中所做的更改在我重新加载时没有清除,所以我添加的最大宽度作为测试(在头部复制最大宽度)仍然存在...

经过更多的尝试,在所有宽图像上添加 width: 100% !important; 内联似乎可以解决问题 - gmail 不会弄乱该值。仍然很想知道为什么它会改变最大宽度的值,如果有人有任何线索的话!

Gmail 因滥用其最大宽度设置布局而臭名昭著。

尽量避免将 max-width 设置为非高级容器元素的百分比值。你也会 运行 对 gmail 应用程序之类的东西进行奇怪的渲染。通常,gmail 应用程序会将所有宽度转换为最大宽度,因此它可以 运行ch 您的内容,但仍会在更高的屏幕分辨率下保持结构。

gmail webapp 做类似的事情。它限制了您可以将元素设置为的宽度,因此您不能添加比显示器更宽的内容,gmail 网络应用程序以 100% 的比例显示。

gmail 移动应用程序 - 将您的内容强制放入 320 像素/480 像素宽的框中

gmail 桌面应用程序 - 强制您的内容永远不会超过屏幕分辨率

Gmail 桌面在头部处理样式非常奇怪,如果您使用其他标签作为标识符,它会完全忽略大多数 classes/id(不要听那些说它完全去除它们的人) #id 和 .class 它将应用这些样式。例如

 * [lang~="identifier"]

lang 几乎是唯一可以使用的标签,它不会妨碍正在使用的标签,即 Alt、Title 和 Href。

请注意,如果您在样式标签中使用媒体查询或任何以“@”开头的内容,gmail 可能会(取决于当天的感觉)完全删除该样式标签。不过,您可以通过在正文的样式标签中添加这些样式来避免这种情况。

总之。不要依赖 max-width 从内到外控制布局,将像素值设置为限制 width="100%"。

希望对您有所帮助