Html+CSS垂直居中的N种方法(大全)
1. absolute + margin auto
利用元素 position: absolute 和 margin: auto实现垂直居中,适用于父子盒子里。
代码:
.parent{position: relative;width: 500px;height: 500px;border: 1px solid red;}.child{background-color: aquamarine;width: 50px;height: 50px;/* 主要代码 */position: absolute;top :0;bottom: 0;left: 0;right: 0;margin: auto;}
2.absolute + -margin
利用绝对定位百分比 50% 来实现,然后再用负的 margin-top 和 margin-left 来进行简单的位移即可。适用于父子盒子里。
代码:
.parent{position: relative;width: 500px;height: 500px;border: 1px solid red;}.child{background-color: aquamarine;width: 100px;height: 100px;/* 主要代码 */position:absolute;top: 50%; left: 50%;margin-top: -50px; //这里返回的是自身宽度的一半margin-left: -50px; //这里返回的是自身高度的一半}
3. absolute + calc
使用 CSS3 的一个计算函数来进行计算即可;方法与上面类似。适用于父子盒子里。
了解calc的用法具体参考:CSS calc()函数的用法
代码:
.parent{position: relative;width: 500px;height: 500px;border: 1px solid red;}.child{background-color: blanchedalmond;width: 100px;height: 100px;/* 主要代码 */position:absolute;top: calc(50% - 50px); //这里减去的是自身宽度的一半left: calc(50% - 50px); //这里减去的是自身高度的一半}
4. absolute + transform
利用 CSS3 的新特性 transform;因为 transform 的 translate 属性值如果是一个百分比,那么这个百分比将是基于自身的宽高计算出来的。适用于父子盒子里。
代码:
.parent{position: relative;width: 500px;height: 500px;border: 1px solid red;}.child{background-color: burlywood;width: 100px;height: 100px;/* 主要代码 */position:absolute;top: 50%;left: 50%;transform: translate(-50%, -50%); //横纵各返回自身宽度的50%}
5. line-height + vertical-align
把当前元素设置为行内元素,然后通过设置父元素的 text-align: center; 实现水平居中;同时通过设置当前元素的 vertical-align: middle; 来实现垂直居中;最后设置当前元素的 line-height: initial; 来继承父元素的line-height。
具体参考:css之 vertical-align用法详解
代码:
.parent{width: 500px;border: 1px solid red;line-height: 100px;/* 主要代码 */text-align: center;}.child{background-color: blue;/* 主要代码 */display: inline-block;vertical-align: middle;line-height: initial;}
6.flex 布局
要说现在较为流行和使用较多的布局方案,那么非 flex 莫属了。
代码:
.parent{width: 500px;height: 200px;border: 1px solid red;/* 主要代码 */display: flex;justify-content: center;align-items: center;}.child{background-color: black;}
justify-content 表示:设置或检索弹性盒子元素在主轴(横轴)方向上的对齐方式;
align-items 表示:定义 flex 子项在 flex 容器的当前行的侧轴(纵轴)方向上的对齐方式。
7.flex + margin auto
代码:
.parent{width: 500px;height: 400px;border: 1px solid red;/* 主要代码 */display: flex;}.child{background-color: coral;/* 主要代码 */margin: auto;}
8.grid 网格布局
grid 布局相信大家在实际项目中用的较少,主要是该布局实在是太超前,导致了兼容性不是那么理想,但是不可否认的是 grid 的能力在 css 布局中绝对是一个质的飞越。
CSS Grid 包含与 Flexbox 几乎相同的对齐选项,因此我们可以在 grid-container 上优雅的实现。
具体参考:grid布局
代码:
.parent{width: 500px;height: 200px;border: 1px solid red;/* 主要代码 */display: grid;align-items: center;justify-content: center;}.child{background-color: brown;}
或者我们同样这样写:
.parent{width: 500px;height: 200px;border: 1px solid red;/* 主要代码 */display: grid;}.child{background-color: brown;align-self: center;justify-self: center;}
Html+CSS垂直居中的N种方法(大全)相关推荐
- 高度不定垂直居中_经典:CSS垂直居中的七种方法
点击上方"程序员黑叔",选择"置顶或者星标" 你的关注意义重大! 作者: 来自互联网 我们在编辑一个版面,通常都会用到水平居中和垂直居中来设计,而水平居中很好处 ...
- css 图文 上下 居中,CSS垂直居中的6种方法
垂直居中一直是CSS布局中比较令人头疼的问题,相比于水平居中,垂直居中对于不同的元素类型需要采取截然不同的策略,因此常常会因为策略的误用导致无法成功居中.这篇文章总结了垂直居中的6种常见策略. Ver ...
- CSS 垂直居中的七种方法——史上最详细总结
博主目前在蚂蚁集团-体验技术部,AntV/S2 是博主所在团队的开源项目--多维交叉分析表格,欢迎使用,感谢到 S2 github 仓库点赞 star,有任何关于前端面试.就业.技术问题都可给在文章后 ...
- 经典:CSS垂直居中的七种方法
点击上方"程序员黑叔",选择"置顶或者星标" 你的关注意义重大! 作者: 来自互联网 我们在编辑一个版面,通常都会用到水平居中和垂直居中来设计,而水平居中很好处 ...
- CSS垂直居中的6种方法
垂直居中一直是CSS布局中比较令人头疼的问题,相比于水平居中,垂直居中对于不同的元素类型需要采取截然不同的策略,因此常常会因为策略的误用导致无法成功居中.这篇文章总结了垂直居中的6种常见策略. 1.V ...
- CSS垂直居中的8种方法
1.通过verticle-align:middle实现CSS垂直居中. 通过vertical-align:middle实现CSS垂直居中是最常使用的方法,但是有一点需要格外注意,vertical生效的 ...
- 使用 CSS 实现垂直居中的8种方法
CSS垂直居中的8种方法 目录 CSS垂直居中的8种方法 1.通过vertical-align:middle实现CSS垂直居中. 2.通过display:flex实现CSS垂直 ...
- html怎么把元素垂直居中显示,分享html css元素垂直居中的几种方法
元素垂直居中的几种方法: 方法一:设置height和line-height 在CSS中,line-height 属性设置两段段文本之间的距离,也就是行高,如果我们把一段文本的line-height设置 ...
- CSS实现垂直居中的7种方法
CSS实现垂直居中的7种方法 1.设定行高(line-height) 2.设置伪元素::before 3.absolute + transform 4. 设置绝对定位 5.设置display:flex ...
最新文章
- SQL Server 性能基线和监控
- 这 3 个字是未来发展关键,不重视的企业,正在被淘汰
- 【转】Linux查看物理CPU个数、核数、逻辑CPU个数
- 2020-2021网络游戏行业人才招聘报告
- 学法减分助手PRO小程序
- C/C++ Native 包大小测量
- JDK8新特性之Lambda表达式和四大函数接口
- logo qt添加_Qt官方示例-窗口标志
- 使用Mongo Shell和Java驱动程序删除MongoDB的示例
- 【基础】集成学习 (Ensemble Learning)
- Qt中qmake的INSTALLS变量将编译文件拷到运行目录
- WebIDE 使用指南
- 学习管理系统五大好处
- 【数电】(四)逻辑门电路
- 输出月份英文名java_输出月份英文名 (30 分)
- NSGAII快速非支配遗传算法二代学习笔记1
- 企业应用程序安全的新「守护神」
- Revit2016 笔记04
- 几何光学学习笔记(39)- 7.10 中国颜色体系
- 突发事件舆情管理分析