Странный сын Suckerfish ie6 / ie7 проблема - 2 буквы из самого правого выпадающего меню, также появляются в левой части экрана - PullRequest
1 голос
/ 01 мая 2010

Я стажируюсь в одной неправительственной организации в Индии и пытаюсь исправить их веб-сайт, в том числе обновить их меню, чтобы загружать не последний элемент на странице, а по центру экрана. Все работает достаточно хорошо, но когда я пробую свое новое меню в IE6, я получаю эту странную ошибку, когда содержимое под меню дополняется дополнительными 30px или около того, а материал в крайнем правом выпадающем меню появляется в крайнем левом углу окна. Экран, всегда видимый. Когда я опускаю крайнюю правую ссылку («Публикации»), содержимое отображается как в правильном месте, так и в том же месте в крайнем левом углу экрана, и меняет цвет, когда я нахожу указатель мыши. Это сложно описать, поэтому, вероятно, было бы лучше, если бы вы посмотрели:

посетите http://sevamandir.org/a30/aboutus.htm в браузере IE6 / IE7, чтобы убедиться в этом. Я действительно ценю твою помощь. Кроме того, я использую монитор шириной 1000 пикселей, если за пределами этого пространства происходит больше шуток, я бы тоже хотел об этом знать.

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

К сожалению, многие люди, которые посещают наш сайт, используют старые браузеры, поэтому поддержка IE6 очень важна, хотя эта проблема действительно странная, и я был бы признателен за помощь.

Я загрузил файл со всей таблицей style.css в коде HTML и ниже, на http://sevamandir.org/a30/aboutus.htm.

Вот соответствующий код:

в заголовке html:

<script>
sfHover = function() {
var sfEls = document.getElementById("nav").getElementsByTagName("LI");
for (var i=0; i<sfEls.length; i++) {
    sfEls[i].onmouseover=function() {
        this.className+=" sfhover";
    }
    sfEls[i].onmouseout=function() {
        this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
    }
}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);
</script>

текст, окружающий меню - меню просто

<ul id="nav"><li></li></ul>
* * Тысяча двадцать-одина и т.д.
<!--begin catchphrase-->
    <div style="float:left; height:27px; width:520px; margin:0px; font:16px Arial, Helvetica, sans-serif; font-weight:bold; color:#769841;">
        Transforming lives through democratic &amp; participatory development
    </div>

    <?php include("menu.php"); ?>

    </div><!-- end header -->
<!--begin main text div-->
<div id="maincontent">

Соответствующее меню CSS:

#nav, #nav ul {
font:bold 11px Verdana, sans-serif;
float: left;
width: 980px;
list-style: none;
line-height: 1;
background: white;
font-weight: bold;
padding: 0;
border: solid #769841;
border-width: 0;
margin: 0 0 1em 0;
}

#nav a {
display: block;
width: 140px;           /*this is the total width of the upper menu*/
w\idth: 120px;          /*this is the width less horizontal padding */
padding: 5px 10px 5px 10px; /*horiz padding is the 2nd & 4th items here - goes Top Right Bottom Left */
color: #ffffff;
background:#b6791e;
text-decoration: none;

}

#nav a.daddy {
background: url(rightarrow2.gif) center right no-repeat;
}

#nav li {
float: left;
padding: 0;
width: 140px;           /*this needs to be updated to match top #nav a */
background:#b6791e;
}

#nav li:hover, #nav li a:hover, #nav li:hover a {
background:#769841;
}

#nav li:hover li a {
    background:#ffffff;
    color:#769841;
}



#nav li ul {
    position: absolute;
    left: -999em;
    height: auto;
    width: 14.4em;
    w\idth: 13.9em;
    font-weight: bold;
    border-width: 0.25em;       /*green border around dropdown menu*/
    margin: 0;
}

#nav li ul a {
    background:#ffffff;
    color:#769841;
}

#nav li li {
    padding-right: 1em;
    width: 13em;
    background:#ffffff;
}

#nav li ul a {
    width: 13em;
    w\idth: 9em;
}

#nav li ul ul {
    margin: -1.75em 0 0 14em;
}

#nav li:hover ul ul, #nav li:hover ul ul ul, #nav li.sfhover ul ul, #nav li.sfhover ul ul ul {
    left: -999em;
}

#nav li:hover ul, #nav li li:hover ul, #nav li li li:hover ul, #nav li.sfhover ul, #nav li li.sfhover ul, #nav li li li.sfhover ul {
    left: auto;
}

#nav li:hover, #nav li.sfhover, {
    background: #769841;
    color:#ffe400;
}

#nav li a:hover, #nav li li a:hover, #nav li:hover li:hover, #nav li.sfhover a:hover {
    background: #769841;
    color:#ffe400;
}

1 Ответ

0 голосов
/ 05 мая 2010

Проблема была в текстовой ошибке IE Ghost, вызванной слишком большим количеством тегов HTML-комментариев между плавающими элементами. Подробнее здесь http://www.toastedweb.si/docs/ie_ghost_text_bug_fix.html

...