Nano Hash - криптовалюты, майнинг, программирование

Почему IE7 неправильно отображает этот абсолютно позиционированный элемент?

Существует множество вопросов и сообщений на форуме, касающихся поведения IE7 с абсолютно позиционированными элементами. Из дюжины или около того, что я прочитал, ни один из содержащихся в них советов не помог в моей конкретной ситуации. Я начинаю задаваться вопросом, не потому ли это, что я использую заточку HTML5. Несмотря на это, я надеюсь, что кто-то может понять поведение, которое я вижу.

Firefox 5, Safari 5, Chrome 12, IE8/9 Правильный рендеринг

Internet Explorer 7 Неправильный рендеринг

В двух словах, вы наводите курсор на один из пунктов навигационного меню, он раскрывает div с расширенным меню, бла-бла-бла-бла... Скрытый div позиционируется абсолютно, однако в IE7 он привязывается к краю пункта меню, который вы выделяете. . В других местах он правильно отображается под ним.

Я использую remy's HTML5 shiv. Я включаю CSS для «блокировки» следующих элементов: header, nav, article, footer, section, aside, figure и figcaption.

Вот соответствующий HTML и CSS:

<nav>
   //other nav divs
   <div id="kb">
      <a href="/kb/"><span>knowledge base</span></a>
      <div id="kb_expand" class="nav_expand">
         <div>
            //more options...
            <section>
               <h2><a href="">Exchange</a></h2>
               <ul>
                  <li><a href="">Exchange Setup</a></li>
                  <li><a href="">Calendar Basics</a></li>
                  <li><a href="">Calendar Sharing</a></li>
                  <li><a href="">Resources</a></li>
               </ul>
            </section>
            //more options...
         </div>
      </div>
   </div>
   //other nav divs
 </nav>


nav{float:right;margin-top:-26px;text-align:right;width:945px;padding:9px 0 10px}
nav > div{display:inline;padding:8px 0 11px}
.nav_expand{display:none;position:absolute;background:url('images/shadow-south.png') repeat-x bottom;padding-bottom:7px}
.nav_expand div{text-align:left;background:url('images/nav-background.png') repeat-y;width:925px;padding:5px 10px 10px;color:#FFF;margin-top:10px;overflow:hidden}

Я ценю любое понимание, которое может предоставить любой! Спасибо!


  • Я не могу проверить прямо сейчас, но я не уверен, что селектор nav > div работает правильно в IE7. 14.10.2011

Ответы:


1

Мы решили отказаться от поддержки Internet Explorer 7. В IE7 есть ошибка абсолютного позиционирования, которую не стоит исправлять для нашей доли посетителей на рынке.

18.04.2012

2

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

Я погуглил position absolute ie7, что-то в этом роде, и попытался сделать все position:absolute на position:relative и настроить margin-right -left -top -bottom - не сработало.

Потом я возился с z-index, тоже безрезультатно.

Мое решение состояло в том, чтобы придать каждому элементу стиль position:absolute. Моя проблема была с некоторыми div поверх карты Google. position:absolute;top:0;left:0;width:100%;height:100% сделал свое дело. К счастью, я не зависел от относительного расположения каких-либо элементов div, но я ДУМАЮ! это должно быть возможно с некоторым JS (не просто getElementById('style)', это то же самое, но что-то layers.pos.)

Лучше всего было бы попытаться дать вашему kb position:absolute, а затем настроить.

Попробуйте погуглить z-index ie7 position absolute bug.

Кстати, если вы не знакомы с ним, http://crossbrowsertesting.com/ — настоящая жемчужина. для автоматических снимков экрана и даже в реальном времени VNC для тестирования вашего сайта в любой комбинации браузера и операционной системы. У них есть бесплатная пробная версия, по крайней мере, для нескольких пробных запусков. Кроме того, Firebug отлично подходит для оперативного тестирования изменений стиля без фактического изменения файла.

01.08.2011

3

Эй, у меня было что-то похожее на то, что вы описываете, мне потребовались часы, чтобы понять это, и, в конце концов, я не знаю, почему это может вызвать проблему, но я подозреваю, что это скорее ошибка, чем функция. У меня было text-align: right; на первом уровне ul, а затем text-align: left; на втором уровне. Удаление его с первого уровня решило проблему. Чтобы добиться того же эффекта (поскольку у меня якоря отображаются как блоки), я просто применил text-align к якорю вместо ul.

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

27.03.2012
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..