Sometimes real world programming is annoying like that. I still stand by my point: you seem to be able to autonomously dig through API documentations and look up algorithms on Google. That makes you a good programmer.
"I can't remember all the different modifiers on tags, I don't remember hex colors, and I keep messing up ids, selectors, and classes syntax when I try it."
All these things can be looked up, also I think it is good to keep CSS hacking to a minimum (don't apply too many tricks). Using something like Bootstrap should eliminate most of the need for that?
I think we will wake up in some time and realize that with CSS we have created on of the most unwieldy programming constructs ever. Once they'll introduce scripting (which is planned I think), it will be real hell. The problem is that everything has so many intractable side effects.
As for contracting: I know the feeling of not knowing anything well enough to sell yourself as a specialist. I think the solution could be to just take on a small project (like a web site) and not be too specific about the technology.
Firefox Mobile keyboard: see, most people wouldn't even know how to start doing that kind of thing.