Css3pie работает полностью на локальном хосте, но только частично на удаленном сервере - PullRequest
0 голосов
/ 29 марта 2012

У меня есть сайт в сети, это веб-приложение, написанное на ASP.NET. Когда я копирую HTML-код сайта с разочарованием, помещаю его в html-файл и запускаю на локальном хосте (сервер Apache), все в порядке, и CSS3PIE работает правильно.

Проблема в том, что на сервере все работает по-другому. Сначала это даже не сработало, и элементы, к которым было добавлено поведение pie.htc в css, полностью исчезли, или, скажем так, стали прозрачными.

Я наткнулся на совет о том, что position: relative; на данном элементе решит проблему. Это вроде как, но это было неудовлетворительно. Фон по-прежнему оставался прозрачным, части элементов исчезали, и при наведении мыши другие элементы подпрыгивали на пару пикселей. Тени работали, закругленные углы тоже вроде работали, но без градиентов.

1 Ответ

2 голосов
/ 29 марта 2012

Пара возможностей:

1) Файл .htc не обслуживается с правильным MIME-типом.Из Известных проблем CSS3 PIE

IE требует, чтобы поведение HTC обрабатывалось с заголовком типа содержимого "text / x-component", иначе он просто проигнорируетповедение.Многие веб-серверы предварительно настроены для работы с правильным типом контента, но другие - нет.

Если у вас есть проблемы с тем, что поведение PIE не применяется, проверьте конфигурацию вашего сервера и, если возможно, обновите его, чтобы использовать правильный контент-тип.Для Apache вы можете сделать это в файле .htaccess:

AddType text/x-component .htc

Является ли проблематичным поведение на сервере с IIS?Если да, то какая версия IIS? В IIS 5 или выше должен быть правильно настроен тип MIME для .htc

2) Возможно, это проблема пути, опять же из CSS3 PIE известногопроблемы

Относительные пути

Существуют две основные проблемы, связанные с относительными путями в CSS: URL-адрес поведения

IE интерпретирует URL-адрес для свойства поведенияотносительно исходного документа HTML, а не относительно файла CSS, как и любое другое свойство CSS.Это делает вызов PIE-поведения неудобным, потому что URL должен быть либо:

Абсолютным от корня домена - это делает CSS не легко перемещаемым между каталогами - или, относительно HTML-документа - этоделает CSS непростым для повторного использования между различными файлами HTML.

URL-адреса в интерпретируемых PIE свойствах CSS

PIE не анализирует таблицы стилей CSS (это было бы недопустимо медленно);он позволяет IE обрабатывать синтаксический анализ, запросы селекторов, каскадирование и т. д., а затем просто запрашивает полученные значения свойств.Это означает, что когда PIE получает значение свойства, он не знает контекста, из которого произошло это значение.

В результате для свойств, которые содержат значения URL (такие как border-image или -pie-background)), PIE не может разрешить эти URL относительно файла CSS, в котором они появляются.Вместо этого он разрешает их относительно контекста выполнения JavaScript, который является местоположением исходного HTML-документа.

...