display、visibility、opacity、rgba、z-index隠し要素の違い
display: none; ブラウザはdisplay:noneという属性を生成しません.の双曲線コサインを返します. display: none;スペースを占有せず、イベントに応答しないため、このプロパティを動的に変更すると再配置が発生します.
visibility: hidden;要素は隠されますが、消えずに空間を占めています. visibility:hiddenは布団クラスに継承され、サブクラスは表示された設定visibility:visibleによってもよい.を返します. visibility: hidden;エレメントがバインドされたイベントはトリガーされません. visibility: hidden;このアトリビュートを動的に変更すると、再描画が発生します. transitionは無効です. opacity:0 opacity:0は透明度100%にすぎず、要素は非表示であり、依然として空間を占めている. opacity:0は要素に継承され、サブ要素は非表示にできません. opacity:0の要素は、バインドされたイベントをトリガーすることができます. transitionは有効です.
rgba background:rgba(R,G,B,0)は、背景色が透明で、要素が透明で、依然として空間を占めているだけです. background:rgba(R,G,B,0)布団要素は を継承しません.は、依然としてバインドされたイベントをトリガーすることができる. transitionは有効です.
z-index: -1要素の現在のdomがドキュメントフロー(position:absolute)から離れていることを前提に、z-indexを設定してこそ機能します. z-index:-1を設定することは、本質的に現在のdomの積層コンテキストを変更し、他の要素の下に器を配置し、隠された目的を達成することである. 部分再配置、他のレイヤーレイアウトに影響しない は他の要素によってブロックされ、上位要素がpointer-events:noneを設定してもイベントに応答できません.(注:この属性は継承されます) にもクリックできません.
しょうしけん
自分でやってみてもいいですよ.
visibility: hidden;
rgba
z-index: -1
しょうしけん
自分でやってみてもいいですよ.
// html
<div class="container">
<div class="target">
<p>I am target, and you ?</p>
</div>
</div>
// css
<style>
.container{
margin: 0 auto;
width: 500px;
min-height: 30px;
background-color: skyblue;
}
.target{
width: 200px;
height: 50px;
line-height: 50px;
text-align: center;
margin: 0 auto;
background-color: plum;
color: #fff;
transition: all linear 1s;
cursor: pointer;
}
.clickBlock{
display: none;
}
.clickVisibility{
visibility: hidden;
}
.clickOpacity{
opacity: 0;
}
.clickRgba{
background-color: rgba(221, 160, 221, 0);
}
.clickZindex{
z-index: -1;
position: absolute;
}
</style>
// js
const _target = document.getElementsByClassName("target")[0];
_target.onclick = (() => {
let i = 1; // click
return () => {
// _target.attributes.class.value += " clickBlock";
// _target.attributes.class.value += " clickVisibility";
// _target.attributes.class.value += " clickOpacity";
// _target.attributes.class.value += " clickRgba";
_target.attributes.class.value += " clickZindex";
console.log(` ${i} `);
i++;
}})();