问题模块 框架类型 问题类型 终端类型 操作系统 微信版本 基础库版本
框架 微信小程序 Bug 客户端 6.6.7 2.0.8
在正常的浏览器中,浏览器自带的样式永远是优先级最低的,在一般介绍中
button[type=default] 这种属性选择器比 .my-btn 这种类选择器优先级要高。
但是如果 button[type=default] 是系统样式(浏览器自带样式),则优先级一定还是最低,一个普通的 class 就能覆盖。
在微信小程序中,button 的 type 默认值就是 default。
但下面两行的样式却完全不同
假设现在有一段样式 .abc {color:#F00;}
这时第一个按钮文字是红色,而第二个则还是系统的颜色。
因为微信小程序自带的属性选择器优先而把 .abc 的样式给盖掉了,这时只有把 .abc 改成 button.abc 增加优先级才能搞定。
似乎微信小程序里 [type=default] 不在系统层的低优先级里,而是跟应用层完全在一个优先级层次上,这给开发过程中的按钮样式设置增加了很多麻烦。
某些情况,比如我自定义了一个带按钮的组件,这个组件的 type 属性对应内部按钮的 type 属性,模板剥去无关的部分大概是这样
这时 type 值为 null 的情况下,模板输出的是
,这时按钮的样式因为有 type 而被系统自己覆盖了,十分无奈,而且没法办法让这个 type 在没有值时并不存在。
我顺手搜了一下,发现很多年前就有人在说这个问题了,但现在依然有。
微信小程序开发问题解答
微信小程序开发者回答:
你好,type设置的样式优先级会高于属性选择器。至于不设置type默认样式就是default呀
本文网址:http://www.91bianli.com/weixinxiaochengxu/48365.html