PHP で CSS スタイルを使用する

Habdul Hazeez 2023年6月20日
  1. PHP のみのファイルで CSS を使用する
  2. PHP+HTML ファイルで CSS を使用する
  3. PHP echo ステートメントでインライン CSS を使用する
PHP で CSS スタイルを使用する

この記事では、PHP で CSS スタイルを使用するのに役立つ 3つの方法を説明します。

1つ目は PHP のみのファイルを使用する方法で、2つ目は PHP を HTML+CSS ファイルに埋め込む方法です。 次に、3 番目の方法では、PHP の echo ステートメントでインライン CSS を使用します。

PHP のみのファイルで CSS を使用する

標準の HTML ファイルでは、CSS スタイルを <head> 要素に埋め込むか、外部 CSS ファイルにリンクできます。 デフォルトでは、この CSS ファイルは css 拡張子を持ちますが、php 拡張子を持つこともできます。

これは、CSS コードを記述し、それを PHP ファイルとして保存して、HTML にリンクできることを意味します。 この PHP ファイルでは、CSS ファイルで行うよりも多くのことができます。 PHPコードを書くことができます。

まず、CSS プロパティと値を変数として格納する PHP コード ブロックを定義できます。 次に、PHP ブロックの外側で、変数を CSS プロパティの値として使用する通常の CSS を記述できます。

以下でそれを行いました。 styles.php として保存します。

<?php
    // The "header" is the most important part of
    // this code. Without it, it will not work.
    header("Content-type: text/css");

    $font_family = 'Trebuchet MS, Verdana, Helvetica';
    $font_size = '1.2em';
    $background_color = '#000000';
    $font_color = '#ffffff';

    // Close the PHP code block.
?>
body {
    background-color: <?php echo $background_color; ?>;
    color: <?php echo $font_color; ?>;
    font-size: <?php echo $font_size; ?>;
    font-family: <?php echo $font_family; ?>;
}

次の HTML を保存し、<link> タグで styles.php をリンクしたことを確認します。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Webpage using CSS styles generated with PHP</title>
    <!-- Link styles.php as the CSS file -->
    <link rel="stylesheet" type="text/css" href="styles.php">
</head>
<body>
    <h1>Hello, We styled this page using CSS in a PHP file!</h1>
    <h1>How cool is that?</h1>
</body>
</html>

出力:

PHP の CSS でスタイル設定された Web ページ

PHP+HTML ファイルで CSS を使用する

HTML は、専用の PHP ブロックに PHP を含めることができる <style> タグまたは <link> タグを介して CSS を使用できます。 PHP コードが HTML コードを生成または操作する場合、リンクされた CSS コードは HTML のスタイルを設定できます。

たとえば、PHP がデータベース レコードをプルして HTML テーブルを作成する場合、CSS を使用してテーブルのスタイルを設定できます。 これを行う方法を示すために、MySQL で my_website というデータベースを作成します。

次に、次のクエリを使用して my_websitesite_users テーブルを作成します。

CREATE TABLE site_users (
user_id INT NOT NULL AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
PRIMARY KEY (user_id)) ENGINE = InnoDB;

site_users テーブルにデータを挿入します。

INSERT INTO site_users (username, email) VALUES ('user_1', 'user_1@gmail.com');
INSERT INTO site_users (username, email) VALUES ('user_2', 'user_2@gmail.com');
INSERT INTO site_users (username, email) VALUES ('user_3', 'user_3@gmail.com');

次に、HTML、PHP、および CSS を示します。 CSS は <head> 要素にあります。 PHP は HTML 内の PHP ブロックにあります。

PHP は、site_users テーブルのレコードを使用して HTML テーブルを作成します。 PHP がテーブルを生成すると、CSS がスタイルを設定します。

<!doctype html>
<head>
    <meta charset="utf-8">
    <title>Style MySQL table with CSS</title>
    <style>
        /* This CSS will style the table generated by PHP. */
        table { border-collapse: collapse; width: 30em; font-size: 1.2em; }
        table, th, td { border: 2px solid #1a1a1a; }
        td,th { padding: 0.5em; }
        /* Create a striped table. */
        tr:nth-child(even) { background-color: #f2f2f2; }
        /* General body styles. */
        body { display: grid; justify-content: center; align-items: center; height: 100vh; }
    </style>
</head>
<body>
    <main>
        <!--
            We generated this table using PHP, and the CSS
            style in the <style> tag will apply to it.
            This is another way to use CSS in PHP.
        -->
        <?php
            // Connect to the database. Change the connection
            /// settings based on your environment.
            $connect_to_mysql = new mysqli("localhost", "root", "", "my_website");
            // Select the data from the site_users table.
            $site_users = $connect_to_mysql->query("SELECT * FROM site_users")->fetch_all(MYSQLI_ASSOC);
            // Get keys from the first row.
            $table_header = array_keys(reset($site_users));
            // Print the table.
            echo "<table>";
            // Print the table headers.
            echo "<tr>";
            foreach ($table_header as $value) {
                echo "<th align='left'>" . $value . "</th>";
            }
             echo "</tr>";
            // Print the table rows
            foreach ($site_users as $row) {
                echo "<tr>";
                foreach ($row as $value) {
                    if (is_null($value)) {
                        echo "<td>NULL</td>";
                    } else {
                        echo "<td>" . $value . "</td>";
                    }
                }
                echo "</tr>";
            }
            echo "</table>";
        ?>
    </main>
</body>

出力:

CSS でスタイル設定された PHP テーブル

PHP echo ステートメントでインライン CSS を使用する

PHP は HTML とうまく連携し、インライン CSS を含む HTML を Web ブラウザーに送信できる echo ステートメントを備えています。 これは、HTML の大きなチャンクをデバッグしたり、Web ブラウザーに送信したりする場合に役立ちます。

以下は、PHP echo でインライン CSS を使用する方法を示しています。 テキストを定義し、$colors_array に 3つの色を格納します。

次に、foreach を使用して $colors_array をループし、配列要素をインライン CSS の値として設定します。 コードを実行すると、テキストが異なる色で 3 回表示されます。

<?php
    $sample_text = "We generated this text color using inline CSS in PHP.";

    $colors_array = ['red', 'green', 'blue'];

    foreach ($colors_array as $value) {
        // Use inline CSS with PHP echo.
        echo "<p style='color: $value'>" . $sample_text . "</p>";
    }
?>

出力:

赤、緑、青を使用してスタイル設定されたテキスト

著者: Habdul Hazeez
Habdul Hazeez avatar Habdul Hazeez avatar

Habdul Hazeez is a technical writer with amazing research skills. He can connect the dots, and make sense of data that are scattered across different media.

LinkedIn