關於CSS中的outline-style

來源:互聯網
上載者:User
outline (輪廓)是繪製於元素周圍的一條線,位於邊框邊緣的外圍,可起到突出元素的作用。outline 屬性設定元素周圍的輪廓線。

要始終在 outline-color 屬性之前聲明 outline-style 屬性。元素只有獲得輪廓以後才能改變其輪廓的顏色。

可能的值描述:

none 預設。定義無輪廓。
dotted 定義點狀的輪廓。
dashed 定義虛線輪廓。
solid 定義實線輪廓。
double 定義雙線輪廓。雙線的寬度等同於 outline-width 的值。
groove 定義 3D 凹槽輪廓。此效果取決於 outline-color 值。
ridge 定義 3D 凸槽輪廓。此效果取決於 outline-color 值。
inset 定義 3D 凹邊輪廓。此效果取決於 outline-color 值。
outset 定義 3D 凸邊輪廓。此效果取決於 outline-color 值。
inherit 規定應該從父元素繼承輪廓樣式的設定。

outline控制的到底是什麼呢?

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

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

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

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做點擊時的頁面跳轉等。最大的缺點是對方便使用性比前兩種差很多。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.