CSS3 PIE - Предоставление поддержки пограничного радиуса IE не работает?

Я пытаюсь сделать закругленные углы в IE с приложением CSS3 PIE.

Вот мой CSS:

.fieldRow {
    clear:both;
    padding: 0;
    margin: 0;
    overflow: hidden;
    line-height:17px;
}
.alternate, .rowMousedOver {
    -moz-border-radius: 10px;
    -webkit-border-radius: 10px;
    border-radius: 10px;
    behavior: url(PIE.php);
    position: relative;
}
.rowMousedOver{
    background-color: #E2E66D !important;
}
.alternate {
    background-color: #FCFEE8;
}

и вот несколько примеров HTML:

<div class="fieldRow alternate">
                <div class="label"><label id="title_label" for="title"> Title: </label></div>
                <div class="fieldWrapper required text">
                    <div class="cellValue"><input type="text" onchange="validateField(this)" name="title" id="title" value="Tax Free Savings Accounts" disabled=""></div>
                </div>
            </div>

и через javascript я добавляю rowMousedOver к fieldRow, когда он зависает.

Любая идея, почему это не работает? Я также пробовал использовать behavior: url(PIE.htc), но мне тоже не повезло.

Спасибо!

Ответ 1

Запросы PIE.htc должны отвечать типом mime "text/x-component" - или IE не будет трогать поведение. Используемый вами PIE.php должен исправить это. Если вы не уверены, что это так, используйте функцию FireBug Net, чтобы проверить прямой запрос к файлу.

Также обратите внимание, что путь к PIE.htc относителен к HTML-странице - не относится к файлу css, который вы ожидаете. Поэтому рассмотрим вопрос о пути к абсолютному .htc. Здесь FireBug может помочь вам снова определить, есть ли у вас проблема 404.

Дополнительная информация на http://css3pie.com/documentation/known-issues/

Ответ 2

Попробуйте добавить position: relative в инструкцию css. У меня была эта проблема несколько раз, и она обычно разрешалась этим. Дополнительную информацию можно найти по адресу: http://css3pie.com/documentation/known-issues/

Ответ 4

Проблема может быть на вашем пути, в зависимости от того, где вы помещаете файл PIE.htc. Обратите внимание, что документация "Начало работы" (здесь) упоминает следующее:

... вам нужно будет отрегулировать путь для соответствия тому, где вы загрузили PIE.htc на шаге 2. Примечание. Этот путь относится к просматриваемому файлу HTML, а не к файлу CSS, из которого он вызывается.

Итак, behavior: url(PIE.htc); должен работать, если файл PIE.htc находится в той же папке, что и ваш html файл (по крайней мере, он работал у меня:-)).

Однако, не уверен, что вы хотите увидеть округленным... div, который будет затронут, похоже, не имеет видимых функций. Если вы хотите видеть div с закругленными углами, вы можете сделать видимость границы или фона, например добавление border: 1px solid black; или background-color: someColor; в класс поля.

Если вы хотите увидеть округленное поле ввода, вы можете объявить класс как .fieldRow input {...}

Ответ 5

Ответ Neophyte здесь (для использования условного комментария в разделе главы) помог мне, когда все остальное выглядело прекрасно/не изменилось (на простейшей тестовой странице, из IIS 7 с IE8)

http://www.webmasterworld.com/forum83/9144.htm

Надеюсь, что кто-то поможет

Ответ 6

Также стоит отметить - у меня была проблема, когда закругленные углы не работали в IE8, когда я установил цвет фона с правилом !important после него. Еще одна причина не использовать! Важно!

Ответ 7

Решение, которое работает для меня, выглядит следующим образом:

  • Путь к PIE.htc должен быть абсолютным, например. поведение: url (App_Themes/Default/PIE.htc)
  • Удостоверьтесь, что div, который вы установили в поведении, имеет стиль Position: Relative

Dan