CSS行高line-height的理解建议收藏

一、行高的字面意思“行高“顾名思义指一行文子的高度。具体来说是指两行文子间基线间的距离。基线是在英文字母中用到的一个概念,我们刚学英语的时候使用到的那个英语本子每行有4条线,其中底部第二条线就是基线,

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

全栈程序员社区此处内容已经被作者隐藏,请输入验证码查看内容
验证码:
请关注本站微信公众号,回复“验证码”,获取验证码。在微信里搜索“全栈程序员社区”或者“www_javaforall_cn”或者微信扫描右侧二维码都可以关注本站微信公众号。

一、行高的字面意思

“行高“顾名思义指一行文子的高度。具体来说是指两行文子间基线间的距离。

基线是在英文字母中用到的一个概念,我们刚学英语的时候使用到的那个英语本子每行有4条线,其中底部第二条线就是基线,是a,c,z,x等字母的地边线。

 ————————顶线(top line)————————————————

——————————中线(middle line)————————————

————————————基线(base line)———————————

———————————————底线(bottom line)——————    


vertical-align中有top,middle,baseline,bottom与之是有关联的,但是具体细节如何,浏览器差异怎样,我还是不是很清楚。

但是由于中午跟英文长得不一样,所以基线的说法就像老太太穿线一一对不上眼。你理解为底线之差也不为不可。只是定义一回事,表现则另一回事。

http://www.cnblogs.com/roucheng/
二、line-height与line boxes高度
先说一个大家熟知的现象,有一个空的div,<div></div>,如果没有设置至少大于1像素高度height值时,该div的高度就是个0.如果该div里面打入了一个空格或是一个汉字 ,则此div就会有一个高度。那么您有没有思考过,为什么div里面有文字后就会有高度呢?

这是个看上去很简单的问题,是理解line-height非常重要的一个问题。可能有人会认为是:文子撑开的!文子占据空间,自然将div撑开。我一开始也是这样理解的,但是事实上,深入理解inline模型后,我发现,根本不是文字撑开了div的高度,而是line-height!哟证明很简单(如下测试代码):

css代码:



<!-- lang: css -->
 .test1{font-size:20px; line-height:0; border:1px solid #cccccc; backgroud:#eeeeee;}
<!-- lang: css -->
    .teset2{fon-size:0; line-height:20px; border:1px solid #cccccc; backgroud:#eeeeee;}

html代码:

<!-- lang: html -->
<div class="test1">测试1</div>
<!-- lang: html -->
<div class="test2">测试2</div>

结果:test1 div有文字大小,但是行高为0,结果div的高度就是个0;test2 div文字大小为0,但是有行高,为20像素,结果div高度就是20像素。这就说明撑开div高度的是line-height不是文字内容。

到底这个line-height行高怎么就产生了高度呢?在linline box模型中,有个line boxes,这个是看不见的。line boxes的工作就是包裹每行文字。一行文字一个 line boxes。例如”艾佛森退役"这5个字,如果它们在一行显示,你艾佛森再牛,对不起,只有一个line boxes罩着你;但是”春哥纯爷们“这5个字,要是竖着写,一行一个,那真是够爷们,一个字罩着一个line boxes,于是总计5个line boxes。line boxes什么特性也没有,就是高度。所以一个没有设置height属性的div的高度就是由一个line boxes的高度堆积而成的。

其实line boxes不是直接的生产者,属于中层干部,真正的活儿都是它的手下-inline boxes干的,这些手下就是文字啦,图片啦,span之类的inline属性的标签啦。line boxes只是个考察汇报人员,考察它的手下谁的实际line-height值最高,谁最高,它就要谁的值,然后向上汇报,形成高度。例如,<span style="line-height:20px;">取手下line-height<span style="line-height:40px;">最高</span>的值</span>.则line boxes的高度就是40像素了。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120752.html原文链接:https://javaforall.net

(0)
上一篇 2021年12月20日 下午5:00
下一篇 2021年12月20日 下午5:00


相关推荐

  • 什么是TFS

    什么是TFStfs 简单讲解 tfs 的架构设计 TFS TaobaoFileSy 是一个高可用 高性能 高可扩展的分布式文件系统 基于普通的 Linux 服务器构建 主要提供海量非结构化数据存储服务 TFS 集群由名字服务器 namserver 和数据服务器 dataserver 组成 TFS 以数据块 block 为单位存储和组织数据 block 大小通常为 64M 可配置 TFS 会将多个小文件存储在同一

    2026年3月20日
    3
  • Java中static的含义和用法

    Java中static的含义和用法static:静态的,用于修饰成员(成员变量,成员方法);1.被static所修饰的变量或者方法会储存在数据共享区;2.被static修饰后的成员变量只有一份!3.当成员被static修饰之后,

    2022年7月1日
    26
  • Multisim使用教程_ppt2016零基础入门教程

    Multisim使用教程_ppt2016零基础入门教程Multisim软件使用详细教程(图文全解)目录一、Multisim作用二、Multisim14.0的界面1.设计窗口2.菜单栏3.工具栏4.元器件栏和仪器仪表栏三、元器件5.元器件-基本器件6.元器件-电解电容7.元器件-开关开关-修改快捷键8.元器件-电位器调节电位器-第一种方法调节电位器-第二种方法调节电位器-修改调节精度电位器-修改快捷键修改电阻、电位器的阻值修改电容、电解电容的电容量9.元器件-二极管和稳压二极管……

    2025年11月23日
    17
  • GROUP BY语句详解

    GROUP BY语句详解一、groupby的意思为分组汇总。使用了groupby后,要求Select出的结果字段都是可汇总的,否则就会出错。groupby有一个原则,就是select后面的所有列中,没有使用聚合函数的列,必须出现在groupby后面。比如,有:{学号,姓名,性别,年龄,成绩}字段这样写:SELECT学号,姓名,性别,年龄,sum(成绩)FROM学生表GROUPB…

    2022年5月26日
    43
  • docker离线安装部署_ubuntu 离线安装docker

    docker离线安装部署_ubuntu 离线安装docker说明使用虚拟机真实模仿离线环境虚拟机系统为CentOS7正文下载Docker二进制文件(离线安装包):下载地址本文使用/x86_64/docker-17.12.1-ce.tgz,注意对应操作系统类型。通过FTP工具将docker-17.12.1-ce.tgz上传到服务器上解压安装包tarzxfdocker-17.12.1-ce.tgz将docker相关命令拷贝到/usr/bin,方便直接运行命令sudocpdocker/*/usr/bin/启动Docke

    2026年4月14日
    7
  • 谷歌地图地理解析

    谷歌地图地理解析地址解析就是将地址(如:贵州省贵阳市)转换为地理坐标(如经度:106.71,纬度:26.57)的过程。地理反解析和上面的过程相反是将地理坐标(如纬度:26.57,经度:106.71)转换为地址(中国贵州省贵阳市南明区翠微巷7号邮政编码:550002)的过程。受当地法律限制及各方面原因,国内很多地图并不包含地理解析和反解析功能(地理解析和反解析功能功能不够强悍),Google永远是最棒的。废话不多说要使用到Googlemap地理解析和反解析功能,我们需要了解google.maps.Geocod

    2022年6月29日
    35

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号