Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript css3非选择器的替代方案_Javascript_Jquery_Html_Css_Css Selectors - Fatal编程技术网

Javascript css3非选择器的替代方案

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; }

是否有符合IE8(和怪癖模式)的
: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
显示无用于#可打印的容器将删除#可打印的