代码之家  ›  专栏  ›  技术社区  ›  huzzm

为什么我的网站菜单仅在Internet Explorer中移动?

  •  0
  • huzzm  · 技术社区  · 10 年前

    我在一个网站的顶部设置了一个固定的菜单,但在Internet Explorer 11中,当我单击菜单中的按钮时,它会移动半秒或类似的时间。在其他浏览器中,它工作正常。我可以更改什么来删除这个bug,我认为这与我的CSS代码有关。

    如果有人能帮我就太好了。 我希望IE和Mozilla、Chrome中的按钮相同。我认为IE与其他浏览器总是有点不同。

    以下是导航菜单的CSS代码:

        /* CSS Menu Navigation Bar */
    
        #cssmenu
    
        {   
           position: relative;  
           margin: 0 auto;
           clear: both; 
        }
    
        #cssmenu a 
        {       
           list-style: none;
           margin: 0;
           padding: 0;
           border: 0;
           line-height: 1.5; 
        }
    
        #cssmenu li 
        {   
           border: 1px solid transparent;
           padding-top: 7px;
           display: block; 
           float: right; 
           margin: 0 10px;
        }
    
        #cssmenu ul
        {
            margin: 0 auto;
            padding: 0;
            text-align: center;
            padding-right: 20px;
            margin-bottom: -70px;
            max-height: 80px;
        }
    
        #cssmenu li a 
        {  
            padding-top: 10px;
            padding-right: 20px;
            padding-left: 20px;
            padding-bottom: 10px;   
            width: 70px;
     
            border: 1px solid #dfdfdf;
            text-decoration: none;  
            display: block;
        
            border-radius: 2px;
            -moz-border-radius: 2px;
            -webkit-border-radius: 2px;
            -khtml-border-radius: 2px;      
       
            font-size: 17px;
            font-family: Verdana, Tahoma;
            color: #292F33;
       }
    
       #cssmenu li:hover a 
       {  
            border-bottom: 3px solid #30B0FF;   
            display: block;
            color: #30B0FF;
            clear: both;
    
            font-size: 17px;
            font-family: Verdana, Tahoma;
    
            transition-duration: 0.05s;
            transition-delay: 0.03s;
       }
    
      /* screen smaller than 1325px */
    
      @media only screen and (max-width : 1325px),
      only screen and (max-device-width : 1325px)
      {
           #menu
           {
              min-width: 1020px;
           }
    
           #cssmenu li a 
           {        
              padding-top: 10px;
              padding-right: 0px;
              padding-left: 0px;
              padding-bottom: 10px; 
    
              width: 60px;      
              font-size: 15px;
              border: 1px solid transparent;
    
           }
    
           #cssmenu li:hover a 
           {        
              font-size: 15px;  
           }
      }
    

    下面是重要的HTML代码:

    <!-- Menu -->       
    
        <div id="menu">     
            
            <li style="list-style: none;"> <img id="image" src="images/head.png"/><br><i>&nbsp;{by Ivan Ilic}</i></li>
            
            <div id='cssmenu'>      
            
                <ul>                                        
    
                    <li><a href='lazarus.html'>Lazarus</a></li> 
                    <li><a href='scratch.html'>Scratch</a></li>
                    <li><a href='html.html'>HTML</a></li>
                    <li><a href='c-sharp.html'>C#</a></li>
                    <li><a href='c++.html'>C++</a></li>
                    <li><a href='index.html'>Home</a></li>                  
                                    
                </ul>       
    
            </div>
    
        </div>      
    
    1 回复  |  直到 2 年前
        1
  •  2
  •   Matthew Johnson    10 年前

    你看到的“闪光”是默认的 active 背景色。当您单击时,它会闪烁灰色,显示出移动的外观。你需要一个 CSS Style Reset 替代IE中的默认背景色。或者,您可以简单地更改活动样式本身。

    例子:

    :active { background:transparent; }
    

    这个 style reset 将通过覆盖浏览器附加的所有不同默认样式来防止大多数跨浏览器样式差异。我用F12开发工具测试了这一点,它消除了flash。

    编辑:

    使用 document.write() 在IE中添加样式表的速度正在放缓。本质上,内容正在绘制,然后在加载样式后“修复”。链接没有JS的样式表,flash将消失。