很久没有写东西了,之前想写一些移动端的东西以后补上吧,移动端发展还是蛮快的,回正题。

因为最近在弄一个系统,系统中引用了bootstrap,发现模态框垂直不居中,遂搜索了一下,也都试了一下,无非都是在js上做的修改,而且都还不完善,比如动态的区检测文档高度与模态框自身的高度,然后赋给模态框margin-top值。

这样做倒也不可厚非,可是需要做的判断会多一点,比如——1、模态框太高,超过屏幕;2、浏览器窗口缩放,模态框的位置变动问题。

下面开始动手 ↓

-------start--------

在模态框内插入一个“二级”的div层

 <div class="modal fade" id="myModal" tabindex="-1" role="dialog" data-backdrop="static" aria-labelledby="myModalLabel">
<div><!--新插入的div包裹层-->
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="myModalLabel">标题</h4>
</div>
<div class="modal-body">
<!--主体内容-->
</div>
<div class="modal-footer">
<button type="button" class="btn btn-green">确定</button>
<button type="button" class="btn btn-gray" data-dismiss="modal">取消</button>
</div>
</div>
</div>
</div>
</div>

后面的按钮不用管,是我自定义的class,这里只添加了一个div层没有做class或者id标记,这个可以自定义。

然后,在bootstrap.css里面追加如下代码,这里用到的要点是display:table;和display:table-cell;

我试了很多种布局方式,目前为止,这种最好用,其实还有一种方式是display:inline-block;不过那种方式需要依托一点js,毕竟line-height和height的100%不是一个概念,达不到占比全屏的效果,只能依托一点js,如果有人有更好的方案,不需要添加div代码就可以完成的是最好的——我觉得。

 .modal>div{/* 追加此行 */
display:table;
width:100%;
height:100%;
} .modal-dialog {
/* 略去展示原有内容,此处只显示追加内容 */
display:table-cell;
vertical-align:middle;
} .modal-content {
/* 略去展示原有内容,此处只显示追加内容 */
display:block;
width: 500px;
margin:0 auto;
}

这里我定义了.modal-content的宽度500和margin居中,同时去掉了下面这里的宽度和margin居中,当然,这个是自由定义的,可以不这样做,也能达到效果。

这个时候,模态框就能居中,并且可以随着浏览器窗口大小来调整该走的位置了。

--------end--------

虽然在我看到unsemantic的栅格化后,鄙视了一段时间bootstrap栅格化的冗余,但这次也不得不佩服bootstrap在模态框上将遮罩fixed的聪明,模态框居中和上下位置都是依靠css来完成的,使得样式和结构的尽量分离。

以这个理念,我们对bootstrap模态框垂直居中,最好也用纯css的方式,既能保证bootstrap的“纯洁性”,又能使得模态框能够“自适应”的去展示,向左右margin:0 auto;一样方便。

顺便再吐槽一下w3c标准,现在的网页已经不止局限于过去的那种“印刷式”排版,弄个区块垂直居中居然还要搞得这么麻烦,搞那么多动画不如搞点这种实际的。

bootstrap模态框垂直居中的更多相关文章

  1. Bootstrap模态框垂直居中展示的方法

    在bootstrap.js中加入以下代码:

  2. BootStrap 模态框禁用空白处点击关闭,手动显示隐藏,垂直居中

    $('#ajax_wait').modal({ backdrop: 'static', keyboard: false }); backdrop:static ,空白处不关闭. keyboard:fa ...

  3. JavaScript:bootstrap 模态框的简单应用

    最近用上了bootstrap这个强大的前端框架,有空来总结一下.这里记录下模态框的简单应用. 首先,要在页面中引入相应的js.css文件 <link href="css/bootstr ...

  4. js控制Bootstrap 模态框(Modal)插件

    js控制Bootstrap 模态框(Modal)插件 http://www.cnblogs.com/zzjeny/p/5564400.html

  5. Bootstrap模态框按钮

    1.触发模态框弹窗的代码 这里复制了一段Bootstrap模态框的代码 <h2>创建模态框(Modal)</h2> <!-- 按钮触发模态框 --> <but ...

  6. 解决bootstrap模态框内输入框无法获取焦点

    bootstrap 模态框中的input标签在某些情况下会无法获取焦点. 最终解决方法:去除模态框的 tabindex="-1" 属性即可

  7. Bootstrap 模态框(Modal)插件

    原文链接:http://www.runoob.com/bootstrap/bootstrap-modal-plugin.html Bootstrap 模态框(Modal)插件 模态框(Modal)是覆 ...

  8. Bootstrap 模态框在用户点击背景空白处时会自动关闭

    问题: Bootstrap 模态框在用户点击背景空白处时,会自动关闭. 解决方法: 在HTML页面中编写模态框时,在div初始化时添加属性 aria-hidden=”true” data-backdr ...

  9. Bootstrap模态框(MVC)

    BZ这篇博客主要是为大家介绍一下MVC如何弹出模态框.本文如果有什么不对的地方,希望大神们多多指教,也希望和我一样的小菜多多学习.BZ在这里谢过各位. 首先要在页面加上一个点击事件: @Html.Ac ...

随机推荐

  1. 第一次碰到try-except(core python programming 2nd Edition 3.6)

    # coding: utf-8 # 使用Windows系统,首行'#!/usr/bin/env Pyton'无用,全部改为'# coding: utf-8' 'readtextfile.py -- r ...

  2. DataTables给每一列添加下拉框搜索

    $(document).ready(function() { $('#example').DataTable( { initComplete: function () { var api = this ...

  3. NFine常见错误

    1.新增数据录入录入不进去提示:An error occurred while updating the entries.See the inner exception for details. 这样 ...

  4. 自定义textView的高度

    原文地址: http://www.cocoachina.com/ios/20141226/10778.html iOS 8 之后的新特性

  5. Android使用xml中定义的动画效果

    Animation animation = AnimationUtils.loadAnimation(getActivity(), R.anim.zqrl_out); animation.setFil ...

  6. PHP之CI框架架设错误--Only variable references should be returned by reference

    解决参考 http://www.rafalinux.com/ La búsqueda fue bastante infructuosa, y hasta hace un par de días, na ...

  7. Windows 8.1 Update1 6610 32位/64位下载、安装和新增功能简评

    今天,微软已经确认完成Windows 8.1 2014 Update RTM正式版的开发工作,累计修复99%的已知bug.随后,微软会将Win8.1首个春季更新正式版,即Win8.1 2014 Upd ...

  8. 头文件intrins.h

    intrins.h 在C51单片机编程中,头文件INTRINS.H的函数使用起来,就会让你像在用汇编时一样简便. 内部函数 描述 _crol_ 字符循环左移   _cror_ 字符循环右移   _ir ...

  9. android批量文件上传(android批量图片上传)

    项目中多处用到文件批量上传功能,今天正好解决了此问题,在此写出来,以便日后借鉴. 首先,以下架构下的批量文件上传可能会失败或者不会成功:   1.android客户端+springMVC服务端:服务端 ...

  10. Android下的SQLite数据库的相关操作及AndroidTestCase测试

    一:创建数据库 package com.itcode.mysqlite; import android.content.Context; import android.database.sqlite. ...