javascript - 如何用 MUI 制作一个圆形复选框?

标签 javascript reactjs material-ui

我尝试匹配的设计要求复选框是一个圆圈。我将 MUI 与 React 结合使用。

边框半径不起作用,因为实际图标的边框不是可见复选框的边框。

我不能只使用 Font Awesome 之类的东西,因为它实际上需要选中和取消选中。

// Current Styling
const styles = theme => ({
  nested: {
    paddingLeft: theme.spacing.unit * 4,
  },
  icon: {
    margin: theme.spacing.unit,
    fontSize: 25,
  },
  root: {
    color: cyan['A400'],
    '&$checked': {
      color: cyan['A400'],
    },
  },
  checked: {},
});

// Actual checkbox code
return (
  // Holds the individual step with edit icon and delete icon
  <>
    <ListItemIcon>
      {/* Checkbox */}
      <Checkbox
        type="checkbox"
        defaultChecked={step.completed} 
        onChange={this.onChange}
        value="true"
        classes={{
          root: classes.root,
          checked: classes.checked,
        }}
      />
    </ListItemIcon>

我想保留 MUI Checkbox 的工作代码,但只是更改一些样式以使边缘成为完美的圆(类似于单选按钮,但中间有一个复选标记。

最佳答案

Material 的复选框 supports custom icons .有通告checked circle Material icons ,对于空圆圈,您可以稍微作弊并使用 Radio 输入图标(它们大小相同,因此效果很好):

import Checkbox from '@material-ui/core/Checkbox';
import CircleChecked from '@material-ui/icons/CheckCircleOutline';
import CircleCheckedFilled from '@material-ui/icons/CheckCircle';
import CircleUnchecked from '@material-ui/icons/RadioButtonUnchecked';

…

<Checkbox
  icon={<CircleUnchecked />}
  checkedIcon={<CircleChecked />}
  …
/>

// or with filled checked icon:

<Checkbox
  icon={<CircleUnchecked />}
  checkedIcon={<CircleCheckedFilled />}
  …
/>

…它看起来像这样(fooCheckCircleOutlinebarCheckCircle):

enter image description here

关于javascript - 如何用 MUI 制作一个圆形复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54332350/

相关文章:

reactjs - React Material UI Autocomplete 显示有问题的选项

JavaScript:四舍五入 100

javascript - 同步解决HTTP延迟 promise

reactjs - 如何获取 React Table Row Data Onclick

reactjs - 如何从父级在react bootstrap(Dropdown)中设置 Prop

javascript - 如何在 react 中将组件作为 Prop 传递给 Prop ?

reactjs - Material ui TextField 中的必需属性不适用于提交

javascript - 如何使用javascript查找二维数组的中心元素的索引?

javascript - 使用 jquery 从数组中获取唯一数据

javascript - 焦点 ContentEditable div