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

來源:互聯網
上載者:User
這篇文章主要介紹了關於如何使用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屬性值

checkboxradiopush-buttonsquare-buttonbuttonbutton-bevellistboxlistitemmenulistmenulist-buttonmenulist-textmenulist-textfieldscrollbarbutton-upscrollbarbutton-downscrollbarbutton-leftscrollbarbutton-rightscrollbartrack-horizontalscrollbartrack-verticalscrollbarthumb-horizontalscrollbarthumb-verticalscrollbargripper-horizontalscrollbargripper-verticalslider-horizontalslider-verticalsliderthumb-horizontalsliderthumb-verticalcaretsearchfieldsearchfield-decorationsearchfield-results-decorationsearchfield-results-buttonsearchfield-cancel-buttontextfieldtextarea

Mozilla下的appearance屬性值

nonebuttoncheckboxcheckbox-containercheckbox-smalldialoglistboxmenuitemmenulistmenulist-buttonmenulist-textfieldmenupopupprogressbarradioradio-containerradio-smallresizerscrollbarscrollbarbutton-downscrollbarbutton-leftscrollbarbutton-rightscrollbarbutton-upscrollbartrack-horizontalscrollbartrack-verticalseparatorstatusbartabtab-left-edge Obsoletetabpanelstextfieldtextfield-multilinetoolbartoolbarbuttontoolbox-moz-mac-unified-toolbar-moz-win-borderless-glass-moz-win-browsertabbar-toolbox-moz-win-communications-toolbox-moz-win-glass-moz-win-media-toolboxtooltiptreeheadercelltreeheadersortarrowtreeitemtreetwistytreetwistyopentreeviewwindow

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

  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以及移動設定瀏覽器上得到較好的支援。如果大家對此感興趣,自己可以私下一個下個嘗試上面的屬性值,給大家帶來何種效果。

以上就是本文的全部內容,希望對大家的學習有所協助,更多相關內容請關注topic.alibabacloud.com!

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.