プロが教えるわが家の防犯対策術!

初めまして。
どうぞ宜しくお願い致します。

HPを制作しています。
サイトの全ページ共通部分に
<?php include("header.html"); ?>といった感じでphpを使用してみたのですが、

これを書くと、headerとこの直下にある<div id="container">というブロックが密着して、marginもpaddingも全く効きません(;ω;)

ちなみに、
header自体にmargin-bottom、padding-bottomを指定したり、
逆にcontainer側にmargin-top、padding-topを指定したり、
回り込みの解除、
またposition: absoluteで全体を囲む<div id="wrapper">からの絶対位置も試してみたのですが、

このheaderとcontainerが密着して、どうにもこうにも離れません――(;ω;)


何か原因があるのでしょうか?
大変困っております。
どうぞ宜しくお願い致します><

A 回答 (3件)

PHPから出力された結果のHTMLに対してスタイルを指定しなければなりません。


DOMを提示していただけると良いでしょう。
 firefoxの場合、通常のインストールでツールメニューにDOM inspectorがあります。

 スタイルシートで、header部分とその次のcontainerにスタイルがすでに指定してあると思いますが、その指定のセレクタの詳細度が高い--たとえば一意セレクタで指定してあると、classセレクタで指定しても当然利きません。また、同じ詳細度でもあとから登場していれば上書きされます。
 →5. セレクタ ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2 … )
 →6. 値の割り当て、カスケード処理、継承 ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2 … )
 セレクタを追加して詳細度を上げるとかの対策が必要かもしれません。

 firefoxにfirebugというアドオンがありますが、それでどの紆余にスタイルシートが適用されているか、あるいは上書きされているかを確認し修正ができます。

>何か原因があるのでしょうか?
 もちろん原因はあります。
 ただ、それはあなたにしか調べる方法がないのです。それを調べて、その対策をするしかないです。そのためにはセレクタやカスケーディングと言うスタイルシートの最も重要な知識--marginやpaddingというプロパティ以前に知っておかなければならない、より重要な知識ですから。
 なお、示したスタイルシートの邦訳はCSS2のもので、現行のCSS2.1では詳細度に関して修正があります。
 →6.4.3 Calculating a selector's specificity ( http://www.w3.org/TR/CSS2/cascade.html#specificity )
    • good
    • 0

DOMの構造は理解されていますか?


いわゆる木構造(ツリー構造)というやつです。
headerとcontainerは親子関係なのか、兄弟関係なのかなど、意図した関係になっているのかを調べてみてください。IE以外のブラウザなら標準でDOMを表示できる機能がついてます。よくあるのが、終了タグが閉じられていなかったりするとブラウザごとにDOMの解釈が変わったりします。たとえば<div id="container"></div>とあるところの一部が全角になってたりとか。

ちなみに、IEプレビューでの制作は激しくおすすめしません。プレビューの正確さや機能が貧弱だからです。
    • good
    • 0

>php includeで、marginが効かない


それは関係ないです。

表示されたページのソースを保存して、スタイルシートを調整してください。

また、HTML側がおかしくなっていたらそちらも修正します、文面からだけでは header.html か 本体に問題があるかはわかりません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!