我开始尝试在 React 中设置页面样式,遇到了一个问题:页面组件被压到屏幕左边缘,而其余空间没有填充样式。
这是我们得到的图片:
我不明白问题出在哪里,是在样式中,还是在 React 本身中
这是组件类本身:
export default class NotFound extends Component {
static NotFoundComponent() {
return (
<div className="error-container">
<div className="error-code">
<h1>404</h1>
</div>
<br />
<div className="error-description">
<h2>Page not found</h2>
</div>
<div className="divider"></div>
<Link to="/" className="main-button">
Back to main page
</Link>
</div>
);
}
render() {
return (
<>
{NotFound.NotFoundComponent()}
</>
);
}
}
这是 NotFound.css 样式文件:
.error-container {
background-color: black;
color: white;
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: center;
min-height: 100vh;
padding-top: 100px;
}
.error-code h1 {
font-size: 5em;
}
.main-button {
display: inline-block;
padding: 15px 30px;
font-size: 1.2em;
background-color: #007bff;
color: white;
border: none;
cursor: pointer;
text-decoration: none;
margin: 0 auto;
}
.error-description h2 {
font-size: 2em;
color: gray;
flex: 1;
}
.divider {
width: 80px;
height: 2px;
background-color: gray;
margin-top: 20px;
margin-bottom: 20px;
}
这是index.css 文件:
:root {
font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
line-height: 1.5;
font-weight: 400;
color-scheme: light dark;
color: rgba(255, 255, 255, 0.87);
background-color: #242424;
font-synthesis: none;
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
a {
font-weight: 500;
color: #646cff;
text-decoration: inherit;
}
a:hover {
color: #535bf2;
}
body {
margin: 0;
display: flex;
place-items: center;
min-width: 320px;
min-height: 100vh;
}
h1 {
font-size: 3.2em;
line-height: 1.1;
}
button {
border-radius: 8px;
border: 1px solid transparent;
padding: 0.6em 1.2em;
font-size: 1em;
font-weight: 500;
font-family: inherit;
background-color: #1a1a1a;
cursor: pointer;
transition: border-color 0.25s;
}
button:hover {
border-color: #646cff;
}
button:focus,
button:focus-visible {
outline: 4px auto -webkit-focus-ring-color;
}
@media (prefers-color-scheme: light) {
:root {
color: #213547;
background-color: #ffffff;
}
a:hover {
color: #747bff;
}
button {
background-color: #f9f9f9;
}
}

问题出在全局 React 样式中,即在 index.css 文件中
我不能确切地说为什么它会产生这种效果,但如果在体内
注释掉样式显示:flex;然后一切都会恢复正常
这可能不是解决问题的最佳方法,但到目前为止这是我找到的唯一方法。