CSS中的内联元素


内联元素

内敛元素分 可替换 和不可替换两种类型来讨论。

内联元素的高度

对于非替换元素,其高度是由line-height属性定义的。一行的高度就是line-height * 1;n行的高度就是line-height * n

对于替换元素,如果没有显示指定,其高度由元素本身决定。

盒模型的一些内容

对于内联元素,在垂直方向上,margin/border/padding不起作用(不会影响现有布局,但是实际存在),水平方向的margin/border/padding有效。

认识 css中的单位 ex

在css中,1ex等于小写字母x的高度。这个高度一般叫做x-height。 ex的一个应用:让图标总是跟文字垂直居中。

.icon {
    display: inline-block;
    width: 24px;
    height: 1ex;
    background: url(1.png) no-repeat center;
}

内联元素与行高、字体和排版

实际上字体设计和排版也是一本学问。这里面有很多概念,例如baseline,em-box,median等。

内联元素的line-height

line-height: 行高,也叫行距。具体是指相邻两行文字的baseline之间的距离。 em-box: em-box是一个比较虚的概念,其大小是 1em。 content area:在字体设计中,content-area的高度是根据字体不同而变化的。通常情况下,会比字体的高度(em-box)大一些。但是宋体字中,content-area 和 em-box的大小是一致的。

那么知道这三个概念有什么作用呢?

作为前端,从设计师那拿到的设计图,获取的标注一般都是从上一行文字到下一行文字之间的距离。而实际上这和line-height的概念并不等同。如果我们要还原设计图,那么就需要知道如何做相应的转换。

line-height与“垂直居中”

通过line-heiht设置的垂直居中并不是真正意义上的垂直居中,而是稍微靠下一些(大概也就1像素的差距,所以视觉上一般不容易察觉)。

<style>
	p{
		margin:0;padding: 0;
		height: 36px;
		line-height: 36px;
		font-size: 24px;
	}
</style>
<p style="font-family:cursive;background: tomato;"> A clone is a copy </p>
<p style="font-family:fantasy;background:yellowgreen;"> A clone is a copy </p>

上例中,两个p标签高度和line-height一致,只有字体不一致。