则没有结束标记 - 这种叫空标签,在XML里空标签必须要补一个斜杠,但HTML里没有这规定,所以HTML比较随意没有XML那样严格的规范,也正因为如此,有了接近XML的XHTML1.0 规范,这个XHTML当年曾经很火甚至有人断言HTML5不会出生,但是后来越搞越复杂到不向下兼容的XHTML2.0终于被HTML5击败(HTML5向下兼容HTML4.0, XHTML1.0).
说到HTML标准,实际上目前兼容性最好的还是HTML4.0以及XHTML1.0,编写一个网页使用什么样的标准 一般 在HTML的第一行使用 声明,这个语句比较复杂,例如HTML4.0兼容标准的声明为
为其他节点的根节点,而 html一般 包含两个子节点, body节点里面放显示内容,而head节点里放页面的其他参数(例如窗口标题,页面编码等等)
所有的节点都可以用CSS来定义外观,CSS可以写到节点的style属性里,也可以写到CSS文件里。所有可显示的节点的显示模式都可以用盒子模型来表示,如下图:
当然还有节点的宽度、高度等等,有有的浏览器中宽度高度整的是包含border的节点大小,而在有的浏览器中指的是内容区大小,关于盒子模型请参考文章:了解CSS 盒子模型
如果你还不知道什么是CSS选择器,请参考教程CSS选择器语法详解以及HTMLayout快速入门
可以指定高度、宽度(当然也支持上面所说的盒子模型的所有属性,例如内边距、外边距等等),多个块节点总是在页面上自上向下的垂直流动(块节点总是独占一行,默认的两个块节点不会显示在同一行内,无法在同一行内联接)
内联节点总是在页面上自左向右的水平流动,一行放不下来才会流动到下一行,内联元素显示在行内,其高度受限于行距的高度,一个典型的例子就是文本,内联节点不能指定垂直方向的外边距(但是可以指定水平方向的外边距)、虽然也可以指定边框以及内边距(但在垂直方向上受行距高度的限制,边框以及内边距在垂直方向上设置的再大也不能改变行距高度,多余的内边距会被忽略,而多余的边框会溢出到上一行或下一行重叠显示),内联节点也不能指定高度(受行距高度的限制),也不能指定宽度(即内联节点在水平方向上只有外边距是正常起作用的,垂直方向上内外边距、边框等都显示不正常受制于行距高度)
块节点通常用来布局、建立网页的框架、调整网页的结构,最重要的块节点就是div节点。内联节点通常用来显示内容(文本和图像)、最常见的内联节点是span,注意显示图像的img也是内联节点。
他们自上向下流动,注意上下两个块节点之间的上下外边距会自动合并,#header 节点的下边距是20像素,#main-box的上边距是10像素,那他们之间的边距不是总和的30像素,而是重叠后的最大边距20像素。
#a,#b,#c,#d 四个绿色边框的兄弟节点也是自上向下流动的,不论他们是多大的宽度,始终占据独立的一行。
而他后面的其他节点就完全当他不存在,继续自管自的从下向下流动,在一些浏览器中 #b #c 会显示在#a的后面,也就是 #a不但是浮动到了右侧也浮动到了他们的上面( 这时候可以通过指定左侧块节点的右边距 - 也就是 margin-right 避免重叠 )
注意 #a虽然是浮动的节点,但是他不会影响他前面的节点、以及他的父亲节点(这就象孙悟空逃不出如来佛的手掌心 ),
如果你希望 #c节点在 #a节点的下面,那么就要在 #c的CSS属性中加上 clear:right 清除右浮动,也就是不允许任何节点浮动到他的右侧,在上面的代码里加下下面的CSS代码:
内联节点默认的是不能指定高度的(在IE6怪异模式下可以指定宽度),这称为内联块节点( display: inline-block )
内联节点也可以指定边框边距这些 - 如果是纯粹的inline(内联)节点垂直方向上高度有关的外观属性会受制于行距高度,而inline-block(内联块) 可以不受行距高度限制,而且内联节点也可以向左或向右浮动,常见的如文本环绕图片的效果就是使用浮动属性实现,示例如下:
可以看到 img 节点通过在CSS里指定 float:right; 向右浮动,然后本该水平流动的文本环绕在他周围。
绝对坐标指的是:left指定左坐标,top指定顶坐标,right指定右坐标,bottom指定底坐标,如果仅指定right,top属性则是相对于最 近的一个position为relative或absolute的父元素进行定位(默认为 body 节点,也就是相对于页面左上角定位)。
注意absolute并不一定是相对body的左上角定位,他会向上查找最近的一个position为relative或absolute的父元素作为坐标参考点。请运行下面的示例代码:
position:absolute 还带来一个好处,使用 absolute定位的节点在样式中也可以使用 z-index 调整节点在Z轴上的顺序( 也就是节点的前后重叠顺序、或者叫Z序 ), 而 psition:static 的节点不支持 z-index。
相对定位与绝对坐标类似,可以使用 left,top,bottom,right 等指定坐标,不同的是节点并不会脱离原来的文档流,坐标只是相对他原来应当显示的位置。
一个节点在标准的文档流中,他默认应当显示在哪个位置 - 这就是相对坐标的参考值。请看下面的示例:

