更少条件/保护检查元素:活动?

时间:2013-01-10 15:56:57

标签: css css-selectors less

我有一个包含内部链接的列表项。我已经将列表项设置为链接本身,并启用了css属性:active以使其看起来被单击。但是,当我点击其中的链接时,我希望发生 not ,以免混淆用户实际结束的位置。

在我改变任何事之前

.store-list-item:active {
    -webkit-box-shadow: inset 2px 2px 2px 2px rgba(0, 0, 0, 0.6);
    box-shadow: inset 2px 2px 2px 2px rgba(0, 0, 0, 0.6);
}

与卫兵一起尝试后:

.store-list-item:active when not (.store-list-item .make-default:active) {
    -webkit-box-shadow: inset 2px 2px 2px 2px rgba(0, 0, 0, 0.6);
    box-shadow: inset 2px 2px 2px 2px rgba(0, 0, 0, 0.6);
}

这可能吗?如果没有,任何解决方法?

编辑:我添加了一个关于究竟发生了什么的问题。 http://jsfiddle.net/cV8ep/1/

1 个答案:

答案 0 :(得分:2)

解决方法

如果您将当前位于li上的样式应用于将位于div内的新包装器li,则包含所有的包装器“默认设置”按钮,然后在position: relative上应用li,在按钮上应用position: absolute,将其放回到大约相同位置的包装器上,这将取消关联该按钮位于获取:active状态的包装器中(现在是新的包装器div,而不是li)。这样可以防止点击按钮时激活效果。

See this fiddle(它有一些“hacky”指向它,就像我只是为了说明而覆盖.pull-right类;你会希望在实际构造上更优雅一点代码)。