2010-11-18 11 views
1

ここでこのような質問をするのはむしろ愚かであると感じるので、誰かが助けてくれることを願っています。私はウェブデザイナーではありませんが、基本的なレイアウトを作成する作業に悩まされています。レイアウトは標準のブラウザを備えた統合されたデバイスで使用されるため、ブラウザ固有のCSSタグのいくつか、つまり:-moz-border-radiusは、IEなどでは必ずしも動作する必要はありません。CSSマージンの間隔が上と辺で異なる

私はいくつかのブロックセクションが必要な1024x768のページを持っています。これらのセクションには、すべての面に4pxのスペースがあります。だから、2x2グリッドはサイト全体の外側に4pxの隙間(黒)を持つべきですが、内部はボックス間に8pxの隙間があります(1箱の右側に4px、左側に4px、または下部に4px 1つ、4pxを先頭に)

これらのdivのCSSをそれぞれmargin:4pxに設定すると、私は4pxの外側のギャップを取得します。私はまた、ボックスの左右の横に8pxの水平方向のギャップを取得します。問題は、4分の1ボックスの1つが上下のマージンを適用していないように、縦の間隔が4ピクセルであることです。私はこれが起こるはずのものだとは思わないので、私はどこかで間違いを犯したと思います。

ありがとうございます - この場所は素晴らしいです。

答えて

2

これは「マージンコラプシング」によるものです。最も単純な場合、隣接する最小の垂直マージンは無視されます。

+0

お返事ありがとうございます。洞察力がある場合は、質問2のアボーを参照してください。再度、感謝します! –

+0

1つのオプションは、各オブジェクトの周囲に透明な単一のピクセル境界線を適用することです。もちろん、その変更を考慮する必要がありますが、ディメンションに絶対値を使用している場合は簡単に修正できます。 –

+1

Btw、これはいいリファレンスです:http://reference.sitepoint.com/css/collapsingmargins –

2

余白の代わりにパディングを使用してみてください。

2つのオブジェクト間の最大マージンが、それらの間のスペースとして使用されます。

あなたはパディングを使用している場合object_aは4の余裕を持っており、object_bは6の余裕を持っている場合は、それらを並べて配置する場合、彼らは6

の余裕を持って、それはより多くのを作成し、彼らの周りにバブル、そして距離を組み合わせる。

object_aは4のパディングを持っており、object_bは6のパディングを持っている場合は、あなたが側でそれらを側面を配置する場合、彼らは10


UPDATEのパディングを持っています - @Bobbyのおかげでジャック

横のマージンは決して崩壊しません。垂直のみ。

+0

クイック返信ありがとう。私は毎日何か新しいことを学びます。私のレイアウトでこれを達成する最も簡単な方法を知っていますか?マージンを使うと、divの外にスペースができます。パディングを使用すると、div内にスペースが作成され、divの4pxが各サイドで広くなります。私はこのアイデアを使ってdivのネストを行い、外側のdivを4pxのパディングで透明に保つことができます。私はこれがもっともエレガントな方法であるかどうかは分かりません。ちょうど何かが欠けていないことを確認したい –

+0

マージンの崩壊は垂直マージンにのみ影響することに注意することが重要です。 「横並び」という用語を使用すると、そうでない場合もあります。 –

+0

@ Bobby - 本当ですか?私はそれを聞いたことがない、あなたは記事がありますか?それはいつも私に影響を与えているようです。 –

関連する問題