垂直居中是布局中十分常见的效果之一,为实现良好的兼容性,PC端实现垂直居中的方法一般是通过绝对定位,table-cell,负边距等方法。有了css3,针对移动端的垂直居中就更加多样化。

方法1:table-cell

<div class="box box1"><span>垂直居中</span>
</div>.box1{display: table-cell;vertical-align: middle;text-align: center;
}

方法2:display:flex

.box2{display: flex;justify-content:center;align-items:center;
}

方法3:绝对定位和负边距

.box3{position:relative;}
.box3 span{position: absolute;width:100px;height: 50px;top:50%;left:50%;margin-left:-50px;margin-top:-25px;text-align: center;
}

方法4:绝对定位和0

.box4 span{width: 50%; height: 50%; background: #000;overflow: auto; margin: auto; position: absolute; top: 0; left: 0; bottom: 0; right: 0;
}

这种方法跟上面的有些类似,但是这里是通过margin:auto和top,left,right,bottom都设置为0实现居中,很神奇。
不过这里得确定内部元素的高度,可以用百分比,比较适合移动端。

方法5:translate

.box6 span{position: absolute;top:50%;left:50%;width:100%;transform:translate(-50%,-50%);text-align: center;
}

这实际上是方法3的变形,移位是通过translate来实现的。

方法6:display:inline-block

.box7{text-align:center;font-size:0;
}
.box7 span{vertical-align:middle;display:inline-block;font-size:16px;
}
.box7:after{content:'';width:0;height:100%;display:inline-block;vertical-align:middle;
}

这种方法确实巧妙…通过:after来占位。

方法7:display:flex和margin:auto

.box8{display: flex;text-align: center;
}
.box8 span{margin: auto;}

方法8:display:-webkit-box

.box9{display: -webkit-box;-webkit-box-pack:center;-webkit-box-align:center;-webkit-box-orient: vertical;    text-align: center
}

方法9:display:-webkit-box

这种方法,在 content 元素外插入一个 div。设置此 div height:50%; margin-bottom:-contentheight;。
content 清除浮动,并显示在中间。

<div class="floater"></div>
<div class="content"> Content here </div>  .floater {float:left; height:50%; margin-bottom:-120px;
}
.content {clear:both; height:240px; position:relative;
}

优点:
适用于所有浏览器
没有足够空间时(例如:窗口缩小) content 不会被截断,滚动条出现

面试硬核干货:纯CSS实现垂直居中,快来收藏吧相关推荐

  1. 硬核干货:网易云音乐如何做产品创新

    网易云音乐是大家非常熟悉和喜欢的一款产品,作为一个音乐类应用,成功融合进了社交等元素,满足了多样化的用户需求.那么今天产品系就带大家揭秘网易云音乐是怎样做产品的,而揭秘者正是网易云音乐的产品总监沈博文 ...

  2. e站app里站hosts_硬核干货区 | E站的国际站运营知识星球上线啦

    朋友们大家好,E站已上线了知识星球内容库和问答圈,以阿里国际站,Wordpress自建站,Google SEO的更新内容为主,用原理技术的视角+全栈运营的思维去加成对店铺的运营和优化,知道为什么要这样 ...

  3. 【硬核干货】4500字、10个案例分享几个Python可视化小技巧,助你绘制高质量图表...

    大家好,这里是俊欣,又是新的一周,好吧,打工人真的是太苦了 一般在Python当中,我们用于绘制图表的模块最基础的可能就是matplotlib了,今天小编分享几个用该模块进行可视化制作的技巧,帮助你绘 ...

  4. 硬核干货来了!手把手教你实现热力图!

    以下内容转载自腾讯位置服务公众号的文章<硬核干货来了!鹅厂前端工程师手把手教你实现热力图!> 作者:腾讯位置服务 链接:https://mp.weixin.qq.com/s/bgS7uFl ...

  5. 10W+字C语言硬核总结(二),值得阅读收藏!

    0.为什么使用指针 假如我们定义了 char a='A' ,当需要使用 'A' 时,除了直接调用变量 a ,还可以定义 char *p=&a ,调用 a 的地址,即指向 a 的指针 p ,变量 ...

  6. 硬核干货合集!500+篇Java干货技术文章整理|资源|书单|工具|面试指南|强烈建议打开!

    今天给大家推荐一位在阿里做Java的朋友给大家,他是公众号[程序员书单]的作者黄小斜. 他的公众号[程序员书单]这两年来累积了200多篇优质原创文章,独家原创的系列文章有<五分钟学编程>系 ...

  7. mysql long类型_怒肝两个月MySQL源码,我总结出这篇2W字的MySQL协议详解(超硬核干货)!!...

    点击上方蓝色"冰河技术",关注并选择"设为星标" 持之以恒,贵在坚持,每天进步一点点! 作者个人研发的在高并发场景下,提供的简单.稳定.可扩展的延迟消息队列框架 ...

  8. 硬核干货Java集合详解

    目录 一.问题是最好的老师 二.集合的由来 三.数组存在的问题 四.数组和集合的区别? 五.集合是什么? 六.集合整体架构图 七.集合架构图详解 1.Collection 2.List ArrayLi ...

  9. 程序员必须掌握的 CPU 硬核干货!

    作者 | cxuan 责编 | maozz 大家都是程序员,大家都是和计算机打交道的程序员,大家都是和计算机中软件硬件打交道的程序员,大家都是和CPU打交道的程序员,所以,不管你是玩儿硬件的还是做软件 ...

  10. 纯CSS实现垂直居中的几种方法

    垂直居中是布局中十分常见的效果之一,为实现良好的兼容性,PC端实现垂直居中的方法一般是通过绝对定位,table-cell,负边距等方法.有了css3,针对移动端的垂直居中就更加多样化. 方法1:tab ...

最新文章

  1. sklearn中的交叉验证(Cross-Validation)
  2. android listview 中的checkbox,Android中ListView与CheckBox的使用,及问题解决
  3. 关于V$OPEN_CURSOR
  4. 把HTML代码上传到gitee,使用git上传项目到gitee以及VS使用git管理项目
  5. 相信冬天已来FreeEIM
  6. LaTeX中常用表格制作方法总结
  7. linux系统命令学习系列8-文件相关操作touch,rm,mv,cat,head,tail命令
  8. WPS Office 免费版和专业增强版区别是什么
  9. Excel Vba编程初探一
  10. ape flac 音频截取_为什么选择FLAC音频
  11. 学习OpenCV——计算邻接区域列表(build_adjoin)
  12. 摄像机DSP芯片介绍
  13. Skype无法显示登录界面
  14. 前置条件,不变性条件,后置条件 --《java并发编程实战》
  15. [工具集]介绍一波我常用的小工具
  16. 自己开发的j2ee Web快速开发平台简介
  17. linux IRQ Management(六)- DTS及调试
  18. 什么是稀疏数组?稀疏数组详解
  19. 江苏2021高考成绩查询全省排名,2021江苏高考成绩排名顺序查询,江苏省高考全省排名怎么查...
  20. 翻译资格考试英语笔译三级考试大纲

热门文章

  1. Asp.Net 2.0 发布问题(转)
  2. 啥?喝着阔落吃着西瓜就把Promise手写出来了???
  3. 7.通过scp命令从linux服务器下载文件夹
  4. 背景减法——自组织算法
  5. HTML5 vs. Flash:Adobe面向何方?
  6. 如何使用JavaScript来写ASP程序
  7. 15.软件架构设计:大型网站技术架构与业务架构融合之道 --- 技术架构与业务架构的融合
  8. 6.企业安全建设入门(基于开源软件打造企业网络安全) --- 代码审计
  9. 56.Linux/Unix 系统编程手册(下) -- SOCKET 介绍
  10. 8. PHP 5 echo 和 print 语句