เพิ่มขนาดกิริยาสำหรับ Twitter Bootstrap


154

ฉันกำลังพยายามเปลี่ยนขนาดของแบบฟอร์ม modal หรือค่อนข้าง - ให้มันตอบสนองต่อเนื้อหาที่ฉันแสดงที่นั่น ฉันใช้มันเพื่อแสดงผลแบบฟอร์มและต้องการจัดการกับการเลื่อนหากต้องการตัวเอง

รูปแบบที่ฉันแสดงอาจต้องการอีก 50px - แค่ปุ่มหาย

ดังนั้นฉันได้ลองเขียนทับ. modal style ในไฟล์ application.css.scss ของฉัน (โดยใช้ Rails 3.2) แต่ดูเหมือนว่าจะเขียนทับความสูงสูงสุดและล้นเกิน

ความคิดใด ๆ


ฉันมีคำถามเดียวกัน ... โครเมี่ยมบอกว่าคุณสมบัติความสูงได้รับการยอมรับ (ไม่ได้รับเส้นกลางเป็นคุณสมบัติที่เขียนทับ) แต่ความสูงที่คำนวณได้ยังคงเหมือนเดิม
fespinozacast

ฉันคิดว่านี่อาจช่วยได้
ซิงโคร

คำตอบ:


115

ฉันมีปัญหาเดียวกันคุณสามารถลอง:

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

หากคุณสังเกตเห็นแถบเลื่อนปรากฏเฉพาะในส่วนเนื้อหาของกล่องโต้ตอบโมดัลนี่หมายความว่าต้องปรับความสูงสูงสุดของร่างกายเท่านั้น


14
การตั้งค่าความสูงสูงสุดสำหรับ modal-body นั้นไม่เพียงพอเนื่องจากด้านล่างของ modal อาจถูกผลักออกจากหน้าจอ ฉันประสบความสำเร็จด้วย:. modal {top: 5%; ด้านล่าง: 5%; } .modal-body {ความสูงสูงสุด: 100%; ความสูง: 85%; }
Csongor Fagyal

2
ฉันต้องใช้ความสูง: 800px แทนความสูงสูงสุด: 800px เพื่อให้ใช้งานได้
Cybernetic

34

ใน Bootstrap 3:

.modal-dialog{
  width:whatever
}

เมื่อถึงวันที่ถามคำถามฉันไม่คิดว่า TB3 เป็นปัญหา แต่ในกรณีใด ๆ ขอบคุณสำหรับเคล็ดลับมันมีประโยชน์จริงๆ!
Dennis Braga

2
เพียงชี้แจงถ้าคุณเพียงต้องการที่จะกำหนดขนาดของกิริยาที่เฉพาะเจาะจงหนึ่งสามารถทำเช่นนี้: #modal_ID .modal-dialog { width: 800px }
เกร็ก

22

คุณต้องตรวจสอบให้แน่ใจว่ามันอยู่ในองค์ประกอบของ #myModal .modal-body ไม่ใช่แค่ #myModal (มีคนทำผิดสองสามข้อ) และคุณอาจต้องการเปลี่ยนแปลงความสูงด้วยการเปลี่ยนระยะขอบของ modals


9
ลิงก์เสียชีวิต :(
Dan

18

การใช้การวัด CSS3 'vh' (หรือ 'vw' สำหรับความกว้าง) ใหม่ (ซึ่งกำหนดความสูงเป็นส่วนของพอร์ตมุมมอง) ใช้:

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

ด้วยวิธีนี้หากคุณใช้เฟรมเวิร์กที่ตอบสนองได้เช่น Bootstrap คุณสามารถคงการออกแบบนั้นไว้ใน modals ของคุณได้เช่นกัน


8

การรวมสองวิธีสำหรับความกว้างและความสูงและคุณมีแฮ็คที่ดี:

CSS:

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

JQuery:

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

อันนี้เป็นอันที่ฉันใช้ มันแก้ไขระยะขอบและแถบเลื่อนออกทั้งความกว้างและความสูง แต่จะไม่ปรับขนาด modal ให้พอดีกับเนื้อหา

หวังว่าฉันจะช่วย!


ฉันพยายามทำให้ JQuery ทำงาน แต่ฉันไม่มีโชค คุณช่วยได้ไหม ฉันควรใช้ JQuery ที่ไหน
Samuel Taylor

ความสูงสูงสุดของ modal จะทำให้ครึ่งล่างหายไปและไม่สามารถเลื่อนได้ (ตามที่ @mcabral แนะนำ)
nagytech

4

ใช้คลาส CSS (คุณสามารถแทนที่สไตล์ - ไม่แนะนำ):

(HTML)

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

(CSS)

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

3

ฉันได้รับคำตอบ ... สิ่งที่คุณเขียนทับคุณลักษณะความสูงสูงสุดเช่นเดียวกับ bootstrap modal สามารถปรับขนาดได้เกินขีดจำกัดความสูง 500px


ฉันลองความสูงสูงสุดของชั้น. mod แต่มันก็ไม่ได้ผลเหมือนกัน คุณสามารถแบ่งปัน CSS ที่คุณใช้หรือไม่
Apie

4
.modal {height: 600px; ความสูงสูงสุด: 700px; } เพียงแค่นั้น
fespinozacast

1
ปัญหาเกี่ยวกับวิธีการนี้คือการซ้อนทับด้านหลังไม่ได้ขยายดังนั้นส่วนหนึ่งของป๊อปอัพอาจไม่สามารถเข้าถึงได้
mcabral


1

เพียงตั้งค่าความสูง ".modal-body": 100% มันจะปรับความสูงโดยอัตโนมัติตามเนื้อหาของคุณและใส่ "max-height" ตามหน้าจอของคุณ ...


1

คุณได้ลองพารามิเตอร์ขนาด:

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

ขนาดตัวเลือก

Modals มีสองขนาดให้เลือกใช้งานผ่านคลาสตัวดัดแปลงที่จะอยู่ใน. mod-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

สมมติว่าโมดอลของคุณมี ID ของmodal1CSS ต่อไปนี้จะเพิ่มความสูงของโมดัลและแสดงโอเวอร์โฟลว์ใด ๆ

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

0

พยายามสองสามข้อข้างต้นตามต้องการกำหนดขนาดเฉพาะของความกว้างและความสูง (เพื่อแสดงรูปภาพเป็นโมดอล) และเนื่องจากไม่มีใครช่วยฉันได้ฉันจึงตัดสินใจแทนที่สไตล์และเพิ่มสิ่งต่อไปนี้ลงใน <div> หลักที่มี class = "modal hide fade in": เพิ่มความกว้างให้กับแท็กสไตล์สำหรับพื้นหลังของคำกริยา

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

จากนั้นเพิ่มแท็ก 'style' ต่อไปนี้ลงใน modal-body:

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

ใช้งานได้อย่างมีเสน่ห์ในตอนนี้ฉันกำลังแสดงภาพและตอนนี้มันเข้ากันได้อย่างสมบูรณ์แบบ


มีสาเหตุใดที่ทำให้เกิดปัญหา downvote นี้? ข้อเสนอแนะบางอย่างเกี่ยวกับเวลาที่คุณคิดว่ามีข้อผิดพลาดเกิดขึ้นหรือการแสดงความคิดเห็นที่ไม่จริง / ไม่เกี่ยวข้องจะมีประโยชน์
FlashTrev

0

สิ่งนี้ใช้ได้กับฉัน:

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

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

ทราบว่าในกรณีของฉันฉันมี Modals ซ้อนกันแต่ละควบคุมซึ่งต้องมีความสูงที่แตกต่างกันเมื่อฉันสลับการแสดงผลของการควบคุมภายในกิริยาที่ซ้อนกันดังนั้นผมจึงไม่สามารถใช้สูงสุดสูงแทนความสูง: 100%งานสำหรับผมที่ดี


0

อย่าลืมคลาสบูทสแตรปที่เป็นตัวเลือกmodal-lgและmodal-smถ้าคุณต้องการเก็บไว้ในกรอบการตอบสนอง และเพิ่ม clearfix ด้านล่างแบบฟอร์มของคุณซึ่งอาจช่วยได้ขึ้นอยู่กับโครงสร้างของคุณ


0

ฉันเพิ่งลองและได้รับสิ่งนี้ถูกต้อง: หวังว่านี่จะเป็นประโยชน์

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

สิ่งนี้จะปรับความสูงของโมเดลของคุณ


0

นี่เป็นอีกวิธีง่าย ๆ ในการเพิ่มขนาดของ modal bootstrap:

$(".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.