Jquery/CSS IE6 проблема

Это очень интересная проблема. В основном я добавляю несколько тегов li динамически:

var fileList =  $("#openWin ul");

for (var i = 0; i<20; i++){
  fileList.append("<li>"+i+"<\/li>");
}

У меня есть несколько CSS для моих тегов li:

li{
  list-style : none;
  font-size : 12px;
  margin: 0;
  padding : 5px 10px 5px 10px;
  border-bottom : 1px solid #cccccc;
  font-family : Georgia, serif;
  background-color : white;
  cursor : pointer;
}

Это не похоже на работу в IE6. Первые несколько тегов li не имеют полностью примененного к ним css:альтернативный текст

Вот ссылка на живой файл. Я попытался настроить jsFiddle и jsBin для этого, но ни один из этих сайтов не работает должным образом в ie6.

Странно, если я добавлю некоторые события в теги li, возникнет та же проблема. Добавляем этот код:

 $("#openWin li").live('mouseover', function(){
    $(this).css({"background-color": "#ededed"});
 }).live("mouseout", function(){
    $(this).css({"background-color": "white"});
 });

Работает, но первые несколько тегов li ведут себя странно. Я буду продолжать работать над этим, любой вклад будет принята с благодарностью.

4 ответа

Решение

Похоже, проблема hasLayout - попробуйте добавить zoom:1 в твоих стилях li. Другой вариант - добавить пробел к тексту, который вы добавляете, как показано ниже:

fileList.append(" <li>"+i+"<\/li>");

@ Зеван: Комментарий за position: relative; в вашем #files CSS. Это должно решить проблему.

#files {
    background-color: white;
    height: 450px;
    margin: 10px;
    overflow: auto;
    /*position: relative;*/
    width: 230px;
}

На рисунке это выглядит так, как будто CSS работает, за исключением границы внизу. Пытаться:

for (var i = 0; i<20; i++){
  fileList.append("<li style=\"border-bottom:1px solid #cccccc;\">"+i+"<\/li>");
}

Попробуйте это в цикле:

$("<li>").text(i).appendTo(fileList);
Другие вопросы по тегам