如何在 Material UI 中更改复选框的大小和颜色?


复选框是在需要从选项列表中选择多个选项时的一个关键组件。为了控制复选框的大小并使其与网页设计相匹配,请确保已添加了合适的大小和颜色。

在本文中,我们将学习如何在 Material UI 中更改复选框的大小和颜色。在继续本文之前,创建 React 项目并将 Material UI 添加到其中是先决条件。让我们开始并了解如何全面修改复选框的大小和颜色。

修改复选框大小和颜色的步骤

以下是使用 React 在 Material UI 中修改复选框的大小和颜色的完整步骤:

步骤 1:创建一个新的 React 应用并安装 MUI

首先,我们必须先有一个安装了 Material UI 的 React 应用。让我们创建一个新的 React 应用并通过运行以下命令安装 Mui:

npx create-react-app myproject
cd myproject
npm install @mui/material @emotion/react @emotion/styled

步骤 2:将所需的组件导入到 React 中

现在,当创建新的 React 应用时,在 src 文件夹中有一个主要的 App.js 文件。打开它并将 Checkbox 组件导入以更改复选框的大小和颜色。

import React from "react";
import { Checkbox } from '@mui/material

export default function App() {
   return (
      …
   )
}

步骤 3:修改复选框大小和颜色

以下是使用 Material UI 如何在 React 中更改复选框的大小和颜色的方法。稍后,我们将查看一些显示各种复选框标签方法的示例。

<Checkbox {...label} size="small" color="primary" />
<Checkbox {...label} defaultChecked color="success" />

现在,我们已经看到了使用 React 在 Material UI 中修改或更改复选框的大小和颜色的完整步骤。让我们看一些使用不同方法来完成此操作的示例。

复选框标签 API

  • <Checkbox> - 此 API 用于使用 Material UI 向项目添加复选框组件功能。

属性

  • checked - 当为 true 时,此属性用于选中复选框。

  • checkedIcon - 此属性用于在选中时显示图标。

  • classes - 此属性用于覆盖或向元素添加样式。

  • color - 此属性用于向复选框添加颜色。它包括 primary、secondary、success、info、error、warning 等。

  • defaultChecked - 此属性用于在用户未控制时选中复选框。

  • disabled - 此属性用于禁用复选框。

  • disableRipple - 此属性用于禁用复选框的波纹效果。

  • icon - 此属性用于在未选中时显示图标。

  • id - 此属性用于定义复选框 ID。

  • Inderterminate - 此属性用于使复选框处于不确定状态。

  • indeterminateIcon - 此属性用于在复选框中显示不确定状态图标。

  • inputProps - 此属性用于向输入元素添加属性。

  • inputRef - 此属性用于将 ref 传递给复选框。

  • onChange - 此属性用于触发回调函数。

  • required - 此属性用于为输入元素添加必填值。

  • size - 此属性用于更改复选框大小。

  • sx - 此属性用于向 Material UI 组件添加自定义样式。

  • value - 此属性用于定义组件值。

示例

在此示例中,我们设计了一些具有不同大小的复选框。您可以使用“size”属性调整复选框大小,该属性提供中等和大型选项。

import Checkbox from "@mui/material/Checkbox";
import React from "react";

export default function App() {
   return (
      <div
         style={{
            display: "flex",
            marginTop: 30,
            flexDirection: "column",
            alignItems: "center",
            justifyContent: "center",
            gap: 10,
         }}>
         <Checkbox size="small"  />
         <Checkbox size="medium" />
         <Checkbox size="large" />
      </div>
   );
}

输出

示例

在此示例中,我们还创建了具有颜色的复选框。通过使用“color”属性,您可以将复选框颜色更改为 info、warning、success、default 或 error。

import Checkbox from "@mui/material/Checkbox";
import React from "react";

export default function App() {
   return (
      <div
         style={{
            display: "flex",
            marginTop: 30,
            flexDirection: "column",
            alignItems: "center",
            justifyContent: "center",
            gap: 10,
         }}>
         <Checkbox size="medium" color="default" />
         <Checkbox size="medium" color="error" />
         <Checkbox size="medium" color="info" />
         <Checkbox size="medium" color="success" />
         <Checkbox size="medium" color="primary" />
         <Checkbox size="medium" color="secondary" />
         <Checkbox size="medium" color="warning" />
      </div>
   );
}

输出

示例

此外,为了向我们的复选框添加标签并进一步自定义其颜色,我们使用了 FormControlLabel 组件。与之前一样,您可以通过使用前面提到的“color”属性来修改复选框颜色。

import { FormControlLabel, FormGroup } from "@mui/material";
import Checkbox from "@mui/material/Checkbox";
import React from "react";

export default function App() {
   return (
      <div
         style={{
            display: "flex",
            marginTop: 30,
            flexDirection: "column",
            alignItems: "center",
            justifyContent: "center",
            gap: 10,
         }}>
         <FormGroup>
            <FormControlLabel control={<Checkbox color="primary" />} label="Primary checkbox" />
            <FormControlLabel control={<Checkbox color="secondary" />} label="Secondary checkbox" />
            <FormControlLabel control={<Checkbox color="info" />} label="info checkbox" />
            <FormControlLabel control={<Checkbox color="error" />} label="error checkbox" />
            <FormControlLabel control={<Checkbox color="warning" />} label="warning checkbox" />
            <FormControlLabel control={<Checkbox color="success" />} label="success checkbox" />
         </FormGroup>
      </div>
   );
}

输出

示例

在此示例中,为了在大小和颜色变化(包括 primary、secondary info、warning、success、default 和 error)方面提供自定义选项,我们在使用 FormControlLabel 创建带标签的复选框时组合了“size”和“color”属性。

import { FormControlLabel, FormGroup } from "@mui/material";
import Checkbox from "@mui/material/Checkbox";
import React from "react";

export default function App() {
   return (
      <div
         style={{
            display: "flex",
            marginTop: 30,
            flexDirection: "column",
            alignItems: "center",
            justifyContent: "center",
            gap: 10,
         }}>
         <FormGroup>
            <FormControlLabel control={<Checkbox color="primary" size="small"/>}label="Primary checkbox"/>
            <FormControlLabel control={<Checkbox color="secondary" size="small"/>}label="Secondary checkbox"/>
            <FormControlLabel control={<Checkbox color="info" size="medium"/>}label="info checkbox"/>
            <FormControlLabel control={<Checkbox color="error" size="medium"/>}label="error checkbox"/>
            <FormControlLabel control={<Checkbox color="warning" size="large"/>}label="warning checkbox"/>
            <FormControlLabel control={<Checkbox color="success"size="large"/>}label="success checkbox"/>
         </FormGroup>
      </div>
   );
}

输出

示例

在此示例中,我们借助 FormControlLabel 创建了自定义复选框和标签,该组件使用‘sx’属性更改大小和颜色。

import { FormControlLabel, FormGroup } from "@mui/material";
import Checkbox from "@mui/material/Checkbox";
import React from "react";

export default function App() {
   return (
      <div
         style={{
            display: "flex",
            marginTop: 30,
            flexDirection: "column",
            alignItems: "center",
            justifyContent: "center",
            gap: 10,
         }}>
         <FormGroup>
            <FormControlLabel
               label="custom checkbox"
               control={
                  <Checkbox
                     sx={{
                        "& .MuiSvgIcon-root": {
                           fill: "pink",
                           fontSize: 80,
                        },
                     }}
                  />
               }
               sx={{
                  '& .MuiFormControlLabel-label': {
                     color: 'pink',
                     fontSize: 40,
                  },
               }}
            />
            <FormControlLabel
               label="custom checkbox"
               control={
                  <Checkbox
                     sx={{
                        "& .MuiSvgIcon-root": {
                           fill: "orange",
                           fontSize: 100,
                        },
                     }}
                  />
               }
               sx={{
                  '& .MuiFormControlLabel-label': {
                     color: 'orange',
                     fontSize: 60,
                  },
               }}
            />
            <FormControlLabel
               label="custom checkbox"
               control={
               <Checkbox
                  sx={{
                     "& .MuiSvgIcon-root": {
                        fill: "violet",
                        fontSize: 120,
                     },
                  }}
               />
               }
               sx={{
                  '& .MuiFormControlLabel-label': {
                     color: 'violet',
                     fontSize: 80,
                  },
               }}
            />
         </FormGroup>
      </div>
   );
}

输出

更新于: 2023年10月30日

2K+ 次浏览

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告