2017-11-16 16 views
1

divを上端と下端の両方でホバー上に延長するトランジションが必要です。今、それは上のdivをオーバーラップし、下のdivをプッシュします。等価遷移

両側を押したり、両側を重ねたりします。両方のうちの1つではありません。

#blue, #red { 
    width: 100%; 
    height: 100px; 
    float: left; 
    transition: 0.8s; 
    transition-timing-function: ease-out; 
    font-size: 24px; 
    margin-top: 0; 
    margin-bottom: 0; 
} 

#blue { 
    background-color: blue; 
} 

#red { 
    background-color: red; 
} 

#blue:hover, #red:hover { 
    height: 200px; 
    font-size: 48px; 
    margin-top: -50px; 
} 

これは、私がwithを働いているものです:

#blue, #red { 
 
    width: 100%; 
 
    height: 50px; 
 
    float: left; 
 
    transition: 0.8s; 
 
    transition-timing-function: ease-out; 
 
    font-size: 12px; 
 
    margin-top: 0; 
 
    margin-bottom: 0; 
 
} 
 

 
#blue { 
 
    background-color: blue; 
 
} 
 

 
#red { 
 
    background-color: red; 
 
} 
 

 
#blue:hover, #red:hover { 
 
    height: 100px; 
 
    margin-top: -25px; 
 
}
<div id="blue"></div> 
 
<div id="red"></div> 
 
<div id="blue"></div> 
 
<div id="red"></div> 
 
<div id="blue"></div> 
 
<div id="red"></div> 
 
<div id="blue"></div>

ありがとう!ここで

答えて

2

はあなたの問題です:

  1. のは、ここにfloatを削除してみましょう、これは必須ではありません。
  2. 負のマージンを削除します。これは、が重複するコードのためです。
  3. 最後に、繰り返しIDなしでHTMLを修正します。

ここスニペット:

.blue, .red { 
 
    width: 100%; 
 
    height: 50px; 
 
    transition: 0.8s; 
 
    transition-timing-function: ease-out; 
 
    font-size: 12px; 
 
    margin-top: 0; 
 
    margin-bottom: 0; 
 
} 
 

 
.blue { 
 
    background-color: blue; 
 
} 
 

 
.red { 
 
    background-color: red; 
 
} 
 

 
.blue:hover, .red:hover { 
 
    height: 100px; 
 
    margin-top: 0px; 
 
}
<div class="blue"></div> 
 
<div class="red"></div> 
 
<div class="blue"></div> 
 
<div class="red"></div> 
 
<div class="blue"></div> 
 
<div class="red"></div> 
 
<div class="blue"></div>

0

この

#blue, #red { 
 
    width: 100%; 
 
    height:50px; 
 
    float: left; 
 
    transition: 0.8s; 
 
    transition-timing-function: ease-out; 
 
    font-size: 12px; 
 
    margin-top: 0; 
 
    margin-bottom:0; 
 
} 
 
#blue { 
 
    background-color: blue; 
 
} 
 
#red { 
 
    background-color: red; 
 
} 
 
#blue:hover, #red:hover { 
 
    height:100px; 
 
    padding-top:25px; 
 
}
<div id="blue"></div> 
 
    <div id="red"></div> 
 
    <div id="blue"></div> 
 
    <div id="red"></div> 
 
    <div id="blue"></div> 
 
    <div id="red"></div> 
 
    <div id="blue"></div>

+0

確認するには? ** 1。**あなたのHTMLは間違っています。 ** 2。**あなたはあなたが何を変えたかは言わなかった。変更が見つかりません。 – Soolie

+0

このパディングトップを追加する:25pxは期待どおりに動作します! #blue:ホバー、#red:ホバー{ 高さ:100px; パディングトップ:25px; } –

+0

と私のHTMLは間違っていません。 –

0

ない君たちは本当に私が何をしようとしている得ることを確認を確認してください。私は重複を取り除こうとしているだけではありません、私は上部と下部の両方で展開するようにしようとしています。

例では、赤いdivにマウスを合わせると、青いdivを押して離したり、両方を重ねたりします。私もどちらかといいです。今は片方の端に重なり、もう一方の端を押しのけます。

明確にするために、私は単純にdivを重複させずに大きくしたくありません。

これまでの回答に感謝します。