DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> CSS入門知識 >> CSS進階教程 >> CSS網頁設計教程:表單Button的Outline
CSS網頁設計教程:表單Button的Outline
編輯:CSS進階教程     

outline的使用,大家都喜歡在reset樣式表中直接重置:

* {

  outline: none;

}

Eric Meyers在他的CSS Reset是這樣重置的:

/* remember to define focus styles! */

:focus {

    outline: 0;

}

這些方法大家都可以說常見了。可是有一點可能大家還是不太清楚——outline在表單的button中使用時,在firefox浏覽器下依然還是會有虛線框顯示的。正好今天有一位朋友也問起這個問題,於是查了一下相關資料,才得知在Firefox下是需要使用別的方法來處理的。那麼今天這個教程就簡單的來了解如何處理這個問題。

問題描述:

前面也說了,很多設計師喜歡使用:

*{outline:none;}

或者

:focus {outline:none;}

來解決焦點粗虛線框的問題。但是你有沒有注意到,使用這種方法,對於button在Firefox下還是會有虛線框的,如下圖所示:


解決方法:

解決這個bug我們需要使用Mozilla的一個私有屬性:-moz-focuse-inner。不過這裡有一點大家需要特別的注意:通過“-moz-focus-inner”並不是重置“outline”這個屬性的值,而是需要通過他來改變buttons的“border”樣式,具體的請看下面的代碼:

input::-moz-focus-inner,

button::-moz-focus-inner {

border: 0;

}

上面寫是包括了所有的input,但有時我們並不想這個值對“input[type=text]”有影響,那麼我樣其實可以這樣來設置:

button::-moz-focus-inner,

input[type="reset"]::-moz-focus-inner,

input[type="button"]::-moz-focus-inner,

input[type="submit"]::-moz-focus-inner,

input[type="file"] > input[type="button"]::-moz-focus-inner {

border: none;

}

通過上面的代碼,那個難看的虛線框,我們就可以順利的移除這樣一來,我們其實對於button的outline設置需要這樣來設置,才能達到所有浏覽器一樣的風格效果:

:focus {outline:none;} /*for IE*/

::-moz-focus-inner {border-color: transparent;} /*for mozilla*/

這樣表單button得到焦點,在各浏覽器下的渲染效果就一致了。

上面是去除outline的邊框效果的寫法,但那樣或許不太好理解,那麼你也可以像設置正常樣式那來理解,如下面的代碼所示:

button::-moz-focus-inner,

input[type="reset"]::-moz-focus-inner,

input[type="button"]::-moz-focus-inner,

input[type="submit"]::-moz-focus-inner,

input[type="file"] > input[type="button"]::-moz-focus-inner {

border: 1px dotted transparent;

}

button:focus::-moz-focus-inner,

input[type="reset"]:focus::-moz-focus-inner,

input[type="button"]:focus::-moz-focus-inner,

input[type="submit"]:focus::-moz-focus-inner,

input[type="file"] > input[type="button"]:focus::-moz-focus-inner {

padding: 3px;

border-color: #F3F3F3;

}

上面的使用可算是一個小技巧吧,可能知道的人也蠻多的,我也就不在多說這樣的問題,因為要我來說是怎麼一回事,我也實在沒有那樣的水平來說清楚,但我只知道這樣的方法能解決問題。那麼有關於“outline”的使用還是蠻多的,大家要是感興趣的話可以參考下面的擴展閱讀:

  • css - outlines
  • Better CSS outline suppression
  • a { outline: none; }
  • outline
  • Control Element Outline Position with outline-offset
  • Remove Button Focus Outline Using CSS
  • Removing The Dotted Outline
  • Outline
  • Outline CSS
  • CSS Compatibility and Internet Explorer
  • 希望上面的這段代碼大家用得上,如果你有更好的解決辦法

    XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
    Copyright © DIV+CSS佈局教程網 All Rights Reserved