Twitter 부트 스트랩의 모달 크기 늘리기


154

모달 양식의 크기를 변경하려고하거나 오히려 렌더링하는 내용에 응답해야합니다. 양식을 렌더링하는 데 사용하고 있으며 필요한 경우 스크롤을 처리하는 것을 선호합니다.

내가 렌더링하는 폼에는 아마도 다른 50px가 필요할 것입니다. 단지 버튼이 없습니다.

따라서 application.css.scss 파일 (Rails 3.2 사용)에서 .modal 스타일을 재정의하려고 시도했지만 최대 높이 및 오버플로 편차가 덮어 쓰여진 것 같습니다.

이견있는 사람?


나도 같은 질문이 ... 크롬 높이 속성이 인정되는 것을 말한다 (덮어 쓰기 속성으로 중간 선을 얻을하지 않습니다)하지만, 계산 된 높이가 동일하게 유지
fespinozacast

이것이 도움 될 것이라고 생각 합니다 .
Synchro

답변:


115

나는 똑같은 문제를 겪고 있었다.

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

스크롤 막대가 모달 대화 상자의 본문 섹션에만 표시되는 경우 본문의 최대 높이를 조정해야 함을 의미합니다.


14
모달 바닥이 ​​화면 밖으로 밀릴 수 있으므로 모달 바디의 최대 높이를 설정하는 것만으로는 충분하지 않습니다. 나는 다음과 같이 성공했다 : .modal {top : 5 %; 바닥 : 5 %; } .modal-body {최대 높이 : 100 %; 높이 : 85 %; }
Csongor Fagyal

2
작동하려면 max-height : 800px 대신 height : 800px를 사용해야했습니다.
Cybernetic

34

부트 스트랩 3에서 :

.modal-dialog{
  width:whatever
}

질문을 한 날짜를 고려할 때 TB3이 문제라고 생각하지 않습니다. 그러나 어쨌든 팁을 주셔서 감사합니다. 정말 도움이됩니다!
Dennis Braga

2
명확히하기 위해, 특정 모달의 크기 만 설정하려면 다음과 같이하십시오 : #modal_ID .modal-dialog { width: 800px }
Greg 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.
}

이렇게하면 부트 스트랩과 같은 반응 형 프레임 워크를 사용하는 경우 해당 디자인을 모달에도 유지할 수 있습니다.


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

나는 대답을 얻었습니다 ... 문제는 최대 높이 속성을 덮어 썼고 부트 스트랩 모달은 500px 높이 제한을 초과하여 크기를 조정할 수 있다는 것입니다


.modal 클래스에서 최대 높이를 시도했지만 작동하지 않았습니다. 사용한 CSS를 공유 할 수 있습니까?
Apie

4
.modal {높이 : 600px; 최대 높이 : 700px; }. 그냥
fespinozacast 1:27에

1
이 방법의 문제점은 후면 오버레이가 확장되지 않아 팝업의 일부에 도달 할 수
없다는 것입니다.

2

부트 스트랩 대형 모델

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

부트 스트랩 소형 모델

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

1

".modal-body"height : 100 % 설정하면 콘텐츠에 따라 높이가 자동으로 조정되고 화면에 따라 "최대 높이"가 설정됩니다 ...


1

size 매개 변수를 사용해 보셨습니까?

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

선택적인 크기

모달에는 수정 자 클래스를 통해 .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;"

그런 다음 다음 '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; 
}

내 경우에는 중첩 모달이 있는데 , 중첩 모달 내부에서 컨트롤의 표시를 전환 할 때 각기 다른 높이가 필요한 컨트롤이 있으므로 max : height를 적용 할 수 없으며 대신 height : 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>

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.