- ベストアンサー
ホームページのmarginに関する問題
- ホームページのmarginに関して、赤と青の要素の位置が異なる問題が発生しています。
- 赤の要素が予想よりも下に配置されており、青の要素と同じ位置に配置したいと考えています。
- どのような方法を使えば、赤の要素を青の要素と同じ位置に移動させることができるでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
positionにtopという値はありません。 ⇒Full property table - CSS 2.1 spec (ja)( http://momdo.s35.xrea.com/web-html-test/spec/CSS21/propidx.html ) static | relative | absolute | fixed | inherit です。 詳しくは、 ⇒'position'( http://momdo.s35.xrea.com/web-html-test/spec/CSS21/visuren.html#propdef-position ) #test1 {} #test2 {} こんなCSS書いてたら、自分を含めて誰にも分からない。原因はもちろんHTMLにあるのですが・・ 推測の域を出ませんが、ブロック要素になっている。 ______________ここから 整形 デフォルトでは、ブロックレベル要素は行内要素とは異なるように整形される。 一般に、ブロックレベル要素は新しい行を開始し、行内要素は新しい行を開始しない。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで 7.5.3 ブロックレベル要素と行内要素( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/global.html#h-7.5.3 )より >(画像はヘッダー部分です。) でしたら、HTMLは <div class="header"> <h1>見出し</h1> <h2>見出し</h2> </div> のようになっているはずですね。 ・・『DIV要素とSPAN要素は、id属性及び class属性と併用することで、文書に構造を付加するための一般機構を提供する。( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/global.html#h-7.5.4 )』 そしてスタイルシートは div.header{position:relative;} div.header h1,div.header h2{height:59px;line-height:59px;text-align:center;} div.header h1{margin:0 300px 0 0;width:440px;} div.header h2{position:absolute;top:0;right:0;width:300px;} /* 色づけ */ div.header h1{background-color:red;} div.header h2{background-color:aqua;} とかになります。 これだと、 ・スタイルシート見ただけでHTMLの構造が分かるし、HTML見なくてもスタイルシート書ける。 ・HTMLには文書構造しか書いてないので、メンテナンスが楽 ・デザインは自由に変更できる。
お礼
わかりました、ありがとうございますm(_ _ )m