细说CSS3中的选择符


Posted in HTML / CSS onOctober 17, 2008

英文原文:
http://www.456bereastreet.com/archive/200601/css_3_selectors_explained/
中文翻译:
http://www.dudo.org/article.asp?id=197
注:本文写于2006年1月,当时IE7、IE8和Firefox3还未发行,文中所有说的浏览器支持均未包括这三个版本的浏览器。在IE8和Firefox3中,文中的大部分选择符已经被支持[dudo注]
在2005年的9月和10月,我先后发表了几篇关于CSS2.1中选择符的介绍文章。大体看来那几篇文章中介绍过的大部分选择符都已经可以在像Mozilla/Firefox,Safari和Opera等现代浏览器中使用了。我们现在要做的就是等待Internet Explorer尽快赶上来,那我们就可以尽情地使用CSS2.1中的选择符了。好在Internet Explorer在其第7个版本中已经在尽力追赶了,至少在某些扩展方面。
如果我们再向前看一点,在CSS3中还有功能更加强大的选择符等待我们去发掘和使用。CSS3中的很多选择符已经在现代浏览器中得到很好的应用(IE8.0中也已经部分地支持了CSS3,dudo注),但是这些基本功能上的支持还远远不能满足开发者使用的要求。但是在某些情况下使用他们可以带来很好的超前体验,因此我认为了解一下CSS 3新增选择符是如何使用还是有益处的。
本文中对选择符描述主要是参考了《2005年12月15日W3C制定的选择符草稿》。草稿中讲到的新的选择符可能会在CSS的第3个版本中出现,但是也可能会出现在其他语言中。如果你是几个月前甚至是几年前读过这篇草稿,那么现在你应该再去看一下是不是已经出现了最新版本了。
这里我不打算去解释CSS选择符工作的基本原理。如果你想重要复习一下的话,最好从《细说CSS2.1中的选择符》开始。
首先,快速浏览一下CSS3中新增的选择符:
CSS3选择符语法概览
选择符类型 表达式 描述 子串匹配的属性选择符 E[att^="val"] 匹配具有att属性、且值以val开头的E元素 子串匹配的属性选择符 E[att$="val"] 匹配具有att属性、且值以val结尾的E元素 子串匹配的属性选择符 E[att*="val"] 匹配具有att属性、且值中含有val的E元素 结构性伪类 E:root 匹配文档的根元素。在HTML中,根元素永远是HTML 结构性伪类 E:nth-child(n) 匹配父元素中的第n个子元素E 结构性伪类 E:nth-last-child(n) 匹配父元素中的倒数第n个结构子元素E 结构性伪类 E:nth-of-type(n) 匹配同类型中的第n个同级兄弟元素E 结构性伪类 E:nth-last-of-type(n) 匹配同类型中的倒数第n个同级兄弟元素E 结构性伪类 E:last-child 匹配父元素中最后一个E元素 结构性伪类 E:first-of-type 匹配同级兄弟元素中的第一个E元素 结构性伪类 E:only-child 匹配属于父元素中唯一子元素的E 结构性伪类 E:only-of-type 匹配属于同类型中唯一兄弟元素的E 结构性伪类 E:empty 匹配没有任何子元素(包括text节点)的元素E 目标伪类 E:target 匹配相关URL指向的E元素 UI元素状态伪类 E:enabled 匹配所有用户界面(form表单)中处于可用状态的E元素 UI元素状态伪类 E:disabled 匹配所有用户界面(form表单)中处于不可用状态的E元素 UI元素状态伪类 E:checked 匹配所有用户界面(form表单)中处于选中状态的元素E UI元素状态伪类 E::selection 匹配E元素中被用户选中或处于高亮状态的部分 否定伪类 E:not(s) 匹配所有不匹配简单选择符s的元素E 通用兄弟元素选择器 E ~ F 匹配E元素之后的F元素

如果对上面的描述还不是很清楚的,请不要担心。本文下面的部分将会对他们进行更加详细的讲解,并且提供例子来演示他们是怎么使用的。

上一页12 3 4 5 下一页 阅读全文
HTML / CSS 相关文章推荐
使用css3制作登录表单的步骤
Apr 07 HTML / CSS
实例讲解CSS3中Transform的perspective属性的用法
Apr 22 HTML / CSS
CSS3实现滚动条动画效果代码分享
Aug 03 HTML / CSS
HTML5+CSS3 诱人的实例:3D立方体旋转动画实例
Dec 30 HTML / CSS
CSS3移动端vw+rem不依赖JS实现响应式布局的方法
Jan 23 HTML / CSS
CSS3 边框效果
Nov 04 HTML / CSS
css3 中translate和transition的使用方法
Mar 26 HTML / CSS
CSS3 对过渡(transition)进行调速以及延时
Oct 21 HTML / CSS
浅析HTML5中的 History 模式
Jun 22 HTML / CSS
html5利用canvas实现颜色容差抠图功能
Dec 23 HTML / CSS
canvas简单连线动画的实现代码
Feb 04 HTML / CSS
AmazeUI 等分网格的实现示例
Aug 25 HTML / CSS
css3 给背景设置渐变色的方法
Sep 12 #HTML / CSS
css3中用animation的steps属性制作帧动画
Apr 25 #HTML / CSS
css3 中实现炫酷的loading效果
Apr 26 #HTML / CSS
使用 css3 transform 属性来变换背景图的方法
May 07 #HTML / CSS
详解CSS3 弹性布局快速入门
Jun 06 #HTML / CSS
通过css3动画和opacity透明度实现呼吸灯效果
Aug 09 #HTML / CSS
CSS3 translate导致字体模糊的实例代码
Aug 30 #HTML / CSS
You might like
删除及到期域名的查看(抢域名必备哦)
2008/05/14 PHP
php array_map array_multisort 高效处理多维数组排序
2009/06/11 PHP
PHP两种快速排序算法实例
2015/02/15 PHP
php基于ob_start(ob_gzhandler)实现网页压缩功能的方法
2017/02/18 PHP
利用Laravel生成Gravatar头像地址的优雅方法
2017/12/30 PHP
CheckBox 如何实现全选?
2006/06/23 Javascript
JS小框架 fly javascript framework
2009/11/26 Javascript
js 强制弹出窗口代码研究-又一款代码
2010/03/20 Javascript
代码触发js事件(click、change)示例应用
2013/12/13 Javascript
jQuery多项选项卡的实现思路附样式及代码
2014/06/03 Javascript
最流行的Node.js精简型和全栈型开发框架介绍
2015/02/26 Javascript
创建你的第一个AngularJS应用的方法
2015/06/16 Javascript
Nodejs初级阶段之express
2015/11/23 NodeJs
使用JS轻松实现ionic调用键盘搜索功能(超实用)
2016/09/06 Javascript
JS判断form内所有表单是否为空的简单实例
2016/09/09 Javascript
JavaScript制作弹出层效果
2016/12/02 Javascript
浅谈javascript中的数据类型转换
2016/12/27 Javascript
数组Array的一些方法(总结)
2017/02/17 Javascript
JavaScript 过滤关键字
2017/03/20 Javascript
JavaScript实现图片切换效果
2017/08/12 Javascript
关于vue.extend和vue.component的区别浅析
2017/08/16 Javascript
vue、react等单页面项目部署到服务器的方法及vue和react的区别
2018/09/29 Javascript
JS实现提示效果弹出及延迟隐藏的功能
2019/08/26 Javascript
[05:20]卡尔工作室_DOTA2新手教学_DOTA2超强新手功能
2013/04/22 DOTA
如何准确判断请求是搜索引擎爬虫(蜘蛛)发出的请求
2015/10/13 Python
Python简单生成8位随机密码的方法
2017/05/24 Python
MAC中PyCharm设置python3解释器
2017/12/15 Python
Python计算一个给定时间点前一个月和后一个月第一天的方法
2018/05/29 Python
俄罗斯在线大型超市:ТутПросто
2021/01/08 全球购物
装饰资料员岗位职责
2013/12/30 职场文书
售后求职信范文
2014/03/15 职场文书
乡镇交通安全实施方案
2014/03/29 职场文书
个人先进事迹总结
2015/02/26 职场文书
教师个人自我评价
2015/03/04 职场文书
Python实战之实现简易的学生选课系统
2021/05/25 Python
SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 WIN-8IVSNAQS8T7\Administrator 的信息
2021/06/30 SQL Server