首頁  >  文章  >  web前端  >  如何使用CSS3中appearance屬性改變元素的外觀

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

不言
不言原創
2018-06-20 17:49:311652瀏覽

這篇文章主要介紹了關於如何使用CSS3中appearance屬性改變元素的外觀,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

大家都知道每個瀏覽器對HTML元素渲染都不一樣,比如說button,在chrome和ff中,渲染出來的效果都是不盡相同的。這樣一來就有了今天這個思路,利用瀏覽器的對元素的預設渲染風格,我們可以使用appearance屬性對任何元素的渲染風格改變

前段時間在《修復iPhone上submit按鈕bug》中介紹了使用「-webkit-appearance: none; 」來改變按鈕在iPhone下的預設風格,其實我們可以反過來思路,使用「appearance」屬性,來改變任何元素的瀏覽器預設風格,簡單的說,你可以使用「appearance」屬性將「段落p」渲染成button的風格,也可以渲染成「輸入框」、「選擇框」等效果。
大家都知道每個瀏覽器對HTML元素渲染都不一樣,比如說“button”,在chrome和ff中,渲染出來的效果都是不盡相同的。這樣一來就有了今天這個思路,利用瀏覽器的對元素的默認渲染風格,我們可以使用“appearance”屬性對任何元素的渲染風格改變,最簡單的來說,我要把“a”鏈接默認顯示成「按鈕」風格,那麼我們可以使用「appearance」設定為「button」。
「appearance」功能聽起來蠻大的,不過可惜的是,目前各個瀏覽器廠商各自為政,還無法達到統一的標準,至今天也只有兩個核心的瀏覽器可以使用,其一是「webkit ”,其二是“ff”的,也就是說在使用“appearances”時,需要加上各瀏覽器廠前綴。
appearance使用方法:

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

接下來我們一起來看個簡單的實例:

<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的預設風格就被改變了,如圖所示:


當然上面的屬性只是“ appearance」中的一部分,我蒐集了一下webkit和Mozilla下的appearance給大家參考:

Webkit下的appearance屬性值
##

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屬性值

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

大家要是有興趣的話可以看看下面的相關介紹:

    ##Mozilla Docs for -moz -appearance
  1. Trent Walton on Webkit Appearance
  2. Shaun Inman on Disabling Inner Text Shadow of Text Inputs on iPad
  3. CSS3 Spec
  4. CSS property: -webkit-appearance
  5. 最後在提醒大家一回,目前在IE系列和Opera瀏覽器上不支援“appearance”,而且Safari也只有3.0版本以上支持,而在Chrome和Firefox以及行動設定瀏覽器上得到較好的支援。如果大家對此有興趣,自己可以私下一個下個嘗試上面的屬性值,為大家帶來何種效果。

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!

相關推薦:

關於CSS3中常見transformation圖形變化的用法


關於CSS3的animation實作逐幀動畫效果


#

以上是如何使用CSS3中appearance屬性改變元素的外觀的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn