CSS 元素垂直居中的 6种方法

2023-10-27

转自: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%E7%9A%84-6%E7%A7%8D%E6%96%B9%E6%B3%95/


利用CSS进行元素的水平居中,比较简单,行级元素设置其父元素的text-align center,块级元素设置其本身的left 和 right margins为auto即可。本文收集了六种利用css进行元素的垂直居中的方法,每一种适用于不同的情况,在实际的使用过程中选择某一种方法即可。

Line-Height Method

line height demo
试用:单行文本垂直居中,demo

代码:

html

<div id="parent">
    <div id="child">Text here</div>
</div>

css

#child {
    line-height: 200px;
}
垂直居中一张图片,代码如下

html

<div id="parent">
    <img src="image.png" alt="" />
</div>
css

#parent {
    line-height: 200px;
}
#parent img {
    vertical-align: middle;
}
CSS Table Method

table cell demo

适用:通用,demo

代码:

html

<div id="parent">
    <div id="child">Content here</div>
</div>

css

#parent {display: table;}
#child {
    display: table-cell;
    vertical-align: middle;
}


低版本 IE fix bug:
#child {
    display: inline-block;
}
Absolute Positioning and Negative Margin

absolute positioning and negative margin demo

适用:块级元素,demo

代码:

html

<div id="parent">
    <div id="child">Content here</div>
</div>
css

#parent {position: relative;}
#child {
    position: absolute;
    top: 50%;
    left: 50%;
    height: 30%;
    width: 50%;
    margin: -15% 0 0 -25%;
}

Absolute Positioning and Stretching

absolute positioning and vertical stretching demo

适用:通用,但在IE版本低于7时不能正常工作,demo

代码:

html

<div id="parent">
    <div id="child">Content here</div>
</div>

css

#parent {position: relative;}
#child {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    width: 50%;
    height: 30%;
    margin: auto;
}


Equal Top and Bottom Padding

vertical centering with padding demo

适用:通用,demo

代码:

html

<div id="parent">
    <div id="child">Content here</div>
</div>
css

#parent {
    padding: 5% 0;
}
#child {
    padding: 10% 0;
}
Floater Div

vertical centering with floater div demo

适用:通用,demo

代码:

html

<div id="parent">
    <div id="floater"></div>
    <div id="child">Content here</div>
</div>
css

#parent {height: 250px;}
#floater {
    float: left;
    height: 50%;
    width: 100%;
    margin-bottom: -50px;
}
#child {
    clear: both;
    height: 100px;
}

以上就是六种方法,可以在实际的使用过程中合理选择,参考文章《 vertical-centering》。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CSS 元素垂直居中的 6种方法 的相关文章

随机推荐

  • 失业的程序员(六):加班

    本系列前章 失业的程序员 一 二 三 四 五 一 本文前戏 谈爱 每次开文我总要说一些看起来和本文其实关系不大的啰嗦话 也希望各位观众能够习惯 稍微花费大家几分钟时间便可进入正文 再一次跪求谅解 前几天在家看 我是歌手 复活赛那期 着实震撼
  • 1.开始学习前端(HTML+CSS+JavaScript)学习记录

    1 了解前端 Web开发 对于网页开发 最基础的 最核心的技术就是html css javascript 简称js 这三个技术也被称为前端开发 新三剑客 在Web1 0时代的 网页制作 网页三剑客是指网站的开发工具 Dreamweaver
  • 2009年8月21日

    开通博客了 new Start 1 加了的Active控件Windows Media Player如何能使用快进FastForward 和快退FastForward 这两个功能呢 给控件关联一个control变量 然后调用FastForwa
  • 大数据分析陷阱与Simpson’s Paradox(辛普森悖论)

    在大数据分析时 你有没有遇到这样一种奇怪现象 当分开看数据的时候会得到一种结论 但是合起来之后发现情况却完全改变 这就是著名的辛普森悖论 它总是隐藏在大数据之中 成为大数据分析的陷阱之一 1 含义 辛普森悖论 Simpson s Parad
  • 用C语言进行面向对象编程

    在C语言中进行面向对象编程需要使用一些特定的技术和方法 具体如下 结构体 在C语言中 结构体可以用来表示一个对象的属性和状态 相当于一个类的实例变量 结构体中可以包含不同类型的数据成员 如整数 字符 指针等 函数指针 C语言中可以使用函数指
  • 全局配置Element UI 中的 $message 的显示时长

    首先说下我是全局引入的Element UI组件 这是要更改message 的默认的时长 重写message的方法 import ElementUI from element ui import element ui lib theme ch
  • 修改 el-dialog__body padding

    在dialog外部套个div 再写deep addDia deep el dialog body padding bottom 0
  • angular 路由

    参考 angular 路由 文档 路由案例 路由参数 paramMap和Snapshot 当组件需要复用的时候使用paramMap获取路由参数 如一个组件不刷新 只更改了路由参数 那么就可以实时获取路由参数 当确定组件不复用的时候直接使用S
  • Python turtle画图库&&画姓名

    看一下我定义的change 和run 函数 绘图坐标体系 作用 设置主窗体的大小和位置 turtle setup width height startx starty width 窗口宽度 若值是整数 表示像素值 若是小数 表示窗口宽度与屏
  • 欧拉角万向节锁问题

    欧拉角万向节锁问题 2017 05 28 01 38 465人阅读 评论 0 收藏 举报 分类 计算机图形学 5 版权声明 本文为博主原创文章 未经博主允许不得转载 这两天一直纠结在欧拉角的万向节锁问题上 查了很多资料 可是依旧没有完全弄懂
  • Linux操作系统之僵尸进程

    文章目录 一 什么是僵尸进程 二 僵尸进程带来的危害 三 如何解决僵尸进程 四 什么是孤儿进程 一 什么是僵尸进程 子进程先于父进程节结束 父进程没有调用wait 获取子进程的退出码 子进程此时变为僵尸进程 在每个进程退出时 内核释放所有资
  • 阿里云 linux 的nginx 配置uni-app的H5前端项目vue,后端接口阿里云。

    背景 vue项目调用接口是阿里云的 H5网站也要部署到阿里云 2个不同的服务器 需要做nginx部署与api代理 1 端口配置 首先当然是买个阿里云服务器 这里是配置是linux系统 配置访问的域名 再接着 给网站配置需要的端口 如下 配置
  • 解决Windows系统缺少MCRecvSrc.dll文件的问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库 这时你可以下载这个MCRecvS
  • 国外it的一些学习网站

    1 国外有什么好的网站推荐 https blog csdn net AndroidCC article details 55223971 2 一些比较好的国外IT网站 https blog csdn net fzy1017692329 ar
  • Matlab中dir函数使用小技巧

    想必很多小伙伴在matlab中对文件进行批处理时经常会使用dir函数吧 dir函数用于列出文件夹中的内容 使用语法如下 Matlab dir 列出当前文件夹中的文件和文件夹 当然调用方式也可以是listing dir dir name 列出
  • 用JAVA实现停车场管理系统

    该程序使用ArrayList存储停车记录 并通过switch case语句实现菜单选择功能 主要功能包括 停车 输入车牌号和进入时间 自动分配停车位编号 结算 根据停车位编号计算停车费用 计费标准为停车时长 秒 乘以每秒费用0 05元 同时
  • Qt实战 无边框窗口的实现

    本次分享 是基于Qt实现了无边框的窗口 并支持拖动缩放 最大化 最小化 关闭 双击全屏等 实现无边框其实很简单 一行代码搞定 setWindowFlag Qt FramelessWindowHint 但是 隐藏了窗口的默认边框 标题栏没了
  • Finalshell上传文件失败或者进度总为百分之零解决方法

    1 首先连接主机 然后切换到root用户 2 然后右键当前窗口的窗口名 选复制标签 3 然后再右键第一个窗口的窗口名 选断开 或者直接关闭第一个窗口 4 之后你就可以在第二个窗口正常上传文件了
  • Linux专栏(一):VMware的下载与安装

    文章目录 1 背景 2 下载VMware虚拟机 1 背景 想要学习Linux系统但又不想经历安装双系统复杂的操作 可以试试虚拟机方案 只是虚拟机方案不可以调用GPU就非常的无语 作为初学者学习还是非常不错的 注意 倘若真正转入Linux系统
  • 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 E7 9A 84 6 E7 A7 8D E6 9