Ich möchte gerne eine bestehende CSS-Datei beim Laden einer Site anpassen. Zum Hintergrund: Ich frage zunächst nach, ob es sich um eine Anfrage von einem mobilen Device oder von einem lokalen PC handelt. Dementsprechend möchte ich dann das Layout der Site anpassen. Ich möchte aber keine verschiedenen CSS-Dateien vorhalten. Geht so etwas per Skript und wenn ja wie?
Wenn du Zugriff auf den Webserver hast, warum richtest du nicht eine Mod_Rewrite Regel ein und reagierst Serverseitig auf den Client.
Hier ist ein Beispiel: http://camendesign.com/code/mod_rewrite-css-targeting Oftmals geht es auch einfach via .htaccess Datei im jeweiligen Ordner deiner Seite und du musst in deiner Webseite nur feste Links hinterlegen z.B.
und in der .htaccess einfach nach Anleitung der Seite, ganz unten sind iphone Mobilclient Regeln und Android (ohne Gewähr)
RewriteCond %{HTTP_USER_AGENT} Android
Um den Browser rauszufinden, einfach den Testserver ansteuern und in den Loggings nachsehen.
Und damit du nicht gleiche Teile, wie Textformatierung, doppelt schreibst und einen Ripple Effekt hast, schreibe gemeinsame Eigenschaften in eine externe Datei und binde in der jeweiligen CSS nur via
@import url(text.css);
die jeweilge Datei ein.
So würde ich es machen und es ist sauberer, Fehlerfreier als ein Javascript und viel besser als in der Webseitenlogik 20 if-else Statements zu hinterlegen (ja, das hab ich schon gesehen)