一、图片底部空白缝隙问题 在上一篇博客中 , 使用默认的基线对齐 , 会发现 行内块级元素 中的 图片与文字 默认的对齐方式下 , 图片下方有一条缝隙 ; 出现这条缝隙的原因就是 图片的底部 与...文字的基线对齐 , 上面图片与边框之间的风险 , 就是基线与底线之间的距离 ; 二、图片底部空白缝隙问题解决方案一 ( 使用居中对齐 / 顶部对齐 / 底部对齐 ) ---- 使用 vertical-align...的 其它三种对齐方式 居中对齐 / 顶部对齐 / 底部对齐 , 都可以解决该问题 ; 代码示例 : 底部有一块缝隙 , 其它三种对齐方式底部都没有缝隙 ; 三、图片底部空白缝隙问题解决方案二 ( 将行内元素 / 行内块元素转为块级元素 ) ---- 使用...vertical-align 垂直对齐 方式 的前提是 作用对象必须是 行内元素 / 行内块元素 , 如果作用对象不是上述元素 , 则垂直对齐不生效 , 也就是基线对齐不生效 ; 代码示例 : <!
top 与 bottom 对于内联元素,指的是元素的顶部(底部)和当前行框盒子的顶部(底部)对齐;即与 line-box 的顶部(底部)对齐。...所以,在开发时,我们只需要关注当前元素和父级,两元素前后并没有直接影响。...产生这种现象的原因:空白节点、line-height 和 vertical-align 属性;图片后放置空白节点 X,会发现图片的基线是元素底部,与“空白节点”的基线对齐,那解决这种问题有以下几个方法...为什么不学以致用呢?按照之前的讲解,我们可以借助空白节点,空白节点我们看不见,但是如果可以给它设置一个高度,让它与父级高度一致,就解决了这个问题。怎么给高度呢?答案是借助伪元素。...我们会一眼就看到在图片周围到处都是空白空隙,那么这些空隙是什么原因造成的呢?很多时候,复杂问题是由简单问题组合而成的,那么我们可以按照以下想法来简化问题。 ?
overflow: hidden的内联-块元素和不含流内内容(但内容区具有高度)的内联-块元素。...,它顶部之上和底部之下已经没有能供它移动的空间了。...内联元素之间的所有空白字符都被合并成一个空格,就是这个空格碍事,例如想让两个内联元素仅挨在一起并都设置width: 50%的话,就没有足够的空间容纳两个50%的元素和一个空格。...如果vertical-align不生效,只用考虑这些问题: 行盒的baseline和顶边底边在哪里? 内联级元素的baseline和顶边底边在哪里?... 去掉空白字符的同时,保留标签缩进格式,很有意思
margin 重叠意味着,当一个有底部margin的标题后面跟着一个有顶部 margin 的段落时,它们之间就不会出现较大的空白。...第一个 div 的顶部和底部的margin都是50px。第二个 div 的顶部和底部 margin 都是20px。第三个 div 的顶部和底部 margin 都是3em。...image.png 仅块元素 margin 重叠 在CSS2中,只指定垂直方向的 margin 重叠,即元素的顶部和底部 margin。因此,上面的左右边距不会重叠。...因此,当我们讨论垂直边距时,我们实际上是在讨论块维度的边距。如果我们在水平写作模式下,这些 margin 将是顶部和底部,但在垂直写作模式下,这些 margin 将是右侧和左侧。...一旦使用逻辑的、流相关的方向,就更容易讨论块的开始和结束,而不是块的顶部和底部。为了简化这一过程,CSS引入了逻辑属性和值规范。这将流的相关属性映射到物理属性上。
top bottom使元素及其后代元素的底部与整行或整块的底部对齐。) 文本类:text-top text-bottom(使元素的顶部与父元素的字体顶部对齐。)...好基友line-height、vertical-align和第三者幽灵空白节点的爱恨情仇 有时候会遇见下面这样高度和设置不一致的情况: ? div的实际高度比设定的行高大了,为什么呢?...内联元素的默认对齐方式是baseline,所以此时此时span元素的基线是和父元素的基线相对齐的,而此时父元素的基线在拿呢? 父元素的基线其实就是行框盒子前的幽灵空白节点的基线。...,那为什么底部和div下边缘之间会有空隙呢?...如果元素在没有position的情况下是内联元素,则和内联元素在同一行显示;如果元素在没有position属性的情况下是块级元素,则换行显示。
让元素变为内联块级元素内联块级元素的特点:不独占一行,而且对宽高支持存在问题:浏览器会把元素之间的换行,空格都当作空格处理,使用display:inline-block之后,元素之间产生空隙,对整体布局产生影响.../上边 代表元素在排列方向的开始位置分布flex-end 元素在排列方向上的结束位置分布(右/下)center元素在排列方向的中间位置分布space-between代表空白元素分布在元素与元素之间space-around...代表空白元素分布在各个元素两边space-evenly代表空白元素均匀分布在空隙6.align-items控制弹性盒子内子元素在垂直方向上的对齐方式flex-start 控制弹性盒子内元素在顶部或者左边对齐...flex-end 控制元素在底部对齐/右边对齐center 元素垂直方向上居中对齐baseline 首行底部对齐*{ padding: 0; margin: 0;}.top{ width...flex-end 所有行都靠近底端或右端center所有行居中显示space-between空白元素放在行和行之间space-around 空白元素平均放在行的上下两册space-evenly 空白元素均匀分布在空隙
2.元素分类 在css中,html中的标签元素大体被分为三种不同的类型:块状元素、内联元素(又叫行内元素)和内联块状元素。...,var,cite,code 常用的内联块状元素有: img,input 2.1块级元素 什么是块级元素?...在html中div,p,hl,form,ul,li就是块级元素。设置display:block就是将元素显示为块级元素。如下代码就是将内联元素a转换为块级元素,从而使a元素具有块状元素特点。...a{ display:block; } 块级元素特点: 每个块级元素都从新的一行开始,并且其后的元素也另起一行(真霸道,一个块级元素独占一行) 元素的高度、宽度、行高以及顶和底边距都可以设置 元素宽度在不设置的情况下...div{ display:inline; } 内联元素特点: 和其他元素都在一行上; 元素的高度、宽度及顶部和底部边距不可设置; 元素的宽度就是它包含的文字或图片的宽度,不可改变 解决行内元素间隙bug
如何让超链接访问后和访问前的颜色不同且访问后仍保留hover和active效果 a:link { color: #03c; } a:visited {...: 100px; } // 要使内联元素可以设置宽高,只需将其定义为块级或者内联块级元素即可。...该方法优点在于结构简洁,不理想的地方:1.由于使用场景不同,负缩进的值可能会不一样,不易抽象成公用样式;2.当该元素为链接时,在非IE下虚线框将变得不完整;3.如果该元素被定义为内联级或者内联块级,不同浏览器下会有较多的差异...外边距合并只出现在块级元素上; // b. 浮动元素不会和相邻的元素产生外边距合并; // c. 绝对定位元素不会和相邻的元素产生外边距合并; // d....内联块级元素间不会产生外边距合并; // e. 根元素间不会产生外边距合并(如html与body间); // f.
字符所占高度的计算 所以在了解了上面的概念以后,就可以解答为什么在 font-size:100px 的时候行高却不一样的问题。...(呵…)当然你也可以称之为 Block Box,因为他就是一个块。简单来说Containing Box和Block Box其实是一个东西。...Inline Box (内联盒子) 在段落内部,有很多的 Inline Box。 这些 Box 不会像 Block Box 那样形成新的一⾏。...但是,有时候 Inline Box 的一部分会撑破 Line Box 的顶部或底部。例如一个拥有padding、margin、border 的 Inline Box 。...因此会在元素的上方和下方显示padding、margin、border,但并不会影响 Line Box。
CSS3的设计则是为了更绚丽的视觉效果和更丰富的网页布局。 块级元素负责结构,内联元素负责内容! 块级元素 一个水平流上只能单独显示一个元素,因此理论上都可以配合clear属性来清除浮动带来的影响。...在css世界中,内联元素极为重要,涉及的css属性也非常多,这些属性往往具有继承特性! 内联盒模型.png 内容区域:只与字号和字体有关,与行高无关!...>helloworld 包含块:如上述标签 幽灵空白节点:在HTML5文档声明中,内联元素的所有解析和渲染表现就如同每个行框盒子的前面有一个“空白节点”,同时具有该元素的字体和行高属性的...如果内部没有块级元素或者块级元素没有设置宽度,则“最大宽度”实际上是最大的连续内联盒子的宽度。 连续内联盒子:全部都是内联级别的一个或一堆元素,中间没有任何的换行标签或其他的块级元素。...父级和第一个/最后一个子元素; 空块级元素; margin合并的意义:在页面中任何地方嵌套或直接放入任何裸,都不会影响原来的块状布局。
center 中心居中 top 顶部居中 bottom 底部居中 right 右侧居中 left 左侧居中 百分数值: (左上角)百分数值同时应用于元素和图像...下面的表格总结了 white-space 属性的行为: 值 空白符 换行符 自动换行 pre-line 合并 保留 允许 normal 合并 忽略 允许 nowrap 合并 忽略 不允许 pre 保留...保留 不允许 pre-wrap 保留 保留 允许 文本方向: direction属性: 块级元素中的文本书写方向,表中列布局的方向…… unicode-bidi属性:行内元素 文本属性: 属性 描述...CSS2 包含该属性,但是 CSS2.1 没有保留该属性。 text-transform 控制元素中的字母。 unicode-bidi 设置文本方向。...white-space 设置元素中空白的处理方式。 word-spacing 设置字间距。 字体样式: 字体属性 属性 描述 font 简写属性。作用是把所有针对字体的属性设置在一个声明中。
image.png 最终元素的总宽度计算公式是这样的: 总元素的宽度=宽度+左填充+右填充+左边框+右边框+左边距+右边距 元素的总高度最终计算公式是这样的: 总元素的高度=高度+顶部填充+底部填充+上边框...不幸的是,IE5.X 和 6 在怪异模式中使用自己的非标准模型。这些浏览器的 width 属性不是内容的宽度,而是内容、内边距和边框的宽度的总和。 ...IE8 及更早IE版本不支持 填充的宽度和边框的宽度属性设。 解决IE8及更早版本不兼容问题可以在HTML页面声明 即可。 3、内联元素与块元素 div、h1 或 p 元素常常被称为块级元素。...这意味着这些元素显示为一块内容,即“块框”。与之相反,span 和 strong 等元素称为“行内元素”,这是因为它们的内容显示在行中,即“行内框”。...image.png 属性值border-box width=内容宽度+左填充+右填充+左边框+右边框 height=高度+顶部填充+底部填充+上边框+下边框 .test2{ box-sizing
它是页面中的一块渲染区域,并且有一套渲染规则,它决定了其子元素将如何定位,以及和其他元素的关系和相互作用。...在 IFC 中,内联元素按照水平方向依次排列,当一行排不下时会进行换行处理,并且在垂直方向上,它们的对齐方式遵循一定的规则,比如基线对齐、顶部对齐、中部对齐等。...布局规则:内联元素在水平方向上从左到右依次排列(对于从右到左的文字排版语言则是从右到左排列),多个内联元素之间会根据 white-space(空白符处理方式)、word-spacing(单词间距)、letter-spacing...在垂直方向上,默认是基线对齐(以元素内文字的基线为基准对齐),不过也可以通过 vertical-align 属性来改变对齐方式,如设置为 top(顶部对齐)、middle(中部对齐)、bottom(底部对齐...内联块元素的排列处理:当内联块元素(display 属性值为 inline-block 的元素)参与到内联布局中时,也遵循 IFC 的规则,比如多个内联块元素组成的导航栏,它们在水平方向排列以及垂直对齐方面都受
(这说明BFC中子元素不会超出他的包含块,而position为absolute的元素可以超出他的包含块边界) 4.BFC的区域不会与float的元素区域重叠 5.计算BFC的高度时,浮动子元素也参与计算...top/bottom 对于内联元素,指的是元素的顶部(底部)和当前行框盒子的顶部(底部)对齐;即与 line-box 的顶部(底部)对齐 对于 table-cell 元素,指的是元素的顶 padding...边缘和表格行的顶部对齐。...text-bottom,指的是盒子的底部和父级内容区域的底部对齐,即与 content-area 底部部对齐。...DOM节点中的各个元素都是以盒模型的形式存在,这些都需要浏览器去计算其位置和大小等,这个过程称为reflow;当盒模型的位置,大小以及其他属性,如颜色,字体,等确定下来之后,浏览器便开始绘制内容,这个过程称为
IFC由一个不包含块级盒的块容器盒生成。 在行内格式化上下文中,盒从包含块的顶部开始一个接一个地水平摆放。盒水平方向的外边距、边框和内边距在布局时都会考虑在内。...如果这些盒足够高,则有多种解决方案并且CSS2.2没有规定此行盒的基线的位置(即,strut的位置,参见下文)。 行盒高度是最上盒顶部到最下盒底部的距离。...该对齐子树的top是子树内最高的盒顶部,bottom也是类似这样。 top 把对齐子树的顶部与行盒顶部对齐。 bottom 把对齐子树的底部与行盒底部对齐。...对于“不包含文本,没有保留的空白区域,没有margins、padding、border不为零的行内元素,也没有其他在标准流内 In-flow 内容(如图片、行内块或行内表格),并且不以保留的换行符结尾”...在这个例子中,由 p 元素生成的盒创建了这些行盒的包含块。 如果该包含块足够宽,所有的行内盒将放置在单个行盒中,如下: ? 包含块足够宽 如果宽度不够,行内盒就会被分割并分布在多个行盒中。
在css中,HTML中的标签元素大体被分为三种不同的类型:块状元素、内联元素(行内元素)和内联块元素。...块级元素 在html中、、、、、就是块级元素。设置display:block就是将元素显示为块级元素,使该元素具有块级元素的特点。...内联元素 在htnl中,、、、和就是典型的内联元素(行内元素)(inline)元素。...块级元素也可以通过代码display:inline将元素设置为内联元素 div{display:inline;} 内联元素特点: 1、和其他元素都在一行上; 2、元素的高度、宽度及顶部和底部的边距不可设置...inline-block元素特点: 1、和其他元素都在一行上; 2、元素的高度、宽度、行高以及顶部和底部边距都可设置。
html中元素分为三种:块级元素、行内元素(也叫内联元素),内联块级元素。 常用块级元素:、、......(霸道,一个块级元素独占一行) 2、元素的高度、宽度、行高以及顶和底边距都可设置。...3、元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致) 常用内联元素:、、、、、、、 内联元素特点: 1...、和其他元素都在一行上; 2、元素的高度、宽度及顶部和底部边距不可设置; 3、元素的宽度就是它包含的文字或图片的宽度,不可改变。...常用内联块元素:、 内联块级元素特点:(同时具备内联元素、块级元素的特点) 1、和其他元素都在一行上; 2、元素的高度、宽度、行高以及顶和底边距都可设置!
它需要许多不同的值,但坦率地说,在大多数情况下你将只使用 4 个值。 block:CSS 中的块级元素,它占用尽可能多的空间,但它们不能放置在同一水平线上。...开发人员主要使用块级元素来简化布局过程,因为他们能够改变他们选择的元素的宽度和高度。 inline:这是默认值,如果没有指定任何其他显示值,元素可以并排放置在与内联元素相同的水平线上。...像、、 等 HTML 标签就是内联元素的好例子,我们无法控制它们的宽度和高度。...inline-block:你可以将其视为块元素和内联元素的组合值,你可以在其中设置它们的宽度和高度,并且元素可以毫无问题地出现在同一水平线上。 none:使用此值可以从网页中隐藏元素。...固定:具有固定位置的元素相对于视口定位,但是,顶部、底部、左侧和右侧属性用于定位元素。
>出现才换行 pre 空白会被浏览器保留 pre-wrap 保留空白符序列,但是正常地进行换行 8)).文本方向 ltr...block 元素将显示为块级元素,此元素前后会带有换行符。 inline 元素将被显示为内联元素,元素前后没有换行符。...inline-block 行内块元素 list-item 元素会作为列表显示。 run-in 元素会根据上下文作为块级元素或内联元素显示。...table 元素会作为块级表格来显示,表格前后带有换行符。 inline-table 元素会作为内联表格来显示,表格前后没有换行符。...元素会作为一个表格标题显示(类似 ) 此时的块级元素div就有了内联元素的特性了。