我正在尝试建立一个网站。除了IE 8及更低版本,我在每个浏览器中都能正确显示它。 IE渲染我的img周围的蓝框也是锚点。我可以通过将border属性设置为none来摆脱这个,但我想用javascript来做。我可以让我的Javascript在条件评论中执行。
try
{
var ancs = document.getElementsByTagName("a");
for(var i=0; i<ancs.length; i++)
{
if(ancs[i].childNodes[0].nodeName == "IMG")
{
//Set border property to none
}
}
}
catch(err)
{
alert(err);
}
答案 0 :(得分:1)
我很抱歉没有回答javascript部分。但你应该使用 CSS 这样做:
a img { border:0; }
答案 1 :(得分:0)
您的条件评论是什么样的?而且,为什么不把它作为一种风格呢?它比使用JavaScript更快并且得到更好的支持更快。
答案 2 :(得分:0)
对于未自行指定的图像,IE具有默认边框样式。这是IE的已知痛苦。解决此问题的正确方法是向页面添加默认CSS规则。如果这是第一个CSS规则之一,那么它不会影响您已经设置的任何其他CSS规则:
<style type="text/css">
img {border: none;}
</style>
或者如果你真的只想影响<a>
标签中的图片,你可以使用这个CSS:
<style type="text/css">
a img {border: none;}
</style>
如果您只想修改/更改一张图片,您还可以通过指定内嵌边框来处理<img>
标记中的特定图片:
<img border="0" src="xxxx">
如果您真的想使用javascript,可以在页面加载后放置此代码,也可以在加载页面后调用它:
function nukeImageBorders() {
// assumes all affected images have an <a> tag as their parent
var list = document.getElementsByTagName("img");
for (var i = 0, len = list.length; i < len; i++) {
if (list[i].parentNode.tagName.toLowerCase() == "a") {
list[i].style.border = "none";
}
}
}
您可以在此处查看IE中的代码:http://jsfiddle.net/jfriend00/cnEhY/