Google Chrome добавляет нежелательные поля при изменении CSS с помощью jquery - PullRequest
4 голосов
/ 14 января 2011

SUP, ребята. Я загружаю данные в таблицу, используя ajax и jquery. Это может быть много, поэтому я хочу прокрутить это. Я положил стол в div. Теперь я создал чек в jquery так:

if($('div#result table').height() > maxHeight)
    $('div#result').css('overflow-y', 'scroll');
else
    $('div#result').css('overflow-y', 'hidden');

Это прекрасно работает в Firefox, но в Google Chrome div также получает дополнительно 15 margin-right. Мне кажется, что это ширина полосы прокрутки, но она нежелательна, потому что полоса прокрутки находится внутри элемента div, а не снаружи. Когда я смотрю на DIV с помощью инструментов разработки Chrome, поле не имеет происхождения CSS. Это не показывает, откуда это взялось. Я уверен, что Chrome сам по себе это делает, потому что я ничего не делаю с полями в своем коде jquery.

Есть ли что-то, что я делаю не так или это просто странная странность? Если так, что я мог сделать, чтобы исправить это? (Желательно без написания слишком большого количества кода, зависящего от браузера) Или есть более элегантный способ справиться с этим, который не должен иметь дело с этими проблемами?

Прежде чем вы спросите: я не хочу, чтобы переполнение-y при прокрутке было все время, потому что оно показывает полосу прокрутки, даже когда все содержимое помещается в div.

Спасибо!

1 Ответ

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

Просто используйте overflow-y: auto; max-height: [maxh]. Это то, для чего предназначено автоматическое переполнение. Показывать полосы прокрутки только тогда, когда содержимое не подходит.

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