CSS зависит от ActiveX? - PullRequest
       4

CSS зависит от ActiveX?

3 голосов
/ 07 ноября 2010

Моя страница работает в FF, Chrome, Safari и даже IE8 ... до тех пор, пока включен ActiveX.

[ссылка удалена]

Чтобы получить CSS3Функции (вращение, непрозрачность, тень текста), работающие в IE8, мне пришлось использовать фильтры ActiveX.Моя проблема в том, что когда вы впервые заходите на сайт, он всплывает с баннером вверху, на который пользователи должны нажать, затем нажмите Разрешить, затем нажмите ОК.Я не думаю, что большинство пользователей IE собираются сделать это.

Поэтому я бы хотел, чтобы макет по умолчанию в IE8 (до ActiveX) выглядел прилично, переместив заголовок (мое имя) вниз и присвоив емусплошной цвет фона.Однако, если я добавлю эти стили, страница будет выглядеть плохо, если пользователь ДЕЙСТВИТЕЛЬНО активирует ActiveX.

Я не могу придумать обходного пути CSS для этого, у кого-нибудь есть идеи?

Спасибо!Джефф

РЕДАКТИРОВАТЬ: Чтобы уточнить, я не пытаюсь заставить вращение, opactiy и т. Д. Работать в IE8 без фильтров.См. Ответ Олафура для уточнения ...

Ответы [ 3 ]

2 голосов
/ 09 ноября 2010

Итак, во-первых, хорошие новости:

Моя проблема в том, что когда вы впервые заходите на сайт, он всплывает с баннером вверху, на который пользователи должны нажать, затем нажмите Разрешить, затем нажмите ОК. Я не думаю, что большинство пользователей IE собираются сделать это.

Большинству пользователей IE это делать не нужно, поскольку в настройках безопасности по умолчанию для «Запустить элементы управления ActiveX и плагины» установлено «Включено». Я подозреваю, что вы видите это, потому что вы или ваш сетевой администратор преднамеренно заблокировали ActiveX в вашей установке.

Теперь плохие новости - я не уверен, что будет какой-либо способ протестировать ActiveX, не вызывая предупреждающее сообщение для людей, которые не включили его по умолчанию. Тем не менее, если вы можете разработать надежный тест для него (не знаю, как именно, но есть некоторая вариация с применением фильтра , а затем проверить, будет ли он работать, то применение стилей должно быть относительно легко с небольшим количеством JavaScript.

Объявите правила по умолчанию для вашей страницы без поворота, непрозрачности или тени текста обычным образом:

h1 {...}
p {...}

При загрузке страницы запустите программу, чтобы определить, поддерживается ли ActiveX, если он динамически добавляет класс к элементу body, например ax-en. Между тем в вашей таблице стилей есть такие правила:

.ax-en h1 { /* -ms-filter stuff and associated rules */ }
.ax-en p { /* -ms-filter stuff and associated rules */ }

Это в основном подход, используемый modernizr.js , прочитайте эту статью для более подробного объяснения общей стратегии.

1 голос
/ 07 ноября 2010

Вращение, непрозрачность и тень текста: нет, вы не можете этого сделать. Вы должны использовать декларацию CSS filter, которая использует ActiveX в IE8.

Однако для других функций - тени границы, радиуса границы и т. Д., Я бы посоветовал вам взглянуть на CSS3Pie , который позволяет поддерживать ряд современных функций браузера в CSS в IE (даже вечно ненавистный IE6).

Вы сможете выполнять все эти функции в стандартном CSS, когда выйдет IE9, но это еще не произойдет в течение некоторого времени, и вам все еще придется иметь дело с IE8 (и IE6 и IE7) в течение некоторого времени даже после выхода IE9.

1 голос
/ 07 ноября 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...