使用CSS3的appearance属性改变元素的外观的方法


Posted in HTML / CSS onDecember 12, 2015

前段时间在《修复iPhone上submit按钮bug》中介绍了使用“-webkit-appearance: none; ”来改变按钮在iPhone下的默认风格,其实我们可以反过来思路,使用“appearance”属性,来改变任何元素的浏览器默认风格,简单的说,你可以使用“appearance”属性将“段落p”渲染成button的风格,也可以渲染成“输入框”、“选择框”等效果。

大家都知道每个浏览器对HTML元素渲染都不一样,比如说“button”,在chrome和ff中,渲染出来的效果都是不尽相同的。这样一来就有了今天这个思路,利用浏览器的对元素的默认渲染风格,我们可以使用“appearance”属性对任何元素的渲染风格改变,最简单的来说,我要把“a”链接默认显示成“按钮”风格,那么我们可以使用“appearance”设置为“button”。

“appearance”功能听起来蛮大的,不过可惜的是,目前各个浏览器厂商各自为政,还无法达到统一的标准,至今天也只有两个内核的浏览器可以使用,其一是“webkit”,其二是“ff”的,也就是说在使用“appearances”时,需要加上各浏览器厂前缀。

appearance使用方法:

CSS Code复制内容到剪贴板
  1. .elmClass{   
  2.    -webkit-appearance: value;   
  3.    -moz-appearance:    value;   
  4.    appearance:         value;   
  5. }  
接下来我们一起来看个简单的实例:
XML/HTML Code复制内容到剪贴板
  1. <p class="lookLikeAButton">我是一个段落P元素 </p>  
  2. <p class="lookLikeAListbox">我是一个段落P元素 </p>  
  3. <p class="lookLikeAListitem">我是一个段落P元素 </p>  
  4. <p class="lookLikeASearchfield">我是一个段落P元素 </p>  
  5. <p class="lookLikeATextarea">我是一个段落P元素 </p>  
  6. <p class="lookLikeAMenulist">我是一个段落P元素</p>  
接下来,使用“appearance”属性来改变上面“P”元素的风格:
XML/HTML Code复制内容到剪贴板
  1. /*看起来像个按钮,以按钮的风格渲染*/   
  2. .lookLikeAButton{   
  3.      -webkit-appearance:button;   
  4.      -moz-appearance:button;   
  5. }   
  6. /*看起来像个清单盒子,以listbox风格渲染*/   
  7. .lookLikeAListbox{   
  8.      -webkit-appearance:listbox;   
  9.      -moz-appearance:listbox;   
  10. }   
  11. /*看起来像个清单列表,以listitem风格渲染*/   
  12. .lookLikeAListitem{   
  13.      -webkit-appearance:listitem;   
  14.      -moz-appearance:listitem;   
  15. }   
  16. /*看起来像个搜索框,以searchfield风格渲染*/   
  17. .lookLikeASearchfield{   
  18.      -webkit-appearance:searchfield;   
  19.      -moz-appearance:searchfield;   
  20. }   
  21. /*看起来像个文本域,以textarea风格渲染*/   
  22. .lookLikeATextarea{   
  23.      -webkit-appearance:textarea;   
  24.      -moz-appearance:textarea;   
  25. }   
  26. /*看起来像个下接菜单,以menulist风格渲染*/   
  27. .lookLikeAMenulist{   
  28.      -webkit-appearance:menulist;   
  29.      -moz-appearance:menulist;   
  30. }  
经过“appearance”的属性值设置后,段落P的默认风格就被改变了,如图所示:
使用CSS3的appearance属性改变元素的外观的方法

当然上面的属性只是“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

大家要是感兴趣的话可以看看下面的相关介绍:

  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以及移动设置浏览器上得到较好的支持。如果大家对此感兴趣,自己可以私下一个下个尝试上面的属性值,给大家带来何种效果。

HTML / CSS 相关文章推荐
CSS3混合模式mix-blend-mode/background-blend-mode简介
Mar 15 HTML / CSS
CSS3教程(7):CSS3嵌入字体
Apr 02 HTML / CSS
CSS伪类与CSS伪元素的区别及由来具体说明
Dec 07 HTML / CSS
CSS3的Border-radius轻松制作圆角
Dec 24 HTML / CSS
css3 自定义字体font-face使用介绍
May 14 HTML / CSS
解决img标签上下出现间隙的方法
Dec 14 HTML / CSS
html5文本内容_动力节点Java学院整理
Jul 11 HTML / CSS
HTML5 常用语法一览(列举不支持的属性)
Jan 26 HTML / CSS
浅谈关于html5中图片抛物线运动的一些心得
Jan 09 HTML / CSS
canvas进阶之贝塞尔公式推导与物体跟随复杂曲线的轨迹运动
Jan 10 HTML / CSS
在canvas上实现元素图片镜像翻转动画效果的方法
Mar 20 HTML / CSS
HTML5 weui使用笔记
Nov 21 HTML / CSS
CSS3 flex布局之快速实现BorderLayout布局
Dec 03 #HTML / CSS
深入浅析css3 中display box使用方法
Nov 25 #HTML / CSS
CSS3 display知识详解
Nov 25 #HTML / CSS
详解CSS3选择器的使用方法汇总
Nov 24 #HTML / CSS
深入浅析css3 border-image边框图像详解
Nov 24 #HTML / CSS
基于css3 animate制作绚丽的动画效果
Nov 24 #HTML / CSS
基于Jquery和Css3代码制作可以缩放的搜索框
Nov 19 #HTML / CSS
You might like
php使用pclzip类实现文件压缩的方法(附pclzip类下载地址)
2016/04/30 PHP
PHP实现简单的协程任务调度demo示例
2020/02/01 PHP
解决FireFox下[使用event很麻烦]的问题
2006/11/26 Javascript
IE FF OPERA都可用的弹出层实现代码
2009/09/29 Javascript
一个报数游戏js版(约瑟夫环问题)
2010/08/05 Javascript
Jquery操作radio的简单实例
2014/01/06 Javascript
jQuery实现页面滚动时动态加载内容的方法
2015/03/20 Javascript
jquery+CSS3实现淘宝移动网页菜单效果
2015/08/31 Javascript
微信小程序 下拉菜单的实现
2017/04/06 Javascript
实时监控input框,实现输入框与下拉框联动的实例
2018/01/23 Javascript
bootstrap下拉框动态赋值方法
2018/08/10 Javascript
vue中el-upload上传图片到七牛的示例代码
2018/10/19 Javascript
vscode vue 文件模板的配置方法
2019/07/23 Javascript
jQuery与原生JavaScript选择HTML元素集合用法对比分析
2019/11/26 jQuery
使用Python下载Bing图片(代码)
2013/11/07 Python
Python中输出ASCII大文字、艺术字、字符字小技巧
2015/04/28 Python
Django的URLconf中使用缺省视图参数的方法
2015/07/18 Python
python爬虫面试宝典(常见问题)
2018/03/02 Python
Python 按字典dict的键排序,并取出相应的键值放于list中的实例
2019/02/12 Python
Python3.4学习笔记之常用操作符,条件分支和循环用法示例
2019/03/01 Python
python粘包问题及socket套接字编程详解
2019/06/29 Python
Python利用WMI实现ping命令的例子
2019/08/14 Python
详解Django3中直接添加Websockets方式
2020/02/12 Python
解决python便携版无法直接运行py文件的问题
2020/09/01 Python
HTML5的Geolocation地理位置定位API使用教程
2016/05/12 HTML / CSS
购买瑞典当代设计的腕表和太阳眼镜:TRIWA
2016/10/30 全球购物
传播学毕业生求职信
2013/10/11 职场文书
国际贸易个人求职信范文
2014/01/04 职场文书
委托公证书范本
2014/04/03 职场文书
学生打架检讨书
2014/10/20 职场文书
教师求职信怎么写
2015/03/20 职场文书
酒店圣诞节活动总结
2015/05/06 职场文书
运动会通讯稿300字
2015/07/20 职场文书
党员学习中国梦心得体会
2016/01/05 职场文书
SpringMVC 整合SSM框架详解
2021/08/30 Java/Android
nginx.conf配置文件结构小结
2022/04/08 Servers