ExtJS: удаление ненужных полос прокрутки элементов формы в Firefox - PullRequest
2 голосов
/ 14 января 2011

Я ищу несколько советов относительно ненужных полос прокрутки, появляющихся в определенных элементах формы. Скриншот проблемы показан ниже. Обратите внимание, что это самая правая полоса прокрутки, которая не нужна.

bad_scrollbars http://img21.imageshack.us/img21/9307/scrollfu.png

Преступник выглядит следующим образом, добавляя overflow: auto; для формирования элементов в окнах в браузерах на основе гекконов (проблема возникает в Firefox):

.ext-gecko .x-window-body .x-form-item {
    outline: medium none;
    overflow: auto;
}

Удаление этого стиля решает проблему, но я настороженно отношусь к возможным побочным эффектам - хотя я еще не заметил ни одного, этот стиль явно был включен по причине.

Знает ли кто-нибудь, кто знает больше о стилях Ext, переопределение этого css для удаления стиля overflow: auto; вызовет другие проблемы?

Кроме того, это только проблема (пока) с определенным компонентом - пользовательским расширением компонента Ext.ux.form.MultiSelect - даже если другие компоненты используют больше вертикального пространства. Кто-нибудь знает возможную причину этого?

Спасибо за любую помощь.

1 Ответ

1 голос
/ 14 января 2011

overflow: auto указывает браузеру добавить полосу прокрутки к элементу, если содержимое элемента больше, чем область клиента элементов, за вычетом любого отступа. Избавление от полос прокрутки в CSS делает именно это. Это заставляет полосы прокрутки уходить, несмотря ни на что.

Побочным эффектом вашей работы является то, что если есть контент вне клиента, пользователь не сможет его увидеть. Кроме того, это произойдет не только с этой формой, но и с каждой формой в вашем приложении, если вы не примените свой обходной путь в пользовательском классе.

Правильное решение состоит в том, чтобы выяснить, почему ваша область содержимого больше, чем область клиента формы. Firebug может сильно помочь в этом, так как вы можете проверить DOM и увидеть размер контейнера, а также размер всех дочерних элементов.

Я подозреваю, что ваш элемент управления четким выбором (это пользовательский элемент управления?) Неправильно определяет свой размер (то есть в макете формы вы указываете, что он имеет высоту х пикселей, но на самом деле он сам определяет размер х + 1 (помните поля и заполнение.) Макет формы выполняет всю работу, чтобы решить, насколько велика область обертки (область с полосой прокрутки), и элемент управления должен умещаться в этой области.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...