日期:2014-05-17  浏览次数:20702 次

HTML块级元素的类型,内联元素

原文(http://jcwlw.blog.163.com/blog/static/367732092009111541547980/)

?

块级元素的分类

块级元素按照其应用于结构还是内容分为三种:结构化块状元素,终端块状元素,多目标块状元素。

一.结构化块状元素

这类元素用于构造文档的结构,一个好的文档结构对于搜索引擎和应用其他技术(如JavaScript)都是十分有利的。它们没有语义上的含义,仅仅划分出了文档的组织方式,并没有体现文档的内容。

主要的结构化块状元素

?

  • <ol>
  • <ul>
  • <dl>
  • <table>

?

支持结构化的元素

?

  • <li>
  • <dt>
  • <dd>
  • <caption>
  • <thead>
  • <tbody>
  • <tfoot>
  • <colgroup>
  • <col>

?

二.终端块状元素

这类元素用于从结构转向内容,它们拥有语义上的含义,能够表明内容的性质。终端块状元素属于结构的终点,它们不能再包含其他块级元素,只能包含文本或行级元素。

终端块状元素

?

  • <h1>...<h6>
  • <p>
  • <blockquote>
  • <dt>
  • <address>
  • <caption>

?

三.多目标块状元素

所谓多目标指的是可以自由的扩展或嵌套文档的结构,以可以终端的形式出现。当多目标块状元素以结构化的方式使用时就含有结构化的内涵,以终端的形式使用就含有语义的内涵。

多目标块状元素既可以包含块状元素,也可以包含内容(文本与行级元素的组合为内容),但不能同时包含两者。应该把内容放在块状元素中。块状元素不应作为行级元素与文本的兄弟元素,受HTML校验器的限制,目前还没办法检验出此种情况,但是应该避免。

多目标块状元素

?

  • <div>
  • <li>
  • <dd>
  • <td>
  • <form>
  • <noscript>

在谈论CSS布局时,我们需要提前知道一些东西。对于html各种标签/元素,可以从块的层面做一个分类:要么是block(块元素),要么是inline(内联元素):

?

block元素的特点:
  • 总是另起一行开始;
  • 高度,行高以及顶、底边距都可控制;
  • 宽度缺省是它所在容器的100%,除非设定一个宽度。
inline元素的特点:
  • 和其它元素都在一行上;
  • 高度,行高以及顶、底边距不可改变;
  • 宽度就是它所容纳的文字或图片的宽度,不可改变。

?

下面对它们的性质及应用做进一步说明:
块元素(block element) 通常作为其它元素的容器,它可以容纳内联元素和其它块元素。
  我们知道默认情况下,块元素会顺序以每次另起一行的方式往下排,而通过CSS控制其样式,我们可以改变这种默认布局模式,把块元素摆放到你想要的位置上去。需要指出的是,table标签也是块元素的一种,基于table表格和基于CSS+DIV的布局,在使用者看来除了页面载入速度的差别(table在所有内容元素加载完成后才显示),没有其它的差别。但是从页面的源代码来看,这种差异就非常大了。基于良好结构理念设计的CSS布局源码,至少能让没有web开发经验的用户很容易找到连续的页面内容。从这个角度来说,CSS layout code应该有更好的美学体验。
  我们可以把模块化的DIV想象成一个个box,然后把它们按自己的意愿排列组成完整的内容,网页布局设计就是遵循了同样的模式。

?

块元素(block element) HTML标签分类明细
  • address - 地址
  • blockquote - 块引用
  • center - 举中对齐块
  • dir - 目录列表
  • div - 常用块级容易,也是css layout的主要标签
  • dl - 定义列表
  • fieldset - form控制组
  • form - 交互表单 (只能用来容纳其它块元素)
  • h1 - 大标题
  • h2 - 副标题
  • h3 - 3级标题
  • h4 - 4级标题
  • h5 - 5级标题
  • h6 - 6级标题
  • hr - 水平分隔线
  • isindex - input prompt
  • menu - 菜单列表
  • noframes - frames可选内容,(对于不支持frame的浏览器显示此区块内容
  • noscript - 可选脚本内容(对于不支持script的浏览器显示此内容)
  • ol - 排序表单
  • p - 段落
  • pre - 格式化文本
  • table - 表格
  • ul - 非排序列表

?

?

◎内联元素(inline element) 一般都是基于语义级(semantic)的基本元素,只能容纳文本或者其它内联元素。

  为了比较明确的表现出 block 与 inline 的区别,我们可以利用它们各自的代表元素div和span的演示进行说明:

?

XXXXXXXXX

?

This's a DIV layout