php - 表行颜色更改未按计划工作

标签 php html css

我有一个数据库和一个名为status 的表。状态 0 表示 未读,状态 1 表示已读 如果状态为 0,则个别行应该变成石灰。如果为 1,则为白色。

$colors = array("lime", "white");

echo "<style type=\"text/css\">";
echo "tr:hover {";
echo "background: #cc00ff;";
echo "color: white;";
echo "}";
echo "tr {";
echo "font-family: Verdana, Geneva, sans-serif;";
echo "font-size: 13px;";
echo "background: $colors[$status];";
echo "}";
echo "</style>";

$status 变量在此处设置:

while ($row = mysql_fetch_row($result))
        {
            echo "<tr>";
           //rows for <table>
            echo "</tr>";
            $status = $row[4];//status table either a 0 or 1
        }

但是,当设置表格行背景时,所有表格行都会发生变化,而不仅仅是状态为 0 的行。

如何根据状态值使各行改变颜色?

最佳答案

您误解了浏览器如何应用 CSS。它们本质上具有 CSS 规则的“全局状态”。当您指定更多规则(例如通过 <style>style= )时,它们只会更新此“全局状态”,然后将其应用于您页面中的每个元素。

要实现您想要的效果,只需将一个类应用于表格行,具体取决于您希望它如何显示,例如

if ($status == 0) {
    echo '<tr class="unread">';
} else {
    echo '<tr class="read">';
}

然后有一个 CSS 定义,为每种情况应用不同的样式:

<style type="text/css">
tr.unread {
    background: lime;
}
tr.read {
    background: white;
}
</style>

关于php - 表行颜色更改未按计划工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5492857/

相关文章:

php - 删除错误抑制运算符

php - 安装 laravel ( sh : 1: composer: not found) error

php - PHP 和 JavaScript 中的变量。我需要基本理解方面的帮助。

php - 多维数组输出php mysql

javascript - jquery 旋转图像并用同名文件保存它们(覆盖)?

html - nth-of-type(2) 是针对第一个类型?

html - 有没有办法根据其父项在组中设置 css 样式?

javascript - 我怎样才能用 Jekyll 做一个预加载页面?

javascript - Mobile Safari 在菜单打开时阻止正文滚动

html - 当显示 :table? 的 child 时,制作一个全宽的 div