import { Checkbox } from 'antd'
<Checkbox style={{ color: 'red', backgroundColor: 'black' }}>Dr John</Checkbox>
我怎样才能更改复选框的颜色,而不是标签“Dr John”的颜色?上面的样式只更改标签的样式,而不是复选框的样式。
我怎么改变复选框的颜色,而不是标签'Dr John'的颜色?上述样式只更改了标签的样式,而没有更改复选框的样式。
您可以使用简单的CSS
.ant-checkbox-checked .ant-checkbox-inner {
background-color: red;
border-color: red;
}
const CustomCheckbox = styled(Checkbox)`
${props =>
props.backgroundColor &&
css`
& .ant-checkbox-checked .ant-checkbox-inner {
background-color: ${props.backgroundColor};
border-color: ${props.backgroundColor};
}
`}
`;
使用 styled-components 包,你可以像这样实现以下代码。
<CustomCheckbox backgroundColor='green' />
我能够使用 @humanbean 和此答案,动态地改变复选框的颜色。
Checkboxes.js
<Checkbox
value={key}
key={index}
style={{
"--background-color": boxColors[index],
"--border-color": boxColors[index],
}}>
Title
</Checkbox>
CSS
.ant-checkbox-checked .ant-checkbox-inner {
background-color: var(--background-color);
border-color: var(--border-color);
}
在您的CSS中覆盖默认的antd复选框类,并提供必要的属性来自定义它。
例如:
index.css
.ant-checkbox .ant-checkbox-inner {
width: 25px;
height: 25px;
background-color: red;
border-color: red;
}
.ant-checkbox-disabled .ant-checkbox-inner {
width: 25px;
height: 25px;
background-color: gray;
border-color: gray;
}
.ant-checkbox-checked .ant-checkbox-inner {
width: 25px;
height: 25px;
background-color: transparent;
border-color: red;
}
index.js
import React from "react";
import ReactDOM from "react-dom";
import { Checkbox } from "antd";
import "antd/dist/antd.css";
import "./index.css";
class App extends React.Component {
onChange(e) {
console.log(`checked = ${e.target.checked}`);
}
render() {
return (
<div>
<Checkbox onChange={this.onChange} disabled={true}>Checkbox</Checkbox>
</div>
);
}
}
ReactDOM.render(<App />, document.getElementById("root"));
.ant-checkbox-checked .ant-checkbox-inner {
background-color: #3350ac;
border-color: #3350ac;
}
如果它被本地的 ant CSS 覆盖了,那么就在你的 CSS 中加上 !important,这样它就会覆盖原有的样式。
.ant-checkbox-checked .ant-checkbox-inner {
background-color: #3350ac !important;
border-color: #3350ac !important;
}
.checkbox {
.ant-checkbox .ant-checkbox-inner {
border-color: red; // for mouse focus color
}
.ant-checkbox-checked .ant-checkbox-inner {
background-color: green; // selected color
border-color: green;
}
}
.checkbox {
.ant-checkbox-checked .ant-checkbox-inner {
background-color: green80;
border-color: green80;
}
.ant-checkbox-wrapper:hover .ant-checkbox-inner,
.ant-checkbox:hover .ant-checkbox-inner,
.ant-checkbox-input:focus+.ant-checkbox-inner {
border-color: green80 !important;
}
.ant-checkbox-indeterminate .ant-checkbox-inner::after {
background-color: green80;
}
}
.ant-checkbox-checked .ant-checkbox-inner {
background-color: #99b82d !important;
border-color: #99b82d;
}
.ant-checkbox-wrapper:hover .ant-checkbox-checked .ant-checkbox-inner {
background-color: #99b82d !important;
border-color: #99b82d !important;
}
.ant-checkbox-checked:hover .ant-checkbox-checked .ant-checkbox-inner {
background-color: #99b82d !important;
border-color: #99b82d !important;
}
.ant-checkbox-checked:after {
border-color: #99b82d !important;
}
.ant-checkbox:hover::after {
border-color: #99b82d !important;
}
.ant-checkbox:hover .ant-checkbox-inner {
border-color: #99b82d !important;
}
.ant-checkbox-inner {
background-color: #e3f0f5 !important;
}
使用CSS动态更改复选框,您还可以将className添加到复选框中,然后在CSS中访问它,如下所示:
<Checkbox className="my-checkbox">Your checkbox</Checkbox>
然后在CSS中
.my-checkbox > ant-checkbox-checked .ant-checkbox-inner {
background-color: "red";
border-color: "red";
}
.ant-checkbox-input {
accent-color: "green";
}
import 'antd/dist/antd.css';
,accent-color 就被忽略了。 - undefined