BFC的兄弟--IFC

作者: 小志1 | 来源:发表于2018-01-25 16:31 被阅读0次

IFC:inline formatting content,格式化上下文

font-size

什么是font-size,我们可用先看两张图

em-square
em-square

font-size其实就是em-square,说实话还是不理解。
再带上一个疑问:我们平时写代码的时候会遇见p元素里面的每个span元素font-size是一样的,但是p元素的高度却比font-size的高度要高,带着这个疑问,我们开始下面的代码举例分析

先把第一个span标签单独拎出来,截图以后高度显示是159px;


159px.png

再把第二个span标签拎出来,截图以后高度的163px;


163px.png

分别截图的两张图放在Windows里的画板里(Mac可用sketch软件),因为内联元素的baseline对齐的(图中黑线处),两个span顶部是一样的,底部第二个span比较长,所以就用第二个span的,所以最终结果的p标签的高度则是163px。


对齐以后的.png

现在我们明白了刚开始疑问了,p元素比span子元素的font-size大,是因为内联元素和内联元素默认用baseline对齐,最高和最低点的高度把p元素撑的那么大了。

line-height

line-height是决定内联元素真实占地高度。
为了显示效果,重新选了两个字体,给p标签line-height:100px。


100px.png

我们发现,在给了line-height:100px以后,span标签字体的高度已经超过了父元素p的高度了,接着我们给p标签line-height:200px(也可换成倍数line-height:2);慢慢的缩小直至可用把span标签包含即可。在缩小过程中我们可以发现如果line-height比font-size大,会自动居中。
如果不写line-height,那么就是normal,是这个字体设计师指定的 ,范围在0.618~3.378之间。
现在如果遇到子元素比父元素大,父元素包不住。有以下两种方法1.可用给大一点的line-height;2.给overflow:hidden;超出的就隐藏了,但是会有隐藏的问题,不推荐。

vertical-align;

vertical-align:top;对齐方式把一个span的实际占地面积的顶部去跟别人对齐。同上,分别把两个span标签分别截图并且拼凑。


top1.png top2.png 合并.png 最终.png

结果可用看到,两个span的顶部对齐形成的,但是和谁的顶部对齐,其实是和p元素默认的字体对齐(我们可用在前面加个x元素)。字体选取的不够夸张,实际上对齐以后视觉效果字体是不对齐的。


x默认元素.png

vertical-align还有middle/bottom/text-bottom等等属性,这里就不一一列举了,其中middle的对齐方式用父元素 baseline 高度加上父元素中 x-height 的一半的高度来对齐当前元素的垂直方向的中点。这个对齐以后的结果并没有实现居中对齐,不靠谱。

说了这么多,来个结论
1.font-size是em-square,是看不见的框框,红色框border不是由font-size决定的,而是由设计师推荐的行高决定的。
2.line-height 是决定内联元素的高度的。
3.vertical-align不靠谱。

参考文档

1.https://zhuanlan.zhihu.com/p/25808995

相关文章

  • BFC的兄弟--IFC

    IFC:inline formatting content,格式化上下文 font-size 什么是font-si...

  • CSS深入浅出-IFC

    IFC(inline formatting content)内联格式化上下文,也是BFC的兄弟。 详情链接:深入理...

  • 前端面试基础题

    BFC、IFC、GFC、FFC CSS2.1中只有BFC和IFC, CSS3中才有GFC和FFC。 到底什么是BF...

  • css之BFC IFC GFC FFC

    BFC 网上介绍比较多,晚点写 IFC IFC(Inline Formatting Contexts)直译为"内联...

  • BFC和IFC

    BFC IFC BFC Block Formatting Context 块级格式化上下文。 bfc是什么 由cs...

  • BFC和IFC

    BFC block formatting context IFC inline formatting contex...

  • BFC / IFC

    BFC(Block Formatting Context)块级格式化上下文 定义:一个块格式化上下文 ( BFC ...

  • BFC,IFC

    一.BFC 1. 先说说FC,FC的含义就是Fomatting Context。它是CSS2.1规范中的一个概念。...

  • BFC IFC

    每个块级盒子都会参与块格式化上下文(block formatting context)的创建 行内级元素会生成行内...

  • BFC & IFC

    BFC是w3c css2的一个规范概念:规定了子元素如何定位,以及和其他子元素的关系和项目作用是一个独立的布局环境...

网友评论

    本文标题:BFC的兄弟--IFC

    本文链接:https://www.haomeiwen.com/subject/mgwuaxtx.html