テーブルをオーバーレイクラスの上に表示するようにしています。これまでのところ悪い。助けてください。
<table>
<tr><td>Test</td></tr>
</table>
<button>Overlay</button>
table {
background-color: white;
height: 300px;
width: 300px;
}
.overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: black;
opacity: 0.5;
z-index: 50;
}
$('button').click(function() {
$('body').append("<div class='overlay'></div>");
$('table').css('zIndex', '60');
$('table').css({ zIndex: 60 });
});
ために z-index
機能するように追加しますposition: relative
またはposition: absolute;
これはjsfiddleです
table {
position: relative;
background-color: white;
height: 300px;
width: 300px;
}
クリックイベントに$('table').css({ 'position': 'relative' });
を追加するだけです
$('button').click(function() {
$('body').append("<div class='overlay'></div>");
$('table').css('zIndex', '60');
$('table').css({ 'position': 'relative' });
});
別のアプローチは、1つまたは複数のクラスを作成し、それらを.addClass()または.toggleClass()で呼び出すことです。
.zindex60 {z-index:60;}
$('button').click(function() {
$('body').append("<div class='overlay'></div>");
$('table').addClass('zindex60');
});
position
プロパティをtable
に追加します。あなたの場合にはあなたが必要だと思いますposition: relative;
。
z-index
は、要素にposition
プロパティが設定されていない場合は機能しません。
table {
position: relative; /* this is required for z-index */
background-color: white;
height: 300px;
width: 300px;
}
これが動作しているjsfidleです: http://jsfiddle.net/Smartik/u96coj0q/3/
JSを最小化し、CSSをさらに活用する別の例を次に示します。 http://jsfiddle.net/Smartik/u96coj0q/5/