One gimmick that seems to fix a lot of the problems is this in the header:
This kludgery has been mimicked by most Android and IOS browsers. You'd think they'd show enough user-friendliness to make these meta settings the default, but they have mostly chosen to default to font sizes that are seriously user-hostile. For the forseeable future, this meta command seems to be the best way to get most browsers to behave sensibly about font sizes and page-rendering sizes.
It should be noted that the above meta tag isn't (yet) in any standard. So browser writers are free to ignore it, or misinterpret it however they like. But it's a bit of boilerplate that will make text layout behave sensibly on most small-screen browsers, and should be ignored by most other browsers.
This was found at developers.google.com, after a lot of googling and asking around on many forums. If any of this makes it into the html5 standards, it may well change.