细说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之UI元素状态伪类选择器实例演示
Aug 11 HTML / CSS
介绍CSS3使用技巧5个
Apr 02 HTML / CSS
一款纯css3制作的2015年元旦雪人动画特效教程
Dec 29 HTML / CSS
HTML5 device access 设备访问详解
May 24 HTML / CSS
鲜为人知的HTML5语音合成功能
May 17 HTML / CSS
html5记忆翻牌游戏实现思路及代码
Jul 25 HTML / CSS
html5跨域通讯之postMessage的用法总结
Nov 07 HTML / CSS
HTML5 文件上传下载的实例代码
Jul 03 HTML / CSS
html5 canvas简单封装一个echarts实现不了的饼图
Jun 12 HTML / CSS
html5 http的轮询和Websocket原理
Oct 19 HTML / CSS
Html5实现首页动态视频背景的示例代码
Sep 25 HTML / CSS
css3属性选择器 “~”(波浪号) “,”(逗号) “+”(加号)和 “>”(大于号)
Apr 19 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 一个随机字符串生成代码
2010/05/26 PHP
Yii2实现上下联动下拉框功能的方法
2016/08/10 PHP
php中时间函数date及常用的时间计算
2017/05/12 PHP
关于JS判断图片是否加载完成且获取图片宽度的方法
2013/04/09 Javascript
js数组循环遍历数组内所有元素的方法
2014/01/18 Javascript
基于JQuery实现的图片自动进行缩放和裁剪处理
2014/01/31 Javascript
标题过长使用javascript按字节截取字符串
2014/04/24 Javascript
javascript跨域方法、原理以及出现问题解决方法(详解)
2015/08/06 Javascript
JavaScript设计模式经典之工厂模式
2016/02/24 Javascript
Javascript中Date类型和Math类型详解
2016/02/27 Javascript
jQuery使用bind动态绑定事件无效的处理方法
2018/12/11 jQuery
vue+echarts实现可拖动节点的折线图(支持拖动方向和上下限的设置)
2019/04/12 Javascript
Vue使用axios出现options请求方法
2019/05/30 Javascript
JavaScript 格式化数字、金额、千分位、保留几位小数、舍入舍去
2019/07/23 Javascript
vue请求数据的三种方式
2020/03/04 Javascript
详解vue 组件的实现原理
2020/11/12 Javascript
Python编程使用tkinter模块实现计算器软件完整代码示例
2017/11/29 Python
200 行python 代码实现 2048 游戏
2018/01/12 Python
Flask模拟实现CSRF攻击的方法
2018/07/24 Python
python2.7使用plotly绘制本地散点图和折线图
2019/04/02 Python
python使用百度文字识别功能方法详解
2019/07/23 Python
pycharm中显示CSS提示的知识点总结
2019/07/29 Python
Python threading的使用方法解析
2019/08/28 Python
python 字典有序并写入json文件过程解析
2019/09/30 Python
Python实现壁纸下载与轮换
2020/10/19 Python
基本款天堂:Everlane
2017/05/13 全球购物
大都会艺术博物馆商店:The Met Store
2018/06/22 全球购物
查找廉价航班和发现新目的地:Kiwi.com
2019/02/25 全球购物
美国办公用品折扣网站:Shoplet.com
2019/11/24 全球购物
大专自我鉴定范文
2013/10/01 职场文书
个人考核材料
2014/05/15 职场文书
2015年暑期社会实践总结
2015/07/13 职场文书
解决Jenkins集成SonarQube遇到的报错问题
2021/07/15 Java/Android
Android 界面一键变灰 深色主题工具类
2022/04/28 Java/Android
关于vue-router-link选择样式设置
2022/04/30 Vue.js
Python中tqdm的使用和例子
2022/09/23 Python