Mise à jour de 2019
Le problème d'affichage de Chrome n'est toujours pas résolu et, bien que ce ne soit pas la faute des utilisateurs, aucune des suggestions proposées dans l'ensemble de ce site Web ne permet de résoudre le problème. Je peux affirmer que j'ai essayé chacune d'entre elles en vain : une seule s'en approche et c'est la règle css : filter:blur(0) ; qui élimine le décalage d'un conteneur de 1px mais ne résout pas le problème d'affichage flou du conteneur lui-même et de son contenu éventuel.
Voici la réalité : il n'y a littéralement aucune solution à ce problème. Voici donc une solution de contournement pour les sites Web fluides.
CASE
Je suis en train de développer un site web fluide et j'ai 3 divs, tous centrés avec des effets de survol et partageant des valeurs de pourcentage dans la largeur et la position. Le bogue de Chrome se produit sur le conteneur central qui est réglé sur left:50% ; et transform:translateX(-50%) ; un réglage courant.
EXEMPLE : D'abord le HTML...
<div id="box1" class="box">
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry"s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.
</div>
<div id="box2" class="box">
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry"s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.
</div>
<div id="box3" class="box">
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry"s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.
</div>
Voici le CSS où le bug de Chrome se produit...
*{margin:0; padding:0; border:0; outline:0; box-sizing:border-box; background:#505050;}
.box {position:absolute; border:1px solid #fff; border-radius:10px; width:26%; background:#8e1515; padding:25px; top:20px; font-size:12pt; color:#fff; overflow:hidden; text-align:center; transition:0.5s ease-in-out;}
.box:hover {background:#191616;}
.box:active {background:#191616;}
.box:focus {background:#191616;}
#box1 {left:5%;}
#box2 {left:50%; transform:translateX(-50%);} /* Bugged */
#box3 {right:5%;}
Voici le css corrigé...
*{margin:0; padding:0; border:0; outline:0; box-sizing:border-box; background:#505050;}
.box {position:absolute; border:1px solid #fff; border-radius:10px; width:26%; background:#8e1515; padding:25px; top:20px; font-size:12pt; color:#fff; overflow:hidden; text-align:center; transition:0.5s ease-in-out;}
.box:hover {background:#191616;}
.box:active {background:#191616;}
.box:focus {background:#191616;}
#box1 {left:5%;}
#box2 {left:37%;} /* Fixed */
#box3 {right:5%;}
Violon bogué : https://jsfiddle.net/m9bgrunx/2/
Correction du violon : https://jsfiddle.net/uoc6e2dm/2/
Comme vous pouvez le constater, une petite modification de la feuille de style en cascade devrait permettre de réduire ou d'éliminer la nécessité d'utiliser la transformation pour le positionnement. Cela pourrait également s'appliquer aux sites Web à largeur fixe ou fluide.