Javascript 为什么普通JS项目的CSS会被React JS编译器覆盖?
我有一个香草JS项目,我试图在react中实现它。两者的HTML/JSX是相同的,样式表也是相同的,唯一的区别是vanilla JS的整个HTML都写在一个index.HTML文件中Javascript 为什么普通JS项目的CSS会被React JS编译器覆盖?,javascript,html,css,reactjs,Javascript,Html,Css,Reactjs,我有一个香草JS项目,我试图在react中实现它。两者的HTML/JSX是相同的,样式表也是相同的,唯一的区别是vanilla JS的整个HTML都写在一个index.HTML文件中 <body> <header> <h1>Todo app</h1> </header> <form> <input type="text" class="tod
<body>
<header>
<h1>Todo app</h1>
</header>
<form>
<input type="text" class="todo-input" />
<button class="todo-button" type="submit">
<i class="fas fa-plus-square"></i>
</button>
<div class="select">
<select name="todos" class="filter-todo">
<option value="all">All</option>
<option value="completed">Completed</option>
<option value="uncompleted">Uncompleted</option>
</select>
</div>
</form>
<script src="./app.js"></script>
</body>
但是,React输出似乎覆盖了CSS
并且不会将CSS解释为香草项目的html文件
请帮助我理解React编译器的这种奇怪行为。TL;DR:导致差异的原因是一个版本中包含引导,而另一个版本中没有 根据我对这个问题的评论:
看起来您正在React构建中加载引导(主要是CSS框架),而不是普通构建中。这可能是因为您只在react构建中包含了它,或者是因为无法在普通构建中加载它,或者其他原因 以及询问者的回答: 似乎我使用的图标建议我在index.html头部包含某些链接,这些链接包括引导并导致冲突。在vanilla项目中,没有使用引导链接
你的问题到底是什么还不是很清楚。React不会改变HTML和CSS的工作方式。但是CSS被不同的解释,因为您可以看到样式被破坏,导致输出失真。这可能是由于一些问题造成的。您的CSS可能与其他CSS文件竞争。您的工具链可能没有正确地将CSS包含在生成的文件中。您可能正在使用一个不起作用的CSS导入器。如何调试并找到它?没有其他CSS文件,所以我想没有竞争对手。如何确定其他两个?看起来您正在React构建中加载引导(主要是CSS框架),而不是普通构建中。这可能是因为您只在react构建中包含了它,或者是因为无法在普通构建中加载它,或者其他原因。
import React from "react";
import './App.css';
//importing components
import Form from "./components/Form";
function App() {
return (
<div className="App">
<header>
<h1>Todo app</h1>
</header>
<Form />
</div>
);
}
export default App;
import React from "react";
const Form = () =>{
return(
<form>
<input type="text" className="todo-input" />
<button className="todo-button" type="submit">
<i className="fas fa-plus-square"></i>
</button>
<div className="select">
<select name="todos" className="filter-todo">
<option value="all">All</option>
<option value="completed">Completed</option>
<option value="uncompleted">Uncompleted</option>
</select>
</div>
</form>
);
}
export default Form;
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
background-image: linear-gradient(120deg, #f6d365 0%, #fda085 100%);
color: white;
font-family: "Poppins", sans-serif;
min-height: 100vh;
}
header {
font-size: 2rem;
}
header,
form {
min-height: 20vh;
display: flex;
justify-content: center;
align-items: center;
}
form input,
form button {
padding: 0.5rem;
font-size: 2rem;
border: none;
background: white;
}
form button {
color: #ff6f47;
background: #f7fffe;
cursor: pointer;
transition: all 0.3s ease;
}
form button:hover {
background: #ff6f47;
color: white;
}