Вы наверно слышали про hasLayout в ие. Давайте разберемся, что это такое. Полная и хорошая статья про haslayout находится здесь: Изучаем наличие layout. Читать её нужно обязательно всем верстальщикам. В этой статье написано много букв, и поэтому для лентяев и у кого мало времени быстренько на пальцах объясню, что это такое.
Что такое haslayoutHaslayout - «свойство» элементов исключительно в ie под Windows. Некоторые элементы этим «свойством» обладают сразу, т.е. haslayout=true. Другим элементам, если нужно, его можно задавать.
Для чего нужен haslayoutHaslayout нужен для исправления множества несоответствий веб-стандартов у ie. Т.е. с помощью haslayout-а можно «манипулировать», как тот или иной эелемент будет отображаться в ie. Под «множеством несоответствий веб-стандартов у ie» я имею ввиду непонятные глюки, которые выскакивают у ие при верстки, например такие, как совсем непонятные: пропадание текста у блоков (бывало, что текст просто тупо пропадал, занимая то место, которое должен был занимать, т.е. как-будто включено свойство visibility:hidden), хотя пробным путем было выяснено, что пропадание текста бывает из-за переборщения float-ов и position-ов. Так же бывало, что текст непонятным образом «улетал» за пределы блока. Вобщем, я имею ввиду, что haslayout не решит все ваши проблемы в ie.
Как включить haslayoutПрямого css свойства haslayout нет. Его можно включить, используя некоторые css свойства. Haslayout имеют некторые элементы по-умолчанию, это такие элементы как htm, body, table, tr, th, td, img, hr, input, button, select, textarea, fieldset, legend, iframe, embed, object, applet, marquee - список взял из статьи, приведенной выше. Включить haslayout можно с помощью CSS: Code .container{ zoom:1; height:1%; position:absolute; position:relative; overflow: hidden; float:left; float:right; display: inline-block
}
Примеры, где haslayout помогает в вёрстке- 1. Альтернативное решение отдельного слоя с clear:both, где чтобы ублажить ие, исользуем zoom:1.
- 2. При непонятном пропадании текста в ие. Такое встречается очень редко, но бывает, и код я вам повторить не могу. Но оно лечится либо с помощью zoom:1, либо с помощью position:relative, либо с помощью overflow: hidden. Если и после этого текст все-равно пропадает, просто переверстайте и не мучайтесь :)
- 3. При непонятном «вылетании» блоков, текста за пределы внешнего контейнера. Это тоже лечится с помощью haslayout.
- 4. При непонятном наличии лишних отступов у блоков, списков.
И так далее. Вобщем, если вы видите в ие какой-то не естественный глюк, попробуйте для этого или внешнего элемента включить haslayout. В большинстве случаев помогает.
Источник: html, css, haslayout, layout, ie, ие,haslayout,ie,верстальщикам,множеством несоответствий веб-стандартов у ie,пропадание текста у блоков |