Навигация по списку - работает в любом браузере, кроме сафари. Разнесенный и медленный

0

проблема

Я создал раскрывающееся меню, выполненное исключительно с помощью 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 background as possible (i.e. white page == white background). */
    background: rgba(255,255,255,0); /* But! Let 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;
}
Теги:
drop-down-menu
safari
cross-browser

1 ответ

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>

Я надеюсь, это поможет вам.

С уважением

  • 0
    Неплохой английский вообще: D Спасибо! Это исправило меня.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню