css行内框和块框的区别是什么
区别:1、行内框不遵守严格的盒模型,而块框遵守。2、块框在浏览器中所占空间由元素大小,内边距,边框和外边距构成;而行内框由元素大小决定。3、行内框无法设置高度,块框可以。4、行内框中浏览器会忽视padding和margin的设置,块框不会。
本教程操作环境:windows7系统、CSS3&&HTML5版、Dell G3电脑。
大家都知道DOM元素在css样式的定义下分为内联元素和块元素。由于浏览器的盒模型我们可以把元素看成一个个框,所以这两种分类又叫做行内框和块框。本篇文章旨在介绍浏览器对这两种框不同的呈现模式。
块框(块元素)
严格遵守盒模型—-某个元素在浏览器中所占空间由元素大小,内边距,边框和外边距构成,还服从外边距叠加原则。所谓外边距叠加原则准确的来说并不是求和原则而是求最大原则。例如:
(1)上下两个紧挨着的div元素,上面的div元素设置了margin-bottom,下面的div元素设置了margin-top,加入给这两个div都加上一个border,那么这时候这两个div在浏览器中呈现出来的效果并不是两个边框之前相距margin-botton + margin-top的和,而是相距两个值中的最大的那个。
(2)不仅对于不同且相邻的块元素由margin叠加原则,对于同一个元素相邻的margin也有叠加规则。想想空元素,它的外上边距和外下边距不就是直接相邻的吗?
行内框(内联元素)
行内元素不遵守严格的盒模型。它在浏览器中垂直占据的位置只由元素的大小决定并且无法用css为行内框设置高度,且浏览器会忽视padding和margin的设置 。
对于margin我们无论设置什么值都没有效果,但是对于行内框有一个padding陷进。
举例来说,如果在页面写一个span,为它加上border线,然后改变padding的值,这时边界框就会变高,表面上看起来padding的值撑起了行内框的高度,整个框的高度由元素高和上下内边距组成,但是如果你在该span下面写一个div,那么问题来了。
div并不会和span隔pandding那么宽,而是直接在span元素行高结束的地方另起一行。
这就说明了浏览器对于span盒子的解释和块框完全不同,垂直方向的padding,margin并不会为该元素在浏览器中占据空间行内框的高度只由行内框的内容自动撑起,因为这种方式所以唯一改变行内框高度的方法就是为行内元素设置行高。
说明:
行内框的高度=文字高度+行间距
行框高度= 最高的行内框顶部-最低行内框底部
存在最高和最低的区分是因为同一行内可能有大小不同的字体,上下位置不同的字体,因此存在不同的行内框高度。
从大的层面理解,行内框针对个体,行框针对一个整体。
如下图,box所在的框,是整行的最高点和最低点,行框由它撑起来。
所以行框=box的行内框。
其他小框就是各个文字自己的行内框了。
(学习视频分享:css视频教程)
以上就是css行内框和块框的区别是什么的详细内容,更多请关注其它相关文章!
上一篇: ccs透明属性和背景透明继承方法实例详解
下一篇: php实现针对文件的复制及移动的技巧
推荐阅读
-
css——行内元素和块级元素的具体区别与行内块元素
-
基于Jquery和Css3代码制作可以缩放的搜索框
-
线性元素和块级元素的区别是什么?
-
黑马Android76期学习笔记01基础--day07--广播,有、无序广播、特殊广播接受者、样式和主题,this与context的区别、普通对话框,进度条对话框、帧动画
-
CSS的 行内元素 和 块类元素
-
jquery中的mouseleave和mouseout的区别 模仿下拉框效果
-
使用HTML5和CSS3制作一个模态框的示例
-
disabled和readonly的区别是什么_html/css_WEB-ITnose
-
VC++中多线程学习(MFC多线程)一(线程的创建、线程函数如何调用类成员呢?如何调用主对话框的成员?、MFC中的工作线程和界面线程的区别)
-
jquery中的mouseleave和mouseout的区别 模仿下拉框效果_jquery