在大多数浏览器(支持:target
伪选择器的浏览器)中,您可以使用纯 CSS 执行此操作,给定以下(通用)HTML:
<div id="lock">
<a href="#unlocked">Unlock</a>
</div>
<div id="unlocked" class="pageContent">
<a href="#lock">Lock page</a>
<p>This is the container element for page-content</p>
</div>
和 CSS:
#lock {
display: none;
}
#lock:target {
display: block;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: rgba(255,255,255,0.5);
border: 10em solid rgba(0,0,0,0.6);
text-align: center;
}
JS 小提琴演示
当然,值得重申的是:这个内容在用户的机器上,因此你不能阻止他们与内容的交互(假设他们知道如何与内容交互,例如:右键单击 -> 检查元素 -> 在 web 检查器中右键单击 -> '删除节点',或者简单地使用 JavaScript: document.body.removeChild(document.getElementById('lock'));
)。上面的这种方法只呈现一种限制的错觉,然后只对一个相对温顺/不感兴趣的用户。