CSS样式表:详细介绍IE7新支持的选择器
作者:w3cpro.cn翻译 来源:蓝色理想 发布时间:2007-10-09 18:24:00
现在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元素后面段落的文本颜色为蓝色。
猜你喜欢
- 我在网站上设置了邮件列表功能,实现用户自动订阅和发送,但很多用户输入和提交的邮件地址格式都是无效的,无法处理。请问如何解决这一问题?&nbs
- 这次讨论一下关于select元素的一个问题,其实很早以前我就碰到过关于select元素的问题,这次做网站又被问到同样的问题,就是:一般div
- 客户强烈要求使用淘宝的首页商品分类效果,很BT~,没辙就满足一下人家的需求。通过淘宝案例,立即想到了显示/隐藏层的效果,于是在DW中画了几个
- 1.基本结构 create OR REPLACE PROCEDURE存储过程名字 ( 参数1 IN NUMBER, 参数2 IN NUMBE
- Q: I am working with Oracle database 8.1.7 and I have written a JAVA c
- 由于多种原因,进行安全设置的人们常常不理解数据的真正价值,所以,他们也无法对数据进行合适的保护。将你的数据只限于需要的人访问,并保证访问的人
- 毫无疑问,Google是当今世界上最成功的互联网公司之一,但是Google也曾推出过一些失败的实验品。还记得Google Accelerat
- 最近有网友在留言板里问到jRaiser和jQuery的冲突问题,特此写一篇文章进行解释。冲突的根源众所周知,jQuery是通过一个全局变量$
- What? 什么是面包屑面包屑是作为辅助和补充的导航方式(secondary navigation scheme),它能让用户知道在网站或应
- 序 号前 缀使用的变量/范围或数据类型1a or arrArray2b or blnBoolean3bytByte4
- 图片按钮是我们经常应用的网页元素,按钮的生成有两种方法,一个是用链接<a>来模拟按钮,一个是用现成的表单按钮。<input
- 讲这个方法之前,我们应该先了解下插入节点时浏览器会做什么。在浏览器中,我们一旦把节点添加到document.body(或者其他节点)中,页面
- 神奇创意相框! 是的,主要利用position的relative, absolute, z-index属性。结合Photo Frame(相框
- 在XHTML标签中有一些标签的作用是相似的,当然这里的相似是指语义相似,以至于很多人都不清楚这些相似的标签如何使用,那么今天的主题就是分解相
- 很多人都使用很多的编程工具,尤其对于Web开发人员。这个小教程将告诉各位如何使DreamweaverMX编程环境适合中国的Web开发人员。一
- 用ASP.NET与SQL SERVER可是缘份最好了,稍大的程序一般第一先考虑的是SQL SERVER,只是一些很考虑经济的才使用ACCES
- 说到排序,我想起一个故事,大意是说唐僧师徒西游美利坚,孙悟空买了本词典,开始逐条背诵单词。他们第一次下美国馆子的时候,不管服务员推荐什么,孙
- 在正文前,先简短介绍自己。我任职于广州的某个网站服务公司的系统开发员,主要任务是以.Net编写各种web系统,例如CMS.EIP。大家都知道
- 做设计的时候,如何配色是经常让人头痛的问题,尽管很多时候,很多人都说对于色彩的掌握更多的是靠感觉,但是不得不说,感觉也是要有依据的。所以颜色
- 在浏览几个网页时,发现有几个网站在显示时间时存在问题,比如今天是2009年1月4日,但是有的网站上却赫然写着今天是109年1月4日(这里有个