8种垂直居中的方法

八种垂直居中的方法垂直居中的需求经常遇到,通过资料实践了八种垂直居中的方法。以下的方法都围绕着该HTML展开HTML代码<divstyle=”width:300px;height:300px;”class=”wrap”><divstyle=”width:100px;height:100px”class=”box”></div></div>CSS方法1(常用):display:flex.wra

大家好,又见面了,我是你们的朋友全栈君。

八种垂直居中的方法

垂直居中的需求经常遇到,通过资料实践了八种垂直居中的方法。

以下的方法都围绕着该HTML展开
HTML代码

    <div class="wrap">
        <div class="box"></div>
    </div>

CSS
方法1(常用):display:flex

.wrap{ 
   
	width:300px;
	height:300px;
    border: 1px solid red;
    display:flex;
    justify-content:center;
    align-items:center;
}
.box{ 
   
	height:100px;
	width:100px
    boder:1px solid blue;
}

方法2: table-cell

vertical-align 属性设置一个元素的垂直对齐方式。
该属性定义行内元素的基线相对于该元素所在行的基线的垂直对齐。允许指定负长度值和百分比值。这会使元素降低而不是升高。在表单元格中,这个属性会设置单元格框中的单元格内容的对齐方式。

        .wrap{ 
   
            width: 300px;
            height: 300px;
            border: 1px solid red;
            display: table-cell;
            text-align: center;
            vertical-align: middle;
        }
        .box{ 
   
            width: 100px;
            height: 100px;
            border: 1px solid blue;
            display: inline-block;
        }

方法3: margin,transform配合

.wrap{ 
   
            width: 300px;
            height: 300px;
            background-color: pink;
            /* border: 1px solid red; */
            /*防止外边距塌陷。解决外边距塌陷的方法: 父元素加overflow:hidden或加上边框*/
            overflow: hidden;
        }
        .box{ 
   
            width: 100px;
            height: 100px;
            background-color: plum;
            margin:50% auto;
            transform: translateY(-50%); 
        }

方法4: inline-block+vertical-aligin

        .wrap { 
   
            width: 300px;
            height: 300px;
            background-color: pink;
            text-align: center;
            line-height: 300px;
        }
        .box { 
   
            width: 100px;
            height: 100px;
            /* 重新设置子元素的行高,否则会继承父元素的行高*/
            line-height: 100px;
            background-color: plum;
            display: inline-block;
            /* middle 把此元素放置在父元素的中部。 */
            vertical-align: middle;
        }

方法5:absolute+负margin

        .wrap{ 
   
            width: 300px;
            height: 300px;
            position: relative;
            background-color: plum;
        }
        .box{ 
   
            width: 100px;
            height: 100px;
            position: absolute;
            left: 50%;
            top: 50%;
            /*宽高的一半*/
            margin-left: -50px;
            margin-top: -50px;
            background-color: powderblue;
        }

方法6 absolute+margin:auto
和方法5类似,当宽度和高度未知时使用

        .wrap{ 
   
            width: 300px;
            height: 300px;
            position: relative;
            background-color: plum;
        }
        .box{ 
   
            width: 100px;
            height: 100px;
            position: absolute;
            left: 0;
            top: 0;
            bottom:0;
            right:0;
            margin:auto;
            background-color: powderblue;
        }

方法7:absolute+transform
与方法5类似

 .wrap { 
   
            width: 300px;
            height: 300px;
            position: relative;
            background-color: plum;
        }

        .box { 
   
            width: 100px;
            height: 100px;
            position: absolute;
            left: 50%;
            top: 50%;
            
            transform: translate(-50%,-50%);
            background-color: powderblue;
        }

方法8 强大的grid
阮一峰大佬Grid 网格布局教程

.wrap { 
   
            width: 300px;
            height: 300px;
            display: grid;
            background-color: plum;
        }

        .box { 
   
            width: 100px;
            height: 100px;
            align-self: center;
            justify-self: center;
            background-color: powderblue;
        }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/124788.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 费雪信息 (Fisher information)

    费雪信息 (Fisher information)——————————————————————————作者:知乎用户链接:https://www.zhihu.com/question/26561604/answer/33275982来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。——————

    2022年9月18日
  • JAVA设计模式之门面模式(外观模式)[通俗易懂]

    医院的例子  现代的软件系统都是比较复杂的,设计师处理复杂系统的一个常见方法便是将其“分而治之”,把一个系统划分为几个较小的子系统。如果把医院作为一个子系统,按照部门职能,这个系统可以划分为挂号、门诊、划价、化验、收费、取药等。看病的病人要与这些部门打交道,就如同一个子系统的客户端与一个子系统的各个类打交道一样,不是一件容易的事情。  首先病人必须先挂号,然后门诊。如果医生要求化验,病人必

    2022年3月11日
  • 这篇不讨好任何人的回忆录,记录了我从双非学校到BAT/TMD六offer的原因

    这篇不讨好任何人的回忆录,记录了我从双非学校到BAT/TMD六offer的原因注:给我想个新名字好不好呀,采用了直接发百元红包!没别的,想让大家认识兔兔rabbit,说一下自己的经验教训,应该会对很多人有帮助。一、前言在今年,我要毕业了,基本结束了大学生活,踏入了工作环境,觉得是时候写一个总结,给这段时光一个交代,也让多年后的我,还能回忆起这段经历,不忘初心。想起小学作文有个结构叫“总分总”,那我就先来简单的总结一下这两个环境吧。二、我的学校和工作学校,说实话,出了省就很少人知道的学校,学生基本和一流互联网公司无缘,如果范围缩小到后端开发,我觉得可以把基本去掉.

    2022年9月15日
  • 2.5D RGBD 图像 深度学习

    2.5D RGBD 图像 深度学习RGBD=RGB+DepthMapRGB:RGB色彩模式是工业界的一种颜色标准,是通过对红®、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。DepthMap:在3D计算机图形中,DepthMap(深度图)是包含与视点的场景对象的表面的距离有关的信息的图像或图像通道。其中,DepthMap类似于灰度图像,只是它的每个像素值是传感器

    2022年9月18日
  • docker上传镜像到私有仓库_docker仓库的创建

    docker上传镜像到私有仓库_docker仓库的创建Docker私有仓库的搭建、配置,镜像上传至私有仓库案例演示。

    2022年11月2日
  • docker项目经验_如何培育与指导部署

    docker项目经验_如何培育与指导部署每个人的前半生,都在不停地做加法。可到了后半生,我们就要学会不断地做减法。目录前置工作1、需要准备的东西2、连接云服务器安装Docker环境1、安装Docker的依赖库。2、添加DockerCE的软件源信息。3、安装DockerCE。4、启动Docker服务。准备Dockerfile并部署项目(构建新的业务镜像)1、准备nginx.conf.template、Dockerfile、dist(前端项目build后的包)2、部署项目知识点(需要…

    2022年10月19日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号