列表下拉导航 - 适用于除safari之外的所有浏览器。间隔而缓慢

时间:2013-11-08 21:12:33

标签: html css drop-down-menu safari cross-browser

问题

我创建了一个纯粹使用CSS完成的下拉菜单,使用通过教程显示的绝对定位方法。效果很好。在Safari中,它缓慢,滞后,并且链接间隔开。

此下拉菜单适用于Safari以外的所有浏览器。  为什么?

<ul id="nav">

<li>
    <a href="index.php">Home</a>
        <ul>
            <li><a href="about.php">About Us</a></li>
            <li><a href="contact.php">Contact Us</a></li>
            <li><a href="managed_services.php">Managed Services</a></li>
        </ul>
</li>

<li>
    <a href="malware_removal.php">Computer</a>
        <ul>
            <li><a href="malware_removal.php">Malware Removal</a></li>
            <li><a href="diagnostic.php">Diagnostic</a></li>
            <li><a href="backup_and_restore.php">Backup & Restore</a></li>
            <li><a href="data_recovery.php">Data Recovery</a></li>
            <li><a href="phone_accessories.php">Phone Accessories</a></li>
        </ul>
</li>

<li>
    <a href="surveillance.php">Security</a>
        <ul>
            <li><a href="surveillance.php">Surveillance</a></li>
            <li><a href="security_systems.php">Security Systems</a></li>
        </ul>
</li>

<li>
    <a href="RTI.php">Home Automation</a>
        <ul>
            <li><a href="HAI.php">HAI</a></li>
            <li><a href="RTI.php">RTI</a></li>
        </ul>
</li>

<li>
    <a href="munitio.php">Home Audio / Video</a>
        <ul>
            <li><a href="tv_installation.php">TV Installation</a></li>
            <li><a href="wall_mounting.php">Wall Mounting</a></li>
            <li><a href="sound_systems.php">Sound Systems</a></li>
            <li><a href="home_theater.php">Home Theater</a></li>
            <li><a href="munitio.php">Munitio Earphones</a></li>
        </ul>
</li>

</ul>

CSS

/* Header */
#nav {
margin-left: 9%;
list-style: none;
font-weight: bold;
margin-bottom: 10px;
margin-top: 40px; /* Clear floats */
    float: left;
width: 90%; /* Bring the nav above everything else--uncomment if needed.
position:   relative;
*/
    z-index: 5;
}

#nav li {
float: left;
margin-right: 2%;
}

#nav a {
display: block;
padding: 5px;
color: black;
background: none;
text-decoration: none;
font-size: 14px;

-webkit-transition: color 0.2s, text-shadow 0.3s;
-moz-transition: color 0.2s, text-shadow 0.3s;
-o-transition: color 0.2s, text-shadow 0.3s;
-ms-transition: color 0.2s, text-shadow 0.3s;
transition: color 0.2s, text-shadow 0.3s;
}

#nav a:hover {
color: white;
background: none;
text-decoration: none;
text-shadow: 0px 0px 3px #000;
}



/*---DROPDOWN ---*/
#nav ul {
z-index: 5;
background: none; /* Adding a background makes the dropdown work properly in IE7+. Make this as close to your page's background as possible (i.e. white page == white background). */
    background: rgba(255,255,255,0); /* But! Let's make the background fully transparent where we can, we don't actually want to see it if we can help it... */
    list-style: none;
width: 0px;
overflow: hidden;
color:white;
left: -9999px; /* Hide off-screen when not needed (this is more accessible than display:   none;
 */

    -webkit-transition: color 0.2s, text-shadow 0.3s;
-moz-transition: color 0.2s, text-shadow 0.3s;
-o-transition: color 0.2s, text-shadow 0.3s;
-ms-transition: color 0.2s, text-shadow 0.3s;
transition: color 0.2s, text-shadow 0.3s;
}

#nav ul li {
padding-top: 1px; /* Introducing a padding between the li and the a give the illusion spaced items */
color:white;
    float: none;
}

#nav ul a {
white-space: nowrap; /* Stop text wrapping and creating multi-line dropdown items */
}

#nav li:hover ul {
/* Display the dropdown on hover */
    left: 0; /* Bring back on-screen when needed */
    overflow: hidden;
width: 150px;

-webkit-transition: width 0.2s;
-moz-transition: width 0.2s;
-o-transition: width 0.2s;
-ms-transition: width 0.2s;
transition: width 0.2s;
}

#nav li:hover a {
/* These create persistent hover states, meaning the top-most link stays 'hovered' even when your cursor has moved down the list. */
    background: none;
margin-right: -10px;
text-decoration: none;

-webkit-transition: margin-right 1s;
-moz-transition: margin-right 1s;
-o-transition: margin-right 1s;
-ms-transition: margin-right 1s;
transition: margin-right 1s;
}

#nav li:hover ul a {
/* The persistent hover state does however create a global style for links even before they're hovered. Here we undo these effects. */
    text-decoration: none;
width: 120px;
}

#nav li:hover ul li a:hover {
/* Here we define the most explicit hover states--what happens when you hover each individual link. */
    background: #333;
width: 150px;
}

1 个答案:

答案 0 :(得分:0)

在主要onClick=”return true”代码中包含属性<li>,如下所示:

<li onClick="return true">
    <a href="surveillance.php">Security</a>
    <ul>
        <li><a href="surveillance.php">Surveillance</a></li>
        <li><a href="security_systems.php">Security Systems</a></li>
    </ul>
</li>

我希望这会对你有所帮助。

此致