<bdo id='DEHSY'></bdo><ul id='DEHSY'></ul>
  • <tfoot id='DEHSY'></tfoot>

    <i id='DEHSY'><tr id='DEHSY'><dt id='DEHSY'><q id='DEHSY'><span id='DEHSY'><b id='DEHSY'><form id='DEHSY'><ins id='DEHSY'></ins><ul id='DEHSY'></ul><sub id='DEHSY'></sub></form><legend id='DEHSY'></legend><bdo id='DEHSY'><pre id='DEHSY'><center id='DEHSY'></center></pre></bdo></b><th id='DEHSY'></th></span></q></dt></tr></i><div id='DEHSY'><tfoot id='DEHSY'></tfoot><dl id='DEHSY'><fieldset id='DEHSY'></fieldset></dl></div>
  • <legend id='DEHSY'><style id='DEHSY'><dir id='DEHSY'><q id='DEHSY'></q></dir></style></legend>

        <small id='DEHSY'></small><noframes id='DEHSY'>

      1. 链接伪类(:hover)CSS背景图片有闪动BUG的解决方法

        时间:2023-12-15
          <tbody id='K7mX2'></tbody>

                <tfoot id='K7mX2'></tfoot>

                <small id='K7mX2'></small><noframes id='K7mX2'>

              1. <legend id='K7mX2'><style id='K7mX2'><dir id='K7mX2'><q id='K7mX2'></q></dir></style></legend>

                  <bdo id='K7mX2'></bdo><ul id='K7mX2'></ul>
                  <i id='K7mX2'><tr id='K7mX2'><dt id='K7mX2'><q id='K7mX2'><span id='K7mX2'><b id='K7mX2'><form id='K7mX2'><ins id='K7mX2'></ins><ul id='K7mX2'></ul><sub id='K7mX2'></sub></form><legend id='K7mX2'></legend><bdo id='K7mX2'><pre id='K7mX2'><center id='K7mX2'></center></pre></bdo></b><th id='K7mX2'></th></span></q></dt></tr></i><div id='K7mX2'><tfoot id='K7mX2'></tfoot><dl id='K7mX2'><fieldset id='K7mX2'></fieldset></dl></div>
                • CSS中的链接伪类:hover可以让当鼠标悬停在链接上时改变链接的外观。然而,当我们将背景图片应用于链接,并使用:hover来改变背景图片时,有可能会出现背景图片闪烁的问题。接下来,我们给出两个示例,演示这个问题以及如何解决它。

                  问题示例

                  以下示例HTML代码中有两个链接,每个链接都有自己的背景图片,并在:hover状态下改变背景图片。但是,当鼠标移动到链接上时,背景图片会发生闪烁的问题。

                  <a href="#" class="link1">Link 1</a>
                  <a href="#" class="link2">Link 2</a>
                  
                  <style>
                  .link1 {
                    background-image: url('link1.png');
                    width: 200px;
                    height: 100px;
                  }
                  
                  .link1:hover {
                    background-image: url('link1-hover.png');
                  }
                  
                  .link2 {
                    background-image: url('link2.png');
                    width: 200px;
                    height: 100px;
                  }
                  
                  .link2:hover {
                    background-image: url('link2-hover.png');
                  }
                  </style>
                  

                  解决方法

                  使用CSS预加载

                  使用CSS预加载可以缓存所有的背景图片,避免在链接hover时加载图片而导致的闪烁。可以使用以下代码:

                  <head>
                    <link rel="preload" href="link1.png" as="image">
                    <link rel="preload" href="link1-hover.png" as="image">
                    <link rel="preload" href="link2.png" as="image">
                    <link rel="preload" href="link2-hover.png" as="image">
                  </head>
                  
                  <body>
                    <a href="#" class="link1">Link 1</a>
                    <a href="#" class="link2">Link 2</a>
                  
                    <style>
                      .link1 {
                        background-image: url('link1.png');
                        width: 200px;
                        height: 100px;
                      }
                  
                      .link1:hover {
                        background-image: url('link1-hover.png');
                      }
                  
                      .link2 {
                        background-image: url('link2.png');
                        width: 200px;
                        height: 100px;
                      }
                  
                      .link2:hover {
                        background-image: url('link2-hover.png');
                      }
                    </style>
                  </body>
                  

                  在:visited伪类中使用背景图片

                  :visited伪类中使用相同的背景图片可以解决这个问题,因为浏览器只需要为每个链接缓存一次背景图片。可以使用以下代码:

                  <a href="#" class="link1">Link 1</a>
                  <a href="#" class="link2">Link 2</a>
                  
                  <style>
                  .link1 {
                    background-image: url('link1.png');
                    width: 200px;
                    height: 100px;
                  }
                  
                  .link1:visited {
                    background-image: url('link1.png');
                  }
                  
                  .link1:hover {
                    background-image: url('link1-hover.png');
                  }
                  
                  .link2 {
                    background-image: url('link2.png');
                    width: 200px;
                    height: 100px;
                  }
                  
                  .link2:visited {
                    background-image: url('link2.png');
                  }
                  
                  .link2:hover {
                    background-image: url('link2-hover.png');
                  }
                  </style>
                  

                  以上就是两种解决方案,可以根据自己的喜好选择适合自己的方法。

                  上一篇:关于在HTML网页制作中如何添加背景图片 下一篇:最基本的几种CSS文字滤镜效果

                  相关文章

                  1. <small id='qj44r'></small><noframes id='qj44r'>

                    <tfoot id='qj44r'></tfoot>

                        <bdo id='qj44r'></bdo><ul id='qj44r'></ul>
                      <i id='qj44r'><tr id='qj44r'><dt id='qj44r'><q id='qj44r'><span id='qj44r'><b id='qj44r'><form id='qj44r'><ins id='qj44r'></ins><ul id='qj44r'></ul><sub id='qj44r'></sub></form><legend id='qj44r'></legend><bdo id='qj44r'><pre id='qj44r'><center id='qj44r'></center></pre></bdo></b><th id='qj44r'></th></span></q></dt></tr></i><div id='qj44r'><tfoot id='qj44r'></tfoot><dl id='qj44r'><fieldset id='qj44r'></fieldset></dl></div>
                      <legend id='qj44r'><style id='qj44r'><dir id='qj44r'><q id='qj44r'></q></dir></style></legend>