IE8 - навигационные ссылки не работают - PullRequest
3 голосов
/ 03 декабря 2009

Привет всем - я гуглял это как можно больше, но ничто, что я делаю, кажется, не помогает.

Я работал над веб-сайтом (www.philipdukes.co.uk), и хотя навигация, кажется, работает нормально в FF, Safari, Chrome, даже IE6 (чудесным образом), на моей системе она терпит неудачу в IE8: навигационные ссылки не работают.

Я наведите на них курсор, получите анимацию при опрокидывании, но они не "кликабельны". Это основные текстовые ссылки, выровненные по тексту за пределами экрана, и тогда область, которую они представляют, должна быть кликабельной. Изображение, которое заполняет пространство, не является ссылкой. Если я удаляю изображение, я могу щелкнуть область, и если я удаляю выравнивание текста, я могу щелкнуть текст ссылки (но только текст ссылки).

Это сводит меня с ума, так как это последнее, что мне нужно разобрать, прежде чем все полностью заработает ...

Код для навигационной панели здесь:

    <div class="navHolder">
    <div class="nav current-home">
        <div id="home"><img src="images/nav/home.png" alt="home." /><a href="index.html">home.</a></div>
        <div id="bio"><img src="images/nav/bio.png" alt="biography." /><a href="bio.html">biography.</a></div>
        <div id="media"><img src="images/nav/media.png" alt="media." /><a href="media.html">media.</a></div>
    </div>
    <div class="nav2 current-home">
        <div id="press"><img src="images/nav/press.png" alt="press." /><a href="press.html">press.</a></div>
        <div id="pdr"><img src="images/nav/pdr.png" alt="plane dukes rahman trio." /><a href="pdr.html">Plane Dukes Rahman Trio.</a></div>
        <div id="contact"><img src="images/nav/contact.png" alt="contact." /><a href="contact.php">contact.</a></div>
  </div>

и стиль CSS здесь (любая оптимизация здесь также приветствуется!):

    /*
*
*   BEGIN NAV SECTION
*
*/
.navHolder{
    position: relative;
    width: 100%;
    height: 100px;
    margin: 0;
    padding: 0;
}
.nav, .nav2 {
    width: 600px;
    height: 50px;
    position: relative;
    overflow: hidden;
    margin: 0 auto;
    padding: 0;
    top: 0;
}
#home, #bio, #media, #press, #pdr, #contact{
    position: absolute;
    top: 0px;
    overflow: hidden;
    width: 200px;
    height: 50px;
    background: url(images/nav/nav-back.png) 0 0 no-repeat;
}
.nav a, .nav2 a{
    position: absolute;
    z-index: 100;
    display: block;
    top: 0px;
    height: 50px;
    width: 200px;
    text-indent: -9000px;
}
.nav img, .nav2 img{
    position: relative;
    z-index: 50;
    width: 200px;
    height: 50px;
}
#home, #press{
    left: 0;
}
#bio, #pdr{
    left: 200px;
}
#media, #contact{
    left: 400px;
}
.current-home #home, .current-bio #bio, .current-contact #contact, .current-press #press, .current-pdr #pdr, .current-media #media{
    background-position: 0 -246px;
}

Ответы [ 3 ]

4 голосов
/ 03 декабря 2009

Вы пропали без вести:

.nav a, .nav2 a  {
    left: 0;
}

Это должно решить проблему. Всегда устанавливайте вертикальное (top или bottom) и горизонтальное (left или right) размещение при использовании position:absolute.

UPDATE

Каждый раз, когда background установлен, он начинает работать как положено. После многих испытаний вы, вероятно, найдете другой способ решения проблемы. Но вот что я бы сделал:

ЛУЧШИЙ СПОСОБ :

  1. Либо избавьтесь от тегов img, либо скройте их и вместо этого примените их как background-image к тегам a.
  2. Измените position на тегах a на relative вместо absolute, так как они будут единственным видимым дочерним элементом родителя div

БЫСТРЫЙ ПУТЬ

.nav a, .nav 2 { background: url(/images/shim.png) }

Где shim.png - 8-битный полностью прозрачный, один пиксель PNG. 8-битный PNG шим меньше, чем GIF того же размера (1 пиксель), и все будет работать как запланировано.

1 голос
/ 03 декабря 2009

Служите тем же стилям в IE8, что и IE7, а затем вставьте следующий элемент в заголовок документа:

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

Это заставит IE8 эмулировать IE7. Поскольку у вас нет проблем с IE7, я полагаю, это будет работать для вас.

0 голосов
/ 03 декабря 2009

Не совсем уверен, что там происходит, но, похоже, есть какая-то проблема (может быть, ошибка IE8) с наложением элементов ссылки и изображения. Когда я изменяю z-index из .nav img, .nav2 img на любое отрицательное значение вместо 50, ссылки становятся активными.

Я не уверен, что это практическая возможность в этом случае, так как отрицательный z-индекс может привести к тому, что изображения больше не будут видны.

...