[英]IE Fixes - Conditional Comment Script will not execute
我正在嘗試建立一個網站。 我可以在除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);
}
很抱歉沒有回答javascript部分。 但是您應該使用CSS 來做到這一點:
a img { border:0; }
您的條件評論是什么樣的? 而且,為什么不將其用作樣式呢? 這將比使用JavaScript更快並且得到更好的支持。
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/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.