Комментарии 41
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Обновил статью с учётом твоих комментариев
IE выключает сглаживание текста внутри блока с фильтрами
Ещё он не хочет нормально применять некоторые другие свои фильтры. И восьмёрка ломает спрайты — у неё background-position перестает работать. И начинаются хитрые косяки с отступами (в текстовых инпутах особенно прелестно). Если между блоком с тенью и внутренними с текстом-фильтрами-спрайтами есть хотя бы одна обёртка, то всё это лечится через position:relative на неё.
Вообще, если я ничего не путаю, это старая фишка, что-то такое было при эксплореровской модификации скроллбаров, кажется. Или в блоках с полупрозрачными пнг в шестёрке? Короче, и косяк, и лекарство стары, как сами иешные фильтры. жаль, что я про него забыла и в случае с тенью недавно пришлось придумывать эту очевидную вещь заново. битых полчаса, чёрт.
Ещё он не хочет нормально применять некоторые другие свои фильтры. И восьмёрка ломает спрайты — у неё background-position перестает работать. И начинаются хитрые косяки с отступами (в текстовых инпутах особенно прелестно). Если между блоком с тенью и внутренними с текстом-фильтрами-спрайтами есть хотя бы одна обёртка, то всё это лечится через position:relative на неё.
Вообще, если я ничего не путаю, это старая фишка, что-то такое было при эксплореровской модификации скроллбаров, кажется. Или в блоках с полупрозрачными пнг в шестёрке? Короче, и косяк, и лекарство стары, как сами иешные фильтры. жаль, что я про него забыла и в случае с тенью недавно пришлось придумывать эту очевидную вещь заново. битых полчаса, чёрт.
НЛО прилетело и опубликовало эту надпись здесь
Это я тоже много раз видел. А вот тень, обрамляющую контейнер по всему контуру — ни разу.
У вас точно с кодом все в порядке?
Селектор для ИЕ не нужен, сразу свойства?
<!--[if IE]> <style type="text/css"> filter: progid:DXImageTransform.Microsoft.Shadow(color='#042b47', Direction=45, Strength=6) progid:DXImageTransform.Microsoft.Shadow(color='#042b47', Direction=135, Strength=6) progid:DXImageTransform.Microsoft.Shadow(color='#042b47', Direction=225, Strength=6) progid:DXImageTransform.Microsoft.Shadow(color='#042b47', Direction=315, Strength=6); position: relative; top: -12px; left: -12px; zoom: 1; </style> <![endif]-->
Селектор для ИЕ не нужен, сразу свойства?
а если таких блоков на странице будет, скажем, десяток? тормозить будет?
Я думаю, что будет! Хотя надо тестить конечно. AlphaImageLoader для png обычно многократно используется на странице. И ничего, вроде не сильно грузит страницу.
Я думаю, что этот способ хорошо применять, когда есть тень вокруг всего контента страницы. А для галереи с картинками не стоит.
Я думаю, что этот способ хорошо применять, когда есть тень вокруг всего контента страницы. А для галереи с картинками не стоит.
будет конечно, это же IE
а по делу — все что имеет opacity отличный от 1 в IE добавляет тормозов
а по делу — все что имеет opacity отличный от 1 в IE добавляет тормозов
Благодаря вам узнал о данном свойстве, спасибо =)
НЛО прилетело и опубликовало эту надпись здесь
Решал задачу с тенью в IE. Итог — если применять фильтры на блоки больших размеров (центральная колонка с контентом сайта имеет тень) — ужасные тормоза. Применение фильтра к тонким блокам (10px в ширину) решает проблему тормозов но не полностью.
> IE выключает сглаживание текста внутри блока с фильтрами
IE7 maybe
IE7 maybe
Напишите какой-нибудь текст в блок, чтоб посмотреть что значит «IE выключает сглаживание».
Вообще-то согласно концепции graceful degradation для ие не надо делать тени.
Как минимум из-за того. что это будет сильно сказываться на производительности
Как минимум из-за того. что это будет сильно сказываться на производительности
А почему не VML?
Спасибо, интересное решение!
Я раньше пользовался решением Чикуёнка, но там «резиновость» блока лишь условная.
Я раньше пользовался решением Чикуёнка, но там «резиновость» блока лишь условная.
Я бы не сказал что использование хака — это кроссбраузерный вариант.
Лучше в описании сразу указывать, что использовался хак,
Лучше в описании сразу указывать, что использовался хак,
«IE увеличивает размеры блока на ширину тени»
Я понимаю, что «ослика» теперь не пинает только ленивый, но Firefox и Opera тоже увеличивают ширину блока.
Я понимаю, что «ослика» теперь не пинает только ленивый, но Firefox и Opera тоже увеличивают ширину блока.
Это вы с чего взяли?
ну…
на вашем же примере:
уберите отступы у body;
увеличьте ширину блока до 1000 пикселей;
переключите расширение вашего монитора на 1024 на 768;
… наблюдайте полосу прокрутки, которой, по идее, не должно быть.
увеличивайте размытие тени блока для усиления эффекта и доказательства моих слов
на вашем же примере:
уберите отступы у body;
увеличьте ширину блока до 1000 пикселей;
переключите расширение вашего монитора на 1024 на 768;
… наблюдайте полосу прокрутки, которой, по идее, не должно быть.
увеличивайте размытие тени блока для усиления эффекта и доказательства моих слов
Хм… да, действительно, у body появляется прокрутка. Но насколько я понял, это единственный побочный эффект. Во всем остальном блок с тенью в FF и Opera ничем по поведению не отличается от других блоков. Просто в IE блок реально «смещается» на величину тени, так что приходится перемещать его обратно.
кроссбраузерный говорите? а опера доказывает обратное
opera 10.10
opera 10.10
Очевидный и простой способ заставляет кушать много ресурсов в ИЕ.
Лучшим решением будет использование VML в этом «браузере»
Лучшим решением будет использование VML в этом «браузере»
отнюдь не симпатичная тень в ie, к сожалению
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Кроссбраузерный box-shadow