去掉a標籤超鏈接的虛線框的方法

a{ blr:expression(this.onFocus=this.blur()); /* IE Opera */ outline:none; /* FF Opera */ } a:focus{ -moz-outline-style: none; /* FF */ } 

全 局控制  CSS實現 
a{blr:expression(this.onFocus=this.close());} /* 只支持IE,過多使用效率低 */   
a{blr:expression(this.onFocus=this.blur());} /* 只支持IE,過多使用效率低 */   
a:focus { -moz-outline-style: none; } /* IE不支持 */ 

////////////////////////////////////////////////////////////////////////////////////////////////////////////// 

當一個鏈接得到焦點時,默認會有個虛線框。如圖:


在 Firefox 裏可以用 -moz-outline:none; 或者 outline:none; 來將其去掉。所以我們可以這樣寫:
a:focus {
     outline:none;
     -moz-outline:none;
}

順便提一下,如果你用過 Safari 和 Chrome 可能會發現,當輸入框得到焦點時邊框會出現陰影效果。

如果想去掉陰影效果也可以用 outline 屬性。
input,textarea {
     outline:none;
}

言歸正傳,剛剛說的是 Firefox ,現在說說 IE。首先比較遺憾,還沒有找到通過 CSS 去掉 IE 鏈接虛線框比較好的解決辦法。所以只能用一個替代的辦法,就是 a 標籤的 hidefocus 屬性(這個屬性是 IE 獨有的)。
<a href="#" hidefocus="true">鏈接</a>

複製代碼
代碼如下:

注意:JS 腳本對應的屬性名是:hideFocus。對應的 JS 代碼應該是: 
xxx.hideFocus = 'true'; 

還有一種不推薦的辦法。就是讓鏈接得到焦點的時候失去焦點。 
<a href="#" οnfοcus="this.blur();">鏈接</a>這種辦法很管用,但過於暴力,最好不要用了。 
可以在每一個<a><img>中加入onFosuc = this.blur(); ,但如果我們需要批量解決整站點的超鏈接虛線框,一個一個加這樣的代碼,不是要暈了。 
可以使用三種方法解決: 
第一,使用DW中的插件:scrubber.mxp,代點是可以對於整頁內的超鏈接進行處理,但無法對整站點消除虛線框,有侷限性。 
第二,使用樣式表,這樣,就可以對整站進行處理了。 
樣式代碼: 
a {blr:expression_r(this.onFocus=this.blur())} 
如果是圖片區域,可以加: 
area {blr:expression_r(this.onFocus=this.blur())} 
一切都搞定了。 
第三,也可以利用htc文件加入a.style.behavior屬性.如: 

複製代碼
代碼如下:

<style> 
a,img 

behavior:url(js文件地址); 

</style> 

在js文件中寫入下面語句 

複製代碼
代碼如下:

<attach event="onFocus" handler="onFocus" /> 
<SCRIPT language="javascript"> 
function onFocus() 

this.blur(); 

</SCRIPT> 

--------------------- 
沒有什麼救世主推薦: 
第二種方法 
使用樣式表,這樣,就可以對整站進行處理了。 
樣式代碼: 
a {blr:expression_r(this.onFocus=this.blur())} 
如果是圖片區域,可以加: 
area {blr:expression_r(this.onFocus=this.blur())} 
一切都搞定了。
發佈了26 篇原創文章 · 獲贊 5 · 訪問量 31萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章