使用PHP while循环更改表格的单元格背景颜色

时间:2017-11-17 23:14:29

标签: php css loops while-loop html-table

我需要将冷冻温度(32F,0C)的细胞背景颜色改为#bff9ff,但有一些困难。我试图在<td>内打印CSS类,但似乎它在循环内部无法正常工作并同时打印。

然而,这是半个问题。如何识别具有冻结温度和低于温度的细胞而不是手动但使用PHP?

<html>
<head>
    <meta charset="UTF-8">
    <title>Unit 3 part 2</title>

        <style>
            table {
                font-family: arial, sans-serif;
                border-collapse: collapse;
                width: 100%;
            }

            tr:hover {
                background-color:#bff9ff;
                }

            td, th {
                border: 1px solid #dddddd;
                text-align: left;
                padding: 8px;``
            }
            .cell {
                background-color: #00bfff;
                }    

        </style>

</head>
<body>

    <table border="1" cellpadding="3">

        <thead>
            <th>Fahrenheit</th>
            <th>Celsius</th>
        </thead>

        <?php
        $fahrenheit = 50;

        while ($fahrenheit >= -50) {

            $celsius = ($fahrenheit - 32) * 5 / 9;

            print "<tr><td>$fahrenheit</td><td>$celsius</td></tr>";

            $fahrenheit -= 5;
            $celsius -= 5;



        } ?>

    </table>

</body>
</html>

2 个答案:

答案 0 :(得分:0)

通过添加if语句来测试温度,然后在td标签中添加一个类,应该处理它。

<html>
<head>
    <meta charset="UTF-8">
    <title>Unit 3 part 2</title>
    <style>
        table {
            font-family: arial, sans-serif;
            border-collapse: collapse;
            width: 100%;
        }
        tr:hover {
            background-color:#bff9ff;
            }
        td, th {
            border: 1px solid #dddddd;
            text-align: left;
            padding: 8px;``
        }
        .cell {
            background-color: #00bfff;
            }
        .cell.freezing {
            background-color: #bff9ff;
        }
    </style>
</head>
<body>
    <table border="1" cellpadding="3">
        <thead>
            <th>Fahrenheit</th>
            <th>Celsius</th>
        </thead>
        <?php
        $fahrenheit = 50;
        while ($fahrenheit >= -50) {
            $celsius = ($fahrenheit - 32) * 5 / 9;
            $class = '';
            if($fahrenheit <= 32) {
                $class = ' freezing';
            }
            print "<tr><td class='cell $class'>$fahrenheit</td><td class='cell $class'>$celsius</td></tr>";
            $fahrenheit -= 5;
            $celsius -= 5;
        } ?>
    </table>
</body>
</html>

答案 1 :(得分:0)

创建一个名为“freeze”的CSS类。使用if添加冻结类,例如

"<td class='$freezing'></td>"

基本上评估这个:

if (32 <= $farenheit || 0 <= $celcius) { 
  $freezing = "freezing";
}

编辑:CSS

.freezing {
  background-color: #bff9ff;
}