hasLayout

Internet Explorer Chrome Opera Safari Firefox Android iOS
 6.0+ 8.0+            

Краткая информация

CSS 1 CSS 2 CSS 2.1 CSS 3

Описание

Для отображения элементов и учёта их взаимодействия между собой, разработчики IE внедрили в этот браузер уникальное свойство hasLayout, значением которого выступает true или false. «Установить hasLayout» означает задать ему значение true, а «убрать hasLayout» говорит о том, что это свойство не задано или у него значение false.

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

Элементы, у которых всегда установлено свойство hasLayout:

hasLayout устанавливается автоматически, если для элемента задано одно из следующих свойств и значений:

В IE7 кроме перечисленных свойств hasLayout устанавливают следующие:

Убрать hasLayout можно добавлением к элементу одного из следующих свойств и значений:

Свойство hasLayout оказывает следующее воздействие на элементы веб-страницы.

Пример

XHTML 1.0CSS 2.1IE 9Cr 12Op 11Sa 5Fx 4

<!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>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>Ассортиментная политика</title>
  <style type="text/css">
   .shadow {
    background: #fc0;
    padding: 10px;
    filter: progid:DXImageTransform.Microsoft.dropshadow
            (OffX=5, OffY=5, Color='gray', Positive='true');
    zoom: 1; /* Добавляем hasLayout */
   }
  </style>
 </head>
 <body>
  <div class="shadow">
   Ассортиментная политика предприятия подсознательно концентрирует 
   конвергентный конкурент, учитывая результат предыдущих медиа-кампаний. 
  </div>
 </body>
</html>

В данном примере чтобы работало свойство filter в IE6 и в IE7, добавлено zoom которое устанавливает hasLayout.

Другие статьи по теме

Обзор HasLayout

Некоторые ошибки в Internet Explorer можно обойти, установив для элемента «лейаут». Большинство пользователей не подозревают о значениях «лейаута» применяемого к элементу. Данный документ объясняет, что происходит, когда элемент содержит «лейаут» и последствия этого.

Ошибка с блочными ссылками в IE6

В IE6 содержится некоторое количество ошибок, так или иначе связанных со свойством hasLayout. Непосредственно установить его нельзя, но можно сделать это косвенно. Так что большинство проблем связанных с этим свойством можно исправить его установкой, добавляя в стилях элементу zoom: 1 или height: 1%. Эти свойства кроме своих непосредственных характеристик устанавливают hasLayout.

Блочные ссылки это приём, который активно используется в различных меню, таким способом повышается полезная площадь ссылки. В IE6 если ссылка установлена блочной с помощью display: block она не занимает доступное пространство родителя и ссылкой является только текст. Эта ошибка проявляется в том случае, когда к родителю добавляется свойство float (пример 1).

Если вам понравились материалы сайта, вы можете поддержать сайт, купив справочник по CSS в формате CHM, PDF или в виде HTML-файлов за 35 р.