I dont think its possible
The default crosshair does it for some weapons I think
bind 1 "slot1; (the crosshair that you want to use for your main rifle);"
bind 2 "slot2; (the crosshair that you want to use for pistols);"
bind 1 "slot1; cl_crosshairsize 2.5; cl_crosshairgap -2; cl_crosshair_drawoutline 0; cl_crosshaircolor 1;"
bind 2 "slot 2; cl_crosshairsize 3.5; cl_crosshairgap -1; cl_crosshair_drawoutline 1; cl_crosshaircolor 2;"
Paste each of those except with your own crosshair preferences of course for each bind in the console, and it should work. GL
That's not going to make you any better.
Just bind them onto a button