PHP设置网页background-color异常,删样式重启XAMPP清缓存仍显红如何解决
问题根因梳理
- 重复
<body>标签导致样式失效
标准HTML文档仅允许存在1个<body>根节点,你的代码静态书写了一次<body>,后续PHP又多次echo新的<body style="...">标签,浏览器会直接忽略这些重复节点的样式规则,异常渲染逻辑就是你修改颜色不生效、甚至删除所有颜色代码后仍出现红色背景的核心原因。 - 时间段判断逻辑存在致命错误
elseif($Uhrzeit > 18 && $Uhrzeit < 6)的条件永远不可能成立:24小时制的时间数值不可能同时满足大于18、小于6两个要求,所以夜间黑背景、白文字的样式永远不会触发。 - HTML结构不规范引发渲染异常
<meta charset="utf-8"/>必须放在<head>节点内,块级元素<div>不能嵌套在<p>段落标签内,这类不规范的结构会进一步干扰浏览器的样式解析逻辑。
修正方案(保留原有任务要求的写法逻辑,仅修复错误)
<html> <head> <title>Switch</title> <meta charset="utf-8"/> <?php $Uhrzeit = date("H"); $bgColor = "blue"; $textColor = "black"; if($Uhrzeit > 18 || $Uhrzeit <= 6){ $bgColor = "black"; $textColor = "white"; } ?> </head> <body style="background-color:<?php echo $bgColor;?>;color:<?php echo $textColor;?>"> <div id="main"> <?php $select = $_POST["Monat"]; switch($select){ case "Januar": echo $select . " hat 31 Tage"; break; case "Februar": echo $select . " hat 28 Tage"; break; case "März": echo $select . " hat 31 Tage"; break; case "April": echo $select . " hat 30 Tage"; break; case "Mai": echo $select . " hat 31 Tage"; break; case "Juni": echo $select . " hat 30 Tage"; break; case "Juli": echo $select . " hat 31 Tage"; break; case "August": echo $select . " hat 31 Tage"; break; case "September": echo $select . " hat 30 Tage"; break; case "Oktober": echo $select . " hat 31 Tage"; break; case "November": echo $select . " hat 30 Tage"; break; default: echo $select . " hat 31 Tage"; break; } ?> <br><br><br><br><br> <input type="submit" href="#" onclick="history.back()" value="Zurück"> </div> </body> </html>
额外排查项
如果修正代码后仍存在颜色异常,直接在浏览器页面右键选择「查看网页源代码」,确认返回的代码确实是你修改后的版本,排除服务器缓存、浏览器扩展注入样式的问题。
内容的提问来源于stack exchange,提问作者RetSIN
相关产品推荐
相关产品推荐

