2013-02-18 69 views
1

下面是代码:如何使用CSS3排除元素?

input:not(#radioo input){ 
    display: block; 
    font-size:23px; 
    border-radius: 10px; 
    width:310px; 
    height: 40px 
} 

但所有input被排除在外!我只想排除input是在具有formIDradioo

回答

2

下面的选择器似乎做你想做的。只有第二种形式的输入将具有橙色背景。

http://jsfiddle.net/pYhgr/

form:not(#radioo) input { 
    background: orange; 
} 

<form id="radioo"> 
    <input type="text" /> 
</form> 

<form> 
    <input type="text" /> 
</form> 
+0

这是奇怪的,但它不工作,铬版本24.0.1312.57米 – 2013-02-18 19:44:10

+1

奇怪。我有Chrome版本24.0.1312.57米,小提琴适合我。也适用于Opera(12.14)和Firefox(18.0.2)。 – cimmanon 2013-02-18 19:47:04

+0

编辑:它的工作,谢谢:) 对不起,我拿了穆萨的答案。 – 2013-02-18 19:47:44

3

:not只需要simple selectors最好的解决办法是给每个输入要排除的一类,并使用:not(.theclass)

从评论似乎有没有增加一个类的解决方案

form:not(#radioo) input{ 
    display: block; 
    font-size:23px; 
    border-radius: 10px; 
    width:310px; 
    height: 40px 
} 
+2

'*:没有(#radioo)input'也应该工作。 – Gumbo 2013-02-18 19:35:06

+1

@Gumbo:假设父代不是'form#radioo',那么很容易匹配'input'的父代,因为你不应该在有效的HTML中直接在'form'内部有'input'。对后代选择器使用':not()'通常是不可靠的。 – BoltClock 2013-02-18 19:39:53

+0

@Gumbo它鼎盛时期的工作 – 2013-02-18 19:43:29