web概述-css发展简史

CSS3 标准

早在2001年W3C就完成了CSS3的草案规范。CSS3规范的一个新特点是被分为若干个相互独立的模块。一方面分成若干较小的模块较利于规范及时更新和发布,及时调整模块的内容,这些模块独立实现和发布,也为日后CSS的扩展奠定了基础。另外一方面,由于受支持设备和浏览器厂商的限制,没备或者厂商可以有选择的支持一部分模块,支持CSS3的一个子集,这样有利于CSS3的推广 

W3C 仍然在对 CSS3 规范进行开发。

不过,现代浏览器已经实现了相当多的 CSS3 属性。

以下为截至2017年,CSS3各模块的规范情况:

时间 标题 状态 模块
2007年8月9日
基本盒子模型
工作草案 css3-box 
2011年4月12日
多列布局
候选推荐(有新工作草案) css3-multicol 
2011年6月7日 CSS3颜色模块 推荐(有新候选推荐) css3-color 
2011年9月29日
3级选择器
推荐(有新候选推荐) css3-selectors 
2012年6月19日
媒体查询
推荐 css3-mediaqueries 
2013年3月14日
CSS3分页媒体模块
工作草案 css3-page 
2013年4月4日 CSS3条件规则模块 候选推荐 css3-conditional 
2013年8月1日 CSS3文本修饰模块 候选推荐 css-text-decor-3 
2013年10月3日
CSS3字体模块
候选推荐 css-fonts-3 
2014年3月20日 CSS3命名空间模块 推荐 css-namespaces-3 
2014年5月13日 CSS分页媒体模块生成内容 工作草案 css-gcpm-3 
2014年9月9日 CSS3背景和边框模块 候选推荐(有新候选推荐) css3-background 
2014年10月14日 CSS3超链接显示模块 已废弃 css3-hyperlinks 
2014年10月14日 CSS3 Marquee模块 已废弃 css3-marquee 
2014年2月20日 CSS3语法模块 候选推荐 css-syntax-3 
2015年3月26日 CSS模板布局模块 记录 css-template-3 
2015年7月7日 CSS3基本用户界面模块 候选推荐(有新提议推荐) css-ui-3 
2016年5月19日 CSS3级联和继承 候选推荐 css-cascade-3 
2016年6月2日 CSS3生成内容模块 工作草案 css-content-3 
2016年9月29日 CSS3取值和单位模块 候选推荐 css-values-3 
2017年2月9日 CSS3片段模块 候选推荐 css-break-3 
2017年12月7日 CSS3书写模式 候选推荐 css-writing-modes-3 
2017年12月14日 CSS3计数器风格 候选推荐 css-counter-styles-3 

HTML的诞生于20世纪90年代初,1996年底,CSS第一版诞生,1998年5月,CSS2正式发布,2004年,CSS2.1发布,2002-2010年,陆续发布部分css3新增属性。

CSS1 中定义了网页的基本属性:字体、颜色、基本选择器等。

CSS2中在CSS1的基础上添加了高级功能,浮动和定位、高级选择器等(子选择器、相邻选择器、通用选择器)。

CSS3遵循的是模块化开发。发布时间并不是一个时间点,而是一个时间段。

一、css选择器回顾:

(1)通用选择器:*  选择到所有的元素;
(2)选择子元素:> 选择到元素的直接后代
(3)相邻兄弟选择器:+ 选择到紧随目标元素后的第一个元素
(3)普通兄弟选择器:~ 选择到紧随其后的所有兄弟元素
(4)伪元素选择器:
::first-line 匹配文本块的首行
::first-letter 选择文本块的首字母
(5)伪类选择器:
:before,:after在元素内容前面、后面添加内容(相当于行内元素)

例如:选中ul标签后边的第一个div相邻标签。

ul.list +div.box

二、css3结构选择器:

(1):nth-child 选择指定索引处的子元素
(2)nth-child(n) 父元素下的第n个子元素
(3)nth-child(odd)奇数子元素(同nth-child(2n-1))
(4)nth-child(even)偶数子元素(同nth-child(2n))
(5)nth-child(an+b)公式
(6):nth-last-child(n) 倒数第n个子元素
(7):nth-of-type(n) 父元素下的第n个指定类型的子元素
(7):nth-last-of-type 父元素下的倒数第n个指定类型的子元素
(8):first-child 选择父元素下的第一个子元素
(9):last-child 选择父元素下的最后一个子元素
(10):only-child 选择父元素下唯一的子元素
(11):only-of-type选择父元素下指定类型的唯一子元素
(12):root 选择文档的根目录,返回html</span>

例如:选中ul标签里边的第三个li子元素。

ul li:nth-child(3)

三、css3属性选择器:

(1)E[attr] 属性名,不确定具体属性值
(2)E[attr="value"] 指定属性名,并指定其对应属性值
(3)E[attr ~="value"] 指定属性名,其具有多个属性值空格隔开,并包含  value值
(4)E[attr ^= "value"] 指定属性名,属性值以value开头
(5)E[attr $="value"] 指定属性名,属性值以value结束
(6)E[attr *="value"] 指定了属性名,属性值中包含了value
(7)E[attr |= "value"] 指定属性名,属性值以value-开头

例如:选中所有的class类并且以类型是指定的value的div元素,让他的背景颜色变成红色。

div[class="value"]{background:red}

四、css3伪类选择器:

1、UI伪类选择器:

(1):enabled 选择启用状态元素
(2):disabled 选择禁用状态元素
(3):checked 选择被选中的input元素(单选按钮或复选框)
(4):default 选择默认元素
(5):valid、invalid 根据输入验证选择有效或无效的input元素
(6):in-range、out-of-range 选择指定范围之内或者之外受限的元素
(7):repuired、optional 根据是否允许:required属性选择input元素

例如:有3个input复选框,其中第一个被选中了,它的checked=”checked”,其他两个没有,那么让这个被选中的复选框的宽高都变成50px。

input:checked{width:50px;height:50px}

2、动态伪类选择器:

 (1):link 选择链接元素
 (2):visited 选择用户以访问的元素
 (3):hover 鼠标悬停其上的元素
 (4):ative 鼠标点击时触发的事件
 (5):focus 当前获取焦点的元素

例如:滑过一个div的时候,让它的背景颜色变成红色。

div:hover{background:red}

3、其他伪类选择器:

(1):not(<选择器>) 对括号内选择器的选择取反
(2):lang(<目标语言>) 基于lang全局属性的元素
(3):target url片段标识符指向的元素
(4):empty选择内容为空的元素
(5):selection 鼠标光标选择元素内容

例如:有3个div,前两个都有内容,第三个是空的,什么内容都没有,那么让这个空的div的背景颜色变成橙色。

div:empty{background:orange}

总结:这些属性必须得自己一个一个的练习,慢慢才能熟练的掌握!

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments