html - 使用 Material ui svg 图标作为背景图片

标签 html css reactjs material-ui google-material-icons

我可以用@material-ui/icons svg 图像作为其他元素的背景。?尝试了下面的代码,但没有奏效。

import CarIcon from '@material-ui/icons/DriveEtaRounded';

const carIcon = <CarIcon />

function Cover(){
  return (
    <div
        className={classes.cover}
        style={{ backgroundImage: 'url('+ carIcon+')' }}
    />
  )
}

最佳答案

@material-ui/icons是 React 组件,如果你打开它们的源代码,它们只包含封装在 <svg> 中的 SVG 数据。使用效用函数标记。但是,您可以通过直接使用它们和一些样式来模拟背景图像行为:

import CarIcon from '@material-ui/icons/DriveEtaRounded';

function Cover(){
  return (
    <div style={{position: 'relative', width: '200px', height: '100px'}}>
      <CarIcon style={{position: 'absolute', left: 0, top: 0, width: '100%', height: '100%'}} />
    </div>
  )
}
这是一个示例,但只要父元素的尺寸由其他内容设置,它就会起作用。您也可以模拟 background-size: cover通过添加 preserveAspectRatio='xMidYMid slice' 的行为到图标组件(默认值对应于 contain )。
这种方法的另一个好处是图标仍然是 SVG,可以进一步设置样式或动画。

关于html - 使用 Material ui svg 图标作为背景图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62009252/

相关文章:

html - 隐藏动态生成的 border-top 属性 <td>

jquery - 使 ajax 搜索上的 css 加载器停留更多时间

php - 如何使用 AngularJS 或 jQuery 更改 HTML 表格中的文本颜色?

javascript - 将类分配给中央 block

angularjs - 使用 Angular 创建动画 1-3 列布局

javascript - 当 Material UI React Textfield 具有位置粘性并且已向上滚动时,如何使它不被文本覆盖?

html - 多级下拉菜单无法在悬停和 Bootstrap 上使用

html - 我有一个输入框,希望文本就在它下面

reactjs - React/Redux 如何等待分派(dispatch)的操作完成?

reactjs - Redux 形式的 FieldArray,handleSubmit' 未定义