繁体   English   中英

如何:动态切换css页面

[英]how to: dynamically switch css page

我正在为服务器存储空间非常有限的嵌入式设备开发网页。 我希望用户能够在网页的日间模式和夜间模式查看之间切换。 为此,我只想使用单击按钮的不同网页加载页面。 我不想每页都有两份,因为我没有足够的空间。 有没有办法切换到不同的 css 页面或以某种方式动态加载 css? 我只能使用 html 和 javascript。 没有 PHP 或 asp.net。

这里是 go 普通 javascript:

JS:

function change_css(){
    var oLink = document.createElement("link") 
    oLink.href = "new_css.css"; //new css filename
    oLink.rel = "stylesheet"; 
    oLink.type = "text/css"; 
    document.body.appendChild(oLink);
}

HTML:

<button onclick="change_css()" value="css change"/>

让我争论一些更简单的事情:

1:一个CSS:

.day {
  color: black;
  background-color: white;
}

.night {
  color: white;
  background-color: black;
}

.day #content {
  color: blue;
}

.night #content{
  color: red;
}

2:一个HTML:

<html>
  <head>
    <link rel="stylesheet" type="text/css" href="dayornight.css">
  </head>
  <body class="day">
    <div id="content">
        <a>Hello World!</a>
    </div>
  </body>
</html>

3:一小块 JavaScript 或 jQuery 代码绑在按钮上,该按钮从白天到晚上切换身体标签上的 class。

如您所见,如果您在浏览器中打开此示例,更改 class 不仅会更改主体的 CSS 样式,还可以移动包含的项目,因为它们的选择器现在匹配不同。

如何使用动态将组件切换到另一个页面<link to="</div"><div id="text_translate"><p> 请帮我解决这个问题,因为我正在自学。 我有一个使用.map 渲染的商店列表,现在我想渲染用户点击的商店。 我已导入 BarberShops 并尝试使用从 React-Router 到 go 的链接到我的 barberShopHandler 的下一页,但没有用。 在我的 shopList 组件上,我有:</p><pre> import React, { Component } from "react"; import "../List.css"; class ShopList extends Component { render() { return ( &lt;div className="list-item"&gt; &lt;div className="listing" onClick={this.props.click}&gt; &lt;div className="listing-main"&gt; &lt;h3 className="listing-title"&gt;{this.props.shop}&lt;/h3&gt; &lt;p className="listing-subtitle"&gt;{this.props.address}&lt;/p&gt; &lt;p className="listing-opening-hours"&gt; {this.props.operation}&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; ); } } export default ShopList;</pre><p> 在我的列表组件上,我有:</p><pre> import React, { Component } from "react"; // import { Link } from "react-router-dom"; import "./List.css"; import Footer from "../../components/Footer"; import Map from "./Map/Map"; import ShopList from "./components/ShopList"; // import BarberShop1 from "../barberShop/BarberShop1"; // import BarberShop2 from "../barberShop/BarberShop2"; class List extends Component { constructor(props) { super(props); this.state = { shops: [ { id: "0", shopName: " my shop name", address: "my shop address", operatingHour: "Open (9:00 - 20:00)", }, { id: "1", shopName: " my shop name", address: " my shop address", operatingHour: "Open (10:00 - 20:00)", }, ], }; } barberShopHandler = (index) =&gt; { const shops = this.state.shops; if (index === shops[0].id) { **&lt;Link to="/barbershop1"&gt; &lt;BarberShop1 /&gt; &lt;/Link&gt;;** ***which didnt work*** console.log(shops[0].id); } else if (index === shops[1].id) { console.log(shops[1].id); } }; render() { const shops = this.state.shops; return ( &lt;div&gt; &lt;Map /&gt; &lt;Footer /&gt; &lt;div className="list-wrapper" style={{ transform: `translateY(1px)` }}&gt; {shops.map((shop, index) =&gt; { return ( &lt;ShopList key={shop.id} shop={shop.shopName} address={shop.address} operation={shop.operatingHour} click={() =&gt; this.barberShopHandler(index)} &gt;&lt;/ShopList&gt; ); })} &lt;/div&gt; &lt;div className="list-refresh"&gt; &lt;button className="refresh-button"&gt;&lt;/button&gt; &lt;/div&gt; &lt;/div&gt; ); } } export default List;</pre><p> **更新**和我的路由器文件</p><pre>import React, { lazy, Suspense } from "react"; import { BrowserRouter as Router, Switch, Route, Redirect, } from "react-router-dom"; const Login = lazy(() =&gt; import("./pages/login/Login")); const List = lazy(() =&gt; import("./pages/list/List")); const BarberShop1 = lazy(() =&gt; import("./pages/barberShop/BarberShop1")); const BarberShop2 = lazy(() =&gt; import("./pages/barberShop/BarberShop2")); export default function Routes() { return ( &lt;Router&gt; &lt;Switch&gt; &lt;Suspense fallback={&lt;div&gt;Loading...&lt;/div&gt;}&gt; &lt;Redirect from="/" to="/login" /&gt; &lt;Route path="/list" component={List} /&gt; &lt;Route path="/barbershop1" component={BarberShop1} /&gt; &lt;Route path="/barbershop2" component={BarberShop2} /&gt; &lt;/Suspense&gt; &lt;/Switch&gt; &lt;/Router&gt; ); }</pre><p> 我想根据用户点击的内容呈现 BarberShop1 或 BarberShop2</p></div>

[英]How can I Dynamically switch a component into another page using <Link to=

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 CSS切换后如何刷新页面样式 在 React 中动态切换 CSS 文件 如何使用动态将组件切换到另一个页面<link to="</div"><div id="text_translate"><p> 请帮我解决这个问题,因为我正在自学。 我有一个使用.map 渲染的商店列表,现在我想渲染用户点击的商店。 我已导入 BarberShops 并尝试使用从 React-Router 到 go 的链接到我的 barberShopHandler 的下一页,但没有用。 在我的 shopList 组件上,我有:</p><pre> import React, { Component } from "react"; import "../List.css"; class ShopList extends Component { render() { return ( &lt;div className="list-item"&gt; &lt;div className="listing" onClick={this.props.click}&gt; &lt;div className="listing-main"&gt; &lt;h3 className="listing-title"&gt;{this.props.shop}&lt;/h3&gt; &lt;p className="listing-subtitle"&gt;{this.props.address}&lt;/p&gt; &lt;p className="listing-opening-hours"&gt; {this.props.operation}&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; ); } } export default ShopList;</pre><p> 在我的列表组件上,我有:</p><pre> import React, { Component } from "react"; // import { Link } from "react-router-dom"; import "./List.css"; import Footer from "../../components/Footer"; import Map from "./Map/Map"; import ShopList from "./components/ShopList"; // import BarberShop1 from "../barberShop/BarberShop1"; // import BarberShop2 from "../barberShop/BarberShop2"; class List extends Component { constructor(props) { super(props); this.state = { shops: [ { id: "0", shopName: " my shop name", address: "my shop address", operatingHour: "Open (9:00 - 20:00)", }, { id: "1", shopName: " my shop name", address: " my shop address", operatingHour: "Open (10:00 - 20:00)", }, ], }; } barberShopHandler = (index) =&gt; { const shops = this.state.shops; if (index === shops[0].id) { **&lt;Link to="/barbershop1"&gt; &lt;BarberShop1 /&gt; &lt;/Link&gt;;** ***which didnt work*** console.log(shops[0].id); } else if (index === shops[1].id) { console.log(shops[1].id); } }; render() { const shops = this.state.shops; return ( &lt;div&gt; &lt;Map /&gt; &lt;Footer /&gt; &lt;div className="list-wrapper" style={{ transform: `translateY(1px)` }}&gt; {shops.map((shop, index) =&gt; { return ( &lt;ShopList key={shop.id} shop={shop.shopName} address={shop.address} operation={shop.operatingHour} click={() =&gt; this.barberShopHandler(index)} &gt;&lt;/ShopList&gt; ); })} &lt;/div&gt; &lt;div className="list-refresh"&gt; &lt;button className="refresh-button"&gt;&lt;/button&gt; &lt;/div&gt; &lt;/div&gt; ); } } export default List;</pre><p> **更新**和我的路由器文件</p><pre>import React, { lazy, Suspense } from "react"; import { BrowserRouter as Router, Switch, Route, Redirect, } from "react-router-dom"; const Login = lazy(() =&gt; import("./pages/login/Login")); const List = lazy(() =&gt; import("./pages/list/List")); const BarberShop1 = lazy(() =&gt; import("./pages/barberShop/BarberShop1")); const BarberShop2 = lazy(() =&gt; import("./pages/barberShop/BarberShop2")); export default function Routes() { return ( &lt;Router&gt; &lt;Switch&gt; &lt;Suspense fallback={&lt;div&gt;Loading...&lt;/div&gt;}&gt; &lt;Redirect from="/" to="/login" /&gt; &lt;Route path="/list" component={List} /&gt; &lt;Route path="/barbershop1" component={BarberShop1} /&gt; &lt;Route path="/barbershop2" component={BarberShop2} /&gt; &lt;/Suspense&gt; &lt;/Switch&gt; &lt;/Router&gt; ); }</pre><p> 我想根据用户点击的内容呈现 BarberShop1 或 BarberShop2</p></div> 如何基于值动态更改页面的CSS? 如何将CSS媒体类型动态添加到页面 jQuery / CSS:如何动态添加分页符 如何将模板动态切换到AngularJs 如何将动态创建的超链接的css值传递到另一个页面 如何从页面动态删除所有不需要的CSS和JS 如何动态调用html页面的head部分中的css路径
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM