惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

云风的 BLOG
云风的 BLOG
量子位
H
Help Net Security
月光博客
月光博客
Last Week in AI
Last Week in AI
F
Fortinet All Blogs
酷 壳 – CoolShell
酷 壳 – CoolShell
The Cloudflare Blog
博客园 - Franky
The GitHub Blog
The GitHub Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
N
Netflix TechBlog - Medium
Vercel News
Vercel News
T
Tailwind CSS Blog
Stack Overflow Blog
Stack Overflow Blog
aimingoo的专栏
aimingoo的专栏
Martin Fowler
Martin Fowler
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 叶小钗
J
Java Code Geeks
IT之家
IT之家
P
Proofpoint News Feed
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
小众软件
小众软件
Engineering at Meta
Engineering at Meta
U
Unit 42
F
Full Disclosure
B
Blog
The Hacker News
The Hacker News
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Simon Willison's Weblog
Simon Willison's Weblog
Microsoft Security Blog
Microsoft Security Blog
Cyberwarzone
Cyberwarzone
V
V2EX
C
CERT Recently Published Vulnerability Notes
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Spread Privacy
Spread Privacy
Jina AI
Jina AI
GbyAI
GbyAI
博客园 - 三生石上(FineUI控件)
Blog — PlanetScale
Blog — PlanetScale
Know Your Adversary
Know Your Adversary
美团技术团队
罗磊的独立博客
Scott Helme
Scott Helme
Hugging Face - Blog
Hugging Face - Blog
S
Schneier on Security
Google DeepMind News
Google DeepMind News
人人都是产品经理
人人都是产品经理

博客园 - 吹鱼算法

自己出的一套前端笔试题 js文件获取自身的URL路径 Vue 数组封装和组件data定义为函数一些猜测 背景图片 设置距右边距离 手机端 一个像素线解决方案 css3 div 居中 怎么布局宽度自适应的正方形 前端Mvvm QC 设计解析 前端Mvvm QC 上传了测试版 对react的几点质疑 为什么我们的web前端变的越来越复杂 扔格子游戏 -webkit-overflow-scrolling:touch iosBug on 在ios下 父对象是body的时候会 不调用 动态是执行脚本 html的转码玉反转码 获取url据对路径写法 CSS 外边距合并 页面禁制选中元素的 背景变蓝的通用写法
Display: table-cell实现img、文字垂直居中
吹鱼算法 · 2016-01-07 · via 博客园 - 吹鱼算法

在文章开头先说明一下此方法的兼容性,IE8+以及其他现代浏览器都支持此属性。

直接献上一个demo

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Table-cell Demo</title>

<style type="text/css">

body {

padding: 0;

margin: 0;

}

h3 {

position: absolute;

z-index: 9;

top: 0;

right: 0;

margin: 0;

}

h5 {

position: absolute;

z-index: 8;

top: 230px;

right: 0;

margin: 0;

color: red;

}

.line {

position: absolute;

width: 100%;

height: 250px;

border-bottom: 1px solid red;

}

.box {

/*IE的主流浏览器识别的垂直居中的方法*/

display: table-cell;

vertical-align: middle;

/*设置水平居中*/

text-align: center;

/* 针对IEHack */

*display: block;

/*约为高度的0.873200*0.873 约为175*/

*font-size: 175px;

/*防止非utf-8引起的hack失效问题,如gbk编码*/

*font-family: Arial;

width: 500px;

height: 500px;

border: 1px solid #ccc;

}

.img1 {

width: 40px;

height: 40px;

/*设置图片垂直居中*/

vertical-align: middle;

}

.img2 {

width: 80px;

height: 80px;

/*设置图片垂直居中*/

vertical-align: middle;

}

.img3 {

width: 120px;

height: 120px;

/*设置图片垂直居中*/

vertical-align: middle;

}

</style>

</head>

<body>

<div class="line"></div>

<div class="box">

<span>bpdqooo</span>

<img class="img1" src="./home.jpg"/>

<img class="img2" src="./home.jpg"/>

<img class="img3" src="./home.jpg"/>

<span>bpdqooo</span>

</div>

<h3>table-cell实现垂直居中</h3>

<h5>中线</h5>

</body>

</html>

以下是说明:

class=”box”div设为display: table-cell,即可实现div内元素的垂直居中

将我的demo用浏览器打开,可以看到我放了3张大小不一的图片,还有两段文字,我们暂且把这些东西看作是一行

好,为什么我要放三张图片呢?

现在我们可以做个实验:

把最大的图片(class=”img3”)设为vertical-align: top

可以看到其他图片和文字均向上偏移,而且第二大的图片(class=”img2”)顶部和img3对齐,这说明,img3vertical-align属性控制行内其他所占高度更小的元素,并且对img2作用最强

接着上一步,再来做个实验:

img2设为vertical-align: top

可以看到img1和文字均向上偏移,而且img1顶部和img3对齐,这说明,img2vertical-align属性控制行内其他所占高度更小的元素,并且对img1作用最强

你是不是似乎明白了什么,同理,若把img设为vertical-align: top,那么两边的文字将会向上偏移,顶部与img1对齐。

结论:

table-cell内的元素,均可视为同一行中

如果只有单行,

该行的高度由最高的元素决定

若对行内某一元素进行设置vertical-align: top,则该属性影响其余高度更小的元素,且对高度最接近的元素作用最强(使之与其顶部对齐)

如果有多行,