在正常的浏览器中,浏览器自带的样式永远是优先级最低的,在一般介绍中

button[type=default] 这种属性选择器比 .my-btn 这种类选择器优先级要高。

但是如果 button[type=default] 是系统样式(浏览器自带样式),则优先级一定还是最低,一个普通的 class 就能覆盖。


在微信小程序中,button 的 type 默认值就是 default。

但下面两行的样式却完全不同

<button class="abc">测试</button>

<button class="abc" type="default">测试</button>


假设现在有一段样式 .abc {color:#F00;}

这时第一个按钮文字是红色,而第二个则还是系统的颜色。

因为小程序自带的属性选择器优先而把 .abc 的样式给盖掉了,这时只有把 .abc 改成 button.abc 增加优先级才能搞定。


似乎小程序里 [type=default] 不在系统层的低优先级里,而是跟应用层完全在一个优先级层次上,这给开发过程中的按钮样式设置增加了很多麻烦。


某些情况,比如我自定义了一个带按钮的组件,这个组件的 type 属性对应内部按钮的 type 属性,模板剥去无关的部分大概是这样

<button type="{{type}}"><slot></slot></button>

这时 type 值为 null 的情况下,模板输出的是 <button type="">SomeText</button>,这时按钮的样式因为有 type 而被系统自己覆盖了,十分无奈,而且没法办法让这个 type 在没有值时并不存在。


我顺手搜了一下,发现很多年前就有人在说这个问题了,但现在依然有。

展开全部
收起
1回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • 空空如也

    9人对此回答表示赞同

    type设置的样式优先级会高于属性选择器。至于不设置type默认样式就是default呀

    展开
    9
    0回复
    发布于 6年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部