【问题标题】:Transitions on pseudo-elements not working on firefox browser伪元素上的转换在 Firefox 浏览器上不起作用
【发布时间】:2015-03-21 14:10:00
【问题描述】:

我曾期待 Internet Explorer 会这样做,但我心爱的 Firefox 让我失望了。

这个小提琴在 Firefox 上不起作用(至少对我来说不起作用),我想知道为什么。我看过很多文档,我想这应该可以工作。

这里是小提琴:http://jsfiddle.net/6UFX7/11300/

HTML:

<div id="nav">
    <ul>
        <li><a>ENTRY</a></li>
        <li><a>ENTRY</a></li>
        <li><a>ENTRY</a></li>
        <li><a>ENTRY</a></li>
        <li><a>ENTRY</a></li>
    </ul>
</div>

CSS:

#nav 
{   
height:60px;
background-color:#FFFFFF;
overflow:hidden;
}

#nav ul 
{
color: #f2f2f2;
margin-top:20px;
list-style-type: none;
text-align: center;
float:left;
}

#nav ul li
{
display: inline-block;
*display: inline;
zoom: 1;
margin: 0 10px;   
}

#nav ul li a 
{
color: #8198A0;
font-style: normal;
font-size: 14px;
font-weight: 500;
letter-spacing: 0.25px;
text-transform: uppercase;
text-decoration: none;
-webkit-transition: color 0.5s ease;
-moz-transition: color 0.5s ease;
-o-transition: color 0.5s ease;
transition: color 0.5s ease;
}

#nav ul li a:after 
{
margin-top:16px;
content: "";
display: block;
height: 5px;
width: 0;
-webkit-transition: width 0.5s ease, background-color 0.5s ease;
-moz-transition: width 0.5s ease, background-color 0.5s ease;
-o-transition: width 0.5s ease, background-color 0.5s ease;
transition: width 0.5s ease, background-color 0.5s ease;
pointer-events:none;
}

#nav ul li a:hover:after 
{
width: 100%;
background-color:#8198A0;
}

#nav ul li a:hover
{
cursor: pointer;
}

关于“pointer-events:none”的另一个快速问题:

它在 Internet Explorer 上运行良好,但在 Chrome 上却不行(由于上述问题,我无法在 Firefox 上测试它)。

提前致谢!

【问题讨论】:

    标签: html css firefox pseudo-element


    【解决方案1】:

    这似乎是因为#nav ul li a 元素是默认的display: inline。将display: inline-block; 添加到这些元素可以解决此问题。

    工作示例:

    #nav 
    {   
        height:60px;
        background-color:#FFFFFF;
        overflow:hidden;
    }
    
    #nav ul 
    {
        color: #f2f2f2;
        margin-top:20px;
        list-style-type: none;
        text-align: center;
        float:left;
    }
    
    #nav ul li
    {
        display: inline-block;
        *display: inline;
        zoom: 1;
        margin: 0 10px;   
    }
    
    #nav ul li a 
    {
        color: #8198A0;
        font-style: normal;
        font-size: 14px;
        font-weight: 500;
        letter-spacing: 0.25px;
        text-transform: uppercase;
        text-decoration: none;
        display: inline-block;
        -webkit-transition: color 0.5s ease;
        -moz-transition: color 0.5s ease;
        -o-transition: color 0.5s ease;
        transition: color 0.5s ease;
    }
    
    #nav ul li a:after 
    {
        margin-top:16px;
        content: "";
        display: block;
        height: 5px;
        width: 0;
        -webkit-transition: width 0.5s ease, background-color 0.5s ease;
        -moz-transition: width 0.5s ease, background-color 0.5s ease;
        -o-transition: width 0.5s ease, background-color 0.5s ease;
        transition: width 0.5s ease, background-color 0.5s ease;
        pointer-events:none;
    }
    
    #nav ul li a:hover:after 
    {
        width: 100%;
        background-color:#8198A0;
    }
    
    #nav ul li a:hover
    {
        cursor: pointer;
    }
    <div id="nav">
        <ul>
            <li><a>ENTRY</a></li>
            <li><a>ENTRY</a></li>
            <li><a>ENTRY</a></li>
            <li><a>ENTRY</a></li>
            <li><a>ENTRY</a></li>
        </ul>
    </div>

    至于pointer-events 问题,如果这也不能解决该问题,您可能应该专门提出一个问题。

    【讨论】:

    • 解决了第一个问题,非常感谢!但是,当我应用您建议的更改时,“指针事件”问题停止在 Internet Explorer 上运行。我想我可以忍受那个嘿嘿
    猜你喜欢
    • 2013-07-29
    • 2015-01-04
    • 2012-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-26
    • 2016-09-13
    • 2018-10-01
    相关资源
    最近更新 更多