Html文档流
刚开始学习Html时,并没有太多的关注于行内元素、块级元素、文档的渲染过程等内容,直到后面学习Div+CSS布局时,在经过了各种的浮动、设置内外边距、边框等时,觉得布局好难的,原本,好好的布局,由于内容的改动或者内外边距的调整,从而导致了布局的变动,此时,才逐渐明白了文档流以及行内元素、块级元素的概念,今天再重新对这部分内容进行梳理,以更好的掌握。
一、什么是文档流
首先来看一个最简单的html文档,其代码内容如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<ul>
<li>Java程序设计</li>
<li>ASP.NET程序设计</li>
<li>Html与CSS网页设计</li>
</ul>
<span>Hello</span>
<span>文档流</span>
<p>
这是一段文本字
</p>
</body>
</html>
其页面结果如下:
学习Html时,都知道,页面中的内容是body标签内部的内容。从这个例子中,可以知道,Html页面在呈现时,是从上向下依次进行呈现的,也就是说,哪个元素在前面,就先呈现它。在body中,首先是ul标签,这是一个列表,其中li是列表项,从结果来看,每个li单独占一行,而紧随其后的两个span元素呢,并不是独占一行,而是两个span元素共同占一行。再后面的p标签,也是独占一行。这就是文档流。
Html文档流就是在呈现网页的内容时,从元素组织的顺序,即在Html文件中的顺序,按照从上向下,依次在屏幕上进行呈现。有些独占一行,有些共同占用一行。下面我们为这些元素添加边框来看一下,
二、行内元素(内联元素)与块级元素
从上面的图中,可以看出不同的标签,其呈现的结果是不同的,主要分为两种:一是独占一行,一是多个元素共同占一行。
块级元素:在页面中独占一行。无论其后是否还有空间,都不允许再放置其它内容。块级元素可以设置其宽度(默认为100%)、高度、内外边距等。并且可以容纳其它的块级元素和行内元素。
行内元素:多个行内元素共同占一行。而且多个行内元素之间并不是紧密相邻,而是有一个空格的距离。行内元素不能设置高度和宽度,对于内外边距只能设置左右,不能设置上下的。行内元素可以容纳文本和其它行内元素。
块级元素:
行内元素:
三、行内元素(内联元素)与块级元素的相关设置
行内元素与块级元素可以通过其display属性进行设置
display:block;设置行内元素为块级元素
display:inline;设置块级元素为行内元素
将上例中的样式修改为以下内容:
li{
display: inline;
border: 1px solid green;
}
span{
display: block;
border: 1px solid blue;
}
p{
border: 1px solid red;
}
页面结果如下:
通过结果,发现原来li是块级元素,现在变成了行内元素,而span原来是行内元素,现在变成了块级元素。
总结:
块级元素总是独占一行,并且可以设置其宽度和高度,因此,主要用来呈现大块的内容,并容纳其它的块级元素和行内元素。
行内元素总是多个元素呈现在一行内,因此,行内元素主要用来呈现某一块内的细节部分。