1、修改uni-data-checkbox多选框的样式为单选框的样式
我原先是用的单选,但是单选并不支持选中后,再次点击取消选中;所以我改成了多选,然后改变多选样式,让他看起来像单选
在所在使用的页面上修改样式即可
<uni-data-checkbox multiple selectedColor='#2979ff' selectedTextColor="#000" v-model="agree"
:localdata="agreedata">
<label>
<checkbox />
<view>我已阅读并同意
<text class="col-g" @click="handleXI">《用户协议》</text>
<text class="col-g" @click="handleYX">《隐私协议》</text>
</view>
</label>
</uni-data-checkbox>
<style lang="scss">
//修改多选框的样式为单选样式
.uni-data-checklist .checklist-group .checklist-box.is--default.is-checked .checkbox__inner .checkbox__inner-icon {
opacity: 1;
background-color: #2979ff !important;
}
.uni-data-checklist .checklist-group .checklist-box .checkbox__inner .checkbox__inner-icon {
width: 8px !important;
height: 8px !important;
border-radius: 10px !important;
top: 3px !important;
left: 3px !important;
height: 8px;
width: 4px;
border: 0px solid #2979ff !important;
}
.uni-data-checklist .checklist-group .checklist-box .checkbox__inner {
border-radius: 8px !important;
display: flex;
flex-shrink: 0;
box-sizing: border-box;
justify-content: center;
align-items: center;
position: relative;
width: 16px;
height: 16px;
border: 1px solid #DCDFE6;
border-radius: 16px;
background-color: #fff !important;
z-index: 1;
}
</style>
2、修改checkbox的样式
<checkbox-group>
<label style="display: flex;">
<checkbox value="agree" class="checkbox" />
<view>我已阅读并同意
<text class="col-g" @click="handleYH">《用户协议》</text>及
<text class="col-g" @click="handleYS">《隐私协议》</text>
</view>
</label>
</checkbox-group>
样式必须得写在app.vue中
.login_container {
//自定义checkbox的样式( 元素使用的时候就是使用类名:checkbox )
checkbox.checkbox .wx-checkbox-input,
checkbox.checkbox .uni-checkbox-input {
border-radius: 8px !important;
display: flex;
flex-shrink: 0;
box-sizing: border-box;
justify-content: center;
align-items: center;
position: relative;
width: 16px;
height: 16px;
border: 1px solid #DCDFE6;
border-radius: 16px;
background-color: #fff !important;
z-index: 1;
}
// 选中后的 对勾样式
checkbox.checkbox .uni-checkbox-input-checked::before,
checkbox.checkbox .wx-checkbox-input-checked::before {
width: 8px;
height: 8px;
border-radius: 10px !important;
line-height: 20px;
text-align: center;
font-size: 18px;
color: #fff;
background: #2979ff;
transform: translate(-70%, -50%) scale(1);
-webkit-transform: translate(-70%, -50%) scale(1);
position: absolute;
top: 7px !important;
left: 9px !important;
border: 0px solid #2979ff !important;
}
}