细说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 相关文章推荐
谈谈对css属性box-sizing的了解
Jan 04 HTML / CSS
html5+css3之制作header实例与更新
Dec 21 HTML / CSS
突袭HTML5之Javascript API扩展2—地理信息服务及地理位置API学习
Jan 31 HTML / CSS
html5的websockets全双工通信详解学习示例
Feb 26 HTML / CSS
整理HTML5中表单的常用属性及新属性
Feb 19 HTML / CSS
html5 canvas移动浏览器上实现图片压缩上传
Mar 11 HTML / CSS
HTML5的postMessage的使用手册
Dec 19 HTML / CSS
HTML5实现视频弹幕功能
Aug 09 HTML / CSS
解析浏览器的一些“滚动”行为鉴赏
Sep 16 HTML / CSS
Html5踩坑记之mandMobile使用小记
Apr 02 HTML / CSS
canvas版人体时钟的实现示例
Jan 29 HTML / CSS
浅析CSS在DevTools 中架构演变
Oct 05 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
php_screw 1.5:php加密: 安装与使用详解
2013/06/20 PHP
php代码书写习惯优化小结
2013/06/20 PHP
WampServer下安装多个版本的PHP、mysql、apache图文教程
2015/01/07 PHP
摘自织梦CMS的HTTP文件下载类
2015/08/08 PHP
PHP实现数据四舍五入的方法小结【4种方法】
2019/03/27 PHP
php实现的生成排列算法示例
2019/07/25 PHP
滚动条变色 隐藏滚动条与双击网页自动滚屏显示代码
2009/12/28 Javascript
微博@符号的用户名提示效果。(想@到谁?)
2010/11/05 Javascript
jquery动态增加text元素以及删除文本内容实例代码
2013/07/01 Javascript
详解Javascript ES6中的箭头函数(Arrow Functions)
2016/08/24 Javascript
jQuery中animate的几种用法与注意事项
2016/12/12 Javascript
jQuery动态追加页面数据以及事件委托详解
2017/05/06 jQuery
微信禁止下拉查看URL的处理方法
2017/09/28 Javascript
实例解析Vue.js下载方式及基本概念
2018/05/11 Javascript
VUE项目中加载已保存的笔记实例方法
2019/09/14 Javascript
vue项目中播放rtmp视频文件流的方法
2020/09/17 Javascript
[06:07]辉夜杯现场观众互动 “比谁远送显示器”
2015/12/26 DOTA
python getopt 参数处理小示例
2009/06/09 Python
linux 下实现python多版本安装实践
2014/11/18 Python
Python常用小技巧总结
2015/06/01 Python
Python中条件判断语句的简单使用方法
2015/08/21 Python
Python 3.6 读取并操作文件内容的实例
2018/04/23 Python
python-tkinter之按钮的使用,开关方法
2019/06/11 Python
Python变量、数据类型、数据类型转换相关函数用法实例详解
2020/01/09 Python
python实现交并比IOU教程
2020/04/16 Python
python编写softmax函数、交叉熵函数实例
2020/06/11 Python
使用Python解析Chrome浏览器书签的示例
2020/11/13 Python
详解canvas绘制网络字体几种方法
2019/08/27 HTML / CSS
年会搞笑主持词串词
2014/03/24 职场文书
微笑面对生活演讲稿
2014/09/23 职场文书
四风问题个人对照检查材料
2014/09/26 职场文书
房地产项目合作意向书
2015/05/08 职场文书
班主任寄语2016
2015/12/04 职场文书
2016年秋季运动会加油稿
2015/12/21 职场文书
小学英语教学反思范文
2016/02/15 职场文书
详细了解java监听器和过滤器
2021/07/09 Java/Android