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

因为最近在弄一个系统,系统中引用了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. CoreData概略

    CoreData概略 分类: IOS开发2013-10-25 16:19 178人阅读 评论(0) 收藏 举报 CoreData是IOS对数据进行对象化管理的一种高效方式,提供了对数据的增.删.查.改 ...

  2. Linux下SVN(Subversion)自动启动脚本

    在Red Hat  Linux中自动运行程序    1.开机启动时自动运行程序    Linux加载后, 它将初始化硬件和设备驱动,然后运行第一个进程init.init根据配置文件继续引导过程,启动其 ...

  3. BZOJ 1036 [ZJOI2008]树的统计Count(动态树)

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1036 题意:一棵树,每个节点有一个权值.三种操作:(1)修改某个节点的权值:(2)输出某两 ...

  4. fuse 虚拟文件系统 的 安装与使用

    FUSE 是个好东西, 可以用在特殊的领域里面来实现自己的虚拟文件系统. FUSE的下载与安装 : 从fuse官网下载最新安装包:http://sourceforge.net/projects/fus ...

  5. windows下编译firefox

    可以自己定制下.估计很简单..... 官方文档扫一遍: https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_I ...

  6. 解决kibana 4 关于响应时间的问题

    "message" => " 10.252.142.174 [12/Sep/2016:16:43:47 +0800] \"GET /resources/j ...

  7. UML--建模

    建模公式 这种精华的东西,一定是值得研读和实践的! myself:人,事,物,规则. 人,业务主角.业务工人.参与者.如果应用到教务系统中,就是管理员,主任,老师的关系. 事,业务用例,系统用例. 物 ...

  8. 系统监控的工具tsar

    近期一直在折腾着elasticsearch,需要对硬件进行评估 大概几方面 内存 cpu 硬盘 网络. iostat vmstat top 几个命令用了一堆,其实需要关注的几个点只要都列出来就可以了 ...

  9. mysql C API 字符串玩转备份调优

  10. Staple: Complementary Learners For Real-time Tracking Tracking

    转载注明出处: http://www.cnblogs.com/sysuzyq/p/6169414.html By 少侠阿朱 讨论班上的PPT 1.同学大家好.今天给大家讲一篇单目标跟踪的论文,方法比较 ...