28172 sujets
CSS et mise en forme, CSS3
Très mauvaise pratique s'il en est mais bon... en admettant :
Il faut donc détecter le user agent côté serveur (via php ou autre) ou côté client (via javascript), solution peu fiable car n'importe quel navigateur peut se présenter sous n'importe quel user agent, mais je ne connais pas d'autre solution.
Variable à récupérer pour une solution en php :
Une fois détecté il faut appliquer une classe en correspondance dans la balise html ou body :
Ensuite, côté css, il n'y a plus qu'à se servir de cette classe comme espace de nom :
Il faut donc détecter le user agent côté serveur (via php ou autre) ou côté client (via javascript), solution peu fiable car n'importe quel navigateur peut se présenter sous n'importe quel user agent, mais je ne connais pas d'autre solution.
Variable à récupérer pour une solution en php :
$_SERVER['HTTP_USER_AGENT']
Une fois détecté il faut appliquer une classe en correspondance dans la balise html ou body :
<body class="mozilla">
Ensuite, côté css, il n'y a plus qu'à se servir de cette classe comme espace de nom :
.unStyle {color: Blue} // Tout les navigateurs
.mozilla .unStyle {color: Red} // Spécifique à Firefox
Merci beaucoup Olivier, je conserve cette procédure qui me semble effectivement plus pro mais pour tout dire, la solution précédente fonctionne finalement et me permet de corriger un seul petit souci de margin-top. Comme tout le reste est ok, je ne vais pas aller plus loin, mais si le cas se représente, j'aurai au moins un plan B... Qui passera en A
PapyJP a écrit :Ben bonne chance pour y arriver avec ça !
En français: un marteau pilon pour écraser une mouche!
Si vous me cherchez, je me suis attrapé par le col et sortis comme un bon garçon
Greg_Lumiere a écrit :hahahaha
Ben bonne chance pour y arriver avec ça !
Mais sinon oui c'est sortir un katana pour couper du beurre : ca fait le taff mais c'est beaucoup trop et c'est inadapté. Ce que je veux dire goudurisc c'est que souvent c'est une propriété css qui passe différemment d'un navigateur à l'autre (ex une marge par défaut) et qu'on peut souvent régler ça facilement.
Le fait d'aller détecter le navigateur coté serveur, de caller une classe sur le body et ensuite de faire un sélecteur en fonction, ca marche mais bon, c'est un peu démesuré s'il suffit de mettre un overflow:auto; dessus non ? (Et en plus c'est plus couteux en perf et en maintient...)
Après c'est peut etre l'unique solution pour régler ton soucis mais j'ai rarement vu ça...
goudurisc a écrit :
Pour tout dire, je ne sais pas ce qu'est un overkill...
Et dans ce cas, quels problème est-ce que je peux rencontrer en utilisant ma méthode ? Ou bien, quels avantages retirer d'une méthode plus orthodoxe ?
La technique que tu utilises est un hack CSS, qui consiste a écrire un bout de code qui ne sera valide que dans le navigateur que tu cibles et ignoré par les autres. Le problème est que ça repose soit sur une erreur du navigateur soit sur une propriété non standard. L'un comme l'autre peuvent disparaître du jour au lendemain dans une nouvelle version du navigateur.
Trouver la vraie source du problème et la corriger proprement permet de faire du code qui restera valide plus longtemps généralement.