【问题标题】:Bootstrap modal cut in halfBootstrap 模态减半
【发布时间】:2016-06-06 11:11:33
【问题描述】:

我设置了一个模态窗口,但是当按下激活它的按钮时,显示的模态被切成两半,like this. 在一个较小的窗口中,模态显示得很好。对不起,代码有点乱。

<!-- index.html -->
<!doctype html>
<!-- ASSIGN OUR ANGULAR MODULE -->
<html ng-app="scotchTodo">
<head>
<!-- META -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"><!-- Optimize mobile viewport -->

<title>OAMK Opinnäytetyöt</title>

<!-- SCROLLS -->
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css"><!-- load bootstrap -->
<style>
    html                    { overflow-y:scroll; }
    body                    { padding-top:50px; }
    #todo-list              { margin-bottom:30px; }


</style>

<!-- SPELLS -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script><!-- load jquery -->
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.min.js"></script><!-- load angular -->
<script src="core.js"></script>

</head>
<!-- SET THE CONTROLLER AND GET ALL TODOS -->
<body ng-controller="mainController">
<div class="container">

    <!-- HEADER AND TODO COUNT -->
    <div class="jumbotron text-center">
        <h1>OAMK Opinnäytetyöt</h1>
    </div>

    <!-- Trigger the modal with a button -->
<button type="button" class="btn btn-info btn-lg text-center" data-toggle="modal" data-target="#myModal">Lisää uusi aihe</button>

    <!-- TODO LIST -->
    <div id="todo-list" class="row">
        <div class="col-sm-10>

            <!-- LOOP OVER THE TODOS IN $scope.todos -->
            <div class="checkbox" ng-repeat="todo in todos">
                <label>
                <h1>
                    <input type="checkbox" ng-click="deleteTodo(todo._id)"> {{ todo.aihe }}
                </h1>
                </label>
                <br>
                    {{ todo.kuvaus }}

            </div>

        </div>
    </div>

    <div class="container">


<!-- Modal -->
<div class="modal fade" id="myModal" role="dialog">
<div class="modal-dialog modal-sm">   
  <!-- 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><!-- FORM TO CREATE TODOS -->
    <div id="todo-form" class="row">
        <div class="col-sm-8 col-sm-offset-2 text-center">
            <form>
                <div class="form-group">

                    <!-- BIND THIS VALUE TO formData.text IN ANGULAR -->
                    <input type="text" maxlength="50" class="form-control input-lg" placeholder="Aihe (max. 50 merkkiä)" ng-model="formData.aihe">
                    <input type="text" maxlength="255"class="form-control input-lg" placeholder="Kuvaus (max. 255 merkkiä)" ng-model="formData.kuvaus">
                </div>

                <!-- createToDo() WILL CREATE NEW TODOS -->
                <button type="submit" class="btn btn-primary btn-lg" data-dismiss="modal" ng-click="createTodo()">Lisää</button>
            </form>
        </div>
    </div></p>
    </div>
    <div class="modal-footer">
      <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
    </div>
  </div>

</div>
</div>

</div>

 </div>

</body>
</html>

【问题讨论】:

  • #myModal 上的 CSS 是否会影响它?
  • 没有 CSS 模态仍然减半,只是在不同的地方:i.stack.imgur.com/srpAf.png
  • 关于您的更新,使用这个确切的代码,它可以正常工作......不是吗?我无法重现您的错误...imgur.com/CD9yQw7 这是在 Chrome 中 - 已最大化。它在 I Explorer 中也能正常工作
  • 好的,那么问题出在其他地方。我将整个 index.html 代码添加到 OP。
  • 我注意到的第一件事是您有bootstrap.min.css 的冗余负载。删除最后一个(版本 3.0.0)并保留第一个(版本 3.3.6)!它对我来说仍然很好,所以我想它与你的 JS 或我刚才提到的 CSS 有关(你是否曾经在某处覆盖模态)???您是否尝试过仅使用您在此处提供的代码制作一个空的工作区?看起来效果不错!

标签: javascript jquery html css twitter-bootstrap


【解决方案1】:

您想通过 CSS 实现什么目标?您的代码在没有 CSS 的情况下运行良好!

检查小提琴:https://jsfiddle.net/eoug80b8/

这不是你要找的吗? :P

如果您必须使用自定义 CSS 样式,您至少应该删除这行:left: -100%;,因为这会搞砸一些事情!

没有特定行的新小提琴https://jsfiddle.net/eoug80b8/1/

另外:如果您使用最后一个解决方案,您应该重新考虑使用width: 140%;,因为它可能会将关闭按钮移到可见区域之外!

【讨论】:

  • 是的,CSS 存在只是因为我正在尝试是否可以让模式正确显示,但我现在将其删除。如果没有 CSS,模态显示在最右侧,但仍会被切成两半,就像 [this.][1] 我还忘了提到模态在较小的窗口中看起来很好,就像你的小提琴一样。 [1]:i.stack.imgur.com/srpAf.png
  • 那么我想我们需要看看你的 CSS 的其余部分。听起来您对超大 HTML 或 BODY 元素或类似的东西有问题。只要您不弄乱 CSS,对话框就应该调整大小并居中。在此处查看引导 CSS(ctrl/cmd + F 查找 modal-lg 或 modal-dialog):github.com/twbs/bootstrap/blob/master/dist/css/bootstrap.css
  • 这是我所有的 CSS,不多: html { overflow-y:scroll; } 身体 { 填充顶部:50px; } #todo-list { 边距底部:30px;然后就是这个,这会导致问题吗?
  • 更新你的OP,让每个人都能找到它! ;)
【解决方案2】:

我遇到了同样的问题,我通过添加解决了它

<div class="modal-dialog modal-sm" style="left:0% !important">

而不是

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

在模态 div 中

【讨论】:

    【解决方案3】:

    如果其他人遇到这个问题,我测试了 OP 的代码并遇到了完全相同的问题,但删除了内部模态 div 的 modal-dialog 类修复了它。在&lt;div class="modal-dialog modal-sm"&gt;这一行,我去掉了modal-dialog类,右边的modal不再切成两半了。

    或者,您可以在下一个 div 开始之前关闭 modal-dialog div。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-04
      • 1970-01-01
      • 1970-01-01
      • 2018-03-18
      • 1970-01-01
      • 1970-01-01
      • 2011-06-16
      相关资源
      最近更新 更多