【发布时间】:2020-03-25 23:19:22
【问题描述】:
我从未使用过 React、Js 或 CSS。所以,我决定用一些额外的页面制作一个非常简单的 Portfolio 网站。我计划有三个页面 -> 主页、关于和投资组合。我的主页按我的意愿工作。我在 About 页面上工作,我意识到每当我为这个组件使用不同背景颜色的自定义 css 时,它都会使其成为每个组件的默认背景颜色。我正在使用路由从一个组件跳转到另一个组件。我认为我在 index.js 中的路由有问题。我的 index.js 如下所示,
Index.js
import React from 'react';
import ReactDOM from 'react-dom';
import {BrowserRouter as Router, Route} from 'react-router-dom'
import App from './component/js/App';
import About from './component/js/About'
ReactDOM.render((
<Router>
<div>
<Route path='/' component={App} exact/>
<Route path='/about' component={About} strict/>
</div>
</Router>
), document.getElementById('root'))
我没有为 Portfolio 创建路线,因为我还没有开始研究它。我的 App.js 如下所示
App.js
import React from 'react';
import Git from '../../images/github.png';
import Email from '../../images/email.png';
import CV from '../../images/resume.png';
import Resume from '../../files/2019.pdf';
import LinkedIn from '../../images/linkedin.png';
import '../css/App.css';
import {NavLink} from 'react-router-dom';
export default class App extends React.Component {
render = () => {
let git_url = 'xxxx'
let Linkedin = 'xxxx'
return (
<div id='main'>
<div id='menu'>
<NavLink id='nav' to='/about'>About</NavLink>
<NavLink id='nav' to='/portfolio'>Portfolio</NavLink>
<NavLink id='nav' to='/home'>Home</NavLink>
</div>
<div id='name'>
<h1 id='pp'>xxxxx</h1>
<h2 id='title'>Engineer / Developer / Designer</h2>
</div>
<div id='contacts'>
<a href={git_url} target='_blank'><img className='nav' id='git' src={Git} /></a>
<a href={Resume} target='_blank'><img className='nav' id='cv' src={CV} /></a>
<a href={Linkedin} target='_blank'><img className='nav' id='cv' src={LinkedIn} /></a>
<img className='nav' id='email' src={Email} />
</div>
</div>
)
}
}
它的 css 如下所示
App.css
body{
background-color: khaki}
#main{
display: flex;
text-align: center;
flex-direction: column;
margin-top: 10%;
}
#menu {
text-align: center;
flex-direction: row;
}
#nav {
padding: 14px 16px;
text-decoration: none;
color: #061A40;
font-size: 20px;
font-weight: bold;
}
#nav:hover {
background-color: #d75f5f;
}
#pp {
color: transparent;
background: url(../../images/background2.jpg) no-repeat center center;
background-size:100%;
-webkit-background-clip: text;
background-clip: text;
margin: 0;
padding: 0;
font-size: 100px;
}
#title {
font-size: 24px;
color: #214F4B;
}
#contacts {
display: flex;
align-self: center;
flex-wrap: wrap;
}
.nav {
height: auto;
width: 50px;
margin: 15px;
transition: transform 3s;
}
.nav:hover{
transform: scale(1.5);
}
我创建了一个关于组件的测试来解决这个背景颜色问题,下面是我的代码,
关于.js
import '../css/About.css'
import React from 'react';
export default class About extends React.Component {
render = () => {
return (
<div>
<div id='test'>
<h1>Test</h1>
</div>
<div id='line'></div>
</div>
)
}
}
这个的 css 如下所示
About.css
body {
background-color:white;
}
#test {
text-align: center;
background-color: #B6C8A9;
padding: 0.01%;
}
h1 {
color: #160C28;
font-family: Arial;
}
在 About.css 文件中,如果我有 body{background-color: ...},每个页面都会变成那种颜色。如果我把它拿出来,每一页都会变成 App.css 中设置的任何颜色。正如我所说,我一般是 JS、CSS 和 React 的新手。据我了解,如果我在组件中包含自定义 css,它应该只将其应用于该组件。我不知道为什么它适用于所有组件。
【问题讨论】:
标签: javascript css reactjs