Cascading Style Sheets: The Definitive Guide, 2nd Edition is a thorough review of all aspects of CSS2.1 and a comprehensive guide to CSS implementation. The book includes new content on positioning, lists and generated content, table layout, user interface, paged media, and more. It explores in detail each individual CSS property and how it interacts with other properties, and shows how to avoid common mistakes in interpretation. W3c的Css主页:http://www.w3.org/Style/CSS/ 1 css和document1.1 elementshtml中的元素很容易辨识,如p,table,span,a,div。xml中元素由dtd定义,或者xml schema定义。每个元素部分代表了其表现方式。Css中可以看作每个元素产生一个box,该box包含了元素的内容。1.1.1元素类型:replaced和nonreplaced elements,block-level和inline-level elementsreplaced elements:元素的内容可以被不是直接由文档表示的内容替换。典型的是xhtml中的img,它可以被指向文档外部的图片文件代替。 Input元素也可以根据其type的不同,而被radio button,checkbox,text input box代替。 Replaced elements也在显示时产生一个box。Nonreplaced elements:html和xhtml的大多数元素是nonreplaced。就是说,这些元素的内容由用户代理(user agent,通常是指浏览器)在元素产生的box中来表述present。(box是不是指元素对应在页面上的一个region?)。 比如<span>hi there</span>是nonreplaced,文本hi here将由user agent来显示。 Block-level element块元素:产生一个元素box,该box填充其父元素的内容区域,并且其两边没有其他元素。就是说在默认的情况下每个block-level都是单独一行的。比如p,div。list items是一种特殊的块元素。为了跟其他块元素具有统一的行为,为无序的lists产生一个符号,如bullet;为有序的lists产生一个数字。将符号或数字加到元素box上。除了符号的表现方式外,其他特性跟其余的块元素一样。Inline-level element内联元素:产生一个元素box,其中是一行文本,并且不是单独一行的。典型的例子是xhtml中的a元素,另外如strong,em。因为内联元素不会打断其前后的显示,所以内联元素出现在其他元素中的话不会打断其他元素的显示。 注意:xhtml和html中块元素不能从内联元素继承,但是css中没有类似规定。没有限制元素嵌套方式。 块元素(block element)一般是其他元素的容器元素,块元素一般都从新行开始,它可以容纳内联元素和其他块元素,常见块元素是段落标签'P。"form"这个块元素比较特殊,它只能用来容纳其他块元素。
如果没有css的作用,块元素会顺序以每次另起一行的方式一直往下排。而有了css以后,我们可以改变这种html的默认布局模式,把块元素摆放到你想 要的位置上去。而不是每次都愚蠢的另起一行。需要指出的是,table标签也是块元素的一种,table based layout和css based layout从一般使用者(不包括视力障碍者、盲人等)的角度来看这两种布局,除了页面载入速度的差别外,没有其他的差别。但是如果普通使用者不经意点了 查看页面源代码按钮后,两者所表现出来的差异就非常大了。基于良好重构理念设计的css布局页面源码,至少也能让没有web开发经验的普通使用者把内容快 速的读懂。从这个角度来说,css layout code应该有更好的美学体验吧。