详细介绍IE7新支持的选择器
作者:csmtv 发布时间:2024-07-14 09:50:18
作者:John Gallant , Holly Bergevin 翻译:w3cpro.cn
原文地址:http://www.communitymx.com/content/article.cfm?cid=1C603
翻译地址:http://www.w3cpro.cn/article/xhtmlcss/124.html
现在IE7已经推出一段时间并且渗透到用户当中,不用等太久我们就可以在页面上使用更高级的CSS。两个最有用的项目将是 Child子和Adjacent Sibling相邻兄弟选择符。现在已是时候使用它们制作网页,并且更深入研究它们。
注意,选择器包括现行的符号,“>”,“+”和空格(后代选择符),涉及到子选择器,相邻兄弟选择器,后代选择器,统称为选择符。
一个较好的方法
在我们研究选择符之前,弄清楚他们的不同和为什么它们是好东西的原因是个不错的主意。原因很简单,它减少网页的“class-itis”弊病。主要原因就是“class-itis”在目前网页中非常普遍,直到现在,我们拥有了为建立配合CSS选择器而存在而且支持完美的后代选择符,即两个选择器之间空格。
当使用后代选择符,右边的一个元素选择器是被选择的,不管左边的元素选择器标签有几个。举例,p a{color:red;},意思是段落里面的所有链接都是红色。这非常有用,也是一类相当广泛的选择组合。
代表性的class-itis的级数像下面一样。首先,你使用一个非常好的干净的html结构运用简单的CSS样式构建标题、段落等等。然后有人告诉你每个div块第一段里文本颜色需要红色。你不能仅改变目标段落的样式,因为那可能影响全部,所以你被迫命名一个特殊class应用在第一段。
于是数十次相同的要求在后面继续,结果就形成了class-itis现象。为什么说这样是糟糕有害的?因为这和font标签比起来没什么区别。当然,classes允许无穷的花样,但是紧随其后就是无穷的混乱,或可能更快胜于随后。
举个例子,假设你已经给所有第一段加上class属性,而且一切都好。现在你被告知,首两段需要样式,不仅是第一个。为使用正确class完成目的,你必须确信第二段的每个都有专用的class。最后,这样的习惯导致源代码里到处都是class,感觉像新旧两个样式在打斗冲突,让人头痛。
如果我们只针对CSS讲这样未必不好,实际上“运用下列样式到每个div块第一段和第二段里面。”这样的情况发生了,最新的CSS选择符允许我们耍点小聪明就可办到。
回顾复习下
让我们复习一些术语。W3C CSS2.1 规范解释了选择器(selectors)和选择(combinators):
“一个选择器是用选择符连接起来的一个或更多的选择器。选择符包括:空格,‘>’和‘+’。空格可能出现在一个选择符和简单的选择器之间。”一个简单的选择器可以是一种类型选择器或是通用选择器跟随零或者更多属性选择器,ID选择器或者伪类,在任何顺序。
第一个支持的选择符(也经常被称作选择器,这是唯一正确的部分)是子选择符。在简单的选择器之间指定“>”符号。一个简单的例子,#leftcol>p{color:blue;},意思是#leftcol下面所有子段落文本颜色是蓝色。
但是如果#leftcol有一个DIV,而且DIV还有一个段落,#left>p选择器不会使这个段落里的文本变成蓝色,因为子选择符,不像频繁使用的后代选择符,只选择直接的孩子,不是“>”符号的左边元素任何深度的嵌套后代。
另外一个新支持的选择符将是相邻选择符,使用"+"符号。子选择符可以指向另外一个元素的子部,相邻选择符可以指向跟随的元素,但与前面的元素独立。例子,h2+p {color:blue;},跟随h2元素后面段落的文本颜色为蓝色。
现在你明白选择符怎么工作,我们开始研究复杂联合元素,看看我们能不能不使用class达到目的。


猜你喜欢
- 一、前言很多网站提供视频转GIF的功能,但要么收费要么有广告实际上我们通过python,几行代码就能够实现视频转gif二、教程1. 安装必备
- 1.循环# 1.for...in循环,依次把list或tuple中的每个元素迭代出来studentNames = ["Willar
- Token验证是验证用户身份的重要方式,在golang开发中具有广泛应用,文中主要阐述了利用jwt包加密后的token验证。导入包:impo
- 本文实例为大家分享了vue实现购物车加减的具体代码,供大家参考,具体内容如下通常我们会在模板中绑定表达式,模板是用来描述视图结构的。如果模板
- 1.什么是事务:事务是一个不可分割的工作逻辑单元,在数据库系统上执行并发操作时事务是做为最小的控制单元来使用的。他包含的所有数据库操作命令作
- mysqldump工具备份备份整个数据库$> mysqldump -u root -h host -p dbname > bac
- 内容摘要合理使用渐变留白网格布局提高字体应用明确而有效的导航设计漂亮、有用的页脚介绍优秀设计和卓越设计之间的区别是比较小的。一般人可能无法解
- 为什么使用三方支付? 再没有三方支付平台之前,用户发起支付请求的时候,用户要去和银行签约(转账),特别的不方便,为了解决这些问题,就有了三
- 1.INSERT INTO SELECT语句 语句形式为:Insert into Table2(field1,field2,...) sel
- -crop参数是从一个图片截取一个指定区域的子图片.格式如下:convert -crop widthxheight{+-
- py2exe在sourceforge 的下载只支持到2.7。针对python3.0+的版本,需要自己编译。1.下载源码svn checkou
- 玩过knockoutjs的都知道,有一个强大的功能叫做component,而这个component有个牛逼的地方就是拥有自己的viewmod
- 大家好,常用探索性数据分析方法很多,比如常用的 Pandas DataFrame 方法有 .head()、.tail()、.info()、.
- 大家好,我是不学前端的前端程序员,事情是这个样子的,前几天不是双十一预购秒杀嘛由于我女朋友比较笨,手速比较慢,就一直抢不到,她没抢到特价商品
- 效果展示 准备工作1.canvas的使用主要用到了 bindtouchstart , bindtouchmove 两个属性,捕捉手
- 使用pip安装python库的几种方式1、使用pip在线安装1.1 安装单个package格式如下:pip install SomePack
- 1、在Asp页面首部加入Response.Buffer = True Response.ExpiresAbso
- 前言相信大家初入某个项目,一般都要看代码。有时候,想把代码文件打印下来看,不过一般代码文件数量都在两位数或更多,逐一打开、打印,确实太耗费精
- 大家可能有这样的体验,好比在程序里面我明明写了app.run(port=8001),结果程序还是在5000端口输出,我们右键点击py程序,直
- 这一篇笔记介绍 Django 系统 model 的外键处理,ForeignKey 以及相应的处理方法。这是一种一对多的字段类型,表示两张表之