行高不设单位的好处 line-height:1.8

今天无意间看了到了line-height:1.8 感觉挺有意思的,然后翻了下行高的知识,发现还挺有文章的,不妨温故而知新。

先回顾下:顶线、中线、基线、底线

vertical-align是元素的垂直对齐方式,也依赖于这些线,分别有top(顶线对齐)、middle(中线对齐)、baseline(基线对齐)、bottom(底线对齐)

行距与行高(文本行的基线间的距离):

为了更方便在效果图上测量行高数值,一般我会选择文字底到文字底这方式测量,与上图的高度是一样的。

===================================================================================

那么话说回来line-height:1.8这个有什么用呢?

行高是可继承的,但继承的是计算值,如:

<div style="background:#ddd;height:100px;line-height:180%;font-size:15px;">
                <p style="font-size: 30px">
                    中文 English<br/>
                    中文 English
                </p>
</div>

这里div的行高为180%*15px=27px

而p的行高为计算后的27px 而非180%*30px=54px

通过上面的例子我们知道文本之间的空白距离不仅仅是行高决定的,同时也受字号的影响,

如果继承的是计算值,那么当元素内的文字字体尺寸不一样的时候,就有可能造成字体的重叠,

为了避免这种情况,可以定义一个没有单位的值作为缩放因子来统一控制行高,缩放因子是直接继承的,而不是继承计算值:

<div style="background:#ddd;height:100px;line-height:1.8;font-size:15px;">
                <p style="font-size: 30px;">
                    中文 English<br/>
                    中文 English
                </p>
</div>

这里的p行高就是1.8x30px=54px  ,也就是说跟下面代码的效果是一样的。

<div style="background:#ddd;height:100px;font-size:15px;">
                <p style="font-size: 30px;line-height: 54px">
                    中文 English<br/>
                    中文 English
                </p>
</div>
时间: 2024-10-11 22:50:34

行高不设单位的好处 line-height:1.8的相关文章

[ css 深入理解 inline box 模型中line boxes ] css中深入理解line-height(行高)产生的原因:看不见的 line boxes

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

深入了解css的行高Line Height属性

来源:http://www.cnblogs.com/fengzheng126/archive/2012/05/18/2507632.html 什么是行间距? 古时候我们使用印刷机来出来文字.印刷出来的每个字,都位于独立的一个块中. 行间距,即传说中控制两行文字垂直距离的东东.在CSS中,line-height被用来控制行与行之间垂直距离. 不过,行间距与半行间距,还是取决于CSS中的line-height.那么,如何来使用line-height呢? 默认状态,浏览器使用1.0-1.2 line-

行高:line-height图文解析

行高——line-height 初入前端的时候觉得CSS知道display.position.float就可以在布局上游刃有余了,随着以后工作问题层出不穷,才逐渐了解到CSS并不是几个style属性那么简单,最近看了一些关于行高的知识,就此总结一下. 所谓行高是指文本行基线间的垂直距离.要想理解这句话首先得了解几个基本知识: 顶线.中线.基线.底线 <!DOCTYPE html> <html> <head> <title>Test</title>

CSS行高——line-height

初入前端的时候觉得CSS知道display.position.float就可以在布局上游刃有余了,随着以后工作问题层出不穷,才逐渐了解到CSS并不是几个style属性那么简单,最近看了一些关于行高的知识,就此总结一下. 所谓行高是指文本行基线间的垂直距离.要想理解这句话首先得了解几个基本知识: 顶线.中线.基线.底线 <!DOCTYPE html> <html> <head> <title>Test</title> <style type=

我不知道的行高——line-height

概述 对于块级元素,CSS属性line-height指定了元素内部line-boxes的最小高度. 对于非替代行内元素,line-height用于计算line box的高度. 对于替代行内元素,如button 或其他input元素,line-height没有影响 取值 normal 取决于用户代理.桌面浏览器(包括火狐浏览器)使用默认值,约为1.2,这取决于元素的 font-family.(存在差异性) <number> 所用的值是无单位数值乘以元素的 font size.计算出来的值与使用数

【转】css行高line-height的一些深入理解及应用

一.前言 前两天在腾讯ISD团队博客上看到一篇翻译的文章“深入理解css 行高”,是个不错的文章,学到了不少东西,建议您看看. 这里,我也要讲讲我对line-height的一些理解,所讲解的东西绝大多数与上面提到的“深入理解css 行高”是不重复的,可以说是补充或是另外一个角度的思考.另外,将结合实际,展示line-height的一些特性和一些常见应用,帮助您对css行高line-height的理解.所讲述的并不一定都是正确的,欢迎指正欢迎交流. 二.一些字面意思“行高”顾名思意指一行文字的高度

《转载》深入理解 CSS 中的行高与基线

这篇文章总结的很好,故转载收藏. 1.基本概念 1.  基线.底线.顶线.中线 注意:基线(base line)并不是汉字文字的下端沿,而是英文字母“x”的下端沿. 2. 内容区 内容区是指底线和顶线包裹的区域(行内元素display:inline可以通过background-color属性显示出来),实际中不一定看得到,但确实存在.内容区的大小依据font-size的值和字数进行变化. 3. 行距.行高 行高(line-height):包括内容区与以内容区为基础对称拓展的空白区域,我们称之为行

css行高line-height的一些深入理解及应用

by zhangxinxu from http://www.zhangxinxu.com,原文地址:http://www.zhangxinxu.com/wordpress/?p=384 一.一些字面意思"行高"顾名思意指一行文字的高度.具体来说是指两行文字间基线之间的距离.基线实在英文字母中用到的一个概念,我们刚学英语的时使用的那个英语本子每行有四条线,其中底部第二条线就是基线,是a,c,z,x等字母的底边线.下图的红色线即为基线. vertical-align中有top,middle

关于line-height 行高的一些理解和技巧

大家都知道,如何设置文字垂直居中,也就是:设置line-height 和 外围盒子的高度height一致: 其实这里有个地方,是多余的,也就是height,设不设置都居中: 那么,行高是生产高度的? 先上一个小问题:当div没有设置高度的情况下,撑开其高度是里面的文字吗? 答案是否定的,你可以试试,当你设置行高为line-height: 0; 的时候,div的高度还是0:事实证明,撑开div高度与其里面文字的行高有关系: 先理解下,inline box模型,其中有个line boxes,它是看不