代码之家  ›  专栏  ›  技术社区  ›  Justin Force jmbucknall

为什么这个文本会在WebKit中弹出?

  •  1
  • Justin Force jmbucknall  · 技术社区  · 14 年前

    也许有人以前见过这个?当您将鼠标悬停在“第一个列表”和“第二个列表”文本上时,文本会在左侧弹出几个像素。这只在WebKit浏览器中发生。在Linux和Mac上的Chrome、Mac上的Safari和Android浏览器中测试。这是密码。我还做了一把小提琴: http://jsfiddle.net/XzVLt

    #navigation {
        line-height:30px;
        height:30px;
        clear:left;
        text-align:left;
        position:relative;
    }
    
    #navigation li {
        padding:0 5px;
        margin-left:-1px;
        width:100px;
        text-align:center;
        float:left;
        display:inline;
    }
    
    #navigation ul ul {
        display:block;
        position:absolute;
    }
    
    #navigation li ul {
        margin-left:-5px;
        padding-right:10px;
    }
    
    #navigation li ul li {
        margin-right:-2px;
        text-align:left;
        line-height:15px;
        padding:5px;
        clear:both;
        width:100%;
    }
    
    #navigation ul li {
        list-style:none;
    }
    
    #navigation ul li {
        float:left;
        list-style:none;
    }
    
    #navigation li ul {
        display:none;
    }
    
    #navigation li:hover ul {
        display:block;
    }
    
    #navigation a {
        font-size: 0.8em;
    }
    
    #navigation li li a {
        display:block;
        margin-left:10px;
        text-indent:-10px;
    }
    ​
    
    <div id="navigation">
    <ul>
        <li>
            First list
            <ul>
                <li><a href="#">Item</a></li>
                <li><a href="#">Item</a></li>
                <li><a href="#">Item</a></li>
            </ul>
        </li>
        <li>
            Second list
            <ul>
                <li><a href="#">Item</a></li>
                <li><a href="#">Item</a></li>
                <li><a href="#">Item</a></li>
            </ul>
        </li>
    </ul>
    </div>​
    
    1 回复  |  直到 14 年前
        1
  •  1
  •   Jayx    14 年前

    我猜这和你的边距和填充有关系,当你把下拉框从display:none改为display:block时,填充就会起作用。

    我使用吸盘鱼方法进行下拉;您也可以在方法中轻松实现这一点。只需按如下方式更改您在下拉内容中的阶段:

    替换…

    #navigation li ul {
        display:none;
    }
    
    #navigation li:hover ul {
        display:block;
    }
    

    …与…

    #navigation li ul {
        position:absolute;
        left:-999em;
    }
    
    #navigation li:hover ul {
        left:auto;
    }
    

    在火狐和Safari中进行快速测试-它工作得很好…您将需要一些JS来创建一个元素来替换li:hover pseudo,否则它将无法在IE中工作。

    在此处阅读有关方法的更多信息 http://htmldog.com/articles/suckerfish/dropdowns/