使用CSS3的appearance屬性改變元素的外觀

前段時間在《修復iPhone上submit按鈕bug》中介紹了使用「-webkit-appearance: none; 」來改變按鈕在iPhone下的默認風格,其實咱們能夠反過來思路,使用「appearance」屬性,來改變任何元素的瀏覽器默認風格,簡單的說,你可使用「appearance」屬性將「段落p」渲染成button的風格,也能夠渲染成「輸入框」、「選擇框」等效果。css

 

你們都知道每一個瀏覽器對HTML元素渲染都不同,好比說「button」,在chrome和ff中,渲染出來的效果都是不盡相同的。這樣一來就有了今天這個思路,利用瀏覽器的對元素的默認渲染風格,咱們可使用「appearance」屬性對任何元素的渲染風格改變,最簡單的來講,我要把「a」連接默認顯示成「按鈕」風格,那麼咱們可使用「appearance」設置爲「button」。html

「appearance」功能聽起來蠻大的,不過惋惜的是,目前各個瀏覽器廠商各自爲政,還沒法達到統一的標準,至今天也只有兩個內核的瀏覽器可使用,其一是「webkit」,其二是「ff」的,也就是說在使用「appearances」時,須要加上各瀏覽器廠前綴。css3

appearance使用方法:web

.elmClass{ -webkit-appearance: value; -moz-appearance: value; appearance: value; } 

接下來咱們一塊兒來看個簡單的實例:chrome

<p class="lookLikeAButton">我是一個段落P元素 </p> <p class="lookLikeAListbox">我是一個段落P元素 </p> <p class="lookLikeAListitem">我是一個段落P元素 </p> <p class="lookLikeASearchfield">我是一個段落P元素 </p> <p class="lookLikeATextarea">我是一個段落P元素 </p> <p class="lookLikeAMenulist">我是一個段落P元素</p> 

接下來,使用「appearance」屬性來改變上面「P」元素的風格:瀏覽器

/*看起來像個按鈕,以按鈕的風格渲染*/
.lookLikeAButton{ -webkit-appearance:button; -moz-appearance:button; } /*看起來像個清單盒子,以listbox風格渲染*/ .lookLikeAListbox{ -webkit-appearance:listbox; -moz-appearance:listbox; } /*看起來像個清單列表,以listitem風格渲染*/ .lookLikeAListitem{ -webkit-appearance:listitem; -moz-appearance:listitem; } /*看起來像個搜索框,以searchfield風格渲染*/ .lookLikeASearchfield{ -webkit-appearance:searchfield; -moz-appearance:searchfield; } /*看起來像個文本域,以textarea風格渲染*/ .lookLikeATextarea{ -webkit-appearance:textarea; -moz-appearance:textarea; } /*看起來像個下接菜單,以menulist風格渲染*/ .lookLikeAMenulist{ -webkit-appearance:menulist; -moz-appearance:menulist; } 

通過「appearance」的屬性值設置後,段落P的默認風格就被改變了,如圖所示:app

固然上面的屬性只是「appearance」中的一部分,我搜集了一下webkit和Mozilla下的appearance給你們參考:less

Webkit下的appearance屬性值ide

checkbox
radio
push-button
square-button
button
button-bevel
listbox
listitem
menulist
menulist-button
menulist-text
menulist-textfield
scrollbarbutton-up
scrollbarbutton-down
scrollbarbutton-left
scrollbarbutton-right
scrollbartrack-horizontal
scrollbartrack-vertical
scrollbarthumb-horizontal
scrollbarthumb-vertical
scrollbargripper-horizontal
scrollbargripper-vertical
slider-horizontal
slider-vertical
sliderthumb-horizontal
sliderthumb-vertical
caret
searchfield
searchfield-decoration
searchfield-results-decoration
searchfield-results-button
searchfield-cancel-button
textfield
textarea

Mozilla下的appearance屬性值ui

none
button
checkbox
checkbox-container
checkbox-small
dialog
listbox
menuitem
menulist
menulist-button
menulist-textfield
menupopup
progressbar
radio
radio-container
radio-small
resizer
scrollbar
scrollbarbutton-down
scrollbarbutton-left
scrollbarbutton-right
scrollbarbutton-up
scrollbartrack-horizontal
scrollbartrack-vertical
separator
statusbar
tab
tab-left-edge Obsolete
tabpanels
textfield
textfield-multiline
toolbar
toolbarbutton
toolbox
-moz-mac-unified-toolbar
-moz-win-borderless-glass -moz-win-browsertabbar-toolbox -moz-win-communications-toolbox -moz-win-glass -moz-win-media-toolbox tooltip treeheadercell treeheadersortarrow treeitem treetwisty treetwistyopen treeview window 

你們要是感興趣的話能夠看看下面的相關介紹:

  1. Mozilla Docs for -moz-appearance
  2. Trent Walton on Webkit Appearance
  3. Shaun Inman on Disabling Inner Text Shadow of Text Inputs on iPad
  4. CSS3 Spec
  5. CSS property: -webkit-appearance

最後在提醒你們一回,目前在IE系列和Opera瀏覽器上不支持「appearance」,並且Safari也只有3.0版本以上支持,而在Chrome和Firefox以及移動設置瀏覽器上獲得較好的支持。若是你們對此感興趣,本身能夠私下一個下個嘗試上面的屬性值,給你們帶來何種效果。

如需轉載,煩請註明出處:http://www.w3cplus.com/css3/changing-appearance-of-element-with-css3.html

著做權歸做者全部。
商業轉載請聯繫做者得到受權,非商業轉載請註明出處。
原文: https://www.w3cplus.com/css3/changing-appearance-of-element-with-css3.html © w3cplus.com

相關文章
相關標籤/搜索