Инициирование haslayout в IE 6, каков побочный эффект использования * html div {height: 1%; } - PullRequest
5 голосов
/ 26 февраля 2009

Некоторое время я помещал * html div { zoom: 1; } в свою базовую таблицу стилей, и она отлично работала. Тем не менее, сейчас я сталкиваюсь с ситуациями, когда есть элементы с абсолютным позиционированием, которые теряют свои высоты и ширину в IE 6 у.е. Так что я думаю вместо этого поставить * html div { height: 1%; }, но каковы побочные эффекты?

Обновление:

Спасибо за все ваши ответы. Ответ, скорее всего, без побочных эффектов, как все вы сказали.

Мне, однако, придется не соглашаться со всеми вашими рекомендациями (в данный момент) о том, как / когда запускать haslayout. Я считаю haslayout желательным поведением и поэтому должно быть поведением по умолчанию в IE6 (& 7).

Было упомянуто, что вряд ли будут какие-либо побочные эффекты, по точной причине, почему бы не сделать это поведением по умолчанию и отключать его только тогда, когда происходит нежелательное поведение (если когда-либо).

Это можно сделать, указав {zoom: auto;} или {height:auto;} для этого конкретного элемента в зависимости от того, как он был определен в базовой таблице стилей.

Мне придется дать ответ первому человеку, который сказал «нет побочных эффектов», поскольку ответ у всех один и тот же, в то время как некоторые вышли из области видимости. Еще раз спасибо!

Ответы [ 4 ]

3 голосов
/ 27 февраля 2009

Это известно как The Holly Hack . Насколько я знаю, нет побочного эффекта, особенно если вы * html это для IE6 напрямую. Я согласен с другими постерами, что размещение его на теге <div> может быть не самым мудрым выбором - я бы нацелился на отдельные элементы, вызывающие горе.

1 голос
/ 27 февраля 2009

Я также не думаю, что есть какие-либо побочные эффекты. Но как уже упоминалось - используйте только то, что вам нужно. Я бы лично ...

  1. Используйте его только на заданном классе:

    • html .haslayout {height: 1%; }
  2. Поместите его в таблицу стилей IE 6, включенную в условный комментарий

    <! - [если IE 6]> <[ENDIF] ->

Надеюсь, что поможет

1 голос
/ 27 февраля 2009

Я стараюсь минимизировать использование таких обходных путей, чтобы избежать непредвиденных проблем; Я использую его только для тех элементов, которые ему нужны, когда IE6 нарушает компоновку, а не для всех элементов на странице.

0 голосов
/ 27 февраля 2009

Высота в 1% не должна иметь никакого эффекта, потому что IE действительно рассматривает размеры как минимальные. Однако pos: abs в любом случае достаточно, чтобы дать ответ, и я согласен с Йероеном в том, что подобные общие утверждения не являются разумными. Например, это не то, что вам нужно при сбросе CSS.

...