2017-11-27 2 views
0

私はトリッキーな問題を解決したいと思います。私は固定位置に2 div(a、b)を持っています。そのうちの1つ(a)の中には、絶対位置にdiv(b)があります。私は黄色の部分に青いdivを入れたいと思う。ここでdivのホバーをCSSの特定のシナリオに置く方法

はフィドルです:https://jsfiddle.net/k42wu2g3/3/

.left { 
 
    top: 0; 
 
    position: fixed; 
 
    width: 30%; 
 
    z-index: 2; 
 
    background: green; 
 
    left: 0; 
 
    height: 300px; 
 
    overflow: scroll; 
 
} 
 
.right { 
 
    top: 0; 
 
    position: fixed; 
 
    width: 69%; 
 
    z-index: 1; 
 
    background: yellow; 
 
    left: 30%; 
 
    height: 300px; 
 
} 
 
.hover { 
 
    background: blue; 
 
    position: absolute; 
 
    margin-left: 70px; 
 
    width:500px; 
 
}
<div class="left"> 
 
    LEFT CONTENT LEFT CONTENT 
 
    <div class="hover"> 
 
    DIV HOVER RIGHT 
 
    </div> 
 
    LEFT CONTENT LEFT CONTENT LEFT CONTENT LEFT CONTENT LEFT CONTENT LEFT 
 
    CONTENT LEFT CONTENT LEFT CONTENTLEFT CONTENT LEFT CONTENT LEFT CONTENT LEFT 
 
    CONTENT LEFT CONTENTLEFT CONTENT LEFT 
 
    CONTENT LEFT CONTENT LEFT CONTENT LEFT CONTENTLEFT CONTENT LEFT CONTENT LEFT 
 
    CONTENT LEFT CONTENT LEFT CONTENTLEFT CONTENT LEFT CONTENT LEFT CONTENT LEFT 
 
    CONTENT LEFT CONTENT 
 
    <div class="hover"> 
 
    DIV HOVER RIGHT 
 
    </div> 
 
    LEFT 
 
    CONTENT LEFT CONTENT LEFT CONTENT LEFT CONTENT LEFT CONTENT 
 
</div> 
 
</div> 
 
<div class="right"> 
 
    RIGHT 
 
</div>

+0

あなたの青のdivは、緑のdivの中にネストされています。それは目的ですか?そうでない場合は、黄色のdivの青いdivを入れ子にすると役立ちます。 – DSCH

+0

はい、できません。青いdivは緑色のdivにする必要があります – john

+0

問題の原因は、基本的に '.left'で宣言されている' overflow'プロパティルールになります。だから私の質問です。 html構造をどの程度編集または更新できますか? – UncaughtTypeError

答えて

0

は、あなたが探しているものを、このですか?または、あなたは青いdivの絶対的な位置が必要ですか?

.left { 
 
    top:0; 
 
    position:fixed; 
 
    width:30%; 
 
    z-index:2; 
 
    background:green; 
 
    left:0; 
 
    height:300px; 
 
    overflow:scroll; 
 
} 
 
.right { 
 
    top:0; 
 
    position:fixed; 
 
    width:69%; 
 
    z-index:1; 
 
    background:yellow; 
 
    left:30%; 
 
    height:300px; 
 
} 
 
.hover { 
 
    background: blue; 
 
    position:fixed; 
 
    left: 30%; 
 
    top: 0; 
 
    right:0; 
 
    z-index: 5; 
 
    height: 300px; 
 
}
<div class="left"> 
 
LEFT CONTENT LEFT CONTENT 
 
<div class="hover"> 
 
DIV HOVER RIGHT 
 
</div> 
 
LEFT CONTENT LEFT CONTENT LEFT CONTENT LEFT CONTENT LEFT CONTENT LEFT CONTENT LEFT CONTENT LEFT CONTENTLEFT CONTENT LEFT CONTENT LEFT CONTENT LEFT CONTENT LEFT CONTENTLEFT CONTENT LEFT CONTENT LEFT CONTENT LEFT CONTENT LEFT CONTENTLEFT CONTENT LEFT CONTENT LEFT CONTENT LEFT CONTENT LEFT CONTENTLEFT CONTENT LEFT CONTENT LEFT CONTENT LEFT CONTENT LEFT CONTENTLEFT CONTENT LEFT CONTENT LEFT CONTENT LEFT CONTENT LEFT CONTENT 
 

 
</div> 
 
<div class="right"> 
 
RIGHT 
 
</div>

+0

を編集することができます(私のコードでは、私は固定された位置を使用することができないように緑のdivのいくつかの青のdivを持っています) – john

0

これは何が必要ですか?緑色の側から黄色い側にホバー上の青色のdivを削除しますか?

  • 青い部分がいつ黄色の側に移動するかを明確にしていません。あなたは彼らが緑の側のホバー上で移動するか、または青のdivsをホバーするか、または黄色の側面をホバーするかどうか。
  • ホバーの絶対位置を使用しているため、緑色から黄色の位置に変更すると、下のコードのように位置が変更されたときにオーバーラップします。だからあなたもそれを探していますか?あなたの質問を明確にしてください。

$(document).ready(function() { 
 
    $('.hover').hover(function() { 
 
    var element = $(this).detach(); 
 
    $('.right').append(element); 
 
    }); 
 

 
});
.left { 
 
    top: 0; 
 
    position: fixed; 
 
    width: 30%; 
 
    z-index: 2; 
 
    background: green; 
 
    left: 0; 
 
    height: 300px; 
 
    overflow: scroll; 
 
} 
 

 
.right { 
 
    top: 0; 
 
    position: fixed; 
 
    width: 69%; 
 
    z-index: 1; 
 
    background: yellow; 
 
    left: 30%; 
 
    height: 300px; 
 
} 
 

 
.hover { 
 
    background: blue; 
 
    position: absolute; 
 
    margin-left: 70px; 
 
    width: 500px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="left"> 
 
    LEFT CONTENT LEFT CONTENT 
 
    <div class="hover"> 
 
    HOVER RIGHT 1 
 
    </div> 
 
    LEFT CONTENT LEFT CONTENT LEFT CONTENT LEFT CONTENT LEFT CONTENT LEFT CONTENT LEFT CONTENT LEFT CONTENTLEFT CONTENT LEFT CONTENT LEFT CONTENT LEFT CONTENT LEFT CONTENTLEFT CONTENT LEFT CONTENT LEFT CONTENT LEFT CONTENT LEFT CONTENTLEFT CONTENT LEFT CONTENT 
 
    LEFT CONTENT LEFT CONTENT LEFT CONTENTLEFT CONTENT LEFT CONTENT LEFT CONTENT LEFT CONTENT LEFT CONTENT 
 
    <div class="hover"> 
 
    HOVER RIGHT 2 
 
    </div> 
 
    LEFT CONTENT LEFT CONTENT LEFT CONTENT LEFT CONTENT LEFT CONTENT 
 
</div> 
 
<div class="right"> 
 
    RIGHT 
 
</div>

+0

実際には、右側に青いdivを表示したいが、トリガーは表示されないようにするには、CSSで – john

+0

div内にdivを入れてParent1 divとし、それを別のdiv内に表示したい場合は、Parent2とします。これを行うには、CSSだけを使用します。唯一の選択肢はposition:fixedを使用して(絶対配置は親divタグを参照して動作するため)、それ以外の場合はそのdivを実際に片側から別の側に移動する必要があります。 –

関連する問題