博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
讨论下垂直水平居中的多种方案
阅读量:5862 次
发布时间:2019-06-19

本文共 1863 字,大约阅读时间需要 6 分钟。

前言

写博客主要是用来总结、巩固知识点,加深自己对这个知识点的理解。同时希望能帮助到有需要的人。如有不正确的地方。可以在评论区指出。你们的支持。是我不断进步的源泉。

本来想把这个知识点放在,但是这里涉及的内容还挺多的。于是就把它单独拉出来写了。

简单说明一下

下面的内容使用到了flex的布局方式。有关flex的详细使用方法和兼容性。这里就不详细讲述了,可以看

这里讨论的是子元素为块级元素的水平垂直居中方案。其他行内元素的的方案可以看这大佬的文章

宽高固定的元素如何进行垂直水平居中

1.使用绝对定位与负边距实现

html:

复制代码

css:

.parent {      position: relative;      width: 600px;      height: 600px;      margin: auto;      border: 1px solid red;    }.child {      position: absolute;      top: 50%;      left: 50%;      margin: -50px 0 0 -50px;      width: 100px;      height: 100px;      border: 1px solid blue;    }复制代码

原理:这个的实现方法原理还是很好理解的。相对父元素定位,距上边和左边个一半,然后在减去子元素的一半。

2.绝对定位与margin:auto实现水平垂直居中

css:

.parent {  position: relative;  width: 600px;  height: 600px;  margin: auto;  border: 1px solid red;}.child {  position: absolute;  margin: auto;  top: 0;  left: 0;  right: 0;  bottom: 0;  width: 100px;  height: 100px;  border: 1px solid blue;}复制代码

原理:这个方法的实现原理看了张鑫旭大神的博客自己还是一直半解的。如果有同学知道可以在评论区探讨下。

未知宽高的元素如何进行水平垂直居中

1.无所不能的css3来实现

css:

.parent {      position: relative;      width: 600px;      height: 600px;      margin: auto;      border: 1px solid red;    }.child {      position: absolute;      width: 100px;      height: 100px;      border: 1px solid blue;    }    .method3 {      top: 50%;      left: 50%;      transform: translate(-50%, -50%);    }复制代码

原理:这种方法的实现原理其实跟固定宽高的方法一是一样的。但是他有一个有点就是不需要知道元素的宽高。主要是通过transform中translate偏移的百分比值是相对于自身大小的。所以就可以实现不知道宽高还是可以实现垂直水平居中。

2.flex实现水平垂直居中

css:

.parent {    display: flex;    justify-content: center;    align-items: center;    width: 600px;    height: 600px;    margin: auto;    border: 1px solid red;}.child {    width: 100px;    height: 100px;    border: 1px solid blue;}复制代码

原理:通过justify-content和align-items两个属性来实现水平垂直居中,一个定义的是水平轴山上的对齐方式,另一个则定义的是垂直轴上的对齐方式。

详细代码在这里:

以上部分内容参考自其它文章。可以点击链接查看原文。

最后:如果讲诉不当的地方。请在评论区指出。你们的支持,是我不断进步的源泉。

参考资料

转载地址:http://ewwnx.baihongyu.com/

你可能感兴趣的文章
JS复习第五章
查看>>
WebApi系列~StringContent参数需要添加MetaType对象
查看>>
爱上MVC~ajax调用分部视图session超时页面跳转问题
查看>>
品味人生~咖啡与程序员
查看>>
我心中的核心组件(可插拔的AOP)~调度组件quartz.net
查看>>
Linq实体类的设计(解决了复合查询的问题,同时解决了LINQ上下文缓存问题)...
查看>>
NPOI excel读取转datatabel excel日期格式处理
查看>>
Android Spinner级联菜单实现
查看>>
React入门
查看>>
php简单实用的验证码生成类
查看>>
leetcode Intersection of Two Linked Lists
查看>>
云计算浅谈
查看>>
PyQt5学习笔记1-安装PyQt5
查看>>
如何安装mariadb服务器和解决 can't connect to local mysql server through socket...
查看>>
12月3日站立会议
查看>>
CSS3 修改和去除移动端点击事件出现的背景框 (tap-highlight-color)
查看>>
form表单直接传文件
查看>>
集合框架综述
查看>>
解决ReSharper自动删除换行
查看>>
21window_21_Dynamic_library动态库
查看>>