Javascript css3非选择器的替代方案
是否有符合IE8(和怪癖模式)的Javascript css3非选择器的替代方案,javascript,jquery,html,css,css-selectors,Javascript,Jquery,Html,Css,Css Selectors,是否有符合IE8(和怪癖模式)的:notcss3选择器的替代品 在css或javascript/jquery中模拟选择器或类似内容 我使用的*:不是,如下所示。请随意推荐一种解决方案,避免完全使用:而不是 @media screen { #printable { visibility: hidden; } } @media print { *:not(#printable) { visibility: hidden; }
:not
css3选择器的替代品
在css或javascript/jquery中模拟选择器或类似内容
我使用的*:不是,如下所示。请随意推荐一种解决方案,避免完全使用:而不是
@media screen {
#printable {
visibility: hidden;
}
}
@media print {
*:not(#printable) {
visibility: hidden;
}
#printable {
position: absolute;
visibility: visible;
}
}
请注意,:not
的使用与@media print
的使用是紧密相连的,因此只需使用一个简单的jQuery解决方案将css应用于$(“:not(#printable)”)
就无法实现
包括像ie9.js或selectivirz这样的整个库不是一个选项,因为它会影响页面的其他各个部分,并且会涉及大量的重新测试
显示它在支持:not
的浏览器中工作的JSFIDLE请参见和在这种情况下,我认为您不需要:not
:
@media screen {
#printable {
visibility: hidden;
}
}
@media print {
* {
visibility: hidden;
}
#printable {
position: absolute;
visibility: visible;
}
}
选择器#printable
的优先级高于*
,因此您的#printable
元素将可见。您可以尝试特殊性覆盖,即
@media print {
* {
visibility: hidden;
}
#printable, #printable * {
visibility: visible;
}
}
我特别提到使用这些库不是一个选项。这正是我想要的。请记住,#printable的子元素将被隐藏,除非您还将#printable*
样式设置为可见。所以@hardyharzen的答案更好。而且隐藏的元素仍然显示为空白;您可能需要使用display:none代码>改为。@Spudley显示无代码>用于#可打印的容器将删除#可打印的