我有一个简单的React App,使用Redux的Provider
包装了我的App
组件。
import React from 'react';
import ReactDOM from 'react-dom';
import styled from 'styled-components';
import { Provider } from 'react-redux';
import App from './App';
import store from './store';
import registerServiceWorker from './registerServiceWorker';
const MainContainer = styled.div`
margin: 0;
padding: 0;
height: 100vh;
background-color: red;
`;
ReactDOM.render(
<MainContainer>
<Provider store={store}>
<App />
</Provider>
</MainContainer>,
document.getElementById('root'),
);
registerServiceWorker();
但是,当此应用程序渲染时,屏幕边缘(所有侧面)周围都有白色间隙。覆盖body标签以使App
内容进入屏幕边缘的正确方法是什么?
答案 0 :(得分:7)
这是浏览器的默认样式。您可以使用Normalize.css之类的东西,也可以自己去除边框的边缘和填充。
body {
margin: 0;
padding: 0;
}
您可以使用injectGlobal
进行此操作。
import { injectGlobal } from 'styled-components';
injectGlobal`
body {
margin: 0;
padding: 0;
}
`;
答案 1 :(得分:2)
感谢您的回答,但我一直在寻找特定于样式组件的答案。
结果显示,样式化组件具有辅助方法injectGlobal
,该方法可以覆盖全局body标签。
使用此选项,可以设置所需的属性-在这种情况下,无需边距/填充。因此,在index.js
中添加以下内容即可解决此问题。
import { injectGlobal } from 'styled-components';
injectGlobal`
body {
margin: 0;
padding: 0;
}
`;
答案 2 :(得分:0)
对于styled components v4
及更高版本,请改用createGlobalStyle
:
import { createGlobalStyle } from "styled-components"
const GlobalStyle = createGlobalStyle`
body {
color: red;
}
`
// later in your app's render method
<React.Fragment>
<Navigation />
<OtherImportantTopLevelComponentStuff />
<GlobalStyle />
</React.Fragment>