文档章节

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

瑜
 
发布于 2015/04/08 18:31
字数 861
阅读 109
收藏 4
点赞 0
评论 0

大家都知道每个浏览器对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
radiopush-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-toolboxtooltip
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

共有 人打赏支持
瑜

粉丝 0
博文 1
码字总数 0
作品 0
海淀
使用CSS3的appearance属性改变元素的外观

前段时间在《修复iPhone上submit按钮bug》中介绍了使用“-webkit-appearance: none; ”来改变按钮在iPhone下的默认风格,其实我们可以反过来思路,使用“appearance”属性,来改变任何元素的...

大漠 ⋅ 2012/09/13 ⋅ 0

appearance—外观样式属性

appearance 是一个 不规范的属性(unsupported WebKit property),它没有出现在 CSS 规范草案中。 appearance是用来改变按钮和其他控件的外观,使其外观类似于原生控件。 例: <p class="lo...

刘谱_smile ⋅ 2015/09/17 ⋅ 0

移动端网页布局中需要注意事项以及解决方法总结

winphone系统a、input标签被点击时产生的半透明灰色背景怎么去掉 <meta name="msapplication-tap-highlight" content="no"> 1、关闭iOS键盘首字母自动大写 <input type="text" autocapitaliz......

CharmyZ ⋅ 2016/07/21 ⋅ 0

Cesium学习笔记(五)几何和外观

之前的笔记种记录了Cesium可以使用实体(如多边形和椭球)创建不同的地质类型。例如:使用点阵图在地球上创建一个矩形 下面将记录primitives ,并查看形成它们的类型Geometry和Appearance类型...

HobHunter ⋅ 2017/07/14 ⋅ 0

CSS3 @keyframes animate

1.@keyframes定义和用法 通过 @keyframes 规则,您能够创建动画。 创建动画的原理是,将一套 CSS 样式逐渐变化为另一套样式。 在动画过程中,您能够多次改变这套 CSS 样式。 以百分比来规定改...

leona_lily ⋅ 2015/08/06 ⋅ 0

9款风格华丽的jQuery/CSS3插件

今天向大家分享9款效果相当不错的jQuery/CSS3插件,不多说,直接来看看这些插件吧。 1、jQuery动画下拉菜单Smart Menu 这是一款基于jQuery的动画下拉菜单,子菜单外观比较时尚,鼠标移到菜单...

yykj ⋅ 2014/01/06 ⋅ 1

CSS的未来:一些试验性CSS属性

尽管现代浏览器已经支持了众多的CSS3属性,但是大部分设计师和开发人员貌似依然在关注于一些很“主流”的属性,如border-radius、box-shadow或者transform等。它们有良好的文档、很好的测试并...

Adam-Lee ⋅ 2012/12/05 ⋅ 0

UIAppearanceContainer 利器

这是一个很重要的protocol,而且它的代理类是UIView和UIBarItem等,UIView和UIBarItem是比较偏底层的父类,很多常用的UI系控件都继承了它们中某一个,如UIButton、UILabel、UINavigationBar、...

wesk痕 ⋅ 2016/09/05 ⋅ 0

ios 7 statusbar 状态栏 跟随navigationbar的颜色而改变

![在此输入图片描述][1] [1]: http://static.oschina.net/uploads/space/2013/1104/112521_N6Pc_1021556.jpg 首先,我们要搞清楚info.plist中 View controller-based status bar appearance这......

kobeli ⋅ 2013/11/04 ⋅ 0

利用 UIAppearance 协议自定义控件外观

文章开头先援引一下Mattt Thompson大神在UIApearance里的一句话吧: Users?will?pay?a?premium?for?good-looking?software. 就如同大多数人喜欢看帅哥美女一样,一款App能不能被接受,长得怎...

安宇夕 ⋅ 2015/11/19 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Java集合类总结笔记

一、集合类的层次关系 主要容器集合类的特点: ArrayList 一种可以动态增长和缩减的索引序列 LinkedList 一种可以在任何位置进行高效地插入和删除的有序序列 ArrayDeque 一种用循环数组实现的...

edwardGe ⋅ 5分钟前 ⋅ 0

spring RMI远程调用

RMI https://www.cnblogs.com/wdh1995/p/6792407.html

BobwithB ⋅ 11分钟前 ⋅ 0

Jenkins实践2 之基本配置

1 插件管理 系统管理->插件管理 在可选插件中可以自主安装插件 2 管理用户 系统管理->管理用户->新建用户 3 安全配置 系统管理->全局安全配置 授权策略 选择安全矩阵 然后添加现有的用户,赋...

晨猫 ⋅ 11分钟前 ⋅ 0

c++智能指针

1、是一种泛型类,针对指针类型的泛型类,会保存指针 2、重载了符号 *和-> 对智能指针使用这两个符号,相当于对保存的泛型使用这两个符号 3、当智能指针引用计数为0时,会去释放指针指向的资...

国仔饼 ⋅ 12分钟前 ⋅ 0

Spring Boot错误处理机制

1)、SpringBoot默认的错误处理机制 默认效果: 1)、浏览器,返回一个默认的错误页面 浏览器发送请求的请求头: 2)、如果是其他客户端,默认响应一个json数据 原理: 可以参照ErrorMvcAut...

小致dad ⋅ 13分钟前 ⋅ 0

ftp连接不上的终极办法 SFTP

假如FTP由于各种原因就是连不上,那么用SFTP协议吧,使用登录服务器的账号密码。

sskill ⋅ 18分钟前 ⋅ 0

Unity 围绕旋转角度限制(Transform.RotateAround)

在 Unity 中可以利用 Transform.RotateAround 围绕指定物体进行旋转,但某些情况下可能需要对旋转角度进行控制。我是先计算出预设角度大小,然后判断是否在限定角度范围内是则进行旋转。 相关...

大轩 ⋅ 19分钟前 ⋅ 0

阿里沙箱环境支付宝测试demo

阿里支付宝支付和微信支付,包括:阿里沙箱环境支付宝测试demo,支付宝支付整合到spring+springmvc+mybatis环境和微信整合到如上环境,功能非常齐全,只需要修改对应的配置文件即可,帮助文档...

码代码的小司机 ⋅ 21分钟前 ⋅ 0

JDK1.6和JDK1.7中,Collections.sort的区别,

背景 最近,项目正在集成测试阶段,项目在服务器上运行了一段时间,点击表格的列进行排序的时候,有的列排序正常,有的列在排序的时候,在后台会抛出如下异常,查询到不到数据,而且在另外一...

tsmyk0715 ⋅ 38分钟前 ⋅ 0

C++ 中命名空间的 5 个常见用法

相信小伙伴们对C++已经非常熟悉,但是对命名空间经常使用到的地方还不是很明白,这篇文章就针对命名空间这一块做了一个叙述。 命名空间在1995年被引入到 c++ 标准中,通常是这样定义的: 命名...

柳猫 ⋅ 43分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部