Wenn man anfängt eine Webseite auch für mobile Endgeräte zu optimieren wird man schnell feststellen, dass die Browser sich zum Teil schlimmer (unterschiedlicher) verhalten, als es seiner Zeit der IE6 tat. Gerade wenn man es mit so simplen Dingen wie position:fixed zutun hat ist es eine echte Qual, wer nun was genau wie in welcher Version unterstützt. Mit CSS Media-Queries ist man spätestens dann am Ende, wenn man etwas unterschiedlich für iOS < 5 und > 5 machen möchte. Ich* habe daher mal ein kleines Javascript zusammengebastelt, mit dem man einfach die Version und das BS herausfinden kann:

Funktion um das Betriebssystem zu testen.

[gist id=3467414]

Funktion um die Version herauszubekommen

[gist id=3467420]

Unterscheidung zwischen den einzelnen iOS Geräten

[gist id=3467419] Hier mal ein kurzes Beispiel wie man das dann einsetzen könnte. Problem ist das genannte position fixer Problem. Android scheint es wohl nur ab Version 4 zu unterstützen. (iOS ist glaube ich die Grenze V5.0, aber da bin ich mir noch nicht ganz sicher)

if((isMobile.iOS() && !isIOS.iPad()) || (isMobile.Android() && mobileVersion() > 400)){ // Position fixed only for OS which does support it
		$('.row.main-navigation').addClass('fixed');
		$('#header').addClass('fixed');
		$('#social.mobile').addClass('fixed');
	}else{
		// Your fallback solution
	}

Es ist defintiv noch nicht vollständig - aber immerhin ein Anfang. [gist url=https://github.com/kanedo/wordpress-helper/blob/master/kanedo_protected_post_password.php]* natürlich alles Zusammenkopiert, angepasst, Zusammengeführt und selbst nachgedacht.