Дублирование символов в IE6

Дублирование символов в IE6 Дата публикации: 30.09.2009 ...

Дата публикации: 30.09.2009

Проблема

В IE6 чудесным образом появляется дублирование символов текста при вложении плавающих блоков (свойство float) в контейнер с таким же свойством (float). При чем этот баг появляется, если использовать в верстке комментарии (например, для обозначения начала и окончания блоков <!— left col—> … <!— end left col—>). Следует заметить, что чем больше будет таких комментариев, тем больше символов продублируется.


<div class="floatParent">
<!--left col-->
<div class="floatCol">
...text...
</div>
<!--end left col-->

<!--right col-->
<div class="floatCol">
...text...
</div>
<!--end right col-->
</div>
<div> class="clear">Блок clear</div>

Живой пример (баг будет виден только в IE6). Для тех у кого нет под рукой IE6 — скриншот:
Демонстрационный пример дублирования символов в IE6

Заметка: иногда дублирование появляется и без использования комментариев (народ упоминал о случаях, когда такой же баг проявлялся при скрытых блоках — display: none).

Решение 1 — display: inline

Добавляем всем плавающим блокам, в секции, где обнаружен баг свойство display: inline. Смотрим результат.

Решение 2 — отступ справа последнему плавающему блоку

Указываем отступ справа (margin-right) для последнего плавающего блока в секции, где обнаружен баг.

Возможно нужно будет эксперементировать с величиной отступа и отрицательным/положительными значениями. Смотрим результат.

Решение 3 — скрываем комментарии от IE

Условными комментариями прячем комментарии от IE:


<div class="floatParent">
<!--[if !IE]><!--left col--><![endif]-->
<div class="floatCol">
...text...
</div>
<!--[if !IE]><!--end left col--><![endif]-->

<!--[if !IE]><!--right col--><![endif]-->
<div class="floatCol">
...text...
</div>
<!--[if !IE]><!--end right col--><![endif]-->
</div>
<div> class="clear">Блок clear</div>

Смотрим результат.

Материал подготовлен на основе статьи «Explorer 6 Duplicate Characters Bug«.

Теги:
Показать комментарии

Смотрите также в этом разделе

Смежные материалы, которые могут быть вам полезны

  • HasLayout | знакомимся, управляем, применяем
  • Max-width для IE6 | описание 2-х способов
  • Min-height для IE6 | без использования expression
  • Min-width для IE6 | описание 4-х способов
  • Min-width и max-width одновременно для IE6 | описание 2-х способов
  • PNG и прозрачность в IE6 | 4 метода | обход проблем
  • position:fixed для IE6 | описание 4-х способов
  • Блочная модель в IE6 | решаем проблему с размерами блоков для IE6
  • Высота блока 1px для IE6 | решаем проблемы с блоками небольшой высоты
  • Для IE6 устраняем flickering — обращение к серверу при наведении на элемент
  • Дырка под футером при показе блока в IE 6
  • Как перекрыть поверх слоем select в IE6
  • Как перекрыть поверх слоем select в IE6
  • Обрезка контента c отрицательным margin в IE6
  • Отступы плавающих блоков в IE6 | решаем проблему с большим отступом у плавающих блоков
  • Псевдокласс :first-child для ИЕ6
  • Псевдокласс hover в IE 6
  • Селектор потомков > для IE6
  • Селекторы атрибутов [type=…] в ИЕ6
  • Сестринский селектор для IE6
  • Ссылки с вложением
  • Убираем смещение на 1px в IE6 для right:0 и bottom:0