Диалоги jquery в режиме причуд не правильно устанавливают высоту

Я пишу виджет на основе jquery, который будет размещен на веб-сайте другой компании. Когда я пытаюсь установить высоту диалогового окна с помощью $('#dialog').height(450), он делает диалог намного короче. Я могу получить его высотой около 450 пикселей, используя 300 (я знаю, это не имеет смысла). Я определил, что ошибка возникает в IE8 в причудливом режиме. Да, я знаю, что jquery не поддерживает режим причуд. Я не могу изменить тип документа, так как это не мой сайт.

Хотя то, что я сделал, сработало, мне нужно понять, почему. Есть ли исчерпывающее руководство о том, как jquery работает в режиме причуд?


person user747624    schedule 10.05.2011    source источник


Ответы (3)


Вы применили дополнение к диалогу?

Блочная модель отображается по-другому, если вы используете необычный режим.

См. http://www.quirksmode.org/css/box.html.

person kei    schedule 10.05.2011
comment
Заполнение не объясняет, почему установка высоты больше 380 пикселей делает диалог короче. Я проверил это, и следующая строка кода делает диалог высотой 1 пиксель: var dialogHeight = 381; $('#WebIQDialog').dialog(option, height, dialogHeight); - person user747624; 12.05.2011

Вы должны стараться избегать режима причуд, если это возможно. Однако, если это не вариант, мне это удалось: (я предполагаю, что вы используете jQueryUI)

$(".ui-dialog-content").css("height", "450px");

Который изменяет размер внешнего CSS диалогового окна jQueryUI.

person Mark Costello    schedule 10.05.2011
comment
нет, он установил диалоговое окно высотой около 50 пикселей. По какой-то причине всякий раз, когда я пытаюсь установить высоту диалогового окна выше 380 пикселей, оно становится намного короче. - person user747624; 12.05.2011

Попробуйте добавить это правило стиля и настроить высоту в соответствии с вашими требованиями:

.ui-dialog { height:700px !important; }

Откройте диалог с

dialog.dialog("open");

и установите высоту диалогового окна на авто, чтобы настроить внутреннее содержимое:

dialog.css("height", "auto");
person Mathias Florin    schedule 19.10.2011