teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

補足を追加

2021/10/02 07:00

投稿

mj29
mj29

スコア136

answer CHANGED
@@ -32,4 +32,77 @@
32
32
  ?>
33
33
  </body>
34
34
  </html>
35
+ ```
36
+
37
+ # 追記
38
+
39
+ 回答が不親切だったので補足しますと、PHPはHTML内に埋め込まれた<?php ... ?>の間だけサーバ側で処理して、出力したいものがあればecho等で出力するするだけのものです。
40
+ ブラウザ側からは、phpだろうとhtmlだろうと基本同じHTMLとして解釈し表示しています。
41
+
42
+ PHP(サーバ)側で、条件によってCSSを切り替えたいパターンを載せておきます。
43
+
44
+ ```php
45
+ <?php
46
+ $word = $_REQUEST["word"]; // クエリーで条件を切り替える場合
47
+ ?>
48
+ <html lang="en">
49
+ <head>
50
+ <meta charSet="UTF-8">
51
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
52
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
53
+ <title>test</title>
54
+ <?php
55
+ // その1)もしa.css 内に.meが宣言されていて、wordがcssの場合だけ読み込みたい場合
56
+ if($word === "css") echo '<link rel="stylesheet" href="css/a.css">';
57
+ ?>
58
+
59
+ <?php // その2)a.cssには.meが宣言されおらず、直接スタイルを宣言したい場合
60
+ if($word === "css"):?>
61
+ <style>
62
+ .me {
63
+ text-align: center;
64
+ color: #f00;
65
+ }
66
+ </style>
67
+ <?php endif?>
68
+ <!-- その5)cssを出力するphpファイルを用意して、それをcssとして読み込む場合(普通やりませんが) -->
69
+ <link rel="stylesheet" href="css.php?word=<?php echo $word?>">
70
+ </head>
71
+ <body>
72
+
73
+ <div class="me">
74
+ その1とその2の場合は、あらかじめclass=meの要素を用意
75
+ </div>
76
+
77
+ <div class="<?php echo $word === 'css'?'me':''?>">
78
+ その3)常に.meのスタイルが宣言されているなら、wordが"css"の場合、要素のclassにmeを追加
79
+ </div>
80
+
81
+ <div style="<?php echo $word === 'css'?'text-align: center;color: #f00;':''?>">
82
+ その4)wordが"css"の場合のみ、直接要素にスタイルを当てる場合
83
+ </div>
84
+
85
+ <div class="me-php">
86
+ その5)cssを出力するphpファイルを読む場合の要素
87
+ </div>
88
+
89
+ </body>
90
+ </html>
91
+ ```
92
+
93
+ - css.php
94
+ ```php
95
+ <?php
96
+ /**
97
+ * その5)wordが"css"の場合のみ、直接要素にスタイルを当てる場合
98
+ * のCSS用PHP
99
+ */
100
+ $word = $_REQUEST["word"]; // クエリーで条件を切り替える場合
101
+ ?>
102
+ .me-php {
103
+ <?php if($word === "css"):?>
104
+ text-align: center;
105
+ color: #f00;
106
+ <?php endif;?>
107
+ }
35
108
  ```

1

途中で送信された

2021/10/02 07:00

投稿

mj29
mj29

スコア136

answer CHANGED
@@ -1,4 +1,4 @@
1
- ゴールが分からないので、見当違いかもですが、こういうことで
1
+ ゴールが分からないので、見当違いかもですが、こういうことですか?
2
2
 
3
3
  ```html
4
4
  <html lang="en">
@@ -25,9 +25,9 @@
25
25
  HTML;
26
26
  }else {
27
27
  echo "<div class=me>";
28
- echo "divじゃ読み込めませんでした";
28
+ echo "divじゃ読み込めませんでした";
29
- echo "</div>";
29
+ echo "</div>";
30
- }
30
+ }
31
31
 
32
32
  ?>
33
33
  </body>