Я знаю, что это избыточно, но проблема с sIFR в IE 6/7

Обещаю, я прочитал сотни сообщений Joyent и вопросов о stackoverflow, и я начну с этого, сказав, что я уверен, что у меня нет неуместных запятых, и я установил flash, и другие попробовали страницу в IE.

Проблема в том, что в IE 6/7 ничего не отображается, но с IE8, FF и Safari все в порядке. Вот код:

//sIFR-config.js

var zapfino = { src: '/fonts/zapfino.swf' };

sIFR.fitExactly = true;
sIFR.useStyleCheck = true;
sIFR.useDomLoaded = true;

sIFR.activate(zapfino);

sIFR.replace(zapfino, {
  selector: 'h1, h2, h3, h4'
  ,css: '.sIFR-root { color: #1A2F35; }'
  ,forceSingleLine: true
  ,tuneWidth: 5
  ,wmode: 'transparent'
  ,filters: {
      DropShadow: {
        knockout: false
        ,distance: 3
        ,color: '#330000'
        ,strength: 1
        ,alpha: .45
      }
    }
  ,ratios: [7, 3.59, 9, 3.56, 10, 3.49, 12, 3.5, 13, 3.46, 20, 3.47, 23, 3.43, 26, 3.44, 34, 3.42, 40, 3.41, 42, 3.4, 45, 3.41, 47, 3.4, 49, 3.41, 69, 3.4, 71, 3.39, 72, 3.4, 76, 3.39, 77, 3.4, 3.39]  
});

/* sIFR.css */
@media screen {
    .sIFR-active h1, .sIFR-active h2, .sIFR-active h3, .sIFR-active h4 {
        visibility: hidden;
        font-family: Verdana;
        line-height: 1em;
        color: #ff0000;
    }
    .sIFR-dummy { 
        width: 0px;
        height: 0px;
        margin-left: 42px !important;
        z-index: 0;
    }    
}

<!-- HTML Snippet -->
<div id="header">
    <H1>H1 Example</H1>
    <h3>H3 Example</h3>
    <h2>H2 Example</h2>
    <h4>H4 Example</h4>
</div>

Обратите внимание, что почти все варианты, которые вы видите, я пробовал с очисткой кеша и без, и т.д. Кроме того, основной css абсолютно позиционирует h1-4 в заголовке div #, который я также пробовал закомментировать.

РЕДАКТИРОВАТЬ: обратите внимание, что класс .sIFR-active применяется к <html>, поэтому я знаю, что скрипт запускается, но кроме этого ничего на странице не изменяется.

Я также пробовал разные шрифты из разных источников, но в IE все равно не повезло.

TIA,

Джей


person Jay Carroll    schedule 28.05.2009    source источник
comment
Не могли бы вы разместить ссылку на живую демонстрационную страницу? Я полагаю, другие сайты sIFR работают нормально?   -  person Mark Wubben    schedule 31.05.2009
comment
Привет, Марк, вот и все: hlc-dev.heroku.com Я не использовал sIFR для предыдущие сайты, но я хотел бы добавить некоторые производственные сайты, когда почувствую, что хорошо разбираюсь в использовании и устранении неполадок. Спасибо.   -  person Jay Carroll    schedule 01.06.2009
comment
О, вы имеете в виду другие сайты, помимо моего - да, я без проблем пробовал несколько из вашего примера страницы.   -  person Jay Carroll    schedule 01.06.2009


Ответы (1)


Иногда в IE6 / 7, когда абсолют помещается рядом с числом с плавающей запятой, абсолют исчезает.

В вашем css .1header перемещается влево, а сразу после .header_text позиционируется как абсолютный.

Попробуйте установить .header_text в положение: относительное. Или поместите пустой div между .1header и .header_text. Или оберните div .header_text в другой div.

Кстати - имена классов CSS должны начинаться с подчеркивания (_), тире (-) или буквы (a-z). Начало имени класса с цифры недопустимо, но я не знаю, имеет ли это значение для IE в этом случае или нет.

Добавлено после комментариев

Я почти уверен, что это проблема css. Удалите <h1>...<h4> с помощью sifr в #header_text. Добавьте <h1>test</h1>. В CSS добавьте background-color: # 00c; на #header_text.

Посмотри в firefox. Вы должны увидеть красный тест на синем фоне. Посмотри в IE, не будешь.

В #header_text измените position: absolute на position: relative. Посмотрите в IE, красный тест с синим фоном должен появиться (не там, где вы хотите, но это другая проблема).

person Emily    schedule 02.06.2009
comment
Спасибо, Эмили. Я попытался расположить их относительно друг друга и даже полностью удалить все стили для заголовков, но спасибо за ответ. Класс .lheader на самом деле 'l', а не 1, хотя вы абсолютно правы - никогда не используйте цифру в качестве первого символа в имени класса. - person Jay Carroll; 03.06.2009
comment
.header_text был также недавно добавлен после того, как я отправил этот вопрос. Мне нужно было стабилизировать абсолютное положение h1-4. - person Jay Carroll; 03.06.2009
comment
Я все еще думаю, что это проблема css, а не проблема sifr ... см. Мои дополнительные комментарии выше. - person Emily; 03.06.2009
comment
Прекрасная Эмили! Фактически, все, что нужно было сделать, это изменить #header_text на относительный. Вау, у меня никогда не случалось, чтобы IE так сильно и непредсказуемо терпел неудачу просто из-за css, но я также обычно избегаю этого абсолютного позиционирования. Похоже, мне нужно переосмыслить весь заголовок, что должно быть интересно, потому что этот клиент - абсолютный перфекционист. ;) Еще раз спасибо! - person Jay Carroll; 03.06.2009