当前位置: 首页 > 知识库问答 >
问题:

根据用户单击将样式表添加到所有页面

鲁熙云
2023-03-14

这个想法是在网站上有一个设置页面,可以通用地改变主题。因此设置页将包含此链接;

null

<a href="">Click here to enable dark mode</a>

null

单击此按钮将为每个页面添加另一个样式表。

null

<?php echo "<link rel='stylesheet' type='text/css' href='darkmode.css'>"; >

null

这就是我们的想法,站点已经构建好,添加darkmode.css 就会在页面上显示暗模式。

我对其他的想法持开放态度,比如设置一个简单的cookie,并且只有当样式表为true时才激活。我不想在每一个页面上切换,因为这意味着手动编辑所有的页面,而且它只对某些用户可用。

我假设一个变量必须在设置页面上设置为true,但它需要在整个站点上传递,所以

null

<?php
if ($darkmode = $true)
  echo "<link rel="stylesheet" href="https://example.com/darkmode.css">";
?>

null

我想这样的东西需要添加到每一个页面上,如果是真的,那么只需要附和样式就可以了?

如果有任何帮助,我们将不胜感激。

更新1

这些代码都不起作用,但它只是一个示例。管理员会选择一个复选框,如果选中了复选框,页面就会读取文件中的Yes/No,然后回显到附加样式表的链接。

null

<form action="preference.php" method="post">
 <input type="checkbox" id="preference" name="preference">
 </form>

<?php
$preference = $_POST["preference"];
$file = fopen("./preference.html","w");
fwrite($file, $preference);
fclose($file);
?>

<?php
echo readfile("http://example.com/admin/preference.html"); ?>

null

那是应该发生的。1用户打开暗模式。存储2暗模式。3如果暗模式为true,则每个页面检查样式表,然后使用PHP echo。

更新3

null

<form action="preference.php" method="post">
 <input type="checkbox" id="preference" name="preference">
 <input type="submit" id="update" name="update" placeholder="Update Preference">
 </form>
 
 

<?php
if (isset($_COOKIE['darkmode'])) {
   if ($_COOKIE['darkmode'] == "true") {
    echo '<link rel="stylesheet" href="https://example.com/admin/darkmode.css">';
   }
   else {
   echo '<!--Not Enabled-->';
   }
   }
?>

null

我已经为表单添加了代码,该表单将更新首选项和echo函数,以添加到每个页面。我只需要能把它留到一块饼干里。

更新4

设置页:

null

<form action="preference.php" method="post">
 <input type="checkbox" id="preference" name="preference">
 <input type="submit" id="update" name="update" placeholder="Update Preference">
 </form>

null

preference.php:

null

<?php
if (isset($_POST['preference']) {
  // If a checkbox is checked in the form, set a cookie
  setcookie('isDarkMode', '1');
} else {
  // Otherwise -- delete cookie
  setcookie('isDarkMode', '', time() - 3600);
}
?>

null

添加到每一页:

null

<? if (isset($_COOKIE['isDarkMode']) && $_COOKIE['isDarkMode']) { ?>
<link rel='stylesheet' type='text/css' href='https://example.com/stylesheet.css'>
<link rel='stylesheet' type='text/css' href='https://example.com/darkmode.css'>
  <? } else { ?>
<link rel='stylesheet' type='text/css' href='https://example.com/stylesheet.css'>
  <? } ?>

null

在提交表单时,首选项页面显示500错误。知道为什么会这样吗?

共有1个答案

单喜
2023-03-14

preference.php中:

<?
if (isset($_POST['preference'])) {
  // If a checkbox is checked in the form, set a cookie
  setcookie('isDarkMode', '1');
} else {
  // Otherwise -- delete cookie
  setcookie('isDarkMode', '', time() - 3600);
}

在每页的头文件中:

<html>
<head>
  ...
  <? if (isset($_COOKIE['isDarkMode']) && $_COOKIE['isDarkMode']) { ?>
    <link rel='stylesheet' type='text/css' href='darkmode.css'>
  <? } else { ?>
    <link rel='stylesheet' type='text/css' href='normal.css'>
  <? } ?>
  ...
</head>
 类似资料:
  • 问题内容: 是否可以通过单击“禁用/启用CSS”按钮来检测当前页面上的所有样式表,并在第一次单击时将其禁用,从而不应用任何样式,然后在第二次单击时再次将其还原?如果有可能,jQuery会是什么样子? 问题答案: 这应该禁用所有这些,然后启用它们的相反:

  • 问题内容: 我正在显示此示例产品表。我需要在不使用结果集的情况下将所有表日期合并到一个jsp中。我尝试完成这一部分: 我需要将所有表数据添加到列表或?? 并使用方法将其退回我该怎么办? 问题答案: 使您的方法返回a 而不是单个。 然后,在您的JSP文件中,迭代返回的列表:

  • 我不确定,如果这是可能的。 我这里有跨度。我正在将过滤器应用于 ,并显示返回过滤器的值(即计数) 如果从管道返回的计数大于0,我想显示一个样式,如果不是,就不显示样式。不过,我可以通过< code>*ngIf和Filter来实现这一点,但如果< code>Filter的值发生变化,则< code>*ngIf不会发生变化。 例如。我在数组中有两个项目。 项目1:长度为1,它显示跨度并完成其工作。。。

  • 问题内容: 我正在使用CMS,它阻止我们编辑头部。我需要在标记之后立即向网站添加CSS样式表。有没有办法用JS做到这一点,我可以在页面底部添加一个脚本(我可以在标记之前添加脚本),然后将样式表注入到头部? 问题答案: 更新 :根据规格,该元素不允许出现在体内。但是,大多数浏览器仍会很好地呈现它。因此,要回答的意见问题- 一个真正具有添加到页面,而不是的。 或使用jQuery轻松一点 原始答案 :

  • 我想使用XSL编码在XML开始时添加样式表标记 输入XML:

  • 问题内容: 我有什么,我 认为 是一个简单的问题,但我不能得到它的工作,为我的生活。 我要做的就是在页面上添加一些javascript,从而根据URL将一个类添加到主页容器中。 假设我在root.com上有一个站点,并且具有以下html结构(松散地说): 我想要做的是一个脚本,如果页面=(例如)root.com/technology,它将向主div添加一个类。因此div现在看起来像: 我已经加载了