Для чого використовується?
Розробники Internet Explorer придумали особливу властивість, яке обробляє і оптимізує стильове оформлення для об'єктів верстки. Суть поняття цього інструменту полягає в здатності елемента визначати свої розміри і виводиться на веб-сторінці. Ця здатність була названа розробниками Layout. Таким чином, всі об'єкти верстки можна поділити на 2 групи: ті, які мають цю здатність (Layout), і ті, у яких її немає. До другої групи належать елементи, які повністю залежать від своїх батьків, іншими словами вони не відповідають за свої розміри і особливості відображення, а повністю копіюють поведінку батьківського блоку.
Як значення для hasLayout використовується всього два кодових слова: true. якщо умова має підтвердитися, або в іншому випадку false. Якщо явно значення для Вендорний властивості не вказується, то браузер спрацьовує так само, як якщо б було б прописана команда true.
Особливість застосування hasLayout не схожа на інші Вендорний властивості, його у файлі CSS застосовувати не можна, так як воно створювалося для внутрішнього використання. Однак допускається непряме застосування. Важливо знати, що можливий варіант, коли властивість прописано для об'єкта за замовчуванням.
Нижче представлена таблиця, в якій вказані елементи, для яких за замовчуванням встановлений hasLayout зі значенням true.
Також hasLayout встановлюється в разі застосування наступних властивостей зі значеннями, які вказані в цьому списку.
Також слід знати, який ефект робить hasLayout на об'єкт:
- Робить негативний вплив на плаваючі об'єкти.
- Виключає процес схлопування для інтервалів між об'єктами.
- Списки починають конфліктувати з властивістю hasLayout.
- Ускладнює процес обробки ресурсу браузером через допоміжних операція розрахунку габаритних розмірів елементів.
У тій же мірі слід позначити ряд типових проблем вищезгаданого браузера, які вирішуються даним властивістю:
- висновок контейнерів, яким притаманні властивості плаваючого елементу;
- усуває проблеми розрахунку зовнішніх і внутрішніх відступів між батьком і його дітьми;
- ліквідується баги блокових елементів;
- оптимізує відображення абсолютно і відносно позиціонуються блоків.
Це тільки найважливіші проблеми, які є верхівкою айсберга. Повний перелік можна знайти на сайті розробників Internet Explorer.
Підводячи підсумок, варто відзначити важливість розуміння поняття Layout і вміння оперувати властивістю hasLayout. Дуже важливо останнє, так як в файлі CSS властивість не фігурує, а присвоюється непрямим шляхом, а саме через ті характеристики, які спочатку, відповідно до специфікації, мають здатність Layout. У той же час застосування даного властивість дозволить уникнути багатьох багів, які притаманні саме Internet Explorer. Власне, розробники компанії Microsoft впроваджували поняття Layout саме з цієї причини. Таким чином, розглядається властивість в умілих руках стане найпотужнішою зброєю в боротьбі з дивацтвами Internet Explorer.