- ベストアンサー
PHPで空行を作る
スレッド掲示板を作成しています。 掲示板の投稿への返信を表示する際に、その返信の頭にそれぞれが返信した投稿よりも一段、頭をさげるために空行を追加したいと考えています。 下記のような状況です。 このような処理はあくまでPHPではどのように行えばよいでしょうか? ご享受ください。 ・コメント1 ・コメント2(コメント1への返信) ・コメント3(コメント2への返信) ・コメント4(コメント1への返信)
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>この処理はPHPで行うことができないでしょうか? スペースでインデントするのであれば、その領域のfont-familyをmonospaceにする手はあります <style> .toukaku{ font-family:monospace; } </style> <div class="toukaku"> あああ<br> いいい<br> ううう<br> えええ<br> </div> もちろん、他の方が指摘するよう文書を構造的に形成した方がよいですが とりあえずはこういうやり方もあるという例として
その他の回答 (4)
- ahoo_ok
- ベストアンサー率31% (30/95)
そういうのはhtmlタグの<ul>と<li>を利用する。
- t_ohta
- ベストアンサー率38% (5292/13825)
> CSSで行うとコメントが増えた場合に対応できないと思うのですが、 > この処理はPHPで行うことができないでしょうか? A No.1、A No.2 の両方で書かれている HTML と CSS で対応できますよ。 mrgin-leftが設定されている要素を入れ子にしていけば、コメントが何段ネストしても問題ありません。
- agunuz
- ベストアンサー率65% (288/438)
「phpでは」でなく、「htmlでは」どうすればいいかを考えてください。phpがブラウザに返すのはhtmlソースですから。 コメント表示前にdiv要素(左マージン指定)で括って、最後にまとめてdiv要素を閉じればいいと思います(div要素に直接書かずにclass指定でも可)。 <div style="margin-left:20px"> コメント1 <div style="margin-left:20px"> コメント2 </div> </div> あるいはマージンの値を自分で(計算して)書き替えてもいいですが、こちらはdiv要素に書くしかなくなります。 <div style="margin-left:20px"> コメント1 </div> <div style="margin-left:40px"> コメント2 </div> どちらかといえば前者を推奨。
- coai
- ベストアンサー率50% (152/301)
頭下げですかね?空行ですかね? 例を見る限り、空行ではなくたぶん頭下げですね。 まあ、どっちにしてもどういうHTMLを出力するかという、あくまでHTML、あるいはCSSの問題だと思いますよ。 PHPについて考えるのは、そのHTMLをどうやって出力するかという、次のステップでしょうね。 たとえば… <div class="thread"> ・コメント1 <div class="thread"> ・コメント2(コメント1への返信) <div class="thread"> ・コメント3(コメント2への返信) </div> </div> <div class="thread"> ・コメント4(コメント1への返信) </div> </div> cssで .thread{ margin:10px 0 10px 40px; } とでもすればいいかな? 適当に書いて未検証だけど。 人によっては、divじゃなくてulの方がいいとか、marginじゃなくてpaddingの方が等、色々意見はあるだろうけど、適当に書いただけなのでその辺は勘弁。 ま、空行や空白文字を追加するというPHP側のアプローチで、見た目をコントロールしようというのは違うでしょうね。 あと、次のステップのPHPコードを書く際には、頭下げ処理の際に再帰処理の知識が必要かな。 どういうデータ保持しているかどうか判らないので、再帰で調べてくれとしか言えんが。
補足
ご回答ありがとうございます! 回答者様のおっしゃる通り、「頭下げ」になるかと思います。 cssでデザインを変更する場合、 コメントが4,5,6と増えていった場合にその都度編集が必要になってしまいますか? その場合、大変手間がかかるのでPHPで処理を行いたいと考えています。 言葉足らずで大変失礼いたしました。
補足
ご回答ありがとうございます! CSSで行うとコメントが増えた場合に対応できないと思うのですが、 この処理はPHPで行うことができないでしょうか?