2016-07-29 8 views
0

Here is the jsfiddle私の質問を説明する。このdivはどのような例ですか?

浮動小数点型のdivに高さがありません(.card)。画像にネストされたdiv(.image)が含まれています。イメージは、.cardの境界ボックスを展開してイメージをラップします。 I .imageに兄弟として.card内部の巣秒のdiv(.text)をし、画像の上に.textを配置するために、負のマージントップを使用して、画像がもはや.cardのバウンディングボックスを展開して管理ししかし

、画像の下部に一致するようにします。 .cardのボトム境界は、上に這い上がり、.textのボトム境界に続きます。

.textが存在する場合、画像がgrand-parentの展開に成功しないのはなぜですか?

<div class="card"> 
    <div class="image"> 
    <img src="https://dl.dropboxusercontent.com/u/55892413/jsfiddle/image.jpg" width="200px"></div> 
</div> 
<div class="card"> 
    <div class="image"> 
    <img src="https://dl.dropboxusercontent.com/u/55892413/jsfiddle/image.jpg" width="200px"></div> 
    <div class="text"></div> 
</div> 

img { 
    display: block; 
} 

.card { 
    border: 1px solid black; //shows where the bounding-box of this div is 
    width: 200px; 
    position: relative; 
    float: left; 
} 

.text { 
    width: 100px; 
    height: 100px; 
    background-color: red; 
    margin-top: -120px; 
    position: relative; 
} 
+0

あまりにも混乱しやすい質問です。私はあなたがより多くの視点を得るのだろうか..あなたの質問をもう少しクリアしてください。ありがとう –

+0

間違っていない場合は、このhttps://jsfiddle.net/LeoLion/sc8bn4t3/11/ –

+0

をご覧ください。 (私は多くの仕事をしており、すぐには対応できませんでした) – pastic

答えて

0

あなたのポイントを得るのが間違っていない場合は、絶対位置がありません:絶対的です。

親divが相対、内部要素絶対の場合にのみ、内側要素の位置を固定することができます。

あなたは相対的な間違った方法で位置を.card(親)の内側(子).TXT使用しようとしているため、この問題が発生して更新しました。あなたがポジションを使用しているときはいつでも、親は相対的でなければならず、子は絶対的なものになるので、子供はフローを破ることなく親コンテナ内を移動します(あなたのケースでは、親divに影響を与え、 :絶対的な子供にして、あなたは簡単に.txtクラスを使用することができます。

position: relative;to position: absolute;を.textクラスに変更するだけで完了です。

here

+0

こんにちは。はいといいえ。絶対配置は、問題のサイト(テキストにオーバーレイされたイメージ)を得るために、私がそのサイトで使用するものです。しかし、私は解決策を求めていない、私はフィドルの(失敗)状況が発生する理由を理解しようとしているので、私のCSSを深める。方程式に赤いボックスが追加されたときに境界線が画像の周りを移動しないという効果はランダムではありませんか?しかし、なぜそうであるのか理解できません。 – pastic

+0

@pasticその問題についても私の解決策をお読みください。私はちょうど答えを投稿していませんが、行も。私は絶対位置の要素の中にイメージを置くように言った、そしてそれは相対的な親としか働かないだろう、そうでなければ、それは何か起きているように振舞うでしょう。 –

+0

また私の更新された答えをチェックしてください。それが助けてくれることを願って。 –

関連する問題