触手生春【4.14】CSS与HTML结构

作者:ximicc 来源:ximicc博客 时间:2008-12-09 18:10:00 

前面已经提到,CSS之所以如此强大,是因为它采用HTML文档结构来决定其样式的应用。但这仅仅只是一方面,因为它只暗示了CSS之所以使用文档结构,仅仅是为了决定将不同的规则应用于不同的元素这一点。

事实上文档的结构往样式的应用中扮演着更为重要的角色。为了理解这一角色我们需要理解文档是怎样结构化的。对于下面列举的这个简单的HTML文档,如图显示了其对应的"树型视图":

CSS的大部分能力都是基于元素的父子关系。HTML文档,实际上大多数结构文档,都是基于元素的层次关系的,这种层次可以用下图的树形结构来刻画。在这样的层次图中,每个元素都处于整个结构文档中的某个位置,而且每个元素或是另一个元素的父元素,或是子元素,或者既是父元素又是子元素。

一个元素包含了另一个元素,那么这个元素就是另一个元素的父元素。例如在上图中,P元素是EM和STRONG元素的父元素,而STRONG是另一个定位锚(A)元素的父元素,这个定位锚元素又是另一个EM元素的父元素。相反地,一个元素被另一个元素所包含,那么它就是子元素。这样,图中的链接元素就是STRONG元素的子元素,STRONG又是段落元素的子元素,依次类推。

父和子的术语常常被一般化为祖先和后代这两个术语。但也有区别:在树形图中,如果一个元素刚好处于另一个元素的上面一层,那么它们就是父子关系。当然,子元素也是一个后代,父元素也是一个祖先。但是,如果从一个元素到另一个元素的路径上跨越了两个或更多层次,那么它们就具有祖先-后代关系。上图中,第一个UL元素是两个LI元素的父元素,但它也是第二个UL元素下所有元素的祖先元素,一直到最深一层的LI元素。

继续观察树型结构,可以看到定位锚元素是STRONG的子元素,同时也是段落元素的后代,还是BODY和HTML元素的后代。BODY元素是所有浏览器能显示的元素的祖先,当然HTML元素是所有元素的祖先。基于这个原因,HTML元素也被称为根元素。

标签:触手生春,css,html,结构
0
投稿

猜你喜欢

  • 磁盘缓存专题之一 缓存命中和缓存未命中&缓存与缓冲间的差异

    2012-10-07 11:02:46
  • WorkBench管理操作MySQL

    2010-10-14 14:21:00
  • 设计输入了些什么?

    2008-04-02 11:16:00
  • MSSQL2005数据附加失败报错3456解决办法

    2012-11-30 19:56:59
  • 利用sql函数生成不重复的订单号的代码

    2012-01-05 19:02:55
  • 如何获取机器的网络配置属性?

    2009-11-23 20:44:00
  • XHTML中用途相似的标签

    2008-03-24 19:33:00
  • 10大实用web应用界面技术[译]

    2009-01-20 12:40:00
  • 用DIV+CSS编写出的网页中的圆角矩形

    2007-10-14 16:03:00
  • 注册表单之死

    2008-08-07 13:02:00
  • 用javascript来实现仿gogle动画导航

    2007-11-30 14:15:00
  • 用户凭什么跟你注册?

    2011-06-10 13:16:00
  • JS判断是否为数字、JS判断是否为整数、JS判断是否为浮点数

    2008-11-19 16:42:00
  • ul设置浮动后不能自适应高度

    2011-01-25 12:48:00
  • Oracle如何直接运行OS命令(上)第1/2页

    2010-07-30 12:54:00
  • Mysql数据库名和表名的大小写敏感性问题

    2010-06-07 14:07:00
  • asp随机提取access数据库记录的几种方法

    2007-09-06 19:42:00
  • form 元素内的字段 name 不要跟 form 属性名称一致

    2008-10-22 13:25:00
  • ORACLE 常用的SQL语法和数据对象

    2009-02-26 10:58:00
  • 文章关键字替换带链接需要注意的两个问题

    2010-02-25 12:18:00
  • asp之家 网络编程 m.aspxhome.com