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();
});

目录
相关文章
|
前端开发 定位技术
layer弹框右上角关闭按钮的样式
layer弹框右上角关闭按钮的样式
382 0
|
Java 测试技术
SpringBoot整合Zookeeper做分布式锁
SpringBoot整合Zookeeper做分布式锁
321 0
|
9月前
|
存储 算法 C语言
【C语言】深入浅出:C语言链表的全面解析
链表是一种重要的基础数据结构,适用于频繁的插入和删除操作。通过本篇详细讲解了单链表、双向链表和循环链表的概念和实现,以及各类常用操作的示例代码。掌握链表的使用对于理解更复杂的数据结构和算法具有重要意义。
2914 6
|
计算机视觉
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的过程,包括下载和编译步骤,并提供了遇到编译错误时的解决方案和参考链接。
302 0
vs2019_qt6.2.4_dcmtk3.6.7_vtk9.2.2_itk5.3_opencv4.6.0编译记录
|
JavaScript 前端开发
js中通过正则表达式验证邮箱是否合法
这篇文章提供了一个JavaScript示例,通过正则表达式在网页上验证用户输入的邮箱地址是否合法,并给出了相应的提示信息。
js中通过正则表达式验证邮箱是否合法
|
Java Spring
【Azure 应用服务】一个 App Service 同时部署运行两个及多个 Java 应用程序(Jar包)
【Azure 应用服务】一个 App Service 同时部署运行两个及多个 Java 应用程序(Jar包)
157 0
|
移动开发 JavaScript 前端开发
分享113个JS特效动画效果,总有一款适合您
分享113个JS特效动画效果,总有一款适合您
529 0
|
JavaScript 前端开发
forEach中return会退出循环吗
forEach中return会退出循环吗
676 0
|
监控 前端开发 JavaScript
SVG实现流程动态效果
可以通过 div 的方式 拼凑 一张图,然后 js 代码控制不同的 div 部件进行颜色变化。可以通过 canvas 的方式绘制整张图,然后对画布内的元素进行控制。可以找个第三方库,自定义形状 组合 一张图出来,然后进行控制。可以通过 svg 图的方式展示内容,然后对 svg 中的元素进行控制。
472 0
SVG实现流程动态效果