Logical intention
The following is a breakdown of the CSS selectors originally posted in the question. This is an attempt to generalize how both CSS rules can be expressed using proper CSS (discussion started with @thgaskell and @BoltClock). I will leave a question about the specifics of other posters.
First rule
input:not([type="text"],[type="password"],.someClass) {}
This is an invalid CSS3 selector that is currently not supported by any known browsers.
The logical intent of the selector is !(a or b or c) , which is equivalent to !a and !b and !c For CSS selectors, the logical and operation requires a chain, which can be expressed as :not(a):not(b):not(c) .
Thus, the first rule can be expressed in real CSS as follows:
input:not([type="text"]):not([type="password"]):not(.someClass) {}
Second rule
input:not(#someId[type="text"]) {}
This is an invalid CSS3 selector that is currently not supported by any known browsers.
The logical target of the selector !(a and b) , which is equivalent to !a or !b For CSS selectors, the logical or operation requires the use of several selectors (one selector for each operand), which can be expressed as :not(a), :not(b) .
Thus, the second rule can be expressed in real CSS as follows:
input:not(#someId), input:not([type="text"]) {}
Summary
The logical operation and requires a chain of each operand.
.ab {} :not(.a):not(.b) {}
Logical operation or requires the use of multiple selectors (one selector for each operand).
.a, .b {} :not(.a), :not(.b) {}