Автоматическое появление линеек скролла в браузере @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 18 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
Webster Муж.
новый человек
0
Сообщения: 9
Зарегистрирован: 15.09.05
Откуда: dp.ua
Заголовок сообщения: Автоматическое появление линеек скролла в браузере
Сообщение Добавлено: 19 Сентябрь 2005, 17:10:37 
Есть HTML-код
Код:
<div style = "position: relative">
  <div style = "position: absolute; left: 50px; top: 100px">
    <input type = "button" value = "someButton" />
  </div>
  <div style = "position: absolute; left: 50px; top: 250px">
    Some text, label, link, etc
  </div>
</div>

При уменьшении размеров окна браузера для DIV'ов, внутри которых только текст (или подобные элементы - например, гиперссылка) автоматически не пояляется линейка прокрутки. Для DIV'ов внутри котрых есть элементы типа <input type="text"> (button, etc) - все ОК. Проблема возникает только в IE.

Есть ли какое-то решение через CSS? Задать ширину родительского DIV через JScript - не совсем подходящее в данной случае.
karamba Муж.
старожил
209
Сообщения: 6498
Зарегистрирован: 17.08.05
Откуда: Киев. А шо?
Сообщение Добавлено: 20 Сентябрь 2005, 11:05:02 
overflow: auto не пробовали?
Высота блока не должна быть зафиксирована?

_________________
клетчатый!
Webster Муж.
новый человек
0
Сообщения: 9
Зарегистрирован: 15.09.05
Откуда: dp.ua
Сообщение Добавлено: 20 Сентябрь 2005, 12:43:26 

Цитата:
overflow: auto не пробовали?


Попробовал... Ничего не дало


Цитата:
Высота блока не должна быть зафиксирована?


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

Интересно, что если внешнему DIV'у задать "position: absolute" - то линейки прокрутки добавляются именно так, как должны были.
Акела Муж.
Констататор
17
Сообщения: 7419
Зарегистрирован: 15.11.04
Сообщение Добавлено: 20 Сентябрь 2005, 13:03:37 
Webster, ну и вставьте текст в блочный элемент. У ИЕ много галлюцинаций...
Webster Муж.
новый человек
0
Сообщения: 9
Зарегистрирован: 15.09.05
Откуда: dp.ua
Сообщение Добавлено: 20 Сентябрь 2005, 13:08:05 
Акела,
Нельзя :( Существующий JScript код привязан к текущей структуре документа.

Интересно именно возможность решенися через таблицы стилей
karamba Муж.
старожил
209
Сообщения: 6498
Зарегистрирован: 17.08.05
Откуда: Киев. А шо?
Сообщение Добавлено: 20 Сентябрь 2005, 13:24:15 

Webster писал(а):

Цитата:
overflow: auto не пробовали?


Попробовал... Ничего не дало


вариант: попробуйте поставить принудительно overflow: scroll, если не смущает дизейбленый скролбар.

_________________
клетчатый!
Webster Муж.
новый человек
0
Сообщения: 9
Зарегистрирован: 15.09.05
Откуда: dp.ua
Сообщение Добавлено: 20 Сентябрь 2005, 13:30:04 
Гм... во внешнем DIV это ничего не дало, во внутренних такое поведение не нужно... Проблема именно в скролле окна самого броузера
Акела Муж.
Констататор
17
Сообщения: 7419
Зарегистрирован: 15.11.04
Сообщение Добавлено: 20 Сентябрь 2005, 15:10:24 
Webster, привзан и что? Трудно одну строчку в скрипте поправить?
Webster Муж.
новый человек
0
Сообщения: 9
Зарегистрирован: 15.09.05
Откуда: dp.ua
Сообщение Добавлено: 20 Сентябрь 2005, 15:25:29 
Акела
Это очень большая система, с кучей уже написанного кода и дело правкой одной строчки скрипта там далеко не ограничится :fie:


Cейчас немного поразбирался с логикой того, как браузер обределят общую область страницы, получается что он эту область определяет , грубо говоря, по элементам, у котрых есть размеры (аттрибуты width и height). То есть, прокатывает присвоить всяким там label'ам
Код:
style = "width: 1px; height: 1px"


Скролл появляется теперь в нужный момент, осталось только потестировать на другие возможные грабли …
Акела Муж.
Констататор
17
Сообщения: 7419
Зарегистрирован: 15.11.04
Сообщение Добавлено: 20 Сентябрь 2005, 15:29:41 
Webster, ууууууу, батенька! Добро пожаловать в реальный мир! О кривизне боксовой модели ИЕ, обратной совместимости и хакинга написаны тонны литературы! Гугл Вам поможет.
Webster Муж.
новый человек
0
Сообщения: 9
Зарегистрирован: 15.09.05
Откуда: dp.ua
Сообщение Добавлено: 20 Сентябрь 2005, 16:07:07 
Гм... а можете намекнуть, где искать именно "кривизну модели ИЕ"? Чует моя... мое сердце, что багов мне еще править много премного предстоит иксплорных, а гугль первым попыткам найти что-то стоящее оказывает сопротивление :cry:
Акела Муж.
Констататор
17
Сообщения: 7419
Зарегистрирован: 15.11.04
Сообщение Добавлено: 20 Сентябрь 2005, 16:21:00 
Webster,
http://webmascon.com
http://xpoint.ru
http://alistapart.com
http://webstandards.org
abraitcev
новый человек
6
Сообщения: 165
Зарегистрирован: 28.09.02
Откуда: Murmansk
Сообщение Добавлено: 20 Сентябрь 2005, 16:49:48 
Webster, что значит ничего не дало?
Вот Ваш пример с добавленным overflow:scroll;

Код:
<div style = "position: relative">
  <div style = "position: absolute; left: 50px; top: 100px;overflow:scroll;">
    <input type = "button" value = "someButton" />
  </div>
  <div style = "position: absolute; left: 50px; top: 250px;overflow:scroll;">
    Some text, label, link, etc
  </div>
</div>


Линейки прокрутки отчетливо видны, даже в IE :confused:
abraitcev
новый человек
6
Сообщения: 165
Зарегистрирован: 28.09.02
Откуда: Murmansk
Сообщение Добавлено: 20 Сентябрь 2005, 16:59:43 
а для внешнего нужно либо указать размеры, либо убрать absolute у содержимого.
Webster Муж.
новый человек
0
Сообщения: 9
Зарегистрирован: 15.09.05
Откуда: dp.ua
Сообщение Добавлено: 20 Сентябрь 2005, 17:01:49 
abraitcev,

Цитата:
Линейки прокрутки отчетливо видны, даже в IE


Угу, видны
А нужно, чтобы работали. Если ввести указанный мной код в HTML-страничку и уменьшить размер окна IE так, чтобы нижний элемент DIV с текстом оказался вне пределов окна, эти так и останутся просто видны :( А нужно - чтобы появилась возможность скролла.

Убрать параметр absolute, увы, нельзя :fie:
abraitcev
новый человек
6
Сообщения: 165
Зарегистрирован: 28.09.02
Откуда: Murmansk
Сообщение Добавлено: 20 Сентябрь 2005, 23:57:49 
Webster, так, а если размеры поставить?

Код:
<div style = "position: relative; width : 100%; height : 100%; overflow:scroll;">
  <div style = "position: absolute; left: 50px; top: 100px;">
    <input type = "button" value = "someButton" />
  </div>
  <div style = "position: absolute; left: 50px; top: 250px;">
    Some text, label, link, etc
  </div>
</div>


или это тоже нельзя?
karamba Муж.
старожил
209
Сообщения: 6498
Зарегистрирован: 17.08.05
Откуда: Киев. А шо?
Сообщение Добавлено: 21 Сентябрь 2005, 09:49:48 
если и height:100% низзя, тады Webster или хочет невозможного, или непрально ставит задачу.
На всяк случай я б еще для body height:100% сказал (были по-моему в НН6 грабли с высотой блоков то ли при переопределении скрола, то ли наооборот)

_________________
клетчатый!
Webster Муж.
новый человек
0
Сообщения: 9
Зарегистрирован: 15.09.05
Откуда: dp.ua
Сообщение Добавлено: 21 Сентябрь 2005, 12:40:12 
karamba, abraitcev

О!!! "А ларчик просто открывался"! height и width в 100% установить очень даже можно! И это как раз дает требуемую мне функциональность! Спасибо огромное.:beer:

Overflow правда не стоит включать, так как мне скроллы нужны именно в окне браузера, а не на DIV'е.

Итак, буду пробовать. :gent:
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 18 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100