Problème de positionnement résolu avec les ancres et les listes UL dans Google Chrome et Opera
Cet article traite d'un problème de rendu observé dans les navigateurs Google Chrome et Opera où une barre latérale à position fixe peut disparaître lorsque vous cliquez sur des liens d'ancrage dans la page. La présence de
Solution Chrome
L'application d'une propriété -webkit-transform:translateZ(0) à l'élément fixe de la barre latérale résout ce problème dans Chrome . Cette technique exploite la séparation du repaint et du rendu CSS lors de l'engagement de transformations 3D, atténuant ainsi les problèmes d'affichage.
<code class="css">#sidebar { -webkit-transform: translateZ(0); }</code>
Solution Opera
La résolution de ce problème dans Opera nécessite un approche différente. Nous utilisons une animation @keyframes pour forcer des repeints continus sur une propriété CSS qui influence la mise en page mais n'a aucun impact pratique sur l'apparence de la page. Dans ce cas, nous animons la propriété margin-bottom :
<code class="css">@keyframes noop { 0% { margin-bottom: 0; } 100% { margin-bottom: 1em; } } #sidebar { animation: noop 1s infinite; }</code>
Il est important de noter que cette solution n'est pas parfaite. Dans certains cas, un bref scintillement peut se produire lorsque la barre latérale perd son positionnement et se redessine rapidement. Le comportement intrinsèque d'Opera entre les redessins est responsable de ce problème.
Considérations supplémentaires
Des rencontres ultérieures avec ce bug ont démontré des occurrences fréquentes dans les cas où une transformation 3D est déjà appliquée à le corps ou un élément parent. Cette pratique, souvent utilisée pour appliquer le rendu GPU, peut entraîner des problèmes de rendu persistants. Envisagez de supprimer les transformations 3D existantes avant de mettre en œuvre les solutions fournies ci-dessus.
Google Chrome et Opera gèrent désormais le positionnement fixe avec une stabilité améliorée. Ces correctifs ont démontré leur efficacité pour résoudre les problèmes de rendu associés à l'utilisation d'éléments UL sur la page.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!