CSS历史:
从1990年代初HTML被发明开始样式表就以各种形式出现了,不同的浏览器结合了它们各自的样式语言,读者可以使用这些样式语言来调节网页的显示方式。
一开始样式表是给读者用的,最初的HTML版本只含有很少的显示属性,读者来决定网页应该怎样被显示。
但随着HTML的成长,为了满足设计师的要求,HTML获得了很多显示功能。
随着这些功能的增加外来定义样式的语言越来越没有意义了。
1994年哈坤·利提出了CSS的最初建议。
伯特·波斯(Bert Bos)当时正在设计一个叫做Argo的浏览器,他们决定一起合作设计CSS。
当时已经有过一些样式表语言的建议了,但CSS是第一个含有“层叠”的主意的。
在CSS中,一个文件的样式可以从其他的样式表中继承下来。
读者在有些地方可以使用他自己更喜欢的样式,在其他地方则继承,或“层叠”作者的样式, 这种层叠的方式使作者和读者都可以灵活地加入自己的设计,混合各人的爱好。
哈坤于1994年在芝加哥的一次会议上第一次展示了CSS的建议,1995年他与波斯一起再次展示这个建议。
当时W3C刚刚建立,W3C对CSS的发展很感兴趣,它为此组织了一次讨论会。
哈坤、波斯和其他一些人(比如微软的托马斯·雷尔登)是这个项目的主要技术负责人。
1996年底,CSS已经完成。
1996年12月CSS要求的第一版本被出版。
1997年初,W3C内组织了专门管CSS的工作组,其负责人是克里斯·里雷。
这个工作组开始讨论第一版中没有涉及到的问题,其结果是1998年5月出版的第二版要求。
到2007年为止,第三版还未完备。
使用CSS+DIV的优点
采用CSS+DIV进行网页重构相对与传统的TABLE网页布局而具有以下3个显著优势:
1:表现和内容相分离
将设计部分剥离出来放在一个独立样式文件中,HTML文件中只存放文本信息。
这样的页面对搜索引擎更加友好。
2:提高页面浏览速度
对于同一个页面视觉效果,采用CSS+DIV重构的页面容量要比TABLE编码的页面文件容量小得多,前者一般只有后者的1/2大小。
浏览器就不用去编译大量冗长的标签。
3:易于维护和改版
你只要简单的修改几个CSS文件就可以重新设计整个网站的页面。
具体说明请见百度知道CSS发展史.
----------------------------------------------------------------------------------------------
CSS2
样式单自从CSS1的版本之后,又在1998年5月发布了CSS2版本,样式单得到了更多的充实。
CSS2.0是一套全新的样式表结构,是由W3C推行的,同以往的CSS1.0或CSS1.2完全不一样,CSS2.0推荐的是一套内容和表现效果分离的方式,HTML元素可以通过CSS2.0的样式控制显示效果,可完全不使用以往HTML中的table和td来定位表单的外观和样式,只需使用div和 Li此类HTML标签来分割元素,之后即可通过CSS2.0样式来定义表单界面的外观。
CSS2.0提供给我们了一个机制,让程序员开发时可以不考虑显示和界面就可以制作表单和界面,显示问题可由美工或是程序员后期再来编写相应的 CSS2.0样式来解决。
不过由于CSS2.0目前尚未见过很好的编辑软件,所以无法做到所见即所得,编写起来不易。
----------------------------------------------------------------------------------------------
CSS3
CSS3语言开发是朝着模块化发展的。
以前的规范作为一个模块实在是太庞大而且比较复杂,所以,把它分解为一些小的模块,更多新的模块也被加入进来。
这些模块包括:
盒子模型
列表模块
超连结方式
语言模块
背景和边框
文字特效
多栏布局
CSS3选择器
CSS3增加了更多的CSS选择器,可以实现更简单但是更强大的功能,比如:nth-child等。
时间表
几个模块现已完成,包括的SVG (可扩展矢量图形) ,媒介资源类型(Media Queries)和命名,而其他的模块开发工作则仍在进行中。
如果要给出一个预定的日期的话,非常困难,不管怎样,web浏览器将全面支持CSS3的各种新特点,一些新的探索已经开始了。
针对不同浏览器,新的功能是逐渐应用的,仍然需要1-2年的时间,每一个新的模块才有可能被广泛应用。
CSS3将给我带来哪些新的影响
首先,我们希望,这是个正确的方式,CSS3将完全向后兼容,所以没有必要修改现在的设计来让它们继续运作。
网络浏览器也还将继续支持CSS2。
对我们来说,CSS3主要的影响是将可以使用新的可用的选择器和属性,这些会允许你实现新的设计效果(譬如动态和渐变),而且可以很简单的设计出现在的设计效果(比如说使用分栏)。
CSS1
作为一项W3C推荐,CSS1发布于 1996年12月17 日。
1999 年1月11日,此推荐被重新修订。
CSS2
作为一项 W3C 推荐,CSS2发布于 1999年1月11日。
CSS2添加了对媒介(打印机和听觉设备)和可下载字体的支持。
CSS3
CSS3 计划将 CSS 划分为更小的模块。
W3C CSS 规范和时间线 规范 草案/提议 推荐 CSS 1 1996 年 12 月 17 日 CSS 1 (Revised) 1999 年 1 月 11 日 CSS 2 1998 年 5 月 12 日 CSS 2.1 2007 年 7 月 19 日 CSS 2 Mobile 2007 年 10 月 19 日 CSS 2 TV 2003 年 5 月 14 日 CSS 2 Print 2006 年 10 月 13 日 CSS 3 2001 年 5 月 23 日 CSS 3 Namespace 2006 年 8 月 28 日 CSS 3 User Interface 2004 年 5 月 11 日 CSS 3 Selectors 2005 年 12 月 15 日 CSS 3 Fonts 2002 年 8 月 2 日 CSS 3 Web Fonts 2002 年 8 月 2 日 CSS 3 Colors 2003 年 5 月 14 日 CSS 3 TV 2003 年 5 月 14 日 CSS 3 Backgrounds and borders 2005 年 2 月 16 日 CSS 3 Text 2007 年 3 月 6 日 CSS 3 Lists 2002 年 11 月 7 日 CSS 3 Line 2002 年 5 月 15 日 CSS 3 Box model 2007 年 8 月 9 日 CSS 3 Multi column 2007 年 6 月 6 日 CSS 3 Ruby 2003 年 5 月 14 日 CSS 3 Border 2005 年 3 月 16 日 CSS 3 Speech 2004 年 12 月 16 日 CSS 3 Paged Media (PM) 2006 年 10 月 10 日 CSS 3 Generated PM 2007 年 5 月 4 日 CSS 3 Print 2006 年 10 月 13 日 CSS 3 Values 2006 年 9 月 19 日 CSS 3 Cascade 2005 年 12 月 15 日 CSS 3 Template Layout 2009 年 4 月 2 日 CSS 3 Media Queries 2009 年 9 月 15 日
1.静态布局
——最传统的布局方式,网页中所有尺寸都是由px作为单位,设置了min-width,如果宽度小于就会出现滚动条,如果大于这个宽度则内容居中外加背景
实现方式:PC:居中布局,所有样式使用绝对宽度/高度(px),设计一个Layout,在屏幕宽高有调整时,使用横向和竖向的滚动条来查阅被遮掩部分;
移动设备:另外建立移动网站,单独设计一个布局,使用不同的域名如wap.或m.。
优点:采用之前的css2的布局·方式,布局简单,没有兼容性问题。
缺点: 在手机端不能合理的显示,移动端不能使用pc端页面,需要再写一个布局来呈现。
实践案例:Float 布局、绝对布局
2.自适应布局
——可以看成是不同屏幕下由多个静态布局组成的。自适应布局是为不同的屏幕分辨率分别定义不同的布局。改变屏幕分辨率可以切换不同的静态布局(页面元素位置可能发生改变),但在每个静态布局中,页面元素不随窗口大小的调整发生变化。自适应布局页面里面元素的位置会变化,很好的解决了流式布局中的大屏空间利用率不高弊端。
注:屏幕分辨率变化时,页面里面元素的位置会变化而大小不会变化。
3.流失布局(百分比布局 %)
网页中主要的划分区域的尺寸使用百分数(搭配min-*、max-*属性使用),分别为不同的屏幕设置布局格式,当屏幕大小改变时,会出现不同的布局,意思就是在这个屏幕下这个元素块在这个地方,但是在那个屏幕下,这个元素块又会出现在那个地方。只是布局改变,元素不变。可以看成是不同屏幕下由多个静态布局组成的。
而流式布局的特点是随着屏幕的改变,页面的布局没有发生大的变化,可以进行适配调整,这个正好与自适应布局相补。使用%百分比定义宽度,高度大都是用px来固定住,可以根据可视区域 (viewport) 和父元素的实时尺寸进行调整,尽可能的适应各种分辨率。往往配合 max-width/min-width 等属性控制尺寸流动范围以免过大或者过小影响阅读。这种布局方式在Web前端开发的早期历史上,用来应对不同尺寸的PC屏幕(那时屏幕尺寸的差异不会太大),在当今的移动端开发也是常用布局方式,但缺点明显:主要的问题是如果屏幕尺度跨度太大,那么在相对其原始设计而言过小或过大的屏幕上不能正常显示。因为宽度使用%百分比定义,但是高度和文字大小等大都是用px来固定,所以在大屏幕的手机下显示效果会变成有些页面元素宽度被拉的很长,但是高度、文字大小还是和原来一样(即,这些东西无法变得“流式”
注:屏幕分辨率变化时,页面里元素的大小会变化而但布局不变。
主要实践案例:左侧固定+右侧自适应、左右固定宽度+中间自适应、圣杯布局、双飞翼布局
4.响应式布局(媒体查询)
——通过响应式设计能使网站在手机和平板电脑上有更好的浏览阅读体验。屏幕尺寸不一样展示给用户的网页内容也不一样.利用媒体查询可以检测到屏幕的尺寸(主要检测宽度),并设置不同的CSS样式,就可以实现响应式的布局。主要依靠是css的媒体查询。
注:每个屏幕分辨率下面会有一个布局样式,即元素位置和大小都会变。
5.弹性布局
——rem/em、flex布局