🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

3回答

1470閲覧

phpでcssを指示する方法

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2019/10/28 12:34

編集2019/10/28 12:35

phpの学習を初めているのですが、疑問点がありましたので、質問させていただきます。

質問内容

質問内容は、phpで表示している文字にcssでデザイン等を行う際にどのようにすれば良いのでしょうか?

試した事

試したこととして、print内の""に、divでclassを指定し、cssを記述しました。
おそらくこの方法はごり押しで、多分違うのかなと・・・

php

1print'<div class="font">hello world</div>';

css

1 .font{ 2 color: blue; 3 text-align: center; 4 }

表示結果

表示結果は、正常にcssで指定した通りになりました。
おそらく、推奨していないものだとは思いますが、、、

補足

一応ですが、以下のようにしたら終わりなのではないかというコメントが出てくるかと思いますが、usernameなど、phpなどで行わなければならないので、下記のようにhtml内に書き込む以外の方法をご教示ください。

index.php

php

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 7 <title>Document</title> 8</head> 9<body> 10<p class="font">hello world by HTML</p> 11<?php 12//phpで記述しなく、htmlで組み込む方法 13?> 14<style type="text/css"> 15 .font{ 16 color: blue; 17 text-align: center; 18 } 19</style> 20</body> 21</html>

また、上記で行なった際には、ユーザネームなどの前のページからデータをphpで取得する必要があり、phpで書かざるおえない場合。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

試したこととして、print内の""に、divでclassを指定し、cssを記述しました。

おそらくこの方法はごり押しで、多分違うのかなと・・・

フレームワークなどを使わず、直接PHPで出力しているなら、それで構いません。結果的にHTMLが出力されればいいので、そのように直接classを書くのも1つの方法です。

投稿2019/10/28 12:40

maisumakun

総合スコア145975

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/10/29 03:25

一番良いというのはおかしいかもしれませんが、どの方法が良いのでしょうか? 各方法により、処理の時間も当然変わるものなのですか?
maisumakun

2019/10/29 03:56

> 一番良いというのはおかしいかもしれませんが、どの方法が良いのでしょうか? まわりのコードに整合させる、ということがポイントかと思います。 > 各方法により、処理の時間も当然変わるものなのですか? 気にする必要があるほどの差は出ません。
退会済みユーザー

退会済みユーザー

2019/10/29 08:22

勉強になりました。ありがとうございます
guest

0

phpでクラスを指定できるなら、明示の方法で問題ありません。
よりphpらしく処理するならDomDocumentを利用してもよいかも

PHP

1<style> 2.font{ 3color: blue; 4text-align: center; 5} 6</style> 7<?PHP 8$doc=new DOMDocument(); 9$div = $doc->createElement('div'); 10$div->setAttribute('class','font'); 11$div->nodeValue='hello world'; 12print $doc->saveXML($div);

投稿2019/10/28 12:48

yambejp

総合スコア116694

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

「htmlに書き込む」という考え方が間違っています。
phpはあくまでリクエストを受け取ってレスポンスを返しているだけ。出力できるのは文字列。
その文字列がhtmlやcssやJavaScriptとして読み取り可能な形式で、ブラウザが解釈するから正しく解析されてブラウザ上に表示されているだけです。
ですので、意識すべきはあくまで出力処理を書いたところだけ。
ブラウザの「ソースを表示」で見れるのはあくまで出力処理を書いたところだけ(phpタグで囲ったところ以外はそのまま「出力」されるのでそれも「出力処理」とみなします)

はじめはphpコードを見て出力を調整するのは難しいでしょうからブラウザ「ソースを表示」で出力結果を確認して対応していくようにしてください。
(というかはじめでなくても私は今でも必ず出力を確認します)

つまりcssを当てる際は出力結果に対して当てること。

投稿2019/10/28 12:41

m.ts10806

総合スコア80875

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/10/28 12:55

cssを当てる際は、出力結果に対して当てることとありますが、 yambejpさんの提示しているコードという認識でよろしいですか?
m.ts10806

2019/10/29 03:22 編集

「cssを当てる」は「クラスを割り当てる」のではなく「割り当てたクラスに対してstyleを指定する」ことを意図したコメントです。 yambejpさんのコードは「classを割り当てる」やり方をphpのDOM操作の機能を使ってやっているだけで、出力されるhtmlは同じです。 cssは別途用意する必要があります。 私の回答で言いたいのは出力の仕方は関係なく、あくまで「cssを正しく当てられるように出力すること(ちゃんと出力できていれば問題なし)」という意味です。 明記してないので伝わっていなかったかもしれませんが、推奨していない書き方というのはむしろ存在しません。正しく出力できていればそれで良いのです。 (あとは効率か非効率かの話。提示のコードでは差が全く出ません)
退会済みユーザー

退会済みユーザー

2019/10/29 03:22

なるほど。 了解です
m.ts10806

2019/10/29 03:37

正しく伝わったかわかりませんが、伝わったのなら良かったです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問