Как включить border-radius.htc в архитектуру MVC, чтобы заставить border-radius работать в IE - PullRequest
0 голосов
/ 25 октября 2011

Я использую CakePHP и хочу сделать css border-radius для закругленных углов в определенных разделах.Это работает хорошо для всех других браузеров, кроме IE.Сейчас я ссылаюсь на ссылку http://www.htmlremix.com/css/curved-corner-border-radius-cross-browser для поддержки закругленных углов в IE.Но проблема в том, как и где именно разместить border-radius.htc.Страницы загружаются с сервера динамически и из разных папок.Так как же я смогу определить относительный путь, как указано в данной ссылке.

Ответы [ 3 ]

1 голос
/ 20 января 2012

В моем случае я использовал пирог, и у меня было чертовски много времени заставить его работать.

Во-первых: если у вас есть доступ к файлу .htaccess, добавьте его внизу.

AddType text/x-component .htc

Далее возьмите ваш файл .htc (или в моем случае несколько круговых файлов) Тогда при ссылке на мой файл .htc:

behavior: url(/PIE.htc);

если вы не можете добавить в .htaccess, используйте файл pie.php, поставляемый с cssPie, и ссылайтесь на него.

behavior: url(/PIE.php); 

Также убедитесь, что ваш элемент относительно, с некоторым набором z-index:

z-index:1;
position:relative;  

Он не работал в ie8, пока у меня не было этого набора.

Надеюсь, это поможет !!

1 голос
/ 25 октября 2011

Как я уже сказал в своем комментарии, я рекомендую использовать CSS3Pie вместо border-radius.htc.

Но они оба работают одинаково, поэтому к ним обоим относится один и тот же вопрос.

Ответ - использовать абсолютный URL для файла .htc, а не относительный.

Таким образом, если вы знаете, где находится ваш файл htc, вы всегда можетессылаться на него по одному и тому же пути, и он всегда будет работать.

Использование относительных URL-адресов с файлами htc, по-видимому, является путаницей (сейчас есть еще один вопрос точно по той же теме), но переключитеськ абсолютному пути, и он должен просто работать.

Так что вместо использования

behavior:url(../../css/pie.htc);

... просто используйте

behavior:url(/css/pie.htc);

[EDIT]

Если это не сработает, есть еще ряд других факторов, которые могут привести к тому, что файл HTC не будет работать.

Наиболее распространенной является проблема типа контента.IE очень привередлив в этом: файл HTC должен быть указан как text/x-component.Если это не так, то IE загрузит его, но затем полностью проигнорирует.

Если это так, вы можете исправить это, добавив тип контента в конфигурацию вашего сервера.На сайте CSS3Pie есть инструкции, как это сделать.(а также смотрите ту же страницу для других известных проблем с CSS3Pie, большинство из которых также относится к border-radius.htc)

0 голосов
/ 25 октября 2011

Я также использую CSS3Pie с CakePHP - я просто помещаю PIE.htc и PIE.php в app / webroot / css, и в моей ссылке на файл style.css это выглядит так:

border-radius: 8px;
-moz-border-radius: 8px;
behavior: url(/css/PIE.php);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...