これは、次のようなグリッド構造のコンテンツです。
<div id="gridBlock">
<div class="list-lot-item">
<div class="list-lot-item-info">
<a href="#" class="list-lot-item-col1"></a>
<div class="list-lot-item-col2"></div>
<div class="list-lot-item-col3"></div>
</div>
</div>
<div class="list-lot-item">....</div>
</div>
そのようないくつかのCSSを使用します(ただし、JSFiddleではより多くの):
#gridBlock .list-lot-item{
float:left;
position:relative;
height:25px;
width:50px;
border:1px solid #fff;
padding-left:2px;
}
#gridBlock .list-lot-item-info,
#gridBlock .list-lot-item-info-on{
display:block;
position:absolute;
background-color:#fff;
border:1px solid #fff;
width:50px;
}
#gridBlock .list-lot-item-info{
z-index:199;
}
#gridBlock .list-lot-item-info-on{
border:1px solid red;
top:0;
z-index:200;
position:relative;
background-color:yellow;
}
#gridBlock .list-lot-item-col2,
#gridBlock .list-lot-item-col3{visibility:hidden;}
#gridBlock .list-lot-item-info-on .list-lot-item-col2,
#gridBlock .list-lot-item-info-on .list-lot-item-col3{visibility:visible;}
ボックスの「ホバー」状態ごとに、より高い z-index を持つ新しい「オン」クラスを適用します。
$('#gridBlock .list-lot-item').hover(
function(){$(this).children(0).removeClass("list-lot-item-info");$(this).children(0).addClass("list-lot-item-info-on");},
function(){$(this).children(0).removeClass("list-lot-item-info-on");$(this).children(0).addClass("list-lot-item-info");}
);
明らかに、FF、Chrome、IE8+ では完璧に動作しますが、古くからの友人である IE7 は弱いです。互換モードで試してみてください:
IE7 は、ホバーされたボックスを隣接するグリッド ボックスの下にポップします。それを修正する良い提案はありますか?