Div исчезает в IE7 - PullRequest
       27

Div исчезает в IE7

2 голосов
/ 25 мая 2011

У меня проблема с div в IE7, он исчезает, и я не понимаю, почему. Я уже пытался добавить zoom: 1 и overflow: скрыто, как кто-то предложил, но это не работает.

Div находится внутри неупорядоченного списка (с плавающей точкой слева), как последний элемент с плавающей точкой справа.

Это HTML

<div id="top_menu">
    <ul id="dropmenu">
        <li>menu item1</li>
        <li>menu item2</li>
        ...
     </ul>
    <div class="lang">content</div>
</div><!-- end top menu -->

Это CSS

  #top_menu                     {width:900px;font-size:13px; }
    #top_menu ul#dropmenu           {width:630px; height:28px; margin:0px; padding:0px; list-style:none; float:left; }
    #top_menu ul#dropmenu li        {float:left;display:block;}
    .clearfix                       {display: inline-block;}  /* for IE/Mac */

    #top_menu .lang { width: 120px; color:#fff; margin:4px 10px 0 0; float: right; }
    #top_menu .lang a{ color:#ff8601; }
    #top_menu .lang a:hover{ color:#fff; }

Спасибо за вашу помощь

РЕДАКТИРОВАТЬ: я включил HTML и удалил URL, чтобы избежать жалоб клиентов.

Ответы [ 3 ]

5 голосов
/ 25 мая 2011

Вам нужно добавить .clearfix к div#top_menu и добавить height: 24px; к div.lang

Это исправило все проблемы с меню для меня.

edit

... и, вероятно, не используйте абсолютное позиционирование для решения проблем макета.

2 голосов
/ 25 мая 2011

Я сейчас нахожусь на IE9, но перевод этого сайта в «Представление совместимости», похоже, тоже показывает проблему.

Последняя запись в главном меню [ul], кажется, простирается до правого края элемента.Это появляется в разметке перед .lang div, так что я не ожидаю, что он будет ее скрывать ...

Возможно, вы пытались поместить элемент .lang в "position: absolute", а затем посмотреть,показывает, (очевидно, предполагая, что родительский элемент его позиционируется относительно).После этого, возможно, попробуйте абсолютный с вершиной 20px или около того и посмотрите, появится ли он тогда.

Удачи!

ОБНОВЛЕНИЕ

Держисьгалочка там.ваш .lang div находится внутри элемента [ul], поэтому на самом деле он расположен неправильно, так как единственный элемент, допустимый как дочерний элемент для [ul], это [li].

Почему бы не попробовать вынуть этот div из списка и вместо этого использовать его, только снаружи, как дочерний элемент элемента #top_menu ....?

Это может работать!

0 голосов
/ 25 мая 2011

Не уверен, относится ли это к вашей ситуации, но некоторые версии IE будут выбрасывать пустые элементы div;если div не содержит ничего, добавление чего-то вроде заставит его существовать.

...