如何使用CSS无法点击某个区域?

时间:2009-04-22 00:09:51

标签: javascript jquery css

假设我有包装div包含一些链接和图像, 有什么方法可以一次性使用CSS停用它吗?


回答答案后:
我放弃了只能用CSS制作它的想法。 jQuery blockUI插件就像魅力一样。

7 个答案:

答案 0 :(得分:137)

有一个CSS规则,但由于旧的浏览器支持

,它没有被广泛使用

pointer-events: none;

答案 1 :(得分:10)

这些天你可以在内容上放置一个伪元素。

.blocked
{
    position:relative;
}
.blocked:after
{
    content: '';
    position: absolute;
    left:0;
    right:0;
    top:0;
    bottom:0;
    z-index:1;
    background: transparent;
}

http://jsfiddle.net/HE5wR/27/

答案 2 :(得分:6)

如果您打算使用jQuery,可以使用blockUI插件轻松完成此操作。 ...或者用CSS回答你的问题,你必须绝对将div放在你想要阻止的内容上。只需确保绝对定位的div位于要为z索引目的而被阻止的内容之后。

<div style="position:relative;width: 200px;height: 200px;background-color:green">
    <div>
        <a href="#">Content to be blocked.</a>
    </div>
    <div style="position: absolute;top:0;left:0;width: 200px;height:200px;background-color: blue;z-index:2;opacity:0.4;filter: alpha(opacity = 50)"></div>
</div>

抱歉所有的内联css。你必须做一些不错的课程。此外,这只在firefox和IE7中测试过。

答案 3 :(得分:4)

用另一个不可点击的元素覆盖它。您可能需要使用JavaScript来打开和关闭此“封面”。你可以做一些聪明的事情,比如把它变得半透明或者其他东西。

<style>
    #cover {position:absolute;background-color:#000;opacity:0.4;}
</style>

<div id="clickable-stuff">
   ...
</div>
<div id="cover">
</div>

<script type="text/javascript">
    function coverUp() {
        var cover = document.getElementById('cover');
        var areaToCover = document.getElementById('clickable-stuff');
        cover.style.display = 'block';
        cover.style.width = //get areaToCover's width
        cover.style.height = //get areaToCover's height
        cover.style.left = //get areaToCover's absolute left position
        cover.style.top = //get areaToCover's absolute top position
    }

    /*
       Check out jQuery or another library which makes
       it quick and easy to get things like absolute position
       of an element
    */
</script>

答案 4 :(得分:1)

您应该考虑应用jQuery的event.preventDefault函数。 在这里你可以找到一个例子:

http://api.jquery.com/event.preventDefault/

TL; DR-版本:

$("#element-to-block").click( function(event) {
  event.preventDefault();
}

BAM!

答案 5 :(得分:1)

我认为这也可行:

CSS

# create all possible combinations
df <- expand.grid(myList, myList)

# ensure only 1 combination for each pair
df <- as.data.frame(unique(t(apply(df, 1, sort))))

# remove same city combinations
df <- subset(df, df$V1 != df$V2)

# create column with pairs
df$combo <- paste0(df$V1, "-", df$V2)

答案 6 :(得分:-1)

如果您的意思是不可点击,以便用户无法以某种方式复制和粘贴它或保存数据。不,这是不可能的。所有那些制作的网站都是声音/看起来像是有一些方法来阻止保存的东西并不是真的,它们采取的措施很容易解决。