CSS: проблема с бэкграундом для дива @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 4 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
BeStyle Studio Муж.
новый человек
0
Сообщения: 88
Зарегистрирован: 20.12.03
Откуда: Брянск
Заголовок сообщения: CSS: проблема с бэкграундом для дива
Сообщение Добавлено: 26 Февраль 2005, 13:43:02 
Элементу DIV задан атрибут BACKGROUND-IMAGE.
При наведении на этот див курсором некоторые обозреватели перезагружают картинку-бэкграунд.
Как этого избежать?

_________________
http://www.bestyle.ru/
Акела Муж.
Констататор
17
Сообщения: 7419
Зарегистрирован: 15.11.04
Сообщение Добавлено: 26 Февраль 2005, 14:07:35 
BeStyle Studio, сначала плз почитайте вот здесь: http://webhelp.ru/#before а потом полный HTML и CSS коды в студию, какие "обозреватели" и на какой операционной системе.
BeStyle Studio Муж.
новый человек
0
Сообщения: 88
Зарегистрирован: 20.12.03
Откуда: Брянск
Сообщение Добавлено: 26 Февраль 2005, 16:54:38 
Специально для господина Акелы:

Браузер + ОС:
IE 6.0.3790.0 (128-bit)
Microsoft Windows Server Standard Edition

CSS:
Код:
div.CascadeBody [b]div.ParentItem[/b]{
    background-image: url('/global/images/menu/subitem.gif');
    background-position: right;
    background-repeat: no-repeat;
}

div.CascadeBody div.CascadeItemBody{
    margin-left: 24px;
    margin-right: 18px;
    padding: 4px 0;
    width: 178px;
}

div.CascadeBody a{
    color: #606B59;
    text-decoration: none;
}


Генерация HTML:
Код:
    function WriteMenuLayer(Item)
    {
       document.write('<div class="CascadeMenu" id="cm'+ Item.ID +'" onmouseover="OnMouseOverMenu(this, '+ Item.ID +')" onmouseout="OnMouseOutMenu(this, '+ Item.ID +')" style="z-index: '+ (Item.Depth * 10 + 10) +'">');
        if(Item.Depth == 0) document.write('<div class="CascadeHeader" id="ch'+ Item.ID +'"></div>');
      document.write('<div class="CascadeBody" id="cb'+ Item.ID +'" style="width:100%;'+ (Item.Depth ? 'border-top: 1px solid #606B59;' : '') +'">');
      for(i = 0; i < Item.Items.length; i++)
      {
         SubItem = Item.Items[i];
         document.write('<div id="cmi'+ SubItem.ID +'" onmouseover="OnMouseOverMenuItem(this, '+ SubItem.ID +')" onmouseout="OnMouseOutMenuItem(this, '+ SubItem.ID +')" class="'+ (SubItem.Items.length ? 'ParentItem' : 'Item' ) + '"><a href="'+ SubItem.HRef +'" title="'+ SubItem.Title +'"><div class="CascadeItemBody">'+ SubItem.Caption +'</div></a></div>');
       }
       document.write('</div></div>');
    }


Проблема:
Центр внимания -- div.ParentItem. Его background-image грузится каждый раз при наведении на него мышкой, а следовательно приводит к "морганию" бэка при низких скоростях загрузки.

_________________
http://www.bestyle.ru/
Акела Муж.
Констататор
17
Сообщения: 7419
Зарегистрирован: 15.11.04
Сообщение Добавлено: 26 Февраль 2005, 17:30:15 
Простите, я не гадалка, разбирать код по кускам, мне легче посмотреть в работе и увидить баг. Дайте весь код начиная с доктайпа и весь скрипт или уж сорри, мож кто другой и поможет. На глаз первое что я бы сделал, это переставил определение класса вперёд, перед id (если остальные браузеры отображают верно). Вообще, может я уже сплю к вечеру, но не совсем понятно что у Вас там обрабатывается по наведению и уведению и зачем... Понятно же, что беду вызывает обработка onMouseOver.

Кстати, может и не она. В литературе описан случай заболевания ИЕ, связаного скорее всего с кэшем. когда он перегружал весь документ ни с того, ни с сего. ОДИН браузер. Человек пришёл на форум и никто его не понял: у всех его код работал нормально, оказалось, что нужно лечить сам его ИЕ. Эхплорер в некоторых случаях может заглючить запросто из-за нз-за несоответствия кода указанному доктайпу. Вы пробовали БЕЗ скрипта вручную прописать эту строку и посмотреть, что будет? Вы пробовали открывать Ваш документ с другой машины? Кстати, сервер-то у Вас какой? 2000 или 2003? Потому как ИЕ6 под 2003 в некоторых случаях ведёт себя принципиально иначе, чем под ХР или 2000, так что, тем более для того, чтобы разобраться нужен весь документ со всеми кодами. И JS, и CSS. Вы уверены, что в Вашем CSS случайно не закрался лишний ":hover"? Ну и так далее.
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 4 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100