【问题标题】:CSS transition doesn't work in FirefoxCSS 过渡在 Firefox 中不起作用
【发布时间】:2026-02-12 08:10:01
【问题描述】:

我尝试了很多并且已经在 Google 中搜索过,但我没有找到解决问题的方法:

我做了一个 jsfiddle 给你看我的源代码:Click here for my Source Code

一切正常。但是这种转换在 Firefox 中不起作用。

这是我的源代码,因为如果我想使用 jsfiddle,我也必须发布它!

<nav>
        <ul>
            <li><a href="#" class="active">Startseite</a></li>
            <li><a href="#">Projekte</a>
                <ul>
                    <li><a href="#">Java / Bukkit</a></li>
                    <li><a href="#">Webdesign</a></li>
                    <li><a href="#">PHP | MySQL</a></li>
                </ul>
            </li>
            <li><a href="#">Kontakt</a></li>
            <li><a href="#">Über mich</a></li>
        </ul>
        <div class="clear"></div>
    </nav>

// CSS 向下 \\ HTML 向上

nav{
        background: #333;
        color: #fff;
        padding: 5px;   
    }

nav ul{
    padding: 0px;
    margin: 0px;
    list-style: none;
}

nav ul li{
    float:left; 
}

nav ul li a{ 
    color: #fff;
    background: #585858;
    padding: 10px;
    margin-right: 5px;
    display: block;
    text-decoration: none;
    border: 1px solid white;
}

nav ul li a.active{
    background: #373737;
}

nav ul li a:hover{
    color: #333;
    background: #fff;
    border: 1px solid black;    
}

nav ul li ul{
    position: absolute;
    height: 0px;
    overflow: hidden;   
}

nav ul li ul li{
    float: none;
}

nav ul li:hover ul{
    overflow: visible;  
}

nav ul li:hover ul li a{
    padding: 10px;  
}

nav ul li ul li a{
    -webkit-transition: 0.3s;
       -moz-transition: 0.3s;
        -ms-transition: 0.3s;
         -o-transition: 0.3s;
            transition: 0.3s;               
    padding: 0px 10px;
}

【问题讨论】:

  • 我正在使用 Firefox,并且转换在您的示例中正常工作。
  • 大声笑。怎么可能...我检查我是否必须更新我的FF...
  • 不,这不是问题:/我使用的是最新版本的FF 28.0:/
  • 也许吧。我只是说我有什么。看这个:gyazo.com/19b536d2dba4395b443da9728737e5a4。选择 mp4 以获得更平滑的图像。

标签: html css firefox transition


【解决方案1】:

似乎从容器中删除overflow:hidden 突然使转换工作。这让我相信这是 Firefox 中的“优化”,它不计算“隐藏”元素。

就我个人而言,我用它来产生类似的效果:与其隐藏元素,不如正常给它transform:scaleY(0);,悬停时给它transform:scaleY(1);

【讨论】:

  • 去掉溢出会显示 ul --> 不好。我会试试你的方法!
  • 我尝试了你的方法,但我不确定我是否尝试正确。您能否编辑 jsfiddle 并将编辑后的版本发送给我?