热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

当我们说line-height时候,都会谈论到神马

当我们说line-height时候,都会谈论到神马作为一个初入前端的小鲜肉,这几天被line-height折腾得够呛所以本着你丫欺负我,我就刨你家祖坟的精神今天就查查你家户口本

当我们说line-height时候,都会谈论到神马

作为一个初入前端的小鲜肉,这几天被line-height折腾得够呛
所以本着 你丫欺负我,我就刨你家祖坟的精神 今天就查查你家户口本

文中如果有什么不对的地方加我QQ387857274欢迎指正哦,前端爱好者也可以加一下,相互交流嘛
个人认为,要想把这货彻底弄清楚就要,得先认识一下'基线'

什么是基线

img
红色这条线就是基线

是不是很像英语作业本中的线格,没错就是那玩意
基线就是用来定位文字在一行中的显示位置,也就是说,一旦一行的基线的位置固定了,文字的位置也就固定了

line-height与基线的关系

讲一讲绿线是什么鬼

绿线其实是我意淫出来的0.0

绿线的用处主要就是确定每行content_area,应该和好多文章中所提到的行内框相似

绿线的跨度是由该行内font-size最大的那个元素决定
绿线的跨度的改变也会影响基线的位置好比姚明很高,所以他的屁股也会很高

绿线跟line-height有什么关系
img
上方区域和下方区域的高度是一致的,我手残只能这样了

那么上方区域或者下方区域是如何计算的呢,就是((line-height)-绿线的跨度)/2
也就是说这行的上方区域和上一行的下方区域共同组成行间距一号,同样下方区域和下一行的上方区域组成行间距二号

好吧这里好像跟基线并没有半毛钱关系,我承认,不过也可认为是姚明和他屁股的关系,line-height 会决定本行的位置,同时也就是会影响基线

基线会影响谁呢

大家都知道,有inline,inline-block,block三种东西

一. inline我们把它看做一个由内容撑开的元素,被基线影响

二. inline-block中存在基线,其中的inline元素也被基线影响,不过inline-block会继承父元素的line-height

这里大家可能会产生疑问,看图,红色是父级元素p
p设置line-height之前
img

p设置line-height:600px后;两个盒子的基线被拉到下面
img

这里有一些关于一行的基线到底归谁管的问题,请往下看

三. blockinline-block是一样一样的区别在于block这货一下占一行

一行的基线到底归谁管

你可以笼统地说是line-height,这句话本身是没什么问题的,不过现实情况要比想象的要复杂一点,还有就是图片和空的inline-block也会影响基线的位置(很诡异吧,我也觉得)

情况1

还是上面的图,当两个inlin-block不设置任何line-height的时候 > p元素设置line-height:600px;可以看到第一行的基线沉下去了
img

情况2

当只有黄色inline-block设置line-height的时候,同时绿色的本身> 基线会向整体基线靠拢
img

情况3

当两个货都设置不同的line-height呢绿色会调整自己的位置使自身基线向行基线靠拢
img

情况4

当存在空的inline-bolck时,也会把基线下沉
img

情况5

当行中加入图片后,本行的基线会随图片的高度而下沉,其它元素的基线也同时超主基线靠拢
img

这里得到的结论是:该行的line-height最终结果是子元素中最大的line-height,然后其它元素的line-height设置完成之后基线会朝整行基线靠拢
心得就是还是慎用inline-block,个人认为float比inline-block好太多,能不用就不用
以上都是个人观点

这是我研究一早上的结果,想交流的小伙伴可以加我qq387857274,共同进步
关于更详细的知识内容见下面的参考资料
参考链接
CSS深入理解之line-height

CSS行高


推荐阅读
  • 轮播图(Carousel)是网页设计中常见的元素,用于展示图片或内容滚动。本文精选了超过40个高质量的jQuery轮播图插件及教程,帮助开发者实现各种动态展示效果。 ... [详细]
  • 探索OpenWrt中的LuCI框架
    本文深入探讨了OpenWrt系统中轻量级HTTP服务器uhttpd的工作原理及其配置,重点介绍了LuCI界面的实现机制。 ... [详细]
  • 雨林木风 GHOST XP SP3 经典珍藏版 YN2014.04
    雨林木风 GHOST XP SP3 经典珍藏版 YN2014.04 ... [详细]
  • 如何为PDF文档添加水印?简单步骤实现
    为了增强PDF文档的安全性和版权保护,添加水印是一个有效的方法。本文将介绍如何通过专业软件或在线工具轻松为PDF文档添加水印,确保您的文档在共享时仍能保持其独特性和安全性。 ... [详细]
  • 本文探讨了在iOS开发中如何利用WKWebView实现H5页面与原生应用的高效融合。通过具体案例分析,展示了一种新颖的方法来解决H5页面内容高度的动态获取问题,旨在为开发者提供实用的技术参考。 ... [详细]
  • 使用R语言进行Foodmart数据的关联规则分析与可视化
    本文探讨了如何利用R语言中的arules和arulesViz包对Foodmart数据集进行关联规则的挖掘与可视化。文章首先介绍了数据集的基本情况,然后逐步展示了如何进行数据预处理、规则挖掘及结果的图形化呈现。 ... [详细]
  • Kubernetes Services详解
    本文深入探讨了Kubernetes中的服务(Services)概念,解释了如何通过Services实现Pods之间的稳定通信,以及如何管理没有选择器的服务。 ... [详细]
  • 本文总结了在多人协作开发环境中使用 Git 时常见的问题及其解决方案,包括错误合并分支的处理、使用 SourceTree 查找问题提交、Git 自动生成的提交信息解释、删除远程仓库文件夹而不删除本地文件的方法、合并冲突时的注意事项以及如何将多个提交合并为一个。 ... [详细]
  • 探索北京八大处富斯特滑道的魅力
    对于寻求休闲与冒险的旅行者来说,北京八大处富斯特滑道是一个不可多得的好去处。本文将详细介绍富斯特滑道的特点、如何到达以及游玩建议。 ... [详细]
  • 本文详细介绍拉网式展架的不同类型、材质选择、尺寸规格及其安装方法,帮助读者全面了解其特点与适用场合。 ... [详细]
  • 电商常用同义词库_【福利】不可错过的电商设计神器,提高工作效率
    开启高效设计,拒绝每天加班,设计助理插件,设计师高效设计神器,让你早下班的设计神器;今天介绍一款非常人性化的插 ... [详细]
  • 汉语拼音教学创新方法与游戏大全
    探讨当前汉语拼音教学中存在的问题,分析原因,并提供一系列创新的教学方法和游戏,旨在提升教学效果,激发学生学习兴趣。 ... [详细]
  • 解决IntelliJ IDEA使用中的常见问题
    本文主要探讨了在使用IntelliJ IDEA时遇到的一些常见问题及其解决方案,包括中文输入变为繁体字的问题和如何设置背景图片等。 ... [详细]
  • 本文深入探讨了微信小程序直播中点赞动画的实现方法,特别是如何利用三阶贝塞尔曲线使点赞图标沿预设路径移动,以及相关的数学计算与代码实现。 ... [详细]
  • 本文详细介绍了Markdown编辑器中的常用语法,包括标题设置、文本样式调整、引用与分隔符使用、图片插入、超链接添加、列表创建以及表格和代码块的编写方法。 ... [详细]
author-avatar
c72586051
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有