Форум программистов, компьютерный форум, киберфорум
HTML, CSS
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.72/25: Рейтинг темы: голосов - 25, средняя оценка - 4.72
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902

Модальная форма. Как сделать прокрутку при превышении 100% ?

27.02.2018, 12:08. Показов 5629. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача: открыть форму модально, центрировать ее по горизонтали и вертикали, а при превышении высоты экрана чтобы на ней, а не на всем экране появлялась полоса прокрутки.

В интернете нашел следующий способ:

HTML5
1
2
3
4
5
6
7
8
9
<div id = modal-background>
  <div id = modal-form>
    <div id= container>
      <h1> Надпись 1 </h1><h1> Надпись 2 </h1><h1> Надпись 3 </h1><h1> Надпись 4 </h1>
       <h1> Надпись 5 </h1><h1> Надпись 1 </h1><h1> Надпись 2 </h1><h1> Надпись 3 </h1>
       <h1> Надпись 4 </h1><h1> Надпись 5 </h1>
    </div>
   </div>
  </div>
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#modal-background
{
    padding: 0px 50px 0px 50px;
    text-align: center;
    white-space: nowrap;
    height: 100%;
    background-color: rgba(100, 100, 100, 0.4)
}
    
#modal-background:after
{
  display: inline-block;
  vertical-align: middle;
  width: 0;
  height: 100%;
  content: '';
  
}
    
#modal-form
{     
  display: inline-block;
  vertical-align: middle;
 
  max-height: 100%;
  //overflow-y: scroll;
  background-color: green;
  
}
        
#container
{
  max-height: 100%;
  overflow-y: scroll;
 
  margin: 50px;
  padding: 10px;
 
  background-color: white;
 
  text-align: left;
  white-space: normal;
}
https://codepen.io/dimoff66/pen/zRMPWp

Данный способ справляется с центрированиями, но прокручивается все равно весь экран, хотя прокручиваться должен только белый #container с содержимым.

Подскажите пожалуйста как исправить этот вариант или предложите другой способ, возможно без вспомогательной #modal-form.

Заранее большое спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.02.2018, 12:08
Ответы с готовыми решениями:

Модальная форма появляется при создании приложения
В приложении множество модальных форм, но вдруг одна из них стала появлятся при создании приложения. Отображается она за главной формой....

есть модальная форма, если при Ajax отправке она не прошла валидацию, то ее(форму) не надо закрывать
есть модальная форма, если при Ajax отправке она не прошла валидацию, то ее(форму) не надо закрывать а например вывезти в модальной форме...

Как сделать автоматическую прокрутку страницы при открытии
Что и куда надо прописать, чтобы при открытии определенных страниц на сайте шло автоматическое прокручивание (идеально - с задержкой в...

24
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
27.02.2018, 18:37  [ТС]
Студворк — интернет-сервис помощи студентам
AlexZaw, Вы можете пройти по моей ссылке на codepen, добавить этот тэг, заменить у modal-form max-height на height и убедиться что этого к счастью достаточно =)

Добавлено через 2 минуты
Даже менять ничего не надо, сам поменял. По ссылке сейчас работающий вариант
https://codepen.io/dimoff66/pen/zRMPWp
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<div id = modal-background>
  <div id = modal-form>
    <div id= container>
      <h1> Надпись 1 </h1>
      <h1> Надпись 2 </h1>
       
      <h1> Надпись 2 </h1>
       <h1> Надпись 3 </h1>
      <h1> Надпись 1 </h1>
      <h1> Надпись 2 </h1>
       <h1> Надпись 3 </h1>
       
    </div>
   </div>
  </div>
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
*{
  margin: 0;
  padding: 0;
}
#modal-background
{
    padding: 0px 50px 0px 50px;
    text-align: center;
    white-space: nowrap;
    height: 100vh;
}
    
 #modal-background:after
{
  display: inline-block;
  vertical-align: middle;
  width: 0;
  height: 100%;
  content: '';
  
} 
    
#modal-form
{     
  display: inline-block;
  vertical-align: middle;
}
        
#container
{
  box-sizing: border-box;
  max-height: calc(100vh - 1px);
  overflow-y: scroll;
  margin: 0.5px;
  padding: 10px;
  background-color: white;
  text-align: left;
  white-space: normal;
}
0
Модератор
Эксперт HTML/CSS
 Аватар для AlexZaw
2381 / 1741 / 677
Регистрация: 07.08.2016
Сообщений: 4,099
27.02.2018, 18:59
Цитата Сообщение от renat_dmitriev Посмотреть сообщение
Даже менять ничего не надо, сам поменял. По ссылке сейчас работающий вариант

правда красиво?
0
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
27.02.2018, 19:41  [ТС]
AlexZaw, Да, не очень. Если добавить modal-form overflow:hidden, то становится красивей, другое дело что вертикальное центрирование похоже не работает и тут я сдаюсь.

Добавлено через 13 минут
Вобщем да, вопрос открыт. Если кто-то вместо демонстрации своих мегазнаний напишет здесь работающий код - будет волшебно.
0
Модератор
Эксперт HTML/CSS
 Аватар для AlexZaw
2381 / 1741 / 677
Регистрация: 07.08.2016
Сообщений: 4,099
27.02.2018, 20:12
Лучший ответ Сообщение было отмечено renat_dmitriev как решение

Решение

На скорую руку как вариант:
HTML5
1
2
3
4
5
6
7
8
9
10
<div id = modal-background>
  <div id = modal-form>
    <div id= container>
      <h1> Надпись 1 </h1>
      <h1> Надпись 2 </h1>      
      <h1> Надпись 3 </h1>
  
    </div>
   </div>
  </div>
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
*{
  margin: 0;
  padding: 0;
}
#modal-background
{
    padding: 0px 50px 0px 50px;
    text-align: center;
    white-space: nowrap;
    height: 100vh;
    background-color: rgba(100, 100, 100, 0.4)
}
    
 #modal-background:after
{
  display: inline-block;
  vertical-align: middle;
  width: 0;
  height: 100%;
  content: '';
  
} 
    
#modal-form
{     
  display: inline-block;
  vertical-align: middle;
  background-color: green;
}
        
#container
{
  box-sizing: border-box;
  max-height: calc(100vh - 100px);
  overflow-y: scroll;
  margin: 50px;
  padding: 10px;
  background-color: white;
  text-align: left;
  white-space: normal;
}
0
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
27.02.2018, 20:31  [ТС]
AlexZaw, У вас прекрасная скорая рука. Премного благодарен!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.02.2018, 20:31

Как сделать горизонтальную прокрутку при нажатии на стрелки?
Вот к примеру сайт http://www.freshness.hu, на главной странице фото можно прокручивать горизонтально нажатием на стрелки. Мне нужна такая...

Модальная форма
как сделать форму модальной чтобы можно была работать с обеими формами?

Модальная форма
Ввожу вот это а оно вибивает ошибку Unit1.cpp(38): E2451 Undefined symbol 'Form2' Unit1.cpp(44): E2451 Undefined symbol 'Form2' ...

Не модальная форма в модальной
Подскажите, можно ли как-нибудь открыть не модальную форму поверх модальной, не делая ее модальной?

Самая модальная форма)
Добрый день. Возникла необходимость реализовать в базе окно, которое ВСЕГДА было бы поверх всех остальных. То есть в базе есть главная...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
Многофункциональное здание: как одно здание порождает конфликты требований, которые никто не планировал (мат мет мод 29)
anaschu 23.06.2026
Многофункциональное здание: как одно здание порождает конфликты требований, которые никто не планировал Материалы для обсуждения с МГСУ · 2026 Рисунки внутри приложенного ворд файла. Что за. . .
28. Конкретное развертывание плана номер 1 из поста номер 27
anaschu 22.06.2026
Можно ли из модели получить конкретные строительные требования? Честно — напрямую из текущей модели такие ответы не получить. Но цепочка логики есть, и она не такая длинная. Где разрыв . . .
27. Планы на разработку функциональных требований к строительству внутри модели пищеблока (или не только его?)
anaschu 22.06.2026
Что уже реализовано и даёт конфликты «бесплатно» Самый простой конфликт уже работает — конфликт за ресурс-работника. Заданий больше, чем доступных поваров → очередь в queue1. Это прямое отражение. . .
26. мед мат модель.Какие типы конфликтов функциональных требований можно рассчитать через ДЕС-моделирование (СМО) в AnyLogic?
anaschu 22.06.2026
Что ДЕС/ СМО умеет считать напрямую: Конфликты за ресурсы (очереди, узкие места). Несколько типов агентов (повара, учителя, рабочие, пациенты) претендуют на один ресурс (лифт, вход, коридор,. . .
25 модель здравосохранения и функциональных требований к пищеблоку: конфликты функциональных требований.
anaschu 22.06.2026
Есть ли данные о том, какие функциональные/ эксплуатационные требования или их сочетания труднее всего учитывать при проектировании зданий? Да, такие данные есть, и они хорошо описаны и в российской,. . .
Remote Connection Manager
DevAlt 21.06.2026
Написал для себя небольшую прилагу: https:/ / github. com/ altbodhi/ ReConMan По итогу пришел к мысли, что DU не дружат с существующими технологиями. От сериализации до отображения в реляционную. . .
Администрация Хабра удаляет новые энергоэфективные алгоритмы, которые не западной школы кода, и вовсе никак не сгенерированы
Hrethgir 20.06.2026
Делается это, как замечено, при правках - при объявлении концептуальных отличий в алгоримах. Делается это, по линейке событий - после дополнения публикации основными отличиями от основных западных. . .
Процесс ориентированная диалектика (не новость - просто системное обновление, философия).
Hrethgir 20.06.2026
Однажды один участник в своём блоге, на этом форуме, сделал запись "О языках замолвите слово". Понимая, что язык - важная вещь, я решил хорошо подумать, прежде чем сказать, и сказал то, что вы видите. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru