使用CSS3的appearance屬性改變元素的外觀的方法
發(fā)布時間:2015-12-12 22:45:25 作者:佚名
我要評論

大家都知道每個瀏覽器對HTML元素渲染都不一樣,比如說button,在chrome和ff中,渲染出來的效果都是不盡相同的。這樣一來就有了今天這個思路,利用瀏覽器的對元素的默認(rèn)渲染風(fēng)格,我們可以使用appearance屬性對任何元素的渲染風(fēng)格改變
前段時間在《修復(fù)iPhone上submit按鈕bug》中介紹了使用“-webkit-appearance: none; ”來改變按鈕在iPhone下的默認(rèn)風(fēng)格,其實我們可以反過來思路,使用“appearance”屬性,來改變?nèi)魏卧氐臑g覽器默認(rèn)風(fēng)格,簡單的說,你可以使用“appearance”屬性將“段落p”渲染成button的風(fēng)格,也可以渲染成“輸入框”、“選擇框”等效果。
大家都知道每個瀏覽器對HTML元素渲染都不一樣,比如說“button”,在chrome和ff中,渲染出來的效果都是不盡相同的。這樣一來就有了今天這個思路,利用瀏覽器的對元素的默認(rèn)渲染風(fēng)格,我們可以使用“appearance”屬性對任何元素的渲染風(fēng)格改變,最簡單的來說,我要把“a”鏈接默認(rèn)顯示成“按鈕”風(fēng)格,那么我們可以使用“appearance”設(shè)置為“button”。
“appearance”功能聽起來蠻大的,不過可惜的是,目前各個瀏覽器廠商各自為政,還無法達(dá)到統(tǒng)一的標(biāo)準(zhǔn),至今天也只有兩個內(nèi)核的瀏覽器可以使用,其一是“webkit”,其二是“ff”的,也就是說在使用“appearances”時,需要加上各瀏覽器廠前綴。
appearance使用方法:
接下來我們一起來看個簡單的實例:
接下來,使用“appearance”屬性來改變上面“P”元素的風(fēng)格:
經(jīng)過“appearance”的屬性值設(shè)置后,段落P的默認(rèn)風(fēng)格就被改變了,如圖所示:

當(dāng)然上面的屬性只是“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
大家都知道每個瀏覽器對HTML元素渲染都不一樣,比如說“button”,在chrome和ff中,渲染出來的效果都是不盡相同的。這樣一來就有了今天這個思路,利用瀏覽器的對元素的默認(rèn)渲染風(fēng)格,我們可以使用“appearance”屬性對任何元素的渲染風(fēng)格改變,最簡單的來說,我要把“a”鏈接默認(rèn)顯示成“按鈕”風(fēng)格,那么我們可以使用“appearance”設(shè)置為“button”。
“appearance”功能聽起來蠻大的,不過可惜的是,目前各個瀏覽器廠商各自為政,還無法達(dá)到統(tǒng)一的標(biāo)準(zhǔn),至今天也只有兩個內(nèi)核的瀏覽器可以使用,其一是“webkit”,其二是“ff”的,也就是說在使用“appearances”時,需要加上各瀏覽器廠前綴。
appearance使用方法:
CSS Code復(fù)制內(nèi)容到剪貼板
- .elmClass{
- -webkit-appearance: value;
- -moz-appearance: value;
- appearance: value;
- }
XML/HTML Code復(fù)制內(nèi)容到剪貼板
- <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>
XML/HTML Code復(fù)制內(nèi)容到剪貼板
- /*看起來像個按鈕,以按鈕的風(fēng)格渲染*/
- .lookLikeAButton{
- -webkit-appearance:button;
- -moz-appearance:button;
- }
- /*看起來像個清單盒子,以listbox風(fēng)格渲染*/
- .lookLikeAListbox{
- -webkit-appearance:listbox;
- -moz-appearance:listbox;
- }
- /*看起來像個清單列表,以listitem風(fēng)格渲染*/
- .lookLikeAListitem{
- -webkit-appearance:listitem;
- -moz-appearance:listitem;
- }
- /*看起來像個搜索框,以searchfield風(fēng)格渲染*/
- .lookLikeASearchfield{
- -webkit-appearance:searchfield;
- -moz-appearance:searchfield;
- }
- /*看起來像個文本域,以textarea風(fēng)格渲染*/
- .lookLikeATextarea{
- -webkit-appearance:textarea;
- -moz-appearance:textarea;
- }
- /*看起來像個下接菜單,以menulist風(fēng)格渲染*/
- .lookLikeAMenulist{
- -webkit-appearance:menulist;
- -moz-appearance:menulist;
- }

當(dāng)然上面的屬性只是“appearance”中的一部分,我搜集了一下webkit和Mozilla下的appearance給大家參考:
Webkit下的appearance屬性值
復(fù)制代碼
代碼如下: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屬性值
復(fù)制代碼
代碼如下: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
大家要是感興趣的話可以看看下面的相關(guān)介紹:
- Mozilla Docs for -moz-appearance
- Trent Walton on Webkit Appearance
- Shaun Inman on Disabling Inner Text Shadow of Text Inputs on iPad
- CSS3 Spec
- CSS property: -webkit-appearance
最后在提醒大家一回,目前在IE系列和Opera瀏覽器上不支持“appearance”,而且Safari也只有3.0版本以上支持,而在Chrome和Firefox以及移動設(shè)置瀏覽器上得到較好的支持。如果大家對此感興趣,自己可以私下一個下個嘗試上面的屬性值,給大家?guī)砗畏N效果。
相關(guān)文章
- 這篇文章主要介紹了HTML5中CSS外觀屬性的相關(guān)知識,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,,需要的朋友可以參考下2020-09-10