css去掉a標籤點擊後的虛線框

outline是css3的一個屬性,用的很少。

聲明,這是個不能兼容的css屬性,在ie6、ie7、遨遊瀏覽器都不兼容。

outline控制的到底是什麼呢?

當聚焦a標籤的時候,在a標籤的區域周圍會有一個虛線的框,這個框不同於border的是,它是不佔有任何寬度的。當你取消焦點的時候,這個虛線框就會自然消失。你可以通過遨遊、火狐或者ie的幾個版本看到。而safari、opera、goole瀏覽器等本身就不支持這個效果,所以看不到。

這個就是a標籤被聚焦後出現了虛線框,也就是outline;

基本上這個是沒有用的效果,大多數情況下我們會希望不要出現這種效果,於是給a標籤設置outline:none;很遺憾的是,ie6、7和遨遊瀏覽器裏都不能實現,只有ff,ie8在加了outline:none後會取消聚焦的虛線框。所以我說這個Outline屬性基本就是一個費屬性。

怎麼樣才能取消這個虛線框呢?常用方法有三種:

1:在a標籤里加入js控制,當a標籤被聚焦時,強制取消焦點,這時候a標籤自然不會有虛線框。

<a href="#" onfocus="this.blur();">測試</a>
這裏設置聚焦時觸發blur();強制取消焦點。自然是屢試不爽。

2:在a標籤裏嵌套其他標籤,比如span 或者var等等,把內容放在被嵌套的標籤裏。這時候點擊這個鏈接,聚焦的是a的子標籤,自然不會聚焦在a標籤上,所以也能避免這個問題。

3:不適用a標籤做鏈接,採用其他標籤,使用js做出hover的效果,在css里加入cursour:pointer;設置鼠標以上時變小手。給用戶是鏈接的錯覺。使用js做點擊時的頁面跳轉等。最大的缺點是對se友好性比前兩種差很多。

這三種方法的共同點是比較麻煩,相比較而言,推薦第一種,第二第三也視不同的情況而定。也是會用到的。

我認爲outline的這個效果時瀏覽器遲早要取消掉的,所以關於這個屬性的知識也相當的雞肋。

或者還可以在css中加入body a{outline:none;blr:this.onFocus=this.blur());}< /strong>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章