Twitter Bootstrapのモーダルサイズを増やす


154

私はモーダルフォームのサイズを変更しようとしています。つまり、そこでレンダリングするコンテンツに応答するようにしています。私はそれをフォームのレンダリングに使用しており、必要に応じてスクロールを処理することを望んでいます。

私がレンダリングするフォームには、おそらくさらに50pxが必要です-ボタンがないだけです。

そのため、application.css.scssファイルの.modalスタイルを上書きしてみましたが(Rails 3.2を使用)、max-heightとオーバーフローデクレレーションが上書きされているようです。

何かご意見は?


同じ質問があります... chromeは、heightプロパティは受け入れられますが(真ん中の行が上書きされたプロパティとして取得されません)、計算された高さは同じです
fespinozacast

これが役立つと思います。
Synchro

回答:


115

私はまったく同じ問題を抱えていました、あなたは試すことができます:

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

スクロールバーがモーダルダイアログの本体セクションにのみ表示されることに気付いた場合、これは本体のみの最大高さを調整する必要があることを意味します。


14
モーダルの下部が画面の外に押し出される可能性があるため、モーダル本体のmax-heightを設定するだけでは不十分です。私は成功しました:.modal {top:5%; 底:5%; } .modal-body {max-height:100%; 高さ:85%; }
Csongor Fagyal 2013年

2
max-height:800pxではなく、height:800pxを使用する必要がありました。
サイバネティック2015

34

Bootstrap 3の場合:

.modal-dialog{
  width:whatever
}

質問が行われた日付を考えると、TB3が問題であったとは思いません。しかし、いずれにしても、ヒントをありがとう、それは本当に役に立ちます!
Dennis Braga

2
ただ、あなたが唯一の特定のモーダルのサイズを設定したい場合は、1がこれを行うことができ、明確にする: #modal_ID .modal-dialog { width: 800px }
グレッグA

22

これが#myModalだけではなく#myModal .modal-body要素にあることを確認する必要があります(数人の人がこのミスを犯しているのを見てください)。また、モーダルマージンを変更して高さの変化に対応することもできます。


9
リンクが死亡しました:(
Dan

18

新しいCSS3 'vh'(または幅の 'vw')測定(高さをビューポートの一部として設定)を使用する場合:

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

このようにして、Bootstrapなどのレスポンシブフレームワークを使用している場合は、そのデザインをモーダルでも保持できます。


8

幅と高さの2つの方法を組み合わせると、良いハックがあります。

CSS:

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

jQuery:

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

これは私が使うものです。幅と高さの両方のマージンとスクロールバーの問題を修正しますが、コンテンツに合わせてモーダルのサイズを変更しません。

お役に立てば幸いです。


JQueryを動作させようとしましたが、うまくいきませんでした。手伝ってくれますか?JQueryはどこで使用すればよいですか?
Samuel Taylor

モーダルのmax-heightにより、下半分が消え、スクロールできなくなります。(@mcabralが提案したとおり)
nagytech 2013

4

CSSクラスを使用する(スタイルをオーバーライドすることもできます-推奨されません):

(html)

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

(css)

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

3

私は答えを得ました...ブートストラップモーダルにmax-height属性を上書きしたことで、500pxの高さ制限を超えてサイズを変更できます


.modalクラスでmax-heightを試しましたが、うまくいきませんでした。使用したCSSを共有できますか?
Apie

4
.modal {高さ:600px; max-height:700px; }。それだけ
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",

オプションのサイズ

モーダルには2つのオプションサイズがあり、.modal-dialogに配置するモディファイアクラスを介して利用できます。

  1. デフォルト:600px
  2. sm:小、幅300px
  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のIDがあるとすると、モーダルの高さが増加し、オーバーフローが表示されます。

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

0

(モーダルで画像を表示するために)幅と高さの特定のサイズを設定する必要があるため、上記のいくつかを試してみましたが、上記のどれも役に立たなかったので、スタイルをオーバーライドすることに決め、次のコードをメインの<div>に追加しましたその中のclass = "modal hide fade in":つまり、モーダルの背景のスタイルタグに幅を追加しました。

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

次に、次の「スタイル」タグをモーダル本体に追加します。

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

今は魅力のように機能し、画像を表示しています。


これが反対投票された理由について何か理由はありますか?エラーが発生したと思われる場合や、真実ではない、または無関係のコメントが行われたと思われる場合のフィードバックが参考になります。
FlashTrev 2015年

0

これは私のために働きました:

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

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

私の場合、ネストされたモーダルがありネストされたモーダル内でコントロールの表示を切り替えるときに異なる高さを必要とするコントロールがあるため、max-heightを適用できず、代わりにheight:100%がうまく機能します。


0

オプションのブートストラップクラスmodal-lgを忘れmodal-smずに、レスポンシブフレームワーク内で維持したい場合は、そして、あなたの構造に依存するのを助けるかもしれないあなたのフォームの下にclearfixを追加してください。


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>

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.