|
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
|
|||||||||||
Модальная форма. Как сделать прокрутку при превышении 100% ?27.02.2018, 12:08. Показов 5463. Ответов 24
Метки нет (Все метки)
Задача: открыть форму модально, центрировать ее по горизонтали и вертикали, а при превышении высоты экрана чтобы на ней, а не на всем экране появлялась полоса прокрутки.
В интернете нашел следующий способ:
Данный способ справляется с центрированиями, но прокручивается все равно весь экран, хотя прокручиваться должен только белый #container с содержимым. Подскажите пожалуйста как исправить этот вариант или предложите другой способ, возможно без вспомогательной #modal-form. Заранее большое спасибо.
0
|
|||||||||||
| 27.02.2018, 12:08 | |
|
Ответы с готовыми решениями:
24
Модальная форма появляется при создании приложения
Как сделать автоматическую прокрутку страницы при открытии |
|
Модератор
2379 / 1739 / 677
Регистрация: 07.08.2016
Сообщений: 4,091
|
|
| 27.02.2018, 12:16 | |
|
Условие появления скролла это ограничение по ширине или высоте, ограничьте container по max-height и скролл будет появляться
0
|
|
|
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
|
||||||
| 27.02.2018, 12:52 [ТС] | ||||||
|
AlexZaw, Контейнер ограничен, как явствует из css
0
|
||||||
|
Модератор
2379 / 1739 / 677
Регистрация: 07.08.2016
Сообщений: 4,091
|
|
| 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
|
|
|
Модератор
2379 / 1739 / 677
Регистрация: 07.08.2016
Сообщений: 4,091
|
|||
| 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
|
|||||||
|
Модератор
2379 / 1739 / 677
Регистрация: 07.08.2016
Сообщений: 4,091
|
|||||||||||
| 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
|
|
|
Модератор
2379 / 1739 / 677
Регистрация: 07.08.2016
Сообщений: 4,091
|
||
| 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
Как сделать горизонтальную прокрутку при нажатии на стрелки? Модальная форма Модальная форма Не модальная форма в модальной
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|