|
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
|
|||||||||||
Модальная форма. Как сделать прокрутку при превышении 100% ?27.02.2018, 12:08. Показов 5498. Ответов 24
Метки нет (Все метки)
Задача: открыть форму модально, центрировать ее по горизонтали и вертикали, а при превышении высоты экрана чтобы на ней, а не на всем экране появлялась полоса прокрутки.
В интернете нашел следующий способ:
Данный способ справляется с центрированиями, но прокручивается все равно весь экран, хотя прокручиваться должен только белый #container с содержимым. Подскажите пожалуйста как исправить этот вариант или предложите другой способ, возможно без вспомогательной #modal-form. Заранее большое спасибо.
0
|
|||||||||||
| 27.02.2018, 12:08 | |
|
Ответы с готовыми решениями:
24
Модальная форма появляется при создании приложения
Как сделать автоматическую прокрутку страницы при открытии |
|
Модератор
2380 / 1740 / 677
Регистрация: 07.08.2016
Сообщений: 4,094
|
|
| 27.02.2018, 12:16 | |
|
Условие появления скролла это ограничение по ширине или высоте, ограничьте container по max-height и скролл будет появляться
0
|
|
|
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
|
||||||
| 27.02.2018, 12:52 [ТС] | ||||||
|
AlexZaw, Контейнер ограничен, как явствует из css
0
|
||||||
|
Модератор
2380 / 1740 / 677
Регистрация: 07.08.2016
Сообщений: 4,094
|
|
| 27.02.2018, 13:55 | |
|
renat_dmitriev, Почитайте про процентые размеры, они высчитываются от размеров родителя с жестко заданными размерами, если у родителя размеры указаны так же в процентах, берется родитель родителя и т.д. до тега html.
Где у вас указаны жесткие размеры?
0
|
|
|
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
|
|
| 27.02.2018, 14:54 [ТС] | |
|
AlexZaw, Я немного недопонимаю о чем вы говорите. Никаких жестких процентов нигде нет.
Есть #modal-background, который создает фон - занимая 100% высоты. Есть #modal-form, который я так понимаю используется для центрирования по вертикали - он также занимает 100% высоты от родителя, то есть равен по высоте родителю И теперь есть наше видимо модальное окно #container, у которого высота жестко не должна указываться, он растягивается в зависимости от контента, и единственное условие, что если из-за длинного контента высота этого элемента превысит высоту родительского окна, то он не должен увеличиться в размерах, вызывая появление полосы прокрутки у родителя, а должен вместо этого обзавестись собственной полосой прокрутки. Поэтому высчитывать тут нечего.
0
|
|
|
|
||
| 27.02.2018, 15:00 | ||
Жёстко заданный размер - это размер заданный в px(смотрите мой первый пост)! Никто Вам не говорил про жёстко заданные проценты - Вам говорили про жёстко заданные размеры! Для Вашего случая высота родителя заданая в процентах не подойдёт... Так понятно?
0
|
||
|
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
|
|
| 27.02.2018, 15:22 [ТС] | |
|
О, Боги !
Сколько же раз нужно написать, что никакого жестко заданного размеры быть не может, так как верстка адаптивная, экран может быть высотой 200 пикселей или 800 пикселей и единственное требование к модальному окну - чтобы оно не вылезало за пределы экрана. Так понятно?Добавлено через 5 минут AlexZaw, Жестких размеров нет. Экран может быть разной высоты и корневой элемент всегда определен как 100%. Значит ли это что моя задача нерешаема?
0
|
|
|
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
|
|
| 27.02.2018, 15:38 [ТС] | |
|
Fedor92,
Не по теме: Я очень ценил этот ресурс за отсутствие на нем истеричек. Впервые за много месяцев сталкиваюсь с хамством, видимо посещал раньше не те разделы. Если мои сообщения вызывают у вас какое-то напряжение, будьте светом самому себе - я останусь в темноте. Благодарю за понимание. ;)
0
|
|
|
Модератор
2380 / 1740 / 677
Регистрация: 07.08.2016
Сообщений: 4,094
|
|||
| 27.02.2018, 16:49 | |||
Сообщение было отмечено renat_dmitriev как решение
Решение
Смотрите, для container у вас задана max-height:100%, что означает что его максимальная высота будет 100% от родителя
(<div id = modal-form>) Максимальная высота modal-form равна 100% от высоты его родителя (<div id = modal-background>). Высота modal-background равна 100%; от его родителя (body) Высота body у нас нигде не указана, значит ищем высоту у родителя body - html. Высота html нигде не указана, значит вычисляется по высоте его детей, а именно высота html равна высоте body, высота которого равна высоте его единственного ребенка modal-background. Высота modal-background вычисляется из высоты его ребенка modal-form. Высота modal-form вычисляется из высоты его ребенка container + маржины и паддинги. Итого имеем - Конечную высоту container, который и задает высоты всему остальному. Вот такой вот круговорот.
1
|
|||
|
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
|
|
| 27.02.2018, 16:55 [ТС] | |
|
Все, я понял свою проблему...В теме был просто кусок моей страницы, в реальном проекте у контейнера стояло свойство display: table, а свойство overflow-y как выяснилось работает только для блочных элементов. Изменение свойства display на inline-block привело к появлению полосы прокрутки.
Никаких жестко заданных в пикселях размеров не потребовалось.
0
|
|
|
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
|
|
| 27.02.2018, 17:01 | |
|
del
0
|
|
|
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
|
|||||||
| 27.02.2018, 17:05 [ТС] | |||||||
|
AlexZaw,
Хоть проблема в реальном проекте была в другом, как описал сообщением выше, тем не менее спасибо за информацию - запомню на будущее.
0
|
|||||||
|
Модератор
2380 / 1740 / 677
Регистрация: 07.08.2016
Сообщений: 4,094
|
|||||||||||
| 27.02.2018, 17:13 | |||||||||||
|
Хм, в этом примере нигде не было указано display-table, но тем не менее не работало так как надо.
Впрочем рад что в итоге у вас все заработало, но все-таки советую разобраться как работают размеры в процентах. Как вы думаете какой размер будет у блока .in в следующем примере?
0
|
|||||||||||
|
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
|
|||||||
| 27.02.2018, 18:07 [ТС] | |||||||
0
|
|||||||
|
26 / 36 / 15
Регистрация: 15.01.2017
Сообщений: 311
|
|
| 27.02.2018, 18:09 | |
|
а, что вам мешает в (vh) или (vw) - это тоже жесть... делов то...
0
|
|
|
Модератор
2380 / 1740 / 677
Регистрация: 07.08.2016
Сообщений: 4,094
|
||
| 27.02.2018, 18:17 | ||
![]() Ну да не будем, главное что задачку решили
0
|
||
|
26 / 36 / 15
Регистрация: 15.01.2017
Сообщений: 311
|
|
| 27.02.2018, 18:31 | |
|
подложку формы размер в 102.5% отступ ей в право -2.5% ... и полоса прокрутки уйдет в минус с экрана... и укажи икон "крути"
0
|
|
| 27.02.2018, 18:31 | |
|
Помогаю со студенческими работами здесь
20
Как сделать горизонтальную прокрутку при нажатии на стрелки? Модальная форма Модальная форма Не модальная форма в модальной
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|