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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm2021.11.2激活[最新免费获取]

    (pycharm2021.11.2激活)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~09LVN3XLKC-eyJsaWNlbnNlSWQiOi…

    2022年3月28日
    40
  • js生成二维码_js生成二维码并保存

    js生成二维码_js生成二维码并保存js生成二维码一、一个简单的示例前段时间项目中需要开发扫描二维码查看信息的功能,在网上查了一些资料,把用过的方法进行总结需要导入一个qrcode的js插件。一、一个简单的示例如下:(仅供参考)<%–CreatedbyIntelliJIDEA.User:ASUSauthor:xumzDate:2021/2/27Time:10:33搬运请备注TochangethistemplateuseFile|Settings|Fil

    2022年10月18日
    0
  • springboot实战第二章

    springboot实战第二章

    2021年5月15日
    107
  • Visual Studio 2019 集成CefSharp[通俗易懂]

    Visual Studio 2019 集成CefSharp[通俗易懂]1.点击“引用”,右键”管理Nuget程序包”,搜索框里输入”CefSharp”,选择”CefSharp.WinForms”,安装。这样就会自动把CefSharp需要的拓展给安装齐全了,之后在解决方案的packages目录里会有4个文件夹cef.redist.x64.版本号,cef.redist.x86.版本号,CefSharp.Common.版本号,CefSharp.WinForms.版本号。2.使用代码:usingCefSharp.WinForms;usingMicrosoft

    2022年9月16日
    0
  • python语言变量命名-以下选项中不符合 Python 语言变量命名规则的是( )。_学小易找答案…[通俗易懂]

    python语言变量命名-以下选项中不符合 Python 语言变量命名规则的是( )。_学小易找答案…[通俗易懂]【单选题】在Python中,正确的赋值语句为()。【单选题】Python语句print(chr(97))的运行结果是()。【多选题】影响管理者道德因素包括()。【单选题】表达式len(range(1,10))的值为()。【判断题】新闻可视化的方式千差万别,但万变不离其宗,就是要把好看的图表做出来,跟新闻故事无关。【单选题】执行语句for(i=1;i++2>6…

    2022年6月1日
    58
  • 选择有这些特点的it行业人力外包公司没错

    选择有这些特点的it行业人力外包公司没错互联网的快速发展加快了传统企业信息化进程,很多传统企业自己组建软件技术部,既缺少技术开发经验,又缺乏软件项目管理经验,因此软件外包成为这些公司的首选。但完全的项目外包,使得其与软件外包公司的沟通变的不畅通,软件外包公司又缺乏传统企业的业务经验,且保密性很差,所以不少传统企业会选择和it行业人力外包公司合作来引进it人才,那么什么样的it行业人力外包公司值得选择?一、选择有一定年限的it行业人力外包公司为什么要选择一个成立时间长的it行业人力外包公司呢?因为it行业人力外包公司成立的时间越长,越能

    2022年5月19日
    45

发表回复

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

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