Taro 多端编译时样式不生效怎么办?
我在用 Taro 开发一个多端项目,H5 和微信小程序都正常,但编译到支付宝小程序时,部分样式完全没生效。比如下面这个按钮的边框和圆角,在支付宝里就是默认样式。
我试过把 px 换成 rpx,也检查了类名有没有拼错,甚至加了 !important 都不行,是不是 Taro 对支付宝的样式处理有啥坑?
const MyButton = () => {
return (
<View className='btn'>
点击我
</View>
);
};
对应的 CSS 是:
.btn { border: 2rpx solid #007aff; border-radius: 12rpx; padding: 10rpx 20rpx; }
主要有两个原因:
一是支付宝小程序不支持 border 的简写形式,你得把 border 拆成三条属性。另外 border-radius 在某些版本支付宝小程序里也会抽风。
改成这样试试:
如果这样还不生效,可以在 Taro 配置文件里确认一下支付宝小程序的编译配置没问题:
还有一点,支付宝小程序的 rpx 和微信小程序不太一样,有时候用 px 反而更稳。你可以先拿其中一个属性改成 px 试试看是不是单位的问题。
基本上把 border 拆开写就能解决大部分情况了。