
久しぶりの投稿となります。
まだまだ未熟なのですがスタイルシートでデザインし、それを使ってブログにする。ということを考えています
例えば
#blog{border:inset 10px #000000;
width:500px; height:100px;
background-color:#FFFFFF;
position:absolute;
top:100px; left:200px;
}
こんな感じでHTMLに組み込むと横幅500px縦100pxの上から100px、左から200pxの位置にある
枠で囲った表が出ると思うのですが、ここまではいいのです。
ここで文字を入れて過度に改行すると枠も自動的に伸びますよね?
つまり縦100pxを超える文字列を記述したときなどです。
これもいいのです。
ブログですから当然記事も2つ以上一つのページに表示することになるので
#blog2{border:inset 10px #000000;
width:500px; height:100px;
background-color:#FFFFFF;
position:absolute;
top:300px; left:200px;
}
とすれば#blogは上から100pxの高さで高さが100pxの枠が表示されると思うので#blog2は#blogの100px下に同じ条件で現れると思います。
これもいいのですが、#blogで100pxを超えて300pxの高さになる文章を書いたとします。
そうなると#blog2の上にかぶさってしまいますよね?
そうならないためにはどうしたらいいのでしょうか。。。
固定でいつも上の記事(#blog)の100px下。という感じに出来ないでしょうか?
出来るならば4つくらい記事を書いても記事と記事との間にスペースが生まれるのでいいなぁと思ったのですが。。。
こうなると#blog(記事の一番目)の100px下に#blog2(記事の二番目)、その下100pxに#blog3(記事の3番目)さらにその下に#blog4(記事の四番目)というように。
説明がよくわからないと思うのでどのようにしたいか伝わらなかった場合どんどんお申し付けください。
よろしくお願いします
No.1ベストアンサー
- 回答日時:
先ほど書いたコメント
CSSについて 初心者です。positionについて - 教えて!goo ( http://oshiete1.goo.ne.jp/qa4705773.html )
を参考にしてください。
≫例えば
≫#blog{border:inset 10px #000000;
≫width:500px; height:100px;
≫・・・【中略】・・・
≫position:absolute;
≫top:100px; left:200px;
≫}
≫こんな感じでHTMLに組み込むと横幅500px縦100pxの上から100px、左から
≫200pxの位置にある枠で囲った表が出ると思うのですが、ここまではいいのです。
違います。あくまでそのブロックの祖先(static以外)を基準にして自分自身を基準にするわけではありません。
ごく単純に
・・・・・・・・
<div class="Article" id="m09021001">
<h1>見出し(2009/02/10)</h1>
<p>・・・・・・・・・・・・・・・・・・・・</p>
<p>・・・・・・・・・・・・・・・・・・・・</p>
</div>
<div class="Article" id="m09021101">
<h1>見出し(2009/02/11)</h1>
<p>・・・・・・・・・・・・・・・・・・・・</p>
<p>・・・・・・・・・・・・・・・・・・・・</p>
</div>
に対して
div.Article{margin-bottom:100px;}
で良い。
★div.Article+ div.Article{ margin-top:100px;}がよいけど、IEに使えない。
この回答への補足
ありがとうございます。
初歩的なのですがブロックの祖先というのはどのようなものでしょうか?一番外枠ということでしょうか?
自分自身というのはabsoluteで設定した位置の事ですよね?
サンプルを試してみたのですが反応がありませんでした。
というのは記述方法がabsoluteでやるのか他のpositionの種類で書くのかよくわからなかったからです。
absoluteでやると、結局マージンの効果が意味がないと思うので違うと思うのですが・・・
(blog.css)
#blog{ border:ridge 3px #000000;
width:600px; height:100px;
【略】
position:absolute;
top:160px; left:220px;
}
#blog2{ border:ridge 3px #000000;
width:600px; height:100px;
【略】
position:absolute;
top:650px; left:220px;
}
(blog.html)
<HTML>
(略)
<HEAD>
</HEAD>
<BODY>
<div class="Article" id="blog">
<h1>見出し(2009/02/10)</h1>
<BR>
おはよう
</div>
<div class="Article" id="blog2">
<h1>見出し(2009/02/11)</h1>
<BR>
おはようございます
</div>
</BODY>
</HTML>
記述方法が違うのでしょうか・・・
No.2
- 回答日時:
≫ブロックの祖先というのはどのようなものでしょうか?
たとえば、
<body>
<div class="a">
<div class="b">
<div class="c">
<div class="d">
</div>
<div class="e">
</div>
<div class="f">
</div>
</div>
<div class="g">
</div>
</div>
</div>
ある場合、ツリー構造は
body
|-div.a
|-div.b
|-div.c
|-div.d
|-div.e
|-div.f
となります。div.dにとっての祖先は順番に、c(親)、b(祖父母)、a.曾祖父母、body(高祖父母)ですね。
no.1>そのブロックの祖先(static以外)を基準にして
とは、div.dより前のstatic(デフォルト)以外の、div.dを含むブロックはありませんから、bodyを基準にします。
>自分自身を基準にするわけではありません。
もし、div.cが、relative,absolute,fixedのstaticで、設定されているとそれが
>そのブロックの祖先(static以外)
となりますから、div.cを基準にして絶対配置されます。
【そのとき、それに続くdiv.eゃdiv.gは、あたかもdiv.dが存在しないように配置されます。】
同様に、div.bにstatic以外が設定してあると、それが基準になります。
ですから、absoluteは無用だと・・言うことです。単純に
div.Article{margin-bottom:100px;}
だけで済む話・・・
この回答への補足
祖先については大体理解できたかと思います。
最終的にはbodyの部分が祖先ということですよね?
そして途中でabsolute等で絶対位置を決めた場合にはそこから祖先として扱うということでしょうか?
また「親ボックスにpositionプロパティのstatic以外の値が指定されている場合には、親ボックスの左上が基準位置となります。親ボックスにpositionプロパティのstatic以外の値が指定されていない場合には、ウィンドウ全体の左上が基準位置となります」
と書いてあるのですが、これもちょっとわからず・・・
(参考URL)http://www.css-lecture.com/log/css/037.html
親ボックスというのは例のように一つ前のことでしょうか
(blog.html)
<DIV id="a"><A href="略">a
</A></DIV>
<DIV id="b"><A href="略">b
</A></DIV>
<DIV id="c"><A href="略">c
</A></DIV>
<DIV id="d"><A href="略">d
</A></DIV>
<DIV id="e"><A href="略">e
</A></DIV>
<DIV id="f"><A href="略">f
</A></DIV>
<DIV id="g"><A href="略">g
</A></DIV>
<DIV class="Article" id="blog">
おやすみ
</DIV>
<DIV class="Article" id="blog2">
おやすみなさい
</DIV>
(blog.css)
.Article{margin-bottom:100px;}
#blog{ border:ridge 3px #000000;
width:600px; height:100px;
padding: 100px 15px 50px;
position:absolute;
top:160px; left:220px
}
#blog2{ border:ridge 3px #000000;
width:600px; height:100px;
padding: 100px 15px 50px;
}
#blogはabsoluteで設定しているのでおきたい場所に置くことが出来るのですがabsoluteが無用ということがいまいちピンと来ないのです・・・
#blog2は位置を設定していないので左上に来てしまいます。
また上のサンプルでの#blogの親がよくわかりません・・・
別のスタイルシートでid="a"からid="g"は記しています。
>>もし、div.cが、relative,absolute,fixedのstaticで、設定されているとそれが
そのブロックの祖先(static以外)
となりますから、div.cを基準にして絶対配置されます。
とのことなのですがabsoluteのstaticやrelativeのstaticのstaticの部分がわかりません。
staticは標準値だったかと思うのですが少し理解力が乏しく。。
>>【そのとき、それに続くdiv.eゃdiv.gは、あたかもdiv.dが存在しないように配置されます。】
というのはdiv.dの配置を無視して後続のdiv.eやdiv.gが配置されるということでしょうか?
何度も申し訳ないのですがご回答よろしくお願いします
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- HTML・CSS CSS上での計算を行うためのルールについて教えてください。 3 2022/08/15 14:43
- 楽器・演奏 電子キーボードのCASIO Privia PX-S1100 とPrivia PX-S1000のどちら 1 2023/07/31 20:56
- HTML・CSS 吹き出し 下記の吹き出しのスタイルシートについて 下記のスタイルシートは左側にアイコンがでる使用にな 1 2022/11/12 17:55
- 防災 【自衛隊のPX品のPXってどういう意味ですか?】 3 2022/07/02 13:12
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- HTML・CSS 検索窓とcssハックについて 3 2022/04/22 12:21
- その他(パソコン・スマホ・電化製品) 新品未使用品のPX-M650F というエプソンのプリンターを売りたいのですが ハードオフかセカンドス 6 2022/12/17 16:53
- プリンタ・スキャナー エプソンの PX 105 プリンター ブラックのみカートリッジ使用する設定 教えてください 1 2023/03/20 17:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
htmlの文字が縦書きになる
-
並んだ2つのfloatボックス、片...
-
cssを使用し文字の均等割付(指...
-
divの中にspanを右寄せにするに...
-
div内に外部のurlを表示させたい
-
CSSがなぜかfont-sizeだけ効か...
-
firefoxで見るとdiv背景画像が...
-
背景が下まで表示されないんです。
-
widthやheightの数値に単位(px...
-
表示倍率を変えるとレイアウト...
-
枠線でメイン部分を囲み、フッ...
-
safariでの横並びリスト(List...
-
width:100%ではみ出す
-
CSS の疑問です
-
画面に表示したらアニメーショ...
-
インラインフレーム内の文字ク...
-
CSS上での計算を行うためのルー...
-
webサイトのカンプをillustrato...
-
吹き出し 下記の吹き出しのスタ...
-
marginとナビゲーションの位置...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlの文字が縦書きになる
-
widthやheightの数値に単位(px...
-
form input テキストを上下中央...
-
<div>と<div>の間の10px程の...
-
【CSS】ヘッダーの高さが不明の...
-
余分な縦スクロールバーが出て...
-
CSSがなぜかfont-sizeだけ効か...
-
css初心者 フレックスボックス...
-
W3Cのソースコードの検証サービ...
-
表示倍率を変えるとレイアウト...
-
div内に外部のurlを表示させたい
-
画像イメージの上下左右、欲し...
-
table周辺の隙間をなくしたい。
-
divで囲まれたpaddingの指定を...
-
CSSで背景画像を一番下にもって...
-
HTMLのiframeの入れ子について
-
footer を横幅いっぱいに広げる...
-
CSSでボックスのheightが0になる
-
テーブル内の画像をマウスオー...
-
スクロールボックスを中央に配...
おすすめ情報