Html 如何删除webkit中损坏图像周围的边框?

Html 如何删除webkit中损坏图像周围的边框?,html,css,webkit,html-email,Html,Css,Webkit,Html Email,有人能给我提供这方面的建议吗?WebKit浏览器一直在禁用的图像周围放置1像素的灰色边框。我需要删除它的原因是为了在电子邮件客户端禁用图像时进行电子邮件优化。在Firefox中运行良好,但WebKit浏览器始终显示边框 我尝试了border:none!重要信息无论何处,包括内联,但Chrome/Safari都很顽固 编辑:下面是带有内联css的html示例 <img style="outline:none;text-decoration:none;display:block;border:

有人能给我提供这方面的建议吗?WebKit浏览器一直在禁用的图像周围放置1像素的灰色边框。我需要删除它的原因是为了在电子邮件客户端禁用图像时进行电子邮件优化。在Firefox中运行良好,但WebKit浏览器始终显示边框

我尝试了
border:none!重要信息
无论何处,包括内联,但Chrome/Safari都很顽固

编辑:下面是带有内联css的html示例

<img style="outline:none;text-decoration:none;display:block;border:none;-webkit-border:0;" border="0" src="images/rm_bnk.gif" width="10" height="10" alt="test" />

尝试使用一些JavaScript删除损坏的图像。这是唯一的办法

var images = document.getElementsByTagName("img");
for (i = 0; i < images.length; i++) {
    var self  = images[i];
    self.onerror = function () {
        self.parentNode.removeChild(self);
    }
}
var images=document.getElementsByTagName(“img”);
对于(i=0;i
因为不同浏览器对损坏图像的渲染不同,无法更改


另外:
onerror
将在图像未加载时触发

浏览器似乎没有真正为您提供删除边框的方法。最简单的解决方案是将img更改为div,并将图像用作背景

这样,如果没有src,就不会得到损坏的图像图标和边框

更新:Microsoft Outlook让事情变得困难,而且治愈的方法几乎比疾病更糟糕:向量标记语言、形状元素、图像数据元素等等。如果你在谷歌上搜索,你会看到如何使用它们


Outlook用户可能只需要离开该图像就可以结束了。

没有办法删除它,但我将该图像包装在一个元素中,该元素在其样式中具有overflow hidden属性

<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>Hide Broken Image border</title>
  <style>
    body{
      background-color:azure;
    }
    .image-container{
      width:100px;
      height:100px;
      overflow:hidden;
      display:block;
      background-color:orange; /*not necessary, just to show the image box, can be added to img*/
    }
    .image-container img{
      margin:-1px;
    }
  </style>
</head>
<body>
  <span class="image-container">
    <img src="path-to-image" alt="I'm Broken :(" width="102" height="102">
  </span>
</body>
</html>

隐藏损坏的图像边框
身体{
背景颜色:天蓝;
}
.图像容器{
宽度:100px;
高度:100px;
溢出:隐藏;
显示:块;
背景色:橙色;/*不需要,只是为了显示图像框,可以添加到img*/
}
.图像容器img{
保证金:-1px;
}
看看这个箱子

如果
img
src
不存在或损坏,则使用下面的
css
代码

img:not([src]){ display:none; }

这个css隐藏图像直到
img
src
未完全加载。

阿米特的回答非常好,但有一个小建议: 使用可见性:隐藏而不是显示:无

img:not([src]){
可见性:隐藏;
}
  • 因此,您可以保存img块大小和其他元素的位置。它在大多数情况下都很有用,我在我的网站上使用它,在加载图像之前只显示空白块

您可以尝试使用此代码删除webkit中损坏图像周围的边框

    var images = document.getElementsByTagName("img");

for (i = 0; i < images.length; i++) {
    var self  = images[i];
    self.onerror = function () {
        self.parentNode.removeChild(self);
    }
}
var images=document.getElementsByTagName(“img”);
对于(i=0;i
您的意思是:table,img{-webkit-border:0!important;}?仍然不起作用。你可以显示你的代码html或cssSure吗,已经添加了原始问题。你好,Kaizoku,请检查此感谢,但这是电子邮件,所以javascript不可用。然后尝试Hilson解决方案。这是一个更好的主意。我们已经想到了这一点,但是电子邮件并不真的喜欢背景图片(outlook是罪魁祸首)很酷,我现在就接受这一点,希望有某种css黑客可以覆盖webkit默认的css。很好的一个,让我在电子邮件客户端上测试它,但是我们如何内联伪样式呢?谢谢!这是唯一对我有效的方法:)这是使用延迟加载时的一个很好的解决方案。