【css】line-height实现垂直居中

69 篇文章 4 订阅
订阅专栏
替换元素与非替换元素
<body>
  <div>hello</div>
  <span>world</span>
  <img src="./imgs/路飞.jpg" alt="路飞">
</body>
div,span,img{
  width:100px;
  height:100px;
  background-color:lightskyblue;
  margin:10px;
}

在这里插入图片描述
块级元素可以设置widthheight
有的内联元素设置widthheight后,无效,如span;
有的内联元素设置widthheight后,有效,如img。img 是替换元素
浏览器会根据 替换元素 的属性来显示内容,且通常都拥有自己的宽高或宽高比。
img是替换元素,浏览器会根据img的src属性显示图片;
input是替换元素,浏览器会根据input的type属性来显示控件;
canvas是替换元素,它的默认尺寸是300*150。
div、p、span等大部分html标签是 非替换元素,它们把要显示的内容交给浏览器,浏览器则直接显示出来。

行高
  • 非替换元素中的内联元素,比如span,button,它们的可视高度是由行高决定的。
  body{
    margin:0;
  }
  .container{
    width:160px;
    float:left;
    margin-right:10px;
  }
  .content{
    background-color:lightgoldenrodyellow;
  }
  .higher{
    line-height:50px;
  }
<body>
    <div class="container">
      <span class="content">这个世界随时都要崩塌</span>
      <span class="content">从前我太适应悲伤</span>
    </div>
    <div class="container">
      <span class="content higher">这个世界随时都要崩塌</span>
      <span class="content higher">从前我太适应悲伤</span>
    </div>
</body>

在这里插入图片描述

  • 由于幽灵空白节点的存在,块级元素的可视高度也受行高影响
    幽灵空白节点 这个说法来自 张鑫旭大神。
<body>
  <div><span></span></div>
</body>

在这里插入图片描述
将空span的display设置为 inline-block后,形成了一个 行框盒子,每个行框盒子前面都有一个幽灵空白节点,line-height:100px实际作用在幽灵空白节点上,因此撑高了div。
所以,由于幽灵空白节点的存在,块级元素的可视高度也受行高影响。

    div{
      line-height:100px;
      width:100px;
      border:1px solid lightskyblue;
    }
<body>
  <div><span style="display:inline-block"></span></div>
</body>

在这里插入图片描述

行距/半行距
  body{
    margin:0;
  }
  .container{
    width:160px;
    float:left;
    margin-right:10px;
  }
  .content{
    background-color:lightgoldenrodyellow;
    line-height:50px;
  }
<body>
  <div class="container">
    <span class="content">这个世界随时都要崩塌</span>
    <span class="content">从前我太适应悲伤</span>
  </div>
  <div class="container">
    <span class="content" style="height:50px;display:block">这个世界随时都要崩塌</span>
    <span class="content" style="height:50px;display:block">从前我太适应悲伤</span>
  </div>
  <div class="container">
    <span class="content" style="height:50px;display:block">这个世界随时都要崩塌</span>
  </div>
</body>

在这里插入图片描述
行距 = 行高 - 字体大小。
半行距 = 行距 / 2。
借助 行距的上下等分机制,可以使用 行高 实现 单行文本的垂直居中。

单行文本垂直居中
  div{
    width:200px;
    line-height:100px;
    border:1px solid lightskyblue;
    text-align:center;
  }
<body>
  <div>这个世界随时都要崩塌</div>
</body>

在这里插入图片描述

多行文本垂直居中

先看个例子。

<body>
  <div class="box">
    <p>这个世界随时都要崩塌 从前我太适应悲伤</p> 
  </div>
  <div class="box">
    <p>这个世界随时都要崩塌 从前我太适应悲伤</p> 
  </div>
  <div class="box">
    <p>这个世界随时都要崩塌 从前我太适应悲伤</p> 
  </div>
  <div class="box">
    <p>这个世界随时都要崩塌 从前我太适应悲伤</p> 
  </div>
</body>
  div{
    width:200px;
    line-height:100px;
    border:1px solid lightskyblue;
    text-align:center;
  }
  .box{
    float:left;
    margin-right:10px;
  }

在这里插入图片描述
用下面这个图来一步步理解。
“这个世界随时都要崩塌 从前我太适应悲伤”,这一行文本形成一个行框盒子。
line-height:20px作用在行框盒子前面的幽灵空白节点上, p 因此有了 (20px)*2=40px 的高度。
display:inline-block使p成为一个行框盒子,line-height:100px作用在行框盒子前的幽灵空白节点上,div因此有了 100px的高度。

在这里插入图片描述
如果没有p的vertical-align:middle,此时 多行文本并不是垂直居中,而是 偏上。
此时肉眼也可辨识出来,如果你更愿意相信数据的话,给你。
在这里插入图片描述
所以,要实现多行文本垂直居中,其css样式如下:

  div{
    width:200px;
    line-height:100px;
    border:1px solid lightskyblue;
    text-align:center;
  }
  p{
    line-height:20px;
    display:inline-block;
    vertical-align: middle;
    text-align:left;
  }
<body>
  <div>
    <p>这个世界随时都要崩塌 从前我太适应悲伤</p> 
  </div>
</body>

但即使有了vertical-align:middle,也不是绝对的垂直居中,稍稍有些偏下。
在这里插入图片描述

深入理解CSS行高line-height与文本垂直居中的原理
12-01
前言在CSS中,line-height 属性设置两段段文本之间的距离,也就是行高,如果我们把一段文本的line-height设置为父容器的高度就可以实现文本垂直居中了,比如下面的例子: 复制代码代码如下:<!DOCTYPE html> <html lang=”en”> <head> <meta charset=”UTF-8″> <title>Document</title> <style> div { width: 300px; height: 200px; border:
CSS line-height行高上下居中垂直居中样式属性
12-08
在网页设计中,`line-height` 是一个非常重要的CSS样式属性,用于控制元素内部文本行之间的垂直间距,它可以帮助实现文字和图片的上下居中,以及单行或多行文本的垂直布局。`line-height` 的值可以是绝对长度单位...
CSS——line-height行高设置垂直居中
oscar92420aaa的博客
03-30 2791
line-height呢,你可以理解为每行文字所占的高度。 比如说,有一行20px大小的文字,如果设置为line-height:50px,那就是说,这行文字的高度会占50px。 显然,每个字的大小只有20px,那怎么边呢?于是呢,浏览器就把多出来的30px(50px-20px)在这行文字的上面加上了15px,下面加上了15px。 这样的话,那文字就在这50px的空间内是居中的了(这个就是浏览器规定
line-height垂直居中
faye_yang18的博客
06-01 840
行高还有一个特性,叫做垂直居中性。(把line-height值设置为height一样大小的值可以实现单行文字的垂直居中。这句话确实是正确的,但其实也是有问题的。问题在于height,height是多余的。)把line-height设置为您需要的box的大小就可以实现单行文字的垂直居中。...
CSS line-height垂直居中
qq_43539664的博客
02-08 682
CSS line-heigh与垂直居中 我们都知道,在CSS中,要想实现字体在父元素中垂直居中直接让line-height等于height即可。可是为什么这样设置就可以让文字垂直居中呢?要弄懂这个问题需要先理解以下几个概念。 1、行高 行高指一行文字的基线到下一行文字的基线之间这一段距离 行高的高度 = 字体高度 + 上间距 + 下间距 2 、行框 在浏览器中,会将给每一段文本生成一个行框,行框的高度就是行高。 这个行框是不可见的。浏览器会把在生成一个字体时会把行框分为三部分。字体本身的高度和上下两部分高
CSS行高(line-height)及文本垂直居中原理
junxinwoxin的博客
06-11 970
CSS中,line-height 属性设置两段段文本之间的距离,也就是行高,如果我们把一段文本的line-height设置为父容器的高度就可以实现文本垂直居中了,比如下面的例子: html lang="en"> head> meta charset="UTF-8"> title>Documenttitle> style>
移动端android上line-height不居中的问题的解决
01-05
现在越来越多的移动界面使用rem适配,遇到的坑也不尽其数,今天就移动端android上line-height不居中的问题提出自己的解决办法。 据分析得知原因: 1.字体大小不要使用奇数字号,带小数点的更不要提了。也就是说...
关于cssline-height(行高)设置无效的问题的解决方法
12-13
首先,`line-height`属性的目的是为了控制元素内部行与行之间的距离,它可以帮助我们实现文本的垂直居中或其他布局需求。例如,在给定的代码段中,`.head`类的元素有一个100px的高度,开发者尝试通过设置`line-...
line-height 垂直居中
06-19 152
1、单行文字的垂直居中对齐 把line-height值设置为height一样大小的值可以实现单行文字的垂直居中。这句话确实是正确的,但其实也是有问题的。问题在于height,看我的表述:“把line-height设置为您需要的box的大小可以实现单行文字的垂直居中”,差别在于我把height去掉了,这个height是多余的. 2、多行文字的垂直居中 实现的关键是把文字当图片处理。...
CSS 使用line-height实现单行文字垂直居中的原理 图解
妖怪的博客
03-06 2112
首先,line-height为行高。height为高度。单行文本垂直居中写起来很简单,但是如果要深入理解其原理还是得花些时间的。 有一个公式必须知道 line-height=上距离+内容高度+下距离。 当 line-hieght 等于 height,内容垂直居中line-hieght 大于 height,内容向下移动 当 line-hieght 小于 height,内容向上移动 下面举个...
文字居中_深入了解lineheight文字垂直居中
weixin_33782296的博客
01-12 545
先思考下面这个问题:默认空div高度是 0,但是一旦里面写上几个文字,div高度就有了,请问这个高度由何而来,或者说是由哪个 CSS 属性决定的?如果仅仅通过表象来确认,估计不少人会认为div高度是由里面的文字撑开的,也就是font-size 决定的,但本质上是由 line-height 属性全权决定的,尽管某些场景确实与font-size 大小有关。我们不妨设计一个简单的例子来看看真相...
line-height 行高的垂直居中
shilianweiyao的专栏
04-03 480
hehhhheight:50px; paddlpadding:10px 10px; llililine-height:30px; logonlogo图片和文字垂直居中
CSSline-height的奇妙用处
SYYling的专栏
04-05 2373
常常使用line-height设置内容(图片、文字)行高上下居中样式效果。 line-height:+数字+单位(在CSS布局中我们一般采用像素px为单位) 行高line-height的值可以为百分比数字 | 由浮点数字和单位标识符组成的长度值,允许为负值。其百分比取值是基于字体的高度尺寸。 行高应用介绍   - Line-height行高属性,运用到对文字排版,实现上下排
CSSline-height 实现单行文字垂直居中的原理
平平无奇小码农的博客
03-04 1839
基础知识 line-height 与 font-size 的计算值之差(在 CSS 中成为“行间距”)分为两半,分别加到一个文本行内容的顶部和底部。我们暂且称之为顶部距离和底部距离,就是上图中的蓝色区域。 也就是说: line-height = 顶部距离 + 内容高度(顶线和底线之间的距离) + 底部距离; 顶部距离 = 底部距离; 示例一: 当line-height 等于 height 时,文字垂直居中 文本默认大小16px。 结果:文字垂直居中。 顶部距离 = 底部距离 = (line-heig
常用的line-height使内容垂直居中,你真的懂它的原理吗?
最新发布
piglite的专栏
06-04 5923
如图,每一行文字,可看成由上间距、文本内容、下间距构成,根据行高的标准定义,行高等于两条基线之间的距离,即第一行的3-4+上下间距+第二行的1-2+2-3,因为css中每一行的上间距和下间距肯定是相等的,所以代换一下,行高就等于它本身的上间距+下间距+文本高度。本例子中,我们设置div的高度为200px,然后里面有一行文本,我们设置了行高为200px,设置完200px后,文字本身16px不会改变,变的是它的上间距和下间距。可以发现和上面的例子代码位移不一样的地方是文本变多了一些,先来看一下此时的效果。
你经常用的line-height使内容垂直居中,你真的懂它的原理吗?
丑小鸭变黑天鹅的博客
03-20 8137
你经常用的line-height使内容垂直居中,你真的懂它的原理吗?一、line-height是什么二、分析其原理三、扩展一下 一、line-height是什么 line-height 属性设置行间的距离(行高),说的直白一点,就是设置两段段文本之间的距离如果我们把一段文本的line-height设置为父容器的高度就可以实现文本垂直居中了。 二、分析其原理 首先来看个图 如图,每一行文字,可看成由上间距、文本内容、下间距构成,根据行高的标准定义,行高等于两条基线之间的距离,即第一行的3-4+上下间距+第二
教你如何用纯CSS代码实现垂直居中
Mr.小灰狼_随笔
07-05 2866
教你如何用纯CSS代码实现垂直居中 在编辑一个页面时,通常用到 水平居中 和 垂直居中, 而水平居中很好处理,不外乎就是 设定 margin: 0 auto; 或是 text-align: center; 就能轻松解决掉水平居中的问题,但一直以来最麻烦的对齐问题, 都是 “垂直居中” 这个讨人厌的设定, 以下将介绍五种单纯利用 CSS实现 目录 方法1:设定行高 ( line-height ) 方法2:绝对定位 方法3:利用 transform 方法4:使用表格或假装表格 方法5:使用 Flexbox.
单行文字垂直居中line-height
pinkowonote的博客
08-07 179
让文字的行高等于盒子的高度 height = line-height 行高line-height = 上空隙 + 文字本身高度 + 下空隙 行高的上空隙和下空隙把文字挤到中间了,如果是行高<盒子高度:文字偏上;如果行高>盒子高度:文字偏下 ...
line-height功能是垂直居中,center 功能是水平居中
qq_32217519的博客
06-26 1188
line-height功能是垂直居中,center 功能是水平居中  注意input填写时上下不居中问题。。。
cssline-height及图片文字垂直居中
06-01
line-height是用来设置行高的属性,它可以决定一行文字的高度,也可以影响文字的垂直居中。 如果想让文本垂直居中,我们可以将line-height设置为与容器高度相等的值,例如: ```css .container { height: 200px; ...
写文章

热门文章

  • 解决小程序中本地资源图片无法通过wxss获取的问题 187672
  • 解决 cannot redeclare block-scoped variable 问题 23365
  • 【css】text-align:justify实现两端对齐 17894
  • RBAC权限模型 16291
  • 微信小程序实现音乐播放器(2) 15983

分类专栏

  • 利其器 16篇
  • MySQL 20篇
  • css 69篇
  • 微信小程序(新) 42篇
  • 其他 4篇
  • TypeScript 10篇
  • Vue2 84篇
  • Nodejs 13篇
  • JavaScript 48篇
  • 微信小程序 37篇
  • React16 26篇
  • React17/18 67篇
  • Vue 46篇
  • Vue3 20篇
  • 设计模式 7篇
  • SpringBoot2 41篇
  • SpringMVC 18篇
  • Camunda 3篇
  • SpringCloud 5篇
  • Maven 10篇
  • java 41篇
  • nginx 3篇
  • SpringBoot 43篇
  • git 11篇
  • kafka 1篇
  • Docker 1篇
  • 数据结构与算法 16篇
  • 原型设计 2篇
  • webpack 15篇

最新评论

  • 域名解析(公网)

    Hallo_hallo: 你这说的不对吧,顶级域名就是一级域名,不是子域

  • 【微信小程序】实现搜索框

    星空^O^之眼: 咋就变圆角了

  • CentOS8安装Docker

    顾辉2003: 太棒了,爱死你了表情包表情包有用有用

  • 微信小程序实现音乐播放器(3)(使用全局数据实现数据共享)

    panda8520: 请问可以发一下源文件吗

  • 微信小程序实现音乐播放器(2)

    ぬ 舟: 可以发一下image资源不

大家在看

  • java计算机毕业设计减肥塑型网站(开题+程序+论文) 428
  • java计算机毕业设计集团合同管理系统(开题+程序+论文) 287
  • java计算机毕业设计佳铭图书管理系统(开题+程序+论文)
  • LangChain教程 - 构建一个检索增强生成 (RAG) 应用程序
  • java计算机毕业设计篮球论坛系统(开题+程序+论文) 332

最新文章

  • 内网穿透之我用过的
  • 相关子查询
  • MySQL的子查询
2022年272篇
2021年183篇
2020年240篇
2019年3篇
2018年1篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家东营玻璃钢卡通雕塑厂家批发上海节庆商场美陈研发公司宣武区商场组合玻璃钢花盆新密校园玻璃钢景观雕塑革命主题玻璃钢雕塑生产公园主题玻璃钢卡通雕塑佛像玻璃钢雕塑施工自贡玻璃钢牛雕塑郑州玻璃钢雕塑有限公司上海美陈商场价格临沂玻璃钢卡通动漫雕塑东阳玻璃钢花盆花器标牌玻璃钢雕塑玻璃钢雕塑价格 鹿衢州水果玻璃钢雕塑重庆玻璃钢雕塑厂家地址成都装饰商场美陈玻璃钢雕塑厂家有哪些常德玻璃钢雕塑设计厂家推荐公园摆件玻璃钢卡通雕塑要求徐州玻璃钢广场雕塑望都玻璃钢花盆花器玻璃钢雕塑开裂这怎么修汉寿玻璃钢雕塑厂家玻璃钢雕塑动漫公仔中卫玻璃钢雕塑供应商山东人物玻璃钢雕塑供应商云南高质量玻璃钢雕塑订做价格深圳户外商场美陈销售企业汉中玻璃钢雕塑价格香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化