Maison  >  Article  >  interface Web  >  Pourquoi les barres latérales fixes disparaissent-elles lorsque vous cliquez sur des liens d'ancrage dans Chrome et Opera ?

Pourquoi les barres latérales fixes disparaissent-elles lorsque vous cliquez sur des liens d'ancrage dans Chrome et Opera ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-26 03:58:02120parcourir

Why Do Fixed Sidebars Disappear When Clicking on Anchor Links in Chrome and Opera?

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

    Les éléments de la page aggravent ce problème.

    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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn