Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
若无法下载电子邮件HTML图像,则img占位符非常大_Html_Css_Html Email - Fatal编程技术网

若无法下载电子邮件HTML图像,则img占位符非常大

若无法下载电子邮件HTML图像,则img占位符非常大,html,css,html-email,Html,Css,Html Email,我有以下html: ... <td> <img src="/img/myimage.jpg"/> </td> ... 这张图片是我在HTML邮件顶部的横幅。我需要它总是调整到600px的宽度,然后缩放相对于宽度的高度,这样图像就不会扭曲 如果成功加载图像,则此操作正常,但如果图像404被删除,则剩余的占位符为600px x 600px。这是有道理的,但看起来很糟糕 如果无法下载图像,我无法找到限制高度调整的最佳方法。我不能设置最大高度或高度,因为如果成

我有以下html:

...
<td>
   <img src="/img/myimage.jpg"/>
</td>
...
这张图片是我在HTML邮件顶部的横幅。我需要它总是调整到600px的宽度,然后缩放相对于宽度的高度,这样图像就不会扭曲

如果成功加载图像,则此操作正常,但如果图像404被删除,则剩余的占位符为600px x 600px。这是有道理的,但看起来很糟糕

如果无法下载图像,我无法找到限制高度调整的最佳方法。我不能设置最大高度或高度,因为如果成功下载,这将扭曲图像。请注意,图像文件的高度可以是可变的


有什么想法吗?

考虑到您正在使用服务器端编程发送HTML邮件:

检查图像文件是否存在 以base64编码直接在src中插入文件内容,这种方式从不使用404s 如果您确实不想在邮件中内联发送图片:

使用URL检查图像文件是否存在 获取图像大小并将其写入img标记中
尝试将图像放置在div标记中,并将其设置为style min height:200px,或者如果可能,将limple add min height参数添加到图像中。

这个问题的实际答案在纯HTML/CSS中是不可能的。电子邮件客户端对JS的支持很差,所以这不是一个选项


由于图像的高度可以是任意大小,而且每次检查链接似乎都不必考虑这样一个小问题,因此我的解决方案是接受HTML电子邮件的限制,并接受丢失的图像将是奇数大小。

为什么不能设置高度?如果它是图像的正确高度,它就不会被扭曲。@WesleyMurch问题是当没有图像时该怎么办;也就是说,当图像加载失败时。在要下载的图像上方添加另一个带有占位符的img标记怎么样?使用z索引进行相对定位会使成功下载的图像显示在占位符上。图像的高度可能会有所不同,否则你是对的,我可以设置高度。是的,可以使用js,但如果电子邮件客户端我知道文件存在,则不支持批量使用,但是html电子邮件的性质意味着一些客户端可能无法下载它,可能他们有outlook,并且不允许下载图像。如果文件存在,在撰写电子邮件时,您可以定义当时的高度。或者像许多广告商那样直接在邮件中添加文件。这不是一个可行的选择吗?通过thunderbird发送邮件时,您添加的图片将直接插入电子邮件中,而不是放在cdn上,因此每个人都会收到您的图像。设置元素的最小高度。可能我查不到。它只设置容器的最小大小。
img {
  height:auto;
  width:600px;
}