IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

[CSS] Optimisation automatique


Sujet :

Algorithmes et structures de données

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 178
    Points : 93
    Points
    93
    Par défaut [CSS] Optimisation automatique
    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

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    En présentant le problème sous forme de matrice de couverture, il y a peut-être moyen de simplifier les choses:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
                                | h1 | h2 | h3 | a strong | strong | #nav | .note |
    -------------------------------------------------------------------------------
    fstyle: italic;             |    |    |    |          |    X   |   X  |   X   |
    -------------------------------------------------------------------------------
    fweight: normal;            |  X |  X |  X |          |    X   |      |       |
    -------------------------------------------------------------------------------
    fweight: normal !important; |    |    |    |    X     |        |      |       |
    -------------------------------------------------------------------------------
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 178
    Points : 93
    Points
    93
    Par défaut
    Bonjour,

    merci beaucoup ! Je commence à déjà y voir plus clair.
    Du coup, je commence à penser à un "algorithme" du genre:

    0> Je parse le fichier CSS et crée la matrice.
    Tant que la matrice n'est pas vide
    1> Je sélectionne le regroupement le plus grand (par élément ou par règle) ;
    2> J'ajoute la règle qui correspond à ce regroupement à l'ensemble des règles ;
    3> Je retire les "x" de la matrice.
    Fin Tant que

    Ces étapes vous paraissent-elles correctes ?
    Si oui, comment réaliser efficacement l'étape 1 ?

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par Rolf-IV Voir le message
    Ces étapes vous paraissent-elles correctes ?
    Oui. C'est ce qu'on appelle un algorithme glouton (greedy type algorithm). Il y a des cas ou cet algorithme n'est pas "optimum", mais pour commencer c'est un excellent début.

    Si oui, comment réaliser efficacement l'étape 1 ?
    Aucune idée, il faut faire des essais. Regrouper par élément, ou par règle, ou par le meilleur des 2 à chaque étape...
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

Discussions similaires

  1. Boites css - redimensionnement automatique du cadre
    Par ritchouone dans le forum Mise en page CSS
    Réponses: 13
    Dernier message: 23/01/2008, 09h24
  2. eclipse, css, saisie automatique
    Par AngieP dans le forum Eclipse
    Réponses: 1
    Dernier message: 10/01/2008, 10h50
  3. Optimisation automatique de boucles
    Par progfou dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 01/08/2007, 11h36
  4. [CSS]repositionnement automatique du contenu d'une page
    Par longbeach dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 12/09/2006, 15h48
  5. [css] optimisation de script ?
    Par ghohm dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 01/09/2006, 16h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo