Ошибка с блочными ссылками в IE6
В IE6 содержится некоторое количество ошибок, так или иначе связанных со свойством hasLayout. Непосредственно установить его нельзя, но можно сделать это косвенно. Так что большинство проблем связанных с этим свойством можно исправить его установкой, добавляя в стилях элементу zoom: 1 или height: 1%. Эти свойства кроме своих непосредственных характеристик устанавливают hasLayout.
Блочные ссылки это приём, который активно используется в различных меню, таким способом повышается полезная площадь ссылки. В IE6 если ссылка установлена блочной с помощью display: block она не занимает доступное пространство родителя и ссылкой является только текст. Эта ошибка проявляется в том случае, когда к родителю добавляется свойство float (пример 1).
Пример 1. Блочные ссылки
XHTML 1.0CSS 2.1IE 6IE 7+CrOpSaFx
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Блочные ссылки</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
DIV {
background: #ffc; padding: 1%; text-align: center;
float: left; width: 98%;
}
DIV A { display: block; }
</style>
</head>
<body>
<div><a href="#">Ссылка на всю ширину</a></div>
</body>
</html>
Проблема решается установкой hasLayout блочным тегам <a>, например, через zoom.
<!--[if IE 6]>
<style type="text/css">
DIV A { zoom: 1; }
</style>
<![endif]-->