New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Proposition d'un correctif sur la fonction calc() #146
Comments
Merci @Scriptura pour cette proposition. Avant de l'implémenter, il faudrait vraiment faire quelques tests pour être sûr que le problème du bug évoqué sur IE soit corrigé : #133 |
Justement, si j'en crois la conversation à laquelle tu fais références, il s'agit bien d'un problème d'arrondissement des décimales par IE. Personnellement je ne le savais pas mais je l'avais déduit du comportement de la grille. En tout les cas, sur mon framework perso, j'ai testé cette solution depuis quelques semaines, avec une mire de grilles imbriquées, et cela n'explose pas sous IE 10-11 à ma connaissance. Mais il faudrait que je teste plus avant car je ne suis qu'un Mac user et je n'ai pas souvent accès à un PC pour tester mes dernières modifications. Tu es sous Less, moi je tourne avec Sass. Avec Sass donc :
Chez moi ça donne ceci :
5 chiffres après la virgule, qui devraient mettre tous les navigateurs d'accord lors des tests. J'éprouverai ma solution en corsant mon test avec des grilles imbriquées sur trois niveaux : the grids. Dès que j'aurais un PC sous la main... |
Nop : j'ai testé et ma proposition ne fonctionne pas sous tous les cas de figure. Dommage, sujet à enterrer... Edit. Peut-être pas finalement : en refaisant mon workflow sous Gulp je viens de m'apercevoir à l'instant que l'on peut régler la précision du calcul des décimales de son préprocesseur (une option que je ne connaissait pas) qui, sous Sass est limité à 5 chiffres après la virgule. Mais pour Less je ne sais pas... |
Il y a round(), bien utile pour les |
Selon moi, quel que soit le nombre de décimales le bug IE reste le même et cela ne changera rien. Le problème actuel vaut pour les grid-3 qui sont calculées avec un |
Ok, merci à vous deux. Voici pour l'instant ma solution, je l'ai testé sur des grilles complexes ; elle semble fonctionner sur tous les browsers mais elle est lié au prépros utilisé, ce qui à mon avis ne plaira pas à Raphaël :
Chez moi c'est OK. |
Je demeure persuadé que de souhaiter arrondir à 2, 3 ou X décimales est une mauvaise idée. Cela fonctionnera sans doute sur les cas de figure fréquents, mais sur des très grands écrans le manque de précision dans la valeur finale impliquera forcément un "manque" de pixel sur la dernière colonne (en clair, avec un arrondi de 2 décimales, le total calculé et arrondi puis computed en pixel donnera des résultats tels que 999px et non 1000px). Pour moi, plus il y a de décimales plus on est sûr d'obtenir systématiquement un total de 100% même sur des surfaces très larges. |
OK. Attend : je vais tester les mêmes grilles dont j'ai parlé sur de très grandes largeurs (sur Mac on peut étirer les fenêtres des logiciels au-delà de la taille de l'écran) puis je reviens. |
Bon, c'est fait : il y a effectivement un décalage, léger, sur grandes résolutions. La solution de retirer les |
Définitivement... En attendant Edge ? :) |
De rien, je fais les tests pour moi aussi, pour le plaisir de chercher des astuces...
Et du coup, comme IE arrondit à 2 décimales, j'arrondis moi aussi à 2 décimales, je ne sais pas trop : je me dit que c'est toujours ça de moins à faire calculer en live par la fonction calc()... A+ |
1 décimale c'est pas assez et 10 c'est forcément trop. Ça se calcule en fait :
|
Suggestion : pourquoi ne pas faire calculer la largeur prévisible par le pre/post processeur ?
La fonction calc() n'a ensuite plus qu'à enlever le - 1em :
Je vois deux avantages à cette solution :
The text was updated successfully, but these errors were encountered: