Le problème
Microsoft IE soutien de la documentation explique que dans Internet Explorer 6-9:
- Toutes les balises de style après les 31 premières balises de style ne sont pas appliquées.
- Toutes les règles de style après la première 4,095 règles ne sont pas appliquées.
- Sur les pages qui utilise les @import règle continuellement à importer des feuilles de style externes que d'importer d'autres feuilles de style les feuilles de style sont plus que trois niveaux de profondeur sont ignorés.
Il y a beaucoup de preuve de ce problème avec le script de démos. Voir aussi Bénir.
Solution nécessaire
Nous avons besoin d'une façon de diviser compilé les feuilles de style générées par les Pignons dans l'asset pipeline pour garder le max sélecteur de compter au-dessous de 4096, et de les lier dans le code HTML de déployant une application Rails. Comment pouvons-nous passer à la compilation de sortie de la transformation des actifs (plus précisément les feuilles de style) comme argument à une méthode qui peut ensuite modifier les fichiers?
Voir ci-dessous les tentatives pour un endroit pour commencer. Si quelqu'un pouvait m'aider à trouver une façon de rendre opérationnelle (ou une toute nouvelle solution), ce serait fantastique!
Solution existante tentatives
Bless a été créé pour résoudre ce problème en divisant les feuilles de style pour garder le max sélecteur de comte par feuille sous la limite. Bénir s'exécute sur le serveur node.js. Je n'ai pas vu un Rubis-équivalent encore. Eric Champs essayé de servir actifs compilé avec boussole pour Bénir (fonctionnement en nœud), mais que la solution dépend de la Boussole de la manipulation de l'actif de la compilation, et donc ne semble pas fonctionner avec l'asset pipeline. Notez qu'au lieu de se lier plusieurs feuilles de style, Bénissez ajoute
@include
des déclarations à la première feuille, ce qui peut être le chemin à parcourir afin d'éviter de toucher le balisage.Lorsque Christian Peters (@croustillant) découvert ce problème, il a mis en œuvre un splitter comme Bénisse également transmis Boussole de sortie d'un module personnalisé, qui fonctionnait très bien avant de Rails 3.1. Plus tard, il adapte ses splitter avec un SprocketsEngine pour l'intégration avec les Rails Asset pipeline. J'ai essayé de mettre en œuvre le nouveau code, mais il ne semble pas fonctionner automatiquement (si le séparateur fonctionne très bien lorsqu'il est appelé manuellement dans la console).
Informations connexes
Pour plus d'informations sur le CSS limites dans IE 6-9, voir ces questions connexes: