Yas*_*rük 0 css hover css-tables
我有一个表,并且有一个用于 tr:hover 效果的全局 css 代码。但有时我不想在我的桌子上使用这种悬停效果。请查看代码并告诉我如何不在该表上运行效果。JSFIDDLE。这里有一个css id。它的名称是产品表。我没有清除这个CSS。IT 规则。
#product-table > tbody > tr { cursor:pointer; }
#product-table > tbody > tr:hover { background:#eee; }
.nohover > tbody > tr { cursor:default !important; }
.nohover > tbody > tr:hover { background:inherit !important; }
.green_bg { background-color:#090; }
Run Code Online (Sandbox Code Playgroud)
你的问题是你的CSS代码的特殊性——这里有一篇关于它的很好的读物。
通过 id 引用元素(使用 # ),将始终覆盖通过使用其类引用它而给出的任何样式(使用 . )。
为了覆盖以前的样式,您需要至少具有相同的特异性级别。
在您的情况下,您应该将 id 添加到.nohover
选择器以覆盖以前的样式。
#product-table > tbody > tr { cursor:pointer; }
#product-table > tbody > tr:hover { background:#eee; }
#product-table.nohover > tbody > tr { cursor:default !important; }
#product-table.nohover > tbody > tr:hover { background:#fff !important; }
Run Code Online (Sandbox Code Playgroud)
这将覆盖之前的定义,因为它有一个 id 和一个类,比仅通过 id 调用它高一级。
如需更“官方”的阅读,请参阅w3.org 的规范
编辑:
如果我理解正确,您想要禁用所有悬停在具有 class 的表上.nohover
。
这可以通过仅在没有排除类的表上应用悬停样式来完成。像这样:
#product-table:not(.nohover) > tbody > tr { cursor:pointer; }
#product-table:not(.nohover) > tbody > tr:hover { background:#eee; }
.green_bg { background-color:#090; }
Run Code Online (Sandbox Code Playgroud)