Bonjour à tous,

dans le cadre de mon stage, j'aimerais réaliser un script qui puisse:

1> factoriser le nombre de règles CSS au maximum,
2> supprimer les règles redondantes (la dernière prévaut),
3> simplifier les sélecteurs (div#section deviendra #section par exemple),
4> ignorer les règles mal formées,

afin de minimiser le calcul de positionnement par le navigateur.

Un exemple simple

En entrée:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
h1, h2, h3 { font-weight: normal; }
a strong { font-weight: normal !important; }
strong { font-style: italic; font-weight: normal; }
#nav { font-style: italic; }
.note { font-style: italic; }
En sortie:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
h1, h2, h3, strong { font-weight: normal; }
a strong { font-weight: normal !important; }
strong, #nav, .note { font-style: italic; }
Le problème est bien délimité, en revanche, je sèche quant à la stratégie à adopter (pr la première contrainte évidemment, les autres sont relativement triviales).

Quelles sont les limitations (les cas limites, je veux dire) ? Ce genre de problème appartient-il à une famille de problèmes connue ?


Merci d'avance !
Rolf IV