在纸片边框中添加文本 Material UI
Add text in border of a chip Material UI
我需要使用使用 MaterialUI 预构建的 Chip 组件来创建此样式
使用 html 和 css 解决方案将使用一些文本
但即使在那里结果也不一样,我看到一些例子用 material 实现了相同但使用带有 Chip 装饰的 TextField 但它不一样。
如果你真的想使用 <Chip>
组件,你可以在 Chip 样式上使用 &::before
。
例如:
const Chip = styled(MuiChip)(({ chipTitle }) => ({
"&::before": {
content: `"${chipTitle}"`,
position: "absolute",
top: "-8px",
left: "16px",
backgroundColor: "#fff",
padding: "0 8px"
}
}));
并将其用作:
<Chip
label="Salary Proposal - 500k$"
variant="outlined"
onDelete={handleDelete}
chipTitle="Hello"
/>
查看 this CodeSandbox。当然,个人风格可能会有一些差异,但请根据需要进行更新。
如果您使用的是 Typescript:
您需要先创建扩展默认 ChipProps
.
的类型
例如:
import {styled, Chip as MuiChip, ChipProps as MuiChipProps} from '@mui/material'
interface ChipProps extends MuiChipProps {
chipTitle: string
}
之后,修改styled()
如下:
const Chip = styled(MuiChip)<ChipProps>(({ chipTitle }) => ({
"&::before": {
content: `"${chipTitle}"`,
position: "absolute",
top: "-8px",
left: "16px",
backgroundColor: "#fff",
padding: "0 8px"
}
}));
我需要使用使用 MaterialUI 预构建的 Chip 组件来创建此样式
使用 html 和 css 解决方案将使用一些文本
但即使在那里结果也不一样,我看到一些例子用 material 实现了相同但使用带有 Chip 装饰的 TextField 但它不一样。
如果你真的想使用 <Chip>
组件,你可以在 Chip 样式上使用 &::before
。
例如:
const Chip = styled(MuiChip)(({ chipTitle }) => ({
"&::before": {
content: `"${chipTitle}"`,
position: "absolute",
top: "-8px",
left: "16px",
backgroundColor: "#fff",
padding: "0 8px"
}
}));
并将其用作:
<Chip
label="Salary Proposal - 500k$"
variant="outlined"
onDelete={handleDelete}
chipTitle="Hello"
/>
查看 this CodeSandbox。当然,个人风格可能会有一些差异,但请根据需要进行更新。
如果您使用的是 Typescript:
您需要先创建扩展默认 ChipProps
.
的类型
例如:
import {styled, Chip as MuiChip, ChipProps as MuiChipProps} from '@mui/material'
interface ChipProps extends MuiChipProps {
chipTitle: string
}
之后,修改styled()
如下:
const Chip = styled(MuiChip)<ChipProps>(({ chipTitle }) => ({
"&::before": {
content: `"${chipTitle}"`,
position: "absolute",
top: "-8px",
left: "16px",
backgroundColor: "#fff",
padding: "0 8px"
}
}));