Збільшення модального розміру для Twitter Bootstrap


154

Я намагаюся змінити розмір модальної форми, а точніше - відповісти на вміст, який я там надаю. Я використовую його для надання форми, і я вважаю за краще займатися прокруткою, якщо цього вимагаю сам.

Форма, яку я надаю, ймовірно, потребує ще 50 пікселів - просто відсутні кнопки.

Тому я спробував переосмислити стилі .modal у моєму файлі application.css.scss (за допомогою Rails 3.2), але декларації про максимальну висоту та переповнення, здається, перезаписані.

Будь-які думки?


У мене те саме питання ... хром говорить, що властивість висоти прийнята (не отримуйте середню лінію як перезаписані властивості), але обчислена висота залишається такою ж
fespinozacast

Я думаю, це може допомогти.
Синхро

Відповіді:


115

У мене була та сама проблема, ви можете спробувати:

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

Якщо ви помітили, що смуги прокрутки відображаються лише в розділі тіла модального діалогового вікна, це означає, що потрібно відрегулювати максимальну висоту лише корпусу.


14
Встановлення максимальної висоти для модального тіла недостатньо, оскільки нижня частина модаля може бути висунута поза екраном. Я мав успіх у: .modal {top: 5%; дно: 5%; } .модальне тіло {максимальна висота: 100%; висота: 85%; }
Csongor Fagyal

2
Мені довелося використовувати висоту: 800px замість max-висоти: 800px, щоб вона працювала.
Кібернетичний

34

у Bootstrap 3:

.modal-dialog{
  width:whatever
}

враховуючи дату, в якій було поставлено питання, я не думаю, що TB3 був проблемою. Але, у будь-якому випадку, дякую за пораду, це справді корисно!
Денніс Брага

2
Просто для уточнення, якщо ви хочете встановити лише розмір конкретного модалу, можна зробити це: #modal_ID .modal-dialog { width: 800px }
Грег А

22

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


9
Посилання помер :(
Дену

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);}})

Цей я використовую. Він фіксує проблеми поля та прокрутки як для ширини, так і для висоти, але не змінює розмір модалу, щоб відповідати його вмісту.

Сподіваюся, я був у допомозі!


Я намагався змусити JQuery працювати, але мені не пощастило. Ви можете допомогти? Де я повинен використовувати JQuery?
Семюел Тейлор

Максимальна висота на модалі призведе до зникнення нижньої половини і не прокручується. (як @mcabral запропонував)
nagytech

4

Використовуючи клас CSS (ви також можете змінити стиль - не пропонується):

(html)

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

(css)

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

3

Я отримав відповідь ... річ у тому, що ви перезаписали атрибут max-height, а також для того, щоб модальний завантажувач можна змінити розмір понад 500px висоти


Я спробував максимальну висоту в класі .modal, але це теж не вийшло. Чи можете ви поділитися css, який ви використовували?
Апі

4
.модальний {висота: 600px; максимальна висота: 700 пікселів; }. Просто так
fespinozacast

1
Проблема такого підходу полягає в тому, що задня поверхня не розширюється, тому частина спливаючого вікна може бути недосяжною
mcabral

2

Велика модель завантажувача

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

Завантажувальна невелика модель

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

1

Просто встановіть ".modal-body" висоту: 100% він автоматично регулюватиме висоту відповідно до вашого вмісту, а також поставить "max-height" відповідно до вашого екрану ...


1

Ви спробували параметр розміру:

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

Необов’язкові розміри

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

  1. за замовчуванням: 600 пікс
  2. см: невеликий, ширина 300 пікс
  3. 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;
  }
}


0

Якщо припустити, що ваш модал має ідентифікатор modal1наступного CSS, це збільшить висоту модалу та відобразить будь-яке переповнення.

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

0

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

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

а потім додав до модального тіла такі теги "style":

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

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


Будь-яка причина, чому це було знято? деякі відгуки про те, коли ви вважаєте, що була допущена помилка або був зроблений неправдивий / незв'язаний коментар, буде корисним.
FlashTrev

0

Це працювало для мене:

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

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

Зауважте, що в моєму випадку я вклав модалі, кожен з яких має елементи керування, які вимагають різної висоти, коли я перемикаю дисплей управління всередині вкладеного модалу , тому я не зміг застосувати максимальну висоту , а не висоту: 100% працює для мене добре.


0

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


0

Я нещодавно намагався це зрозуміти: це сподобається

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

Це дозволить регулювати висоту вашої моделі.


0

Ось ще один простий метод збільшення розміру модального завантаження:

$(".modal-dialog").css("width", "80%");

Ширина модаля може бути визначена у відсотках від екрана. У наведеному вище прикладі я встановив його на 80% від ширини мого екрана.

Нижче наведено робочий приклад того ж:

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
  <script type="text/javascript">
  $(document).ready(function () {
  		$(".modal-dialog").css("width", "90%");
  });
  </script>
</head>
<body>

<div class="container">
  <h2>Modal Example</h2>
  <!-- Trigger the modal with a button -->
  <button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#myModal">Open Modal</button>

  <!-- Modal -->
  <div class="modal fade" id="myModal" role="dialog">
    <div class="modal-dialog">
    
      <!-- Modal content-->
      <div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal">&times;</button>
          <h4 class="modal-title">Modal Header</h4>
        </div>
        <div class="modal-body">
          <p>Some text in the modal.</p>
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        </div>
      </div>
      
    </div>
  </div>
  
</div>

</body>
</html>

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.