H5+ CSS3之 CSS3全貌概述

1.1 css3历史
CSS3(Cascading Style Sheet 3 层叠式样式表)是CSS的第三代。
CSS3的诞生和HTML5是一样的,它的牵头人并不是W3C,而是由各大浏览器厂商所组成的WHATWG组织,后来被W3C机制采纳了。
这就导致了CSS3的一些属性在被W3C采纳前后的书写形式有所不同。在被W3C采纳前,如果浏览器支持该属性,需要加上浏览器的私有前缀,以表示这是浏览器的私有属性,非W3C的官方属性。H5+ CSS3之 CSS3全貌概述
-khtml- linux自带浏览器的私有前缀
H5+ CSS3之 CSS3全貌概述

1.2 css3兼容性
前端三个层级的语言都是有浏览器兼容性问题的。
HTML有兼容性问题,例如:header、section、video、audio等有浏览器兼容性问题。如果html遇到不能识别的标签,那么将无法渲染。
JS有兼容性问题,例如:navigator.geolocation、localStorage等。如果JS遇到不能说别的代码,麻烦了,会报错,而且此后的代码将无法运行。所以在JS中需要能力检测。
CSS有兼容性问题,例如:border-radius,opacity(filter)等。
但是只有CSS的兼容性问题最不是事儿。因为CSS在最初就有一个协定:遇到不能识别的属性、选择器,将静默(不处理、不报错)。这是CSS得以发展的重要原因。
1.2.1 CSS3中的两种兼容性策略
渐进增强:先写所有浏览器都支持的属性,以保证低版本浏览器的基本功能,然后再添加只有高级浏览器才支持的属性、选择器。(向上兼容)
优雅降级:针对完备的浏览器写CSS,然后再向低版本浏览器做兼容。(向下兼容)
1.2.2 CSS3与HTML5的关系
CSS3和HTML5没有关系。
HTML5是HTML,是负责描述网页语义结构的。CSS3是CSS,是负责美化、装饰网页的。
XHTML1.0, HTML4等也可以使用CSS3.
HTML5也可以使用CSS3之前版本的属性和选择器,只要浏览器兼容即可。
1.3 CSS3新特性
CSS3在很多方面进行了改进。例如:选择器、盒模型、圆角、背景、阴影、颜色表示等。
最最重要的是增加了三大模块:变型、过渡、动画。