Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/35.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
Css 使用“;,这两个选择器之间有什么区别:不是”;?_Css_Css Selectors - Fatal编程技术网

Css 使用“;,这两个选择器之间有什么区别:不是”;?

Css 使用“;,这两个选择器之间有什么区别:不是”;?,css,css-selectors,Css,Css Selectors,这两个选择器之间有什么区别 输入:非([type=“radio”][type=“submit”]) 输入:不([type=“radio”]):不([type=“submit”]) 是否会选择没有类型属性的标记 我读过: 这一行似乎无效,因为多个[]似乎没有通过W3C CSS验证服务: input:not([type="radio"][type="submit"]) 但是,这一行是有效的,只是排除了这两种类型中任何一种类型的元素,但选择了属于输入的任何其他元素: input:not([t

这两个选择器之间有什么区别

输入:非([type=“radio”][type=“submit”])
输入:不([type=“radio”]):不([type=“submit”])
是否会选择没有
类型
属性的
标记

我读过:


这一行似乎无效,因为多个
[]
似乎没有通过W3C CSS验证服务:

input:not([type="radio"][type="submit"])
但是,这一行是有效的,只是排除了这两种类型中任何一种类型的元素,但选择了属于
输入的任何其他元素:

input:not([type="radio"]):not([type="submit"])
但是,我在
:not
选择器的文档中找不到任何证据。如果您想测试验证,这里有一个指向W3C验证程序的链接:

现在,让我们在一个片段中测试一下

输入{
边框:1px纯蓝色;
}
#有效输入:非([type=“radio”]):非([type=“submit”]){
边框颜色:红色;
}
#无效输入:不是([type=“radio”][type=“submit”]){
边框颜色:红色;
}

有效:输入:不([type=“radio”]):不([type=“submit”])
无效:输入:非([type=“radio”][type=“submit”])

在这里,我只是想尝试一下区别

我在下面的JSFIDLE中尝试了4种方法,您可以在中的注释中看到

$(文档).ready(函数(){
//使用jquery应用
$('.usingJquery输入:not([type=“radio”],[type=“submit”])。css({
“背景色”:“cadetblue”,
“边框”:“虚线#7FFF00”
});
})
输入{
填充:10px;
利润率:10px;
}
/*将只应用第一个,因此边框和背景将应用于所有输入类型(不包括收音机类型)*/
输入:不([type=“radio”]),输入:不([type=“submit”]){
边框:1px纯灰;
背景颜色:绿色;
}
/*这是行不通的,因为你不能像我想的那样在同一篇论文中应用多个*/
输入:非([type=“radio”][type=“submit”]){
边框:1px纯绿色;
}
/*正如我所想,对于上面的代码,我尝试使用“,(逗号)”seperator,但它也不起作用*/
输入:非([type=“radio”],[type=“submit”]){
边框:1px纯水;
}
/*正如你所见,这将起作用*/
输入:不([type=“radio”]):不([type=“submit”]){
边框:1px纯红;
背景颜色:黄色;
}

引用:

否定伪类,
:not()
,是一个函数伪类 选择器列表作为参数。它表示一个不存在的元素 以其论点为代表

注意:在选择器级别3中,只允许一个简单的选择器 作为
的参数:not()

这就是为什么

input:not([type="radio"]):not([type="submit"])
。。。在没有实现CSS4规范这一部分的浏览器中不受支持(据我所知,目前还没有人支持;毕竟,这只是一个工作草案)。但是这个选择器的逻辑也有缺陷:即使语法得到普遍支持,它也应该被写成

请参见,
[foo][bar]
规则被视为任何元素同时为
foo
bar
的要求。但是(当然!)任何输入都不可能同时是
radio
submit
类型

底线是:你必须使用


。。。因为在
:not

Waw中,这是一个困难的问题。我当时正在测试(并意外地发布了一个答案),结果表明它们实际上都没有针对任何元素——在阅读了
:not
的规范之后,它没有澄清它们是否可以链接。上面说它们不能嵌套,但就是这样。。。我想知道它是否被双重
类型
绊倒了,但我找不到一个好方法来证明这一点。好问题!当然,
:不能链接,为什么不能链接?谢谢你的编辑,Xufox!谢谢你回答我的问题。当然,没有同时具有[type=“radio”]和[type=“submit”]的
标记。然后输入:not([type=“radio”][type=“submit”])
选择所有的
标签吗?还有一个问题;这两个选择器是否选择了一个没有
类型属性的
标记?>然后输入:否([type=“radio”][type=“submit”])选择所有标记?-不,不支持,除非支持CSS4。如果是后者,那正是因为您提供了
:not
和一个不匹配的选择器;这两个选择器是否选择了没有类型属性的标记?-当然,这很容易。)
input:not([type="radio"],[type="submit"])
input:not([type="radio"]):not([type="submit"])