DIV元素水平和垂直居中

简介:

在前端开发过程中,经常要对元素进行居中设置。一般有水平居中,和垂直居中。一般设置水平居中简单。基本是margin:0 auto,就可以了。但是垂直居中,我们有时会觉得使用vertical-align,但是这个属性对div元素不起作用。

目前通用的解决办法是,使用绝对定位,然后设置left和top为50%。然后通过margin来设置。下面具体代码演示了一个简单的登录页面,然后使登录界面水平居中和垂直居中。代码如下:

<html>
    <head>
        <title>div元素水平和垂直居中</title>
        <style type="text/css">
        #login-container
        {
            
            width:400px;
            height:350px;
            background-color:#ddd;
            text-align:center;
            position:absolute;
            left:50%;
            top:50%;
            margin:-200px 0 0 -200px;
        }
        #login-container .login-title
        {
            padding-top:50px;
        }
        </style>
    </head>
    <body>
        <div id="login-container">
            <h3 class="login-title">用户登录</h3>
            <div>用户名:<input type="text" value=""/></div>
            <div>密   码:<input type="text" value=""/></div>
        </div>
    </body>
</html>

截图如下:

image

使用Chrome、Firefox和IE9以上浏览器中,改变浏览器的大小,div元素还是会垂直居中。所有不需要 额外写JavaScript代码进行定位。后续会写到另外一个问题:在一个div中,不固定高度的图片如何垂直居中。另外jQuery UI的Dialog控件有一个bug就是,页面太长了,往下拉滚动条时,overlay的高度不能自动延伸。这里需要写代码进行控制,在全局js文件中, 添加下面代码:

//hotfix.修正overlay在窗口发生onresize时,不调整位置
function update_widget_overlay_height() {
    var height = $(window).height() + $(window).scrollTop();
    $(".ui-widget-overlay").css({ "height": height });
}

$(window).scroll(function () {
    update_widget_overlay_height();
});

目录
相关文章
|
域名解析 网络协议 Windows
解决GitHub文件无法下载的问题
从Github下载文件的时候,发现链接挂了,下载不了,提示无法显示此网页,该如何解决呢?
|
11月前
|
存储 算法 C语言
【C语言】深入浅出:C语言链表的全面解析
链表是一种重要的基础数据结构,适用于频繁的插入和删除操作。通过本篇详细讲解了单链表、双向链表和循环链表的概念和实现,以及各类常用操作的示例代码。掌握链表的使用对于理解更复杂的数据结构和算法具有重要意义。
3355 6
|
12月前
|
监控 中间件 PHP
hyperf-alarm-clock,一个自动计算代码执行时间,超时并发送通知的小工具
`hyperf-alarm-clock` 是专为 Hyperf 框架设计的库,用于监控代码执行时间并在超时后发送通知。支持多种通知通道,如标准输出、日志文件和飞书。适用于需要确保响应及时性的系统,如电商平台订单处理流程监控。安装简单,配置灵活,是提高系统性能和稳定性的有力工具。
176 1
hyperf-alarm-clock,一个自动计算代码执行时间,超时并发送通知的小工具
|
计算机视觉
vs2019_qt6.2.4_dcmtk3.6.7_vtk9.2.2_itk5.3_opencv4.6.0编译记录
这篇文章记录了使用VS2019编译Qt6.2.4、DCMTK3.6.7、VTK9.2.2、ITK5.3和OpenCV4.6.0的过程,包括下载和编译步骤,并提供了遇到编译错误时的解决方案和参考链接。
364 0
vs2019_qt6.2.4_dcmtk3.6.7_vtk9.2.2_itk5.3_opencv4.6.0编译记录
|
移动开发 JavaScript 前端开发
分享113个JS特效动画效果,总有一款适合您
分享113个JS特效动画效果,总有一款适合您
581 0
|
监控 前端开发 JavaScript
SVG实现流程动态效果
可以通过 div 的方式 拼凑 一张图,然后 js 代码控制不同的 div 部件进行颜色变化。可以通过 canvas 的方式绘制整张图,然后对画布内的元素进行控制。可以找个第三方库,自定义形状 组合 一张图出来,然后进行控制。可以通过 svg 图的方式展示内容,然后对 svg 中的元素进行控制。
501 0
SVG实现流程动态效果
|
网络协议 关系型数据库 应用服务中间件
linux虚拟机中各服务端口及配置文件路径
linux虚拟机中各服务端口及配置文件路径
580 0
|
JavaScript 前端开发
【JavaScript】给一个div块添加链接,实现点击跳转页面
【JavaScript】给一个div块添加链接,实现点击跳转页面
|
SQL 缓存 监控
Oracle 死锁与慢查询总结
Oracle 死锁与慢查询总结
827 0