1-5 模态弹出框--实现原理解析(一)
本节编程练习不计算学习进度,请电脑登录imooc.com操作

模态弹出框--实现原理解析(一)

实现原理解析:

bootstrap中的“模态弹出框”有以下几个特点:

1、模态弹出窗是固定在浏览器中的。

2、单击右侧全屏按钮,在全屏状态下,模态弹出窗宽度是自适应的,而且modal-dialog水平居中。

3、当浏览器视窗大于768px时,模态弹出窗的宽度为600px。

固定在浏览器(源代码)实现:

/*bootstrap.css文件第5379行~第5389行*/
.modal {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1050;
  display: none;
  overflow: hidden;
  -webkit-overflow-scrolling: touch;
  outline: 0;
}

水平居中(源代码)实现:

/*bootstrap.css文件第5407行~第5411行*/
.modal-dialog {
  position: relative;
  width: auto;
  margin: 10px;
}

当浏览器视窗大于768px时,模态弹出窗的宽度为600px(源代码)实现:

/*bootstrap.css文件第5479行~第5491行*/
@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;
  }
}

任务

我来试试,在最右侧结果窗口中试一试本小节的弹出框的三个特点。

  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5. <title>实现原理解析(一)</title>
  6. <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
  7. </head>
  8. <body>
  9.  
  10. <button class="btn btn-primary" data-toggle="modal" data-target="#mymodal-data" type="button">通过data-target触发</button>
  11. <!-- 模态弹出窗内容 -->
  12. <div class="modal" id="mymodal-data" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true">
  13. <div class="modal-dialog">
  14. <div class="modal-content">
  15. <div class="modal-header">
  16. <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
  17. <h4 class="modal-title">模态弹出窗标题</h4>
  18. </div>
  19. <div class="modal-body">
  20. <p>模态弹出窗主体内容</p>
  21. </div>
  22. <div class="modal-footer">
  23. <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
  24. <button type="button" class="btn btn-primary">保存</button>
  25. </div>
  26. </div>
  27. </div>
  28. </div>
  29. <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
  30. <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
  31. </body>
  32. </html>
下一节