По умолчанию пользовательский интерфейс Material внедряет стили в конце элемента <head>
. Это означает, что его стили придут после стилей, сгенерированных стилями-компонентами, и, таким образом, стили Material-UI победят стили стилей-компонентов, когда CSS специфичность одинакова.
Вы можете использовать компонент StylesProvider
со свойством injectFirst
, чтобы переместить стили Material-UI в начало <head>
, а затем стили стилевых компонентов последуют за ним и победят.
import React from "react";
import styled from "styled-components";
import Button from "@material-ui/core/Button";
import { StylesProvider } from "@material-ui/core/styles";
const StyledButton = styled(Button)`
background-color: red;
border-radius: 0;
`;
export default function App() {
return (
<StylesProvider injectFirst>
<div className="App">
<StyledButton>Hello</StyledButton>
</div>
</StylesProvider>
);
}
Связанные ответы: