javascript - 是否可以根据路由激活影响 html 标记的 css 类?
问题描述
我正在创建一个仅在主页(“/”)中应具有的反应站点:
html{
overflow: hidden;
}
但是当我移动到 css 处于活动状态的任何其他页面(“/something”)时
(css 位于仅在 home.js 中链接的 home.css 中)
以下所有代码都是 App.js:
const App = () => {
return (
<Router>
<Switch>
<Route exact path="/" component={Home} />
<Route path="/page" component={Page} />
</Switch>
</Router>
);
}
主页.js:
import './Home.css';
主页.css:
@media (min-width: 1024px) {
html {
overflow: hidden;
}
}
页面.js:
import './Page.css';
页面.css:
(nothing)
我希望页面“/”使用 Home.css 的 css,而其他页面不使用 Home.css
解决方案
<head>
您的 css 导入不会动态添加和删除,当您构建捆绑软件时,它们都会被隐藏并注入到单个 css 文件中或捆绑到单个 css 文件中。
可以在导航时向标签添加或删除样式,<html>
但这会很混乱。重新构建您的应用程序将更容易(也更明智),以便您可以将其应用于overflow:hidden
某些页面上的包含元素,但不能应用于其他页面。
推荐阅读
- reactjs - 通过 React 应用程序将 PDF 文件下载到文件夹中
- javascript - 我对 JavaScript 中 Array.fill() 的行为感到困惑
- php - PHP测验系统
- javascript - 在 React.js 中渲染页面时,如何使数字从零快速上升?
- c++ - 给定一个仅包含 1 和 0 的 N × M 矩阵,找到仅包含 1 的最大矩形并返回其面积
- terminal - 新选项卡在 zsh、MacOS mojave 10.14.6 的同一目录中不起作用
- flutter - 具有 maxLength 或 minLength 属性时,如何向 TextField 添加阴影?
- python - 如何突出显示 tkinter.Text 中的特定单词?
- ios - 如何从 Swift 的表格视图中永久删除一行?
- debugging - Xamarin 使用 TabbedPage iOS 形成 MasterDetail 页面 [BUG]