28172 sujets

CSS et mise en forme, CSS3

Bonjour,
J'utilise actuellement le plugin de firefox https://addons.mozilla.org/en-US/firefox/addon/stylish-custom/ pour modifier le style d'un site. Ce plugin modifie la feuille utilisateur de Firefox. A terme ce style devra intégrer la feuille de style du site.

Malheureusement pour chaque règle il faut appliquer un
!important
pour que cela soir pris en compte.

Connaissez-vous une solution pour éviter ça ?
Modifié par benj (20 Feb 2013 - 22:24)
Administrateur
Bonjour,

cela correspond en effet à la priorité des 5 types de déclaration : http://www.w3.org/TR/CSS21/cascade.html#cascading-order et permet à l'utilisateur :
- de souhaiter avoir des styles différents du navigateur sauf si le site les déclare à son tour auquel cas le site les styles du site l'emportent et
- de forcer des styles quels que soient ceux du site et même si celui-ci utilise !important avec un sélecteur comportant 5 id

Pour avoir des déclarations injectables sans effort dans le site un peu plus tard, il faudrait plutôt un bookmarklet ou un script GreaseMonkey qui eux vont tourner comme s'ils provenaient du site lui-même. Si tu injectes un élément style ou une CSS via link, ce ne seront pas des CSS utilisateur mais bien comme si c'était la page elle-même (quoique GM a une sécurité qui fait que le JS n'est pas celui du site mais est encapsulé... mais ça ne concerne pas les CSS je crois).
Modifié par Felipe (20 Feb 2013 - 07:32)
Merci pour ta réponse complète. J'ai finalement utilisé un script GreaseMonkey.

Pour ceux que ça intéresse, voici le code qui ma permis de remplacer la feuille de style du site par une feuille de style en local.


// @require      https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js
 

jQuery('link[href="/staticfiles/css/style.css"]').before('<link rel="stylesheet" type="text/css" href="http://localhost/Sites/mon-site/css/style.css">');
jQuery('link[href="/staticfiles/css/style.css"]').remove();

Modifié par benj (20 Feb 2013 - 15:02)