line-height理解

2023-05-16

行高的单位

百分比:突出了行高和字体大小的基佬关系当字体行高的单位为百分比的时候,行高以字体大小为依据

em:em这个单位,当作用在行高的时候是以当前文字大小为依据,当作用在字体大小的时候是以当前元素的父元素的字体大小为依据

行高的组成部分

行距+实际高度(不同字体和字体大小组成的高度)

实际高度

组成部分:

由4根线组成:上线 主线(median) 基线(baseline) 下线

(维基官网图)

行距

1.行距就是:当行高的大小设置高于了字体大小可以形成的高度,当这个时候其余高度就会自动向两边平分,也就是为什么内联元素可以看上去垂直居中的原因,其实并不是居中

2.行距是根据line-height和实际高度差自动产生的,也就是为什么css可以设置字体间距大小(letter-spacing),而没有行距大小的样式

拓展

ex

ex的单位的由来,就是x-height的高度(就是基线和主线的中间的距离 ---->维基百科)

基线

就是上图中的哪个红线

作用:就是内联元素的底部对其方式 ---> 浏览器默认vertical-align:baseline 基线对齐

如何判断基线?

一个inline-block元素,如果里面没有inline内联元素,或者overflow不是visible,则该元素的基线就是其margin底边缘,否则,其基线就是元素里面最后一行内联元素的基线。 ----> 旭哥总结的

原文:https://www.zhangxinxu.com/wordpress/2015/08/css-deep-understand-vertical-align-and-line-height/

注意:transform: translateY(20px);是不会改变基线的(感兴趣的可以自己去尝试)

基线带来的问题?

高度不一样

代码

  <div class="container">
    <div class="line-box"></div>
    <span>我来测试--> 高度不一样</span>
  </div>


    .container {
      border: 1px solid red;
    }

    .line-box {
      display: inline-block;
      width: 100px;
      height: 100px;
      border: 1px solid red;
    }

效果

可以很清晰的看到高度不一样

分析

  • 证明了一个inline-block元素,如果里面没有inline内联元素,或者overflow不是visible,则该元素的基线就是其margin底边缘,这里的line-box里面没元素,那么他的基线就是margin底边缘

所以基线为第一个红色框的底部,文字由于是基线对齐,那么去空出来的区域就是行距

 解决方法:

 1. 改变行高,设置当行高为0, 那么基线和主线(等其他线)都层叠到一起了,4条线统一变为一根线(也就是基线和主线的中间)

下面的空隙高度,实际上是文字计算后的行高值和字母x下边缘的距离。因此,只要行高足够小,实际文字占据的高度的底部就会在x的上面,下面没有了高度区域支撑,自然,图片就会有容器底边贴合在一起了

.container {
    line-height: 0;
}

2. 修改vertical-align中基线对其的方式

补充

空白节点

在HTML5文档声明下,块状元素内部的内联元素的行为表现,就好像块状元素内部还有一个(更有可能两个-前后)看不见摸不着没有宽度没有实体的空白节点,这个假想又似乎存在的空白节点,我称之为“幽灵空白节点”。 -- 旭哥

我上文的理解就是其实我们写html的时候回车和空格在其实和文本一样都是文本节点,这一点在js中有提现,所以其实,我们写html,或者浏览器最后渲染的时候会有回车,所以导致了这个空白节点

原文:https://www.zhangxinxu.com/wordpress/2015/08/css-deep-understand-vertical-align-and-line-height/

 

 

 解决方法:

1.不用回车

  <div class="container">
    <div class="line-box"></div>
    <span>我来测试--> 空白节点</span>
  </div>

//

  <div class="container">
    <div class="line-box"></div><span>我来测试--> 空白节点</span>
  </div>

2. 字体大小设置为0,由于回车的大小和字体大小有关

行高的作用(line-height)

撑开高度

为什么?

可用这样理解block box (块盒子)的高度在是由line box(行盒子) 影响的,而line box的是由line boxes(这个玩意的工作就是包裹每行文字)决定的,当我们在一个div中写一个span在我们没有对这个div设置高度的情况下,这个div的高度就是由span这个line box(行盒子)决定的,而内联元素的高度由line-height决定了,所以这个line-height间距的撑开了div的高度

inline boxes (这些手下就是文字啦,图片啊,<span>之类的inline属性的标签啦)

注意

1. 行高是由ine box 中 inline box  中最高的决定

 

 

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

line-height理解 的相关文章

  • 从文本区域获取每一行[重复]

    这个问题在这里已经有答案了
  • 如何在CSS中用页面的完整高度填充div? (页面高度超过100%)ajax加载gif背景

    好吧 有几个类似的问题 但不完全是我想要的 我在页面上有几个ajax请求 我想在屏幕中央显示图像 并且一切正常 为了让它看起来更突出 我想将该图像放置在具有半透明背景的 div 上 这样对于最终用户来说更明显 现在是棘手的部分 我用 css
  • PHP 用一个 HTML Break 替换双行 [重复]

    这个问题在这里已经有答案了 我正在尝试将我的服务器上的所有 n n 替换为 br 标记 以便单个 n 不会变成 br Example Hello n nThis is an nexample n nThanks goes to Hello
  • Node.js 如何删除文件中的第一行

    我正在制作简单的 Node js 应用程序 我需要删除文件中的第一行 请问有什么办法可以做到吗 我认为使用 fs write 是可能的 但是如何呢 这是从文件中删除第一行的流版本 由于它使用流 意味着您不需要将整个文件加载到内存中 因此它更
  • 从 Google Chrome 打印引导页面(有时)会导致打印页面的高度被截断

    从这个官方模板开始 http getbootstrap com examples jumbotron http getbootstrap com examples jumbotron bootsrap v 3 3 7 并使用 Google
  • ie6中缺少div高度的解决办法

    我正在使用一个空 div 通过设置来显示一行高度 3 像素 它在所有浏览器中都能正常工作 但在ie6显示的高度 div20 像素高度 即使对于 height 0px 它也保持不变 但其他属性的变化反映但不反映高度 并且没有重复的 CSS 条
  • 耳朵图像处理 - 在 MATLAB 中查找直线和曲线的交点

    1 https i stack imgur com j3ZRQ jpg我有一只耳朵的 Canny 边缘输出 我用一条线 绿色 连接了最远的两个边界 现在我想从这条线的中点到外边界 左侧 绘制一条法线 我编写的代码帮助我绘制法线 但我希望红线
  • 使用 jquery 获取元素的可见高度而不是其实际高度

    这篇文章是相关的this one https stackoverflow com questions 14125303 change target of a link based on what is currently displayed
  • 如何从sparkContext读取特定行

    您好 我正在尝试使用 Spark 从文本文件中读取特定行 SparkConf conf new SparkConf setAppName appName setMaster master sc new JavaSparkContext co
  • 如何使用jquery获取动态创建的没有Id的子元素的高度

    我有一个 div 它总是动态加载两个图像 并且可能在中间加载一个 div 图像或 div 都没有与之关联的 id 而且我不能让它们有 id 用萤火虫检查它们 它们只是显示为 img and div 我需要获取这个子 div 存在时的高度 我
  • 如何设置微调器下拉列表的最大长度?

    我有一个微调器 当前打开时会遮挡微调器下方的一些文本 我需要通过 java 代码或 XML 来限制微调器的最大下拉长度 这样它就不会模糊此文本 The current design is the left example while the
  • 如何使用 javascript 将 svg use 元素插入 svg 组?

    我有一个 svg 文件 其中包含一个具有单行元素的组 我可以利用use元素并在我想要的任何位置制作多个参考副本 但是 我想使用 javascript 来添加和删除use动态元素 有没有办法使用javascript插入svguse我的行元素进
  • 如何使 JTextArea 可滚动但仍设置高度?

    我有一个 Java 应用程序 它连接到设备并在JTextArea 我想要JTextArea可滚动 我通过将其放入JScrollPane The JScrollPane含有JTextArea在里面CENTER的一部分BorderLayout
  • 如何正确设置 100% DIV 高度以匹配文档/窗口高度?

    我有一个包装器 位于中心位置 并带有 y 重复的背景图像 div some content div wrapper width 900px margin 0 auto 0 auto background image url image jp
  • Powershell逐字读取文本文件

    因此 我试图计算文本文件的单词数 但是当我执行 get content 时 数组会逐个字母地读取它们 因此它不允许我逐个单词地比较它们 我希望你们能帮助我 清除主机 功能 function Get Articles foreach Word
  • 在 Vim 中的缩进线上按“Home”

    我有一个坏习惯 就是使用 home 键返回到行首 当我最近开始使用 vim 时 我注意到当我在缩进的行上按 home 键时 它会让我回到该行的开头 在 Notepad 我曾经使用的编辑器 中 它会让我返回到该行代码的开头 就在缩进之后 有没
  • iPhone CGContext:用两种不同颜色绘制两条线

    我在 iPhone 应用程序中使用 CGContext 时遇到一些问题 我试图用不同的颜色绘制几条线 但所有线最终总是具有最后使用的颜色 我尝试了几种方法 但并不幸运 我建立了一个小型示例项目来处理这个问题 这是我的代码 我在drawRec
  • 使用 CSS 网格布局使网格项内的元素高度相等

    我在长度超过 4 的 div 中有一系列文章 没有任何舍入行标签 我需要将其表示为每行 3 篇文章 列 的表格 可能包含display grid 每篇文章都有页眉 章节和页脚 如何在每行文章内实现每个标题的等高 每个部分的等高以及与文章底部
  • 如何在android中画一条曲线?

    我是 Android 新手 正在开发一个关于绘制线条的示例项目 我想画一条连接两点的曲线或高架线 x1 y1 and x2 y2 我试过canvas drawArc 方法 但是RectF内的值drawArc方法只是圆的 x y 中心点 它在
  • 氡变换线检测

    我正在尝试检测灰度图像中的线条 为此 我在 MATLAB 中使用 Radon 变换 我的 m 文件的示例如下所示 我可以使用此代码检测多行 我还使用线条的移位和旋转属性来绘制线条 但是 我不明白在获取rho和theta值后如何获取检测线的起

随机推荐

  • 如何用策略模式,优化你代码里的的if-else?

    最近有一个学妹在跟我沟通如何有效的去避免代码中一长串的if else判断或者switch条件判断 xff1f 针对更多的回答就是合理的去使用设计来规避这个问题 在设计模式中 xff0c 可以使用工厂模式或者策略模式来处理这类问题 xff0c
  • Vue组件生命周期执行顺序

    通过学习他人的博客学习到的知识点 xff0c 小白我 xff0c 顺便总结下 xff0c 引出问题 需求 xff1a 父组件刚更新完 xff0c 子组件要立马获取到父组件中传过来的值 created xff1a 在实例创建完成后被立即调用
  • 前端面试题---DOM测试36

    得分 这个题目7分我是得了4分 解析 第一问 var textarea 61 document querySelector 39 textarea 39 第二问 1 对象添加 textarea rows 61 5 2 元素添加 textar
  • 前端小测----CSS基础测试11

    得分 这个题目8分我得了5分 分析 关于HTML语义 xff1a article用在非常大段的完整的描述内容上 header是表示非常完整的整页的头部 xff0c 不是具体某一两个标题头 对于一个文字列表的标题 xff0c 级别h3 h6之
  • webpack对CSS使用alias相对路径

    问题来源 由于对页面的路由需要一些修改 xff0c 要对几乎全部的 vue文件添加一个父文件 xff0c 然后改路由 xff0c 但是问题来了 xff0c 没一个页面的文件 xff0c 资源路径都要改 xff0c import还好可以用al
  • Base64的学习

    来源 再一次看比如的代码的时候发现别人的图标是一串很长的字符串 xff0c 而不是路径引用 xff0c 从而开启了我对Base64的学习 解决 原生的atob和btoa方法进行Base64的编码 atob xff1a 解码 从a base6
  • localStorage和sessionStorage区别和使用

    一 什么是localStorage 在HTML5中 xff0c 新加入了一个localStorage特性 xff0c 这个特性主要是用来作为本地存储来使用的 xff0c 解决了cookie存储空间不足的问题 cookie中每条cookie的
  • 前端小测----DOM测试38

    得分 我得了2分 xff0c 难受 xff0c 明明感觉是3分的 哈哈 分析 其实这个题目就是对伪类进行了一定考察 xff0c 我太菜了 xff0c 呜呜呜 第一问 xff1a 获取所有匹配required必选的单选框元素 我的答案 var
  • 在vue-cli中使用vue-property-decorator装饰器

    安装 npm i s vue property decorator 如果你的项目是安装了TS那么就可以直接使用 xff0c 如果没有安装TS但是还是想用vue property decorator装饰器那么就还需要去配置一下了 使用vue
  • 图片懒加载

    什么的图片懒加载和预加载大家应该都明白 xff0c 那么小面就来看看如何用JS书写原生懒加载 下面我们在写出懒加载代码块的时候我们先来复习一些下面会遇到的一些知识点 获取客户端高度 var viewHeight 61 document bo
  • 移动端配置

    物理像素 iphone 6 的宽度有750个物理像素 逻辑像素 也叫设备的独立像素 xff0c css像素也是逻辑像素的一种 逻辑像素比 xff08 dpr xff09 物理像素 逻辑像素 xff0c iphone6 的dpr 61 2 常
  • csdn代码片教程

    代码片 代码片功能是一项非常实用的重要功能 xff1a 该功能允许您仅上传一段代码而非整个项目 xff0c 并且您可以像管理git项目一样对代码片进行管理 使用代码片 xff0c 您可以 xff1a 很容易的创建 分享一段代码 在其它网页中
  • 执行上下文

    执行上下文 执行上下文也叫执行环境 xff1f 为什么呢就让我这个英语zz来解释下 context xff1a 环境 xff1b 上下文 执行上下文 xff1a 执行环境中定义了变量或函数有权访问的其他数据 xff0c 决定了他们给各自行为
  • table-call布局

    学习了旭哥的文章总结 等分 lt style gt container display table height 300px width 100 border 1px solid red child display table cell b
  • css小测--两栏布局

    目标效果 这个题得分我是6分中国题是针对表格布局 xff0c flex布局 xff0c inline block布局 xff0c absolute布局来完成 xff0c 大家突然问题来了为什么没float xff0c 嗯 xff0c 这个看
  • Vue $nextTick

    使用场景 1 当改变了DOM中的数据后 xff0c 立马去获取DOM中的数值 2 当我们在watch侦听器中改变了数据 xff0c 立马用这一些数据去做一些操作 xff0c 这里为什么不可以呢 xff1f 因为watch其实应该也算是会被推
  • javaScript 快速排序

    简单理解 首先我觉得我们要明确一般算法都是需要递归的 xff0c 所以我们首先完成第一循环 第一个循环我们找到一个主元 xff08 数组的中间 xff09 xff0c 我们把大于的放右边 xff0c 小于的放左边 然后在分别把主元左边的和右
  • for..in 和 for..of的区别

    in xff1a 支持IE6 43 xff08 老 xff09 枚举对象枚举字符串 xff08 IE9 43 后支持 xff09 枚举数组 xff0c 但是数组只身的方法 xff0c 和原型上的方法也会枚举出来 xff0c xff08 可以
  • 垂直水平居中的方法

    垂直水平居中 HTML解构 lt div class 61 34 container 34 gt lt div class 61 34 box box 11 34 gt 1 lt div gt lt div gt lt div class
  • line-height理解

    行高的单位 百分比 xff1a 突出了行高和字体大小的基佬关系当字体行高的单位为百分比的时候 xff0c 行高以字体大小为依据 em xff1a em这个单位 xff0c 当作用在行高的时候是以当前文字大小为依据 xff0c 当作用在字体大