#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. Я надеялся, что это сработает, но, к сожалению, это не дало желаемого эффекта. Вместо этого это повлияло на выравнивание компонента по отношению к другим компонентам, поместив его в строку, отличную от них.