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}
总结:这些属性必须得自己一个一个的练习,慢慢才能熟练的掌握!