uni-app button组件为圆形时且loading为true时,有一圈灰边
uni-app button组件为圆形时且loading为true时,有一圈灰边
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | WIN7 64 | HBuilderX |
示例代码:
<template>
<view>
<button class="button" :loading="loading"
@click="click()"
>按钮</button>
</view>
</template>
<script>
export default {
data() {
return {
loading:false
}
},
onLoad() {
},
methods: {
click(){
this.loading = true;
setTimeout(() => {
this.loading = false
},5000)
}
}
}
</script>
<style>
.button{
border-radius: 50rpx;
background-image: linear-gradient(#EFCF9E, #E4BF85);
width: 80%;
}
</style>
操作步骤:
运行到手机或模拟器后,按下按钮,组件loading状态出现黑边
预期结果:
按下按钮,组件loading状态跟随样式
实际结果:
按下按钮,组件loading状态出现黑边
bug描述:
button组件设置样式为圆形时,loading为true时,有一圈灰边
运行到浏览器不会出现上述问题,运行到手机或模拟器会出现上述问题。

更多关于uni-app button组件为圆形时且loading为true时,有一圈灰边的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
这是一个已知的uni-app样式兼容性问题,主要出现在移动端平台。当button组件同时设置border-radius为圆形且启用loading状态时,原生渲染层会显示默认的灰色边框。
解决方案:
- 覆盖loading样式:通过CSS覆盖loading状态下的边框样式
.button{
border-radius: 50rpx;
background-image: linear-gradient(#EFCF9E, #E4BF85);
width: 80%;
border: none;
}
.button[loading]{
border: none;
outline: none;
}
- 添加平台特定样式:针对移动端单独处理
/* #ifdef APP-NVUE || APP-PLUS */
.button{
border-width: 0;
}
/* #endif */
- 使用伪元素重置:清除可能的默认边框
.button::after{
border: none;
}


