Рубрики
Верстальщику

SWFObject + Internet Explorer + Mootools — как их подружить?

Для начала, хочу извиниться перед своими читателями за то, что так долго не писал в блог. Не буду рассказывать о большом количестве работы — у всех так. Но, чем больше работы, тем больше тем для этого блога. Сегодняшняя заметка на довольно насущную, но не новую тему. В работе, при использовании SWFObject,  очень часто приходилось решать конфликты этого скрипта с другими скриптами. Поскольку бОльшая часть моих проектов связана с Joomla! 1.5, в которой используется библиотека Mootools, то часто приходится решать конфликт SWFObject именно со скриптами Mootools.

Все дело в том, что Internet Explorer просто отказывается открывать страницу, выдавая при этом сообщение типа:

IE dialog

Об этом баге довольно хорошо известно разработчикам IE и они сами говорят почему так происходит http://support.microsoft.com/kb/927917/ но при этом решения не предлагают, кроме того, как использовать IE8 🙂

Эта проблема возникает потому, что дочерний контейнер  содержит скрипт, который пытается изменить родительский контейнер. Скрипт код пытается изменить родительский элемент с помощью либо innerHTML либо appendChild метода.

Решение этой проблемы заключается в том, чтобы сказать IE, что потомок не собирается менять своего родителя, во как…:) Сделать это можно простым методом, добавив к скрипту, который генерирует флеш атрибут defer=”defer”.

W3C определяет атрибут defer=”defer” следующим образом:

При использовании данного атрибута пользовательский агент получает информацию о том, что скрипт не будет генерировать содержимое документа (например, нет «document.write» в JavaScript) и, таким образом, агент пользователя может продолжить рендеринг.

На этом все. Коротко но, думаю, довольно ясно. Откланиваюсь, для решения очередных производственных задач, с мыслями о ном посте в скором времени. Удачи.

P>S>

Если в вашей жизни случилось значимое событие, его празднование помогут сделать еще более радужным Музыканты, которых можно найти и выбрать в Клубе Музыкантов Treda.

Рубрики
Верстальщику

Выравнивание высоты контейнеров при верстке DIVами

Думаю, что все, кто осознал все преимущества верстки слоями перед табличной разметкой, ни смог не обратить внимания на один, как по мне, существенный недостаток блочной модели. Что это? Это высота контейнеров.Работая над очередным проектом, я перепробовал несколько вариантов решения данной проблемы, с которыми и хочу познакомить вас в рамках этой статьи.

К сожалению, если мы будем использовать трех- или двухколоночный макет сверстанный «слоями», то в итоге высота контейнеров будет совершенно независима от высоты соседних блоков. И будет напрямую зависеть от контента блока и примененных к нему правил отступа (padding). Несмотря на все свои недостатки, таблицы, как бы сами по себе, решают этот вопрос в силу связности соседних колонок. В случае же использования блоков мы имеем на выходе совершенно независимые контейнеры.

table_layout.png
Пример страницы
с табличной версткой
div_layout.png
Пример верстки «слоями»

Иногда это не играет особой роли и разная высота контейнеров вполне приемлема в рамках дизайнерской концепции. Но бывают случаи, когда необходима именно равная высота блоков в независимости от их содержимого. Именно решению данного вопроса посвящается эта статья.