The size of a pixel is relative to its output device, aka screen resolution.
Some screens are 72 dpi. Some are 300 dpi. So if you specify your font size to be 12px, it should rightly appear legible on the 72 dpi screen, and tiny on the 300 dpi screen.
Instead, use point, or pt. A point is 1/72 of an inch. 12pt will appear legible on any screen, regardless of its dpi.