reactjs - Material-ui:用省略号在 2 行中写入文本

标签 reactjs text material-ui box

对于 reactjs 应用程序,我使用 Material-ui ( https://material-ui.com/ ) 进行设计。而且我需要在卡片中写入与 2 行完全匹配的文本。
当文本可以包含在 2 行或 1 行中时,我已经完成的工作,但对于较长的文本,剪切变为单词之前,而不是省略号。
enter image description here
这是我所做的

   <Box
        fontSize="h5.fontSize"
        component="div"
        overflow="hidden"
        textOverflow="ellipsis"
        height={70}
      >
        {title}
      </Box>
在第一张牌上的结果是好的,因为在第二张牌上,最后一个单词“Floooooo”显示在隐藏部分(第三行)中,但没有显示在带有省略号的第二行中。我尝试添加 whiteSpace="nowrap"但文本只有 1 行高(图 2)enter image description here
你能帮我吗?

最佳答案

您可以使用 CSS 规则 -webkit-line-clamp: 2结合 word-break: break-all

const useStyles = makeStyles({
  root: {
    maxWidth: 300,
  },
  media: {
    height: 100,
  },
  customBox: {
    display: "-webkit-box",
    boxOrient: "vertical",
    lineClamp: 2,
    wordBreak: "break-all",
    overflow: "hidden"
  }
});

function App() {

  const classes = useStyles();
  const title = "pos2 test long Flooooooooooooooooooooooooooooooooooo";

  return (
    <Card className={classes.root}>
      <CardMedia
        className={classes.media}
        image="https://via.placeholder.com/300x100"
      />
      <CardContent>
        <Box
          fontSize="h5.fontSize"
          component="div"
          classes={{root: classes.customBox}}
        >
          {title}
        </Box>
      </CardContent>
    </Card>
  );
}

ReactDOM.render(<App/>, document.getElementById("root"));
<body>
  <div id="root"></div>

  <script src="https://unpkg.com/react@16/umd/react.development.js"></script>
  <script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
  <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
  <script src="https://unpkg.com/@material-ui/core@latest/umd/material-ui.development.js"></script>

  <script type="text/babel">
    const { Box, Card, CardContent, CardMedia, makeStyles } = MaterialUI;
  </script>
</body>

关于reactjs - Material-ui:用省略号在 2 行中写入文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64315111/

相关文章:

reactjs - Cookie 未存储在浏览器中

javascript - 即使应该在那里,也无法访问对象属性

node.js - 如何在Electron-Forge中成功高效地安装SQLite3?

javascript - 如何在文本输入中调用异步函数?

python - 在 python 中构建矩阵

python - 正则表达式匹配python中方括号中的数字

javascript - 为什么导出/导入默认 ES 模块属性比命名模块属性更快?

java - 可滚动、不可编辑、可更新的文本

css - 更改选择组件边框和箭头图标 Material UI 的颜色

reactjs - material-ui的maxWidth uncenters对话框(模态)