Для отображения элементов и учёта их взаимодействия между собой, разработчики IE внедрили в этот браузер уникальное свойство hasLayout, значением которого выступает true или false. «Установить hasLayout» означает задать ему значение true, а «убрать hasLayout» говорит о том, что это свойство не задано или у него значение false.
Напрямую задать это свойство через стили невозможно, потому что оно разрабатывалось для внутренних целей, фактически в CSS его нет. Но можно это сделать косвенно, причём у некоторых элементов оно уже стоит по умолчанию, а у других нет.
Элементы, у которых всегда установлено свойство hasLayout:
hasLayout устанавливается автоматически, если для элемента задано одно из следующих свойств и значений:
В IE7 кроме перечисленных свойств hasLayout устанавливают следующие:
Убрать hasLayout можно добавлением к элементу одного из следующих свойств и значений:
Свойство hasLayout оказывает следующее воздействие на элементы веб-страницы.
Пример
HTML5CSS2.1IECrOpSaFx
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Ассортиментная политика</title>
<style>
.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.
Internet Explorer | Chrome | Opera | Safari | Firefox | Android | iOS | |
6.0+ | 8.0+ |
CSS 1 | CSS 2 | CSS 2.1 | CSS 3 |
---|---|---|---|