::after, ::before, ::first-letter, ::first-line, ::selection, ::backdrop
:active, :checked, :default, :dir(), :disabled, :empty, :enabled, :first, :first-child, :first-of-type, :fullscreen, :focus, :hover, :indeterminate, :in-range, :invalid, :lang(), :last-child, :last-of-type, :left, :link, :not(), :nth-child(), :nth-last-child(), :nth-last-of-type(), :nth-of-type(), :only-child, :only-of-type, :optional, :out-of-range, :read-only, :read-write, :required, :right, :root, :scope, :target, :valid, :visited
And there also others like ::-webkit-input-placeholder, ::-moz-placeholder and so on. I don't know what elements they are. But I think they are pseudo elements as it has double colons.
Now, I'm curious to know why there's no single selector for selecting all pseudo elements and pseudo classes that are outside the DOM-Tree even in css3 or css4?