2010-11-07 3 views
3

У меня есть страница, работающая в FF, Chrome, Safari и даже в IE8 ... пока активна ActiveX.CSS зависит от ActiveX?

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

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

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

Возможно, я не думаю об обходном пути CSS для этого, есть ли у кого-нибудь идеи?

Спасибо! Jeff

EDIT: Чтобы уточнить, я не пытаюсь получить ротацию, opactiy и т. Д., Работая в IE8 без фильтров. См. Ответ на Olafur для уточнения ...

+3

Хаха, я бы почти проголосовал +1 за '... и даже IE8' – Harmen

+0

Вращение текста в FF 3.6 выглядит ужасно - нет AA. Если это не для чего-то динамичного, возможно, лучше использовать изображение без jaggies (возможно, только с серверной стороны). – 2010-11-07 20:02:26

ответ

2

Так первая хорошая новость:

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

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

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

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

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

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

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

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

1

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

+0

Извините, возможно, я был неясно ... Я понимаю, что не могу делать поворот и непрозрачность без фильтров ActiveX. Так что я хотел бы сделать, чтобы заголовок был сплошным цветом, не подверженным IE8 пользователям, если они не щелкнули, чтобы разрешить ActiveX. Я могу добиться этого, просто поместив «background-color: rgb (whatever)», но если пользователь нажмет «Разрешить ActiveX», фильтр непрозрачности ActiveX не переопределит rgb(). У меня схожие проблемы с позиционированием заголовка. Имеет ли это смысл? – Jeff

1

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

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

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

+0

Спасибо, но посмотри мой ответ на Олафур Вааге ... – Jeff

Смежные вопросы