顽石系列:CSS实现垂直居中的五种方法
顽石系列:CSS实现垂直居中的五种方法
方法一:Vertical-Align法
我们使用 vertical-align:middle 来实现元素垂直居中。
CSS 的属性 vertical-align
用来指定行内元素(inline)或表格单元格(table-cell)元素的垂直对齐方式。
我们可以把div
的显示方式设置为表格,从而使用表格的 vertical-align
middle 属性。
<style>
#wrapper{
width: 200px;
height: 200px;
background-color: aqua;
display: table;
}
#content{
display: table-cell;
vertical-align: middle;
}
</style> <div id="wrapper">
<div id="content">
Content is Here!
</div>
</div>
分析
示例
优点
content
可以动态改变高度(不需在 CSS 中定义)。当wrapper
里没有足够空间时,content
不会被截断
缺点
- Internet Explorer(甚至 IE8 beta)中无效,许多嵌套标签(其实没那么糟糕,另一个专题)
方法二:绝对定位+负边距法
这个方法使用绝对定位的 div
,把它的 top
设置为 50%
,margin-top
设置为负的 content
高度。这意味着对象必须在 CSS 中指定固定的高度。因为有固定高度,也许你得给 content
指定 overflow:auto
,这样如果 content
太多的话,就会出现滚动条,以免content
溢出。
<div class="content"> Content goes here</div> #content {
position: absolute;
top: 50%;
height: 240px;
margin-top: -120px; /* negative half of the height */
}
分析
优点
- 适用于所有浏览器
- 不需要嵌套标签
缺点
- 没有足够空间时,
content
会消失(类似div
在body
内,当用户缩小浏览器窗口,滚动条不出现的情况)
方法三:浮动元素法
这个方法的原理是利用一个空的浮动元素来控制主要内容在容器中的位置。
比如我们的目标是让红色DIV位于绿色父级元素的中间,我们要让一个浮动元素占据黄色的位置,然后红色元素清除浮动,自然而然到达居中位置。
#parent {
padding: 5% 0;
background-color: green;
} #floater {
float: left;
height: 50%;
width: 100%;
margin-bottom: -50px;
background: yellow;
} #child {
clear: both;
height: 100px;
background: red;
} <div id="parent">
<div id="floater"></div>
<div id="child">Content here</div>
</div>
方法四:FLEX定位法
CSS属性flex
规定了弹性元素如何伸长或缩短以适应flex容器中的可用空间。
效果是这样的:
#wrapper{
display: flex;
height: 100px;
background: green;
}
#content{
margin: auto;
background-color: red;
} <div id="wrapper">
<div id="content">
Content is Here!
</div>
</div>
还有一种垂直居中的实现方式 ,针对移动端页面布局的,很好用
#parent{
display:flex ;
align-items:center; 垂直居中
justify-content:center ; //水平居中
}
方法五:Line-Height方法
这个方法适用于单行文字的垂直居中,只需要将包含文字元素的容器行高设置为大于字体大小并且等于元素的高度。默认情况下,文字上下部分会留有相同的空间,因而实现了文字的垂直居中。
<div id="parent">
<div id="child">Text here</div>
</div> #child {
line-height: 200px;
}
这种方法只适用于单行文字的垂直居中,如果需要多行文字居中,需要选择其他方法。
参考资料
行内元素的记录规则
字体大小要加粗,组合图像输入框,锚准斜体的菜单,强调换行上下标。
- 行内元素:https://blog.csdn.net/bwf_erg/article/details/69844527
- MDN文档:https://developer.mozilla.org/zh-CN/docs/Web/CSS/vertical-align
- 六种方法:https://www.jianshu.com/p/086364d3d5e2
- 五种方法:https://www.qianduan.net/css-to-achieve-the-vertical-center-of-the-five-kinds-of-methods/
顽石系列:CSS实现垂直居中的五种方法的更多相关文章
- css 水平居中垂直居中的几种方法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- CSS总结div中的内容垂直居中的五种方法
一.行高(line-height)法 如果要垂直居中的只有一行或几个文字,那它的制作最为简单,只要让文字的行高和容器的高度相同即可,比如: p { height:30px; line-height:3 ...
- CSS实现垂直居中的5种方法
利用 CSS 来实现对象的垂直居中有许多不同的方法,比较难的是选择那个正确的方法.我下面说明一下我看到的好的方法和怎么来创建一个好的居中网站. 使用 CSS 实现垂直居中并不容易.有些方法在一些浏览器 ...
- div中的内容垂直居中的五种方法
一.行高(line-height)法 如果要垂直居中的只有一行或几个文字,那它的制作最为简单,只要让文字的行高和容器的高度相同即可,比如: p { height:30px; line-height:3 ...
- [转]-CSS 元素垂直居中的6种方法
原文地址:http://blog.zhourunsheng.com/2012/03/css-%E5%85%83%E7%B4%A0%E5%9E%82%E7%9B%B4%E5%B1%85%E4%B8%AD ...
- 提高CSS文件可维护性的五种方法
当完成一项前端的工作之后,许多人都会忘记该项目的结构与细节.然而代码并不是马上就能完全定型,在余下的时间里还有不断的维护工作,而这些工作也许不会是你自己完成.所以,结构优良的代码能很大程度上优化它的可 ...
- CSS 元素垂直居中的 6种方法
利用CSS进行元素的水平居中,比较简单,行级元素设置其父元素的text-align center,块级元素设置其本身的left 和 right margins为auto即可.本文收集了六种利用css进 ...
- 纯CSS实现垂直居中的7种方法
今天申请博客通过了,给大家讲讲我所看到过的纯css实现垂直居中的各种方法.为什么要把它作为第一篇文章呢?因为这是我刚开始接触前端学到的对我最有用的知识,希望大家也可以从中获益! 在CSS中实现水平居中 ...
- 纯CSS实现垂直居中的几种方法
垂直居中是布局中十分常见的效果之一,为实现良好的兼容性,PC端实现垂直居中的方法一般是通过绝对定位,table-cell,负边距等方法.有了css3,针对移动端的垂直居中就更加多样化. 方法1:tab ...
随机推荐
- 141. Linked List Cycle【easy】
141. Linked List Cycle[easy] Given a linked list, determine if it has a cycle in it. Follow up:Can y ...
- Lua顺序 执行顺序
1.4.2. Lua顺序 Nginx下Lua处理阶段与使用范围: init_by_lua http set_by_lua server, server if, location, location i ...
- Ultra-QuickSort - poj 2299 (归并排序+统计逆序数)
利用归并排序统计逆序数,利用归并求逆序在对子序列s1和s2在归并时(s1,s2已经排好序),若s1[i]>s2[j](逆序状况),则逆序数加上s1.length-i,因为s1中i后面的数字对于s ...
- Nodejs各种功能Module的收集整理
收集整理接触过的各种常用的nodejs modules,不断更新~~~ ================================================================ ...
- [Unity3D]Unity3D游戏开发之伤害数值显示
大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei.众所周知,在RPG游戏策划中最为重要的一个环节是数值策划.数值策划是一个关于游戏平衡方面的概念 ...
- Linux(Centos6.5)下安装svn服务器,并通过http访问
linux安装svn其实很容易,个人觉得难就难在配置上,反复配置,琢磨,查找相关资料,总算是成功了.. 安装: 安装svn,一般情况下,选择yum方式安装还是比较简单的. ? 1 2 [root@mo ...
- Unity3d Resources TextAsset 文本
一些小型数据,可以用txt文本作为媒介,进行获取.传输.修改.存储: 比如:User1.2.3.txt,放入 Resources/Data 文件下: 一,Unity3d Resources.Load ...
- Android无线测试之—UiAutomator UiDevice API介绍五
屏幕旋转 一.屏幕旋转相关知识: 1)旋转方向:0度,90度(向左转),180度,270度(向右转) 2)重力感应器:重力感应器是旋转所依靠的 3)固定位置:指将屏幕方向固定在0度,90度或者180度 ...
- 1154 回文串划分(DP+Manacher)
1154 回文串划分 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 有一个字符串S,求S最少可以被划分为多少个回文串. 例如:abbaabaa,有多种划分方式. ...
- Springboot 1.5.x版本上读取自定义配置文件问题
原来的解决方案: 现在1.5.x以后取消了location地址 1.5以后解决方案: