w3c系列CSS2.1之路(一)

CSS的学习一般是从看书看博客开始的,看到一定程度之后总觉得总是少了些什么,网上各类资料多半是提供怎么解决问题,很少有深入分析原理的。本系列是对w3.org中标准的CSS2.1进行学习,希望能从更深入的角度去看CSS。

有时间建议去看看官方原文:http://www.w3.org/TR/2011/REC-CSS2-20110607/

CSDN论坛上也有对CSS标准的详解系列:http://bbs.csdn.net/topics/340173664

本文作为系列开篇,是对CSS2.1的一个总体介绍。对应于原文的前三章。(以后无特别声明,CSS默认指代CSS2.1)

1.CSS处理模型

官方给出了user agent 解析CSS的一个流程,但实际上根据UA(本文默认UA都指代浏览器)的不同可能有些差别:

1.根据源文档创建出文档树(document tree)。这里的源文档一般都是HTML代码。

2.识别目标媒体类型(media type)。media type可能有多种(screen,paper等),某些特定的CSS属性只能针对特定的媒体类型,所以在渲染前一定要确定media type。

3.检索出所有针对目标media type所编写的CSS代码。这里想到了media query,针对不同尺寸的设备响应不同的代码,就是这个道理。

4.将指定的CSS属性值应用到文档中所有指定的元素上。在应用的过程中需要计算出每个元素应该赋予的值(具体应用过程后面的系列会讲),在不同的media type下,会用到不同的计算算法。比如说目标媒体类型为screen时,浏览器会应用visual
formatting model
(可视化格式模型,这个在后面的系列会讲)。

5.根据应用属性后的文档树生成formatting structure。一般来说formatting structure与文档树很相似,但也可能不同,比如说你用了伪元素(pseudo-elements)改变了文档结构。而且formatting structure也不一定是树形结构的了,比如说你用display:none隐藏了某些元素。个人理解:文档树就是源文档中的结构,而formatting structure就是经过CSS渲染后的文档结构。

6.最后一步就是将formatting structure的结果渲染在目标媒体上。比如浏览器将其渲染到你的屏幕上。

2.CSS设计准则

  • Forward and backward compatibility

前后兼容,不解释。

  • Complementary to structured documents

对结构化文档的补充。这里强调是补充,虽然你可以通过CSS让文档变成任何你想要的样子,但CSS毕竟是用来修饰的,如果用它来改变文档的结构,是违背其设计原则的,这也是大家都强调语义化的一个原因吧。

  • Vendor, platform, and device independence

注重厂商,平台以及设备的独立性,允许你将特定的CSS应用到一组设备上。

  • Maintainability

可维护性,不解释。

  • Simplicity

简洁。

  • Network performance

注重网络性能,你可以将CSS压缩以减少网站访问流量。

  • Flexibility

灵活性。你可以以不同的方式引入CSS。

  • Richness

给设计者提供丰富的特性来让你的页面达到更完美的效果。

  • Alternative language bindings

支持其他语言的操控。比如你想改变字体颜色,除了CSS,还可以用JS来控制。

  • Accessibility

易接受性。CSS可以通过某些特性来让一些有访问障碍或特殊需求的人更容易的使用Web。比如当你的无法访问网络图片时,可以用alt中文字代替。

3.总结

本系列主要针对于Web开发,w3c中部分章节作用不大就直接忽略了,比如第7章讲media types媒体类型,讲了各种媒体类型print,speech,tv什么的,(一般用到的就是screen吧= =)。有兴趣,或者有必要的时候,再去看看原文也不错。

时间: 2024-12-22 07:37:52

w3c系列CSS2.1之路(一)的相关文章

w3c系列CSS之路(五):详解visual formatting model

本文是对w3c系列CSS之路(四)种的VFM的完善和补充,官方原文:http://www.w3.org/TR/2011/REC-CSS2-20110607/visudet.html 1 containing block containing block(包含框)上节有提到,这里给出更详细的介绍.一个盒子的位置和大小通常都跟包含它的矩形框有关,这个矩形框就是这个盒子的包含框.标准给出了一个元素的containing block的定义: 首先,根元素的居住的包含框叫做initial containi

w3c系列CSS之路(二):错误解析和基本数据类型

有时候当你发现你写的样式代码并没有如期执行时,很可能是你打错字了.但是其他元素的样式并没有失效,这跟其他语言还是有区别的,比如C,语法出错编译就会报错,更别说执行了.CSS对于语法错误有它自己的解析机制,下面我们就来探讨一下. 1.错误处理 要想解析语法错误,首先得明白语法,一些基本的用法这里就不说了,说些关键点: 1.注意关键字的使用.不要在关键字外加引号.比如:color:"red";是不对的. 2.支持厂商对关键字的扩展.比如_height在非IE浏览器下是非法无效的,但在IE6

w3c系列之CSS(三):CSS属性是如何被应用到元素上的

w3c上第五章是讲CSS选择器的,可以去看精通CSS系列之选择器.本文讲的是第六章(Assigning property values, Cascading, and Inheritance). 当浏览器为获取到的网页文档生成了document tree时,接下来要做的就是为每一个元素应用样式了. 浏览器在计算样式值的时候一般会经过以下四步计算: STEP1.优先使用指定属性值(the "specified value") 首先使用指定的值(the "specified va

w3c系列之CSS(四):深入理解盒模型

盒模型是一个老生常谈的话题,本身并不复杂,它描述了文档树所产生的矩形框以及根据可视化格式模型(visual formatting model)所产生的布局结构. 曾经看到一道面试题:说说CSS中的盒模型?网上的回答都是margin,border,padding,width,height之类的,尼玛都是复制粘贴的吧= =.....要是这篇文章也这么写的话就跟前面三篇没啥区别了,既然要深入理解,那就谈点高大上的东西. 1.要深入,先入门 首先还是得对盒模型做个简单而详细的介绍,想要跑,基础要打好~,

服务器价格指导6月双路机架产品导购

6月初,市场中的双路机架产品价格都稳中有下降;各厂商在型号方面,处理均支持最新的V4系列. 一.调查机型 主要机型有惠普的DL160G9.DL60 Gen9.DL360 Gen9.DL180 Gen9.DL80 Gen9和DL388 Gen9;IBM的x3550M5和 x3650M5;戴尔有R430.R530.R630.R730;联想的型号RD350.RD450. RD550.RD650;浪潮的NF5170M4.NF5180M4.NF5240M4.NF5270M4和NF5280M4.中科曙光的I

服务器价格指导 11月双路机架产品导购

11月初,各大服务器厂商的主力机型的价格稳中有降;各厂商在机型型号方面,则保持稳定. 一.调查机型 主要机型有惠普的DL160G9.DL60 Gen9.DL360 Gen9.DL180 Gen9.DL80 Gen9和DL388 Gen9;IBM的x3550M5和 x3650M5;戴尔有R430.R530.R630.R730;联想的型号RD350.RD450. RD550.RD650;浪潮的NF5170M4.NF5180M4.NF5240M4.NF5270M4和NF5280M4.中科曙光的I410

易部署 入门级单路机架服务器推荐

2016年5月,单路机架服务器市场中,各厂商的机型型号稳定,产品价格稳重有降. 一.调查机型 单路机架市场中,主流代表机型有:惠普DL120G9和DL20;联想RS140和 x3250M5,戴尔的R230和R330,中科曙光的I210r-G和I210-G26. 二.调查范围 本期询价方法,我们对惠普和戴尔产品采用电话询价法.建议用户每周进行电话咨询,可以很好的掌握经销商当期的价格变化. 三.市场价格 1.惠普: 机型价格稳定 惠普的单路机架型号DL20,采用英特尔至强E3-1200 v5 产品,

稳中有降 7月双路机架服务器推荐

7月中旬,各大服务器厂商的主力机型的价格纷纷下降,配置方面保持稳定. 一.调查机型 主要机型有惠普的DL160G9.DL60 Gen9.DL360 Gen9.DL180 Gen9.DL80 Gen9和DL388 Gen9;IBM的x3550M5和 x3650M5;戴尔有R430.R530.R630.R730;联想的型号RD350.RD450. RD550.RD650;浪潮的NF5170M4.NF5180M4.NF5240M4.NF5270M4和NF5280M4.中科曙光的I410-G20.I42

CSDN 上的一些技术手册提供下载_常用工具

CSS样式表中文手册    本手册针对的是已有一定网页设计制作经验的读者.其目的是提供完整清晰的样式表内容的快速索引及进阶帮助.所以对于网页制作和样式表的基础知识,仅简单介绍,恕不赘述.  手册提供了完整的 CSS2.0 的属性(Properties).规则(At-Rules).伪类(Pseudo-Classes).伪元素(Pseudo-Elements).声明(Declarations).单位(Units).选择符(Selectors)的介绍.其内容涵括了 W3C 的 CSS2.0 标准,以及