【问题标题】:background-color does weird things背景颜色做了奇怪的事情
【发布时间】:2021-12-27 07:45:06
【问题描述】:

我只想更改我的简单网站的背景颜色。 但它不仅没有功能,而且将背景更改为红色,即使我完全删除所有颜色,重新启动 XAMMP 并删除浏览器缓存。 我完全一无所知。 是的..我知道代码效率不高,但我的任务是这样做。

<html>
<head><title>Switch</title></head>
<body>
<p><div id="main">
<meta charset="utf-8"/>
<?php
$Uhrzeit = date("H");

echo '<body style="background-color:blue" />'; //Even set the color outside the if-statement

if($Uhrzeit > 6 && $Uhrzeit <= 12){
    echo '<body style="background-color:blue" />';
}
elseif($Uhrzeit > 12 && $Uhrzeit <= 18){
    echo '<body style="background-color:blue" />';
}
elseif($Uhrzeit > 18 && $Uhrzeit < 6){
    echo '<body style="background-color:black" />';
    echo '<body style="color:white" />';
}

$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>
</p>
</body>
</html>

【问题讨论】:

  • 你身体的第一个回声缺少一个“;”字符在最后。为什么要在 if 语句之前打印 body 标签? &lt;body&gt; 标记在 HTML 文档中只能出现一次,并且不应像 &lt;body /&gt; 那样自闭合。它应该包含您的页面内容。查看minimal HTML5 code template 以了解我的意思。另外,如果您在没有 POST 的情况下加载页面会发生什么? $select = isset($_POST['Monat']) ?? ''; 将删除 PHP 错误。

标签: php html background-color


【解决方案1】:

HTML 文档中应该只有一个body 标签。你打印了很多,所以这就是问题所在。代替echo '&lt;body...',您可以将颜色存储在变量中并在主body 标记中打印。

例子:

<?php

$bgColor = 'blue';

if(something) {
    $bgColor = 'red';
} else if (something) {
    $bgColor = 'yellow';
}

?>
<html>
<head>
<title>Switch</title>
</head>
<body style="background-color: <?php echo $bgColor; ?>">

...

</body>
</html>

或者,如果您在 php 配置中启用了 short_open_tag,您可以将 &lt;?php echo $bgColor; ?&gt; 替换为 &lt;?=$bgColor;?&gt;

【讨论】:

  • 谢谢!我将来会这样做,但它不能解决背景颜色一直是红色的问题。 (即使我没有任何红色)
  • 如果你听从我的建议,它应该可以工作。如果不是,红色可能不是来自您提供的代码。
猜你喜欢
  • 2019-02-14
  • 2012-04-07
  • 2016-03-28
  • 1970-01-01
  • 2012-09-28
  • 1970-01-01
  • 2020-11-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多