我已經(jīng)實(shí)現(xiàn)了一個(gè)功能來更改復(fù)選框的背景顏色,但它使刻度線變成黑色,這是我不想要的,我希望標(biāo)記仍然是白色,我該如何實(shí)現(xiàn)這一點(diǎn)? p>
HTML:-
<div v-for="category in categories" :key="category.id"> <div> <input type="checkbox" class="categoryInput" @change="input()" :true-value="category.id" false-value="0" v-model="currentCategory"/> <label class="form-label">{{category.name}}</label> </div> </div>
這是函數(shù):-
input(){ var color = JSON.parse(localStorage.getItem('coloring') || '[]').CTAButtons let collection = document.getElementsByClassName("categoryInput"); for (let i = 0; i < collection.length; i++) { collection[i].style.accentColor = color } }
這是輸出:- 背景更改成功,但刻度線更改為黑色
使用 vue 的優(yōu)點(diǎn)是構(gòu)建自定義組件。所以你可以嘗試如下所示的方法。
您可能需要根據(jù)您的具體要求調(diào)整代碼。
<template> <div v-for="category in categories" :key="category.id"> <div> <label class="form-label categoryInput"> <span class="material-icons icon" v-if="isChecked(category.id)" >check_box</span > <span class="material-icons-outlined icon" v-if="!isChecked(category.id)" >check_box_outline_blank</span > <input type="checkbox" class="" @change="input()" :value="category.id" v-model="currentCategory" /> {{ category.name }}</label > </div> </div> </template> <script> export default { name: 'Checkbox', data: function () { return { currentCategory: [], categories: [ { id: 1, name: 'alpha' }, { id: 2, name: 'beta' }, ], }; }, props: {}, methods: { isChecked(categoryId) { return this.currentCategory.indexOf(categoryId) !== -1; }, input() { var color = '#3bb0a8'; let collection = document.getElementsByClassName('categoryInput'); for (let i = 0; i < collection.length; i++) { const icons = collection[i].querySelectorAll('.icon'); icons.forEach((iconEle) => { iconEle.style.color = color; }); } }, }, }; </script> <style scoped> label.categoryInput { display: flex; justify-content: center; align-items: center; } label.categoryInput input[type='checkbox'] { width: 0; height: 0; } </style>
重要
將以下內(nèi)容添加到您的index.html標(biāo)頭
<link rel="stylesheet">
默認(rèn) HTML 復(fù)選框的刻度線顏色由瀏覽器決定,無法更改。不過,您可以創(chuàng)建自己的自定義復(fù)選框并根據(jù)需要設(shè)置樣式。
HTML
<label class="container"> <input type="checkbox" checked="checked" /> <span class="checkmark"></span> </label>
CSS
.container { display: block; position: relative; padding-left: 35px; margin-bottom: 12px; cursor: pointer; font-size: 22px; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } /* Hide the browser's default checkbox */ .container input { position: absolute; opacity: 0; cursor: pointer; height: 0; width: 0; } /* Create a custom checkbox */ .checkmark { position: absolute; top: 0; left: 0; height: 25px; width: 25px; background-color: #eee; } /* On mouse-over, add a grey background color */ .container:hover input ~ .checkmark { background-color: #ccc; } /* When the checkbox is checked, add a teal background */ .container input:checked ~ .checkmark { background-color: #3bb0a8; } /* Create the checkmark/indicator (hidden when not checked) */ .checkmark:after { content: ''; position: absolute; display: none; } /* Show the checkmark when checked */ .container input:checked ~ .checkmark:after { display: block; } /* Style the checkmark/indicator */ .container .checkmark:after { left: 9px; top: 5px; width: 5px; height: 10px; border: solid white; border-width: 0 3px 3px 0; -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); }
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://www.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)