基本概念:
块:block 特点独行
内联:inline
内联块:inline-block

如果元素display属性默认值为block,则为块元素。如div p
如果元素display属性默认值为inline或inline-block,则为内联元素。如span img
(通常所说的内联指,内联和内联块)

字格:所有的文字都放在1个矩形中,为了方便区分,称这个矩形为字格。
字格4线中垂点(对齐用的):基线(字母x底部切线),中线(字母x底部向上1/2个字母x高度,在中垂点下面一点点),顶线,底线。
中垂点:字格垂直方向中点。
图片(对齐用的):顶部,底部,中垂点。
行高:2行字母基线间距。(字面意思,但实际作用不只如此)
行内框(inline-box):包裹一个元素的区域,我们只关注它的高度
行框(line-box):包裹一行的区域,我们只关注它的高度、内部元素的对齐。

1.父字格---用来对齐的参考字格,由父容器的字体决定。
所有的内联元素,先跟父字格对齐。父字格不会显示的,它只是用来对齐的。
2.默认对齐---基线对齐
不同大小的文字的基线和图片等内联块(inline-block)的底部和父字格的基线对齐。
3.对齐框
取文字等字格中垂点和图片等内联块(inline-block)的顶部和底部中最高和最低点为对齐的上下边界。
内联文字对齐框高度:各个不同大小字格中垂点相对于对齐上边界的距离。
图片对齐框高度:图片底部和对齐上边界的距离。
4.行高
1.line-height可以继承,单独作用于内部的不同大小文字和父字格。
2.没有单独设置,也没有继承值,则使用默认值0。
3.只影响文字(内联、内联块、块)
5.行框高度
行框高度==最高的行内框高度

1)最高行内框:
1.内联文字行内框高度:内联字格对齐框高度+line-height(不同字格包括父字格大小相同或不同行内框不一样的)
2.图片行内框高度:图片对齐框高度
3.内联块文字行内框高度:

2)---<非常重要>---<最高行内框,行高努力对齐原则>---
让最高行内框元素的中垂点尽可能靠近行框的中垂点。

1.该元素中垂点在对齐框上半部分,说明元素偏上,line-height先扩展上边界,上下相等时,同时扩展。
2.该元素中垂点在对齐框下半部分,说明元素偏下,line-height先扩展下边界,上下相等时,同时扩展。
这样元素的中垂点就尽可能的靠近行框的中垂点。

6.主元素:
把最高行内框的元素称为主元素,该元素直接决定行框高度。
元素总高度=对齐高度+line-height;//---最重要---//
元素总高度=对齐高度+line-height;//---最重要---//
元素总高度=对齐高度+line-height;//---最重要---//
案例:
line-height=50px,子字格font-size=40px,父字格font-size=0
现象:子字格没有居中
原因:父字格字体小,对齐高度高,line-height都为50px,所以父字格成为主元素,行高努力对齐主元素。
7.多种内联文字对齐关键:消除对齐高度。//非常重要
8.top,bottom的研究:要使用img元素参考,并将该对齐方式的内联元素,先让line-height=0,再逐渐增加,看变化。

案例:
<div>
x <span>x</span>
</div>

验证1:对齐框存在
改变span的font-size,查看框的变化
div{
font-size: 50px;
border: 1px solid #333;
line-height: 0;
}
span{
font-size: 50px;
}

验证2:元素最高行内框=元素对齐框高度+line-height
不断增加span的line-height,超过某个临界点(仍小于div的line-heigth:100px),行框就会变化。
div{
font-size: 50px;
border: 1px solid #333;
line-height: 100px;
}
span{
font-size: 10px;
line-height: 0px;
}

line-height与图文对齐 笔记的更多相关文章

  1. Direct Line Guidance Odometry论文阅读笔记

    摘要: 本文特色:使用线引导关键点的选择.本文提出这个的论点是:线上的点比图像的其他部分的点更好,而且线上存在更好的关键点.选择线上的点可以筛选过滤掉不太明显的点,从而提高效率. 点和线: 系统使用点 ...

  2. How to Take Control of Your Line Height in Outlook.com

    Reference to: http://www.emailonacid.com/blog/details/C13/line_height_and_outlook.com

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

    什么是行间距? 古时候我们使用印刷机来出来文字.印刷出来的每个字,都位于独立的一个块中. 行间距,即传说中控制两行文字垂直距离的东东.在CSS中,line-height被用来控制行与行之间垂直距离. ...

  4. highcharts 系统梳理笔记

    前言 highcharts最早接触它是在4年前,后来项目中很少用到图表这些东西,就算有也是用echart.他们思路都一样自己去官网上看api即可,构造数据填充节点,没有什么难点,这次是做完手上的工作然 ...

  5. CSS学习笔记——视觉格式化模型 visual formatting model

    CSS 视觉格式化模型(visual formatting model)是用来处理文档并将它显示在视觉媒体上的机制.他有一套既定的规则(也就是W3C规范),规定了浏览器该怎么处理每一个盒子.以下内容翻 ...

  6. Material Design学习笔记

    Wiki->移动开发->Android->Material Design-原质化设计 (友情链接:http://wiki.jikexueyuan.com/project/materi ...

  7. CSS3与页面布局学习笔记(二)——盒子模型(Box Model)、边距折叠、内联与块标签、CSSReset

    一.盒子模型(Box Model) 盒子模型也有人称为框模型,HTML中的多数元素都会在浏览器中生成一个矩形的区域,每个区域包含四个组成部分,从外向内依次是:外边距(Margin).边框(Border ...

  8. Android 自绘TextView解决提前换行问题,支持图文混排

    先看下效果图: 上面是MTextView,下面是默认的TextView. 一.原因 用最简单的全英文句子为例,如果有一个很长的单词,这一行剩余的空间显示不下了,那么规则就是不打断单词,而是把整个单词丢 ...

  9. Unity UGUI图文混排源码(一)

    Unity UGUI图文混排源码(一):http://blog.csdn.net/qq992817263/article/details/51112304 Unity UGUI图文混排源码(二):ht ...

随机推荐

  1. Kotlin基本语法笔记2之类型检测及自动类型转换、循环

    类型检测及自动类型转换 is运算符用于检测一个表达式是否为某类型的一个实例检测出为某类型后,检测后的分支中可以直接当作该类型使用,无需显示转换 fun getStringLength(obj: Any ...

  2. SCOI2017 游记(AFO)

    SCOI2017 游记(AFO) Day 0 上午模拟考,又tm用暴力a了一道题,心情舒畅.(要是省选也这样该有多好,2333) 晚上又去吃了什么不知名的东西,自己都忘了,总之好像很好吃的样子. Da ...

  3. cookie VS sessionstorge VS localstorge

    虽然cookie , localstorge , sessionstorge三者都有存储的功能,但是还是有区别, git上地址:https://github.com/lily1010/cookie-s ...

  4. 数据结构之 字符串---字符串匹配(kmp算法)

    串结构练习——字符串匹配 Time Limit: 1000MS Memory limit: 65536K 题目描述   给定两个字符串string1和string2,判断string2是否为strin ...

  5. CodeForces990G:GCD Counting(树分治+GCD)

    You are given a tree consisting of nn vertices. A number is written on each vertex; the number on ve ...

  6. AtCoder Grand Contest 012 D:Colorful Balls

    题目传送门:https://agc012.contest.atcoder.jp/tasks/agc012_d 题目翻译 给你一排一共\(N\)个球,每个球有一个颜色\(c_i\)和一个重量\(w_i\ ...

  7. 增加,删除GMS包

    1. device/hiteq/vtab_1050_standard/httek.mk BUILD_GMS:=yes GMS_VARIANT:=mini 2. rm out/target/produc ...

  8. 动态规划专题 01背包问题详解 HDU 2546 饭卡

    我以此题为例,详细分析01背包问题,希望该题能够为大家对01背包问题的理解有所帮助,对这篇博文有什么问题可以向我提问,一同进步^_^ 饭卡 Time Limit: 5000/1000 MS (Java ...

  9. MVC错误:查询的结果不能枚举多次

    应用程序中的服务器错误. 查询的结果不能枚举多次. 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: S ...

  10. <a href="#">什么意思

    转自:https://zhidao.baidu.com/question/67668291.html <a href="#">是链接到本页,因为你有的时候需要有个链接的 ...