Как выровнять по центру пользовательский значок SVG в материале-Кнопка значка пользовательского интерфейса

#css #reactjs #svg #material-ui #icons

#css #reactjs #svg #материал-пользовательский интерфейс #Значки

Вопрос:

Я пытаюсь создать кнопку значка, которая выглядит следующим образом: введите описание изображения здесь

Пока что у меня получилось следующее: введите описание изображения здесь

Вот код:

 import { SvgIcon, IconButton } from '@material-ui/core';

import {ReactComponent as homemadePlayIcon} from "./play-icon.svg"

<IconButton onClick={this.playIconButtonClick} disableRipple={true} style={{color: "rgb(0,0,0,0)", width: '35px', height: '35px', backgroundColor: '#f5f5f5', boxShadow: "3px 3px 10px rgba(0, 0, 0, 0.2)"}}>

    <SvgIcon component={homemadePlayIcon} />

</IconButton> 
  

Как выровнять значок по центру внутри кнопки значка?

Спасибо, Джеймс

Ответ №1:

Я получил желаемый результат, используя @svgr с параметром —icon (чтобы сохранить свойство viewbox SVG) и включив сгенерированный компонент в IconButton следующим образом:

 import { IconButton } from '@material-ui/core';

import PlayIcon from "./icons/PlayIcon.js"

<IconButton onClick={this.playIconButtonClick} disableRipple={true} style={{color: "rgb(0,0,0,0)", width: '35px', height: '35px', backgroundColor: '#f5f5f5', boxShadow: "3px 3px 10px rgba(0, 0, 0, 0.2)"}}>
    <PlayIcon />
</IconButton> 
  

Ответ №2:

Отредактируйте это с помощью этого:

 <IconButton onClick={this.playIconButtonClick} disableRipple={true} style={{color: "rgb(0,0,0,0)", width: '35px', height: '35px', backgroundColor: '#f5f5f5', boxShadow: "3px 3px 10px rgba(0, 0, 0, 0.2)", display: "flex", justifyContent: "center", alignItems: "center"}}>
  

Комментарии:

1. Я надеялся, что это сработает, но, к сожалению, это не дало желаемого эффекта. Вместо этого это повлияло на выравнивание компонента по отношению к другим компонентам, поместив его в строку, отличную от них.