在瀏覽器里,當鼠標點擊或使用Tab鍵讓一個鏈接或者一個radio獲得焦點的時候,該元素將會被一個輪廓虛線框圍繞。這個輪廓虛線框就是 outline 。
outline 能告訴用戶那一個可以激發事件的html元素獲取了焦點,對鍾愛鍵盤操作的用戶尤其有意義。一個清晰悅目的outline設計能提高使用表單的用戶體驗。 另一方面,outline 也有些討厭的地方,比如使用CSS設計的Tab(標簽頁)時,選擇一個Tab之后,Tab上的輪廓虛線會一直顯示,有些影響美觀。
CSS 的 outline 屬性允許我們改變這個默認的輪廓虛線框效果。其配套的相關屬性包括:
outline, outline-width, outline-style, outline-color, outline-offset
如果想讓鏈接獲取到焦點時更醒目,可以設置輪廓線條為紅色,outline 屬性的設計可能如:
a { outline-color: red; }
而如果想去掉影響美觀的Tab上的輪廓線條,outline屬性可如下設置:
.active-tab { outline: none; ...... /* other properties */}
outline 與 border 的區別
border 可應用於幾乎所有有形的html元素,而 outline 是針對鏈接、表單控件和ImageMap等元素設計。從而另一個區別也可以推理出,那就是: outline 的效果將隨元素的 focus 而自動出現,相應的由 blur 而自動消失。這些都是瀏覽器的默認行為,無需JavaScript配合CSS來控制。
另外從 CSS的十八般技巧 一文中還讀到的一個區別就是: outline 不會象border那樣影響元素的尺寸或者位置。
去除焦點虛線:style="outline:medium none;" hidefocus="true"