I have here a problem that the cardTitle
shouldn't overlap the Card
when the texts is too long. Right now what I'm doing is setting a static maxWidth
which I don't like. I want it to adjust based on the Card
.
Is that possible?
<Stack
sx={{
maxWidth: "330px"
}}
>
<Tooltip
title={<Typography variant="body1">{cardTitle}</Typography>}
>
<Typography
variant="h3"
sx={{
whiteSpace: "nowrap",
overflow: "hidden",
textOverflow: "ellipsis",
width: "100%"
}}
>
{cardTitle}
</Typography>
</Tooltip>
</Stack>
CodePudding user response:
You need to add overflow: "hidden"
to the sx
prop of your Stack
and its child div
's that define the flex-box. Simply, after removing the maxWidth
:
sx={{
maxWidth: "330px"
}}
You need to replace the following part:
<Stack
gap={2}
sx={{
p: 2,
flexDirection: "row",
"& > div": {
"&:first-of-type": {
flex: "1 1 35%"
},
"&:last-of-type": {
flex: "1 1 65%"
}
}
}}
>
with this code:
<Stack
gap={2}
sx={{
p: 2,
flexDirection: "row",
overflow: "hidden",
"& > div": {
"&:first-of-type": {
flex: "1 1 35%",
overflow: "hidden"
},
"&:last-of-type": {
flex: "1 1 65%",
overflow: "hidden"
}
}
}}
>
You can take a look at this sandbox for a live working example.