Увеличить модальный размер для Twitter Bootstrap

153

Я пытаюсь изменить размер модальной формы или, вернее, отвечать на содержимое, которое я там делаю. Я использую его для отображения формы и предпочитаю иметь дело с прокруткой, если нужно сам.

Форма, которую я визуализирую, может понадобиться еще 50px - просто отсутствующие кнопки.

Итак, я попытался переопределить стили .modal в моем файле application.css.scss(используя Rails 3.2), но дециляции max-height и overflow, похоже, перезаписаны.

Любые мысли?

  • 0
    У меня тот же вопрос ... Chrome говорит, что свойство высоты принимается (не получить среднюю линию как перезаписанные свойства), но вычисленная высота остается той же
  • 0
    Я думаю, что это может помочь.
Теги:

16 ответов

118
Лучший ответ

У меня была такая же проблема, вы можете попробовать:

.modal-body {
    max-height: 800px;
}

Если вы заметили, что полосы прокрутки появляются только в секции тела модального диалога, это означает, что максимальная высота только тела должна быть отрегулирована.

  • 14
    Установка максимальной высоты для модального тела недостаточна, так как нижняя часть модального окна может быть вытеснена за пределы экрана. Я имел успех с: .modal {top: 5%; Дно: 5%; } .modal-body {max-height: 100%; высота: 85%; }
  • 2
    Я должен был использовать высоту: 800 пикселей вместо максимальной высоты: 800 пикселей, чтобы это работало.
32

в Bootstrap 3:

.modal-dialog{
  width:whatever
}
  • 0
    учитывая дату, в которую был задан вопрос, я не думаю, что TB3 был проблемой. Но, в любом случае, спасибо за совет, это действительно полезно!
  • 1
    Просто чтобы уточнить, если вы хотите установить только размер определенного модального #modal_ID .modal-dialog { width: 800px } это можно сделать так: #modal_ID .modal-dialog { width: 800px }
23

Вам нужно убедиться, что он находится в элементе #myModal.modal-body не просто #myModal (Видно, что несколько человек совершают эту ошибку), и вы также можете захотеть разместить изменения высоты, изменив поля модалов.

  • 9
    Ссылка умерла :(
  • 1
    Ссылка не работает
18

Используя новое измерение CSS3 'vh' (или 'vw' для ширины), которое устанавливает высоту как часть порта представления, используйте:

.modal-body {
    max-height: 80vh; //Sets the height to 80/100ths of the viewport.
}

Таким образом, если вы используете адаптивную инфраструктуру, такую ​​как Bootstrap, то вы также можете сохранить этот дизайн в своих модалях.

8

Смешивание двух методов для ширины и высоты, и у вас есть хороший хак:

CSS

#myModal .modal-body {max-height: 800px;}

JQuery

$('myModal').modal('toggle').css({'width': '800px','margin-left': function () {return -($(this).width() / 2);}})

Это тот, который я использую. Он исправляет поля и полосы прокрутки как по ширине, так и по высоте, но не изменяет размер модальности, чтобы соответствовать его контенту.

Надеюсь, что я помог!

  • 0
    Я пытался заставить JQuery работать, но мне не повезло. Вы можете помочь? Где я должен использовать JQuery?
  • 0
    max-height на модале приведет к исчезновению нижней половины и невозможности прокрутки. (как предложил @mcabral)
4

Использование класса CSS (вы также можете переопределить стиль - не рекомендуется):

(HTML)

<div class="modal-body custom-height-modal" >

(CSS)

.custom-height-modal {
  height: 400px;
}
3

Я получил ответ... дело в том, что вы переписываете атрибут max-height, а также bootstrap modal может быть изменен за пределы высоты 500px

  • 0
    Я попробовал максимальную высоту в классе .modal, но это тоже не сработало. Можете ли вы поделиться CSS, который вы использовали?
  • 4
    .modal {height: 600px; максимальная высота: 700 пикселей; }. Только то
Показать ещё 2 комментария
1

Для Boostrap> 4 это сработало для меня:

.modal-content{
  width: 1200px;
}

более продвинутая версия:

body .modal-content{
  width: 160%!important;
  margin-left: -30%!important;
}

вот кодовая ручка:

https://codepen.io/AlfredoMoralesPinzon/pen/xyVOaK

1

Вы пробовали параметр размера:

return $modal.open({
  backdrop: 'static',     
  size: 'sm',                   
  templateUrl: "app/views/dialogs/error.html",
  controller: "errorDialogCtrl",

Дополнительные размеры

Модалы имеют два необязательных размера, доступные через классы-модификаторы для размещения в диалоговом окне .modal.

  • default: 600px
  • sm: маленький, ширина 300px
  • lg: большой, ширина 900px

Если вы хотите что-то другое, обновите bootstarp.css

@media (min-width: 768px) {
  .modal-dialog {
    width: 600px;
    margin: 30px auto;
  }
  .modal-content {
    -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
            box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
  }
  .modal-sm {
    width: 300px;
  }
  .modal-xy {  // custom
    width: xxxpx;
  }
}
@media (min-width: 992px) {
  .modal-lg {
    width: 900px;
  }
}
1

Просто установите высоту ".modal-body": 100% она автоматически отрегулирует высоту в соответствии с вашим контентом и поместит "max-height" в соответствии с вашим экраном...

0

Bootstrap Большая модель

<div class="modal-dialog modal-lg">

Bootstrap Маленькая модель

<div class="modal-dialog modal-sm">
0

Я недавно пытался это сделать и получил это правильно: Надеюсь, это будет полезно

 .modal .modal-body{
        height: 400px;
    }

Это отрегулирует высоту вашей модели.

0

Не забывайте о дополнительных классах начальной загрузки modal-lg и modal-sm, если вы хотите оставаться в рамках адаптивной среды. И добавьте clearfix ниже вашей формы, что может зависеть от вашей структуры.

0

Это сработало для меня:

#modal1 .modal 
{ 
     overflow-y: hidden; 
}

#modal1 .modal-dialog 
{ 
     height: 100%; 
     overflow-y: hidden; 
}

Обратите внимание, что в моем случае у меня есть вложенные модалы, у каждого из которых есть элементы управления, требующие разной высоты, когда я переключаю отображение управления внутри вложенного модального, поэтому я не мог применить max-height, вместо этого высота: 100% работает для меня хорошо.

0

Попробовал несколько из вышеперечисленных действий, поскольку нужно установить конкретные размеры ширины и высоты (чтобы отобразить изображение в модальном режиме), и, поскольку ни один из них не помог мне, я решил переопределить стили и добавил следующее к основному <div> , который имеет class= "модальное сглаживание" в нем: например, добавлена ​​ширина тега стиля для фона модального.

style="display: none; width:645px;"

а затем добавили следующие теги "style" в модальное тело:

<div class="modal-body" style="height:540px; max-height:540px; width:630px; max-width:630px;">

теперь работает как шарм, я показываю изображение, и теперь оно идеально подходит.

  • 0
    Любая причина, почему это было понижено? Некоторые отзывы о том, когда вы считаете, что была допущена ошибка или был сделан неправдивый / несвязанный комментарий, были бы полезны.
0

Предполагая, что ваш модальный имеет идентификатор modal1, следующий CSS будет увеличивать высоту модальности и отображать любое переполнение.

#modal1 .modal-body{
    max-height: 700px;
    overflow: visible;
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню