HTML5开发中常用五大CSS选择器用法

  • A+
所属分类:HTML

本文和大家重点学习一下五类CSS选择器,我们不必通篇给每一个元素定义类(class)或ID,通过合适的组织,可以用最简单的方法实现同样的效果。最常用的五类CSS选择器一些新手朋友对选择器一知半解,不知道在什么情况下运用什么样的选择器,这是一个比较头疼的问题,针对新手朋友,对CSS选择器作一些简单的说明,希望能对大家的学习工作有一定的帮助。准确而简洁的运用CSS选择器会达到非常好的效果。我们不必通篇给每一个元素定义类(class)或ID,通过合适的组织,可以用最简单的方法实现同样的效果。在实际工作中,最常用的选择器有以下五类:

一、标签选择器:

顾名思议,标签选择器是直接将HTML标签作为选择器,可以是p、h1、dl、strong等HTML标签。如: HTML5开发中常用五大CSS选择器用法

二、id选择器:

每一个标签他都有一个共同属性id,所以我们通常给页面元素定义id。如图所示. HTML5开发中常用五大CSS选择器用法 其中”p1”,”p2”,”p3”是你自己定义的id名称。注意在前面加”#”号。 id选择器也同样支持后代选择器(针对嵌套标签) 如图所示: HTML5开发中常用五大CSS选择器用法

三、类(class)选择器:

每一个标签同样都有一个类属性,所以在CSS里用一个点开头表示类别选择器定义,例如: HTML5开发中常用五大CSS选择器用法 在页面中,用class=”类别名”的方法调用,这个方法比较简单灵活,可以随时根据页面需要新建和删除。但需要避免多class综合症。

四、群组选择器:

当几个元素样式属性一样时,可以共同调用一个声明,元素之间用逗号分隔。如: HTML5开发中常用五大CSS选择器用法 下面来看(标签,id,类)群组选择器如图: HTML5开发中常用五大CSS选择器用法 使用组群选择器,将会大大的减化CSS代码,将具有多个相同属性的元素,合并群组进行选择,定义同样的CSS属性,这大大的提高了编码效率与CSS文件体积。

五、后代选择器:

后代选择器也称作为派生选择器,通过依据元素在其位置的上下文关系来定义样式,你可以使标记更加简洁。在 CSS 中,通过这种方式来应用规则的选择器被称为上下文选择器 (contextual selectors),这是由于它们依赖于上下文关系来应用或者避免某项规则。在 CSS2 中,它们称为派生选择器,但是无论你如何称呼它们,它们的作用都是相同的。派生选择器允许你根据文档的上下文关系来确定某个标签的样式。通过合理地使用派生选择器,我们可以使 HTML 代码变得更加整洁。比方说,你希望列表中的 strong 元素变为斜体字,而不是通常的粗体字,可以这样定义一个派生选择器:请注意标记为 的蓝色代码的上下文关系: HTML5开发中常用五大CSS选择器用法 在上面的例子中,只有 li 元素中的 strong 元素的样式为斜体字,无需为 strong 元素定义特别的 class 或 id,代码更加简洁。结合使用上面的五种CSS选择器,基本满足了CSS布局的需要,主要在于灵活的使用,特别是后代选择器的使用能大大的简化HTML文档,使HTML做到结构化明确,最小的代码实现同样的效果。选择器讲完了,我们来看看选择器的优先级.

六 比较器的优先级

比较同一级别的个数,数量多的优先级高,如果相同即比较下一级别的个数 ,至于各级别的优先级,大家应该已经很清楚了,就是:

这也就解释了为什么11个标签的定义会比不上1个类的定义,1个类加11个标签会比不上2个类的权重高。选择器的优先级计算细则就显得很重要了。之前有人说选择器的优先级是tagname=1,classname=10,id=100, 因此选择器 #demo > ul > .active的优先级就是 100 10 1 = 111,实际上真是这么计算的嘛,难道10个class就和一个id的优先级是一样的?下面看看官方对选择器的定义:一个选择器的优先级由四个数字a,b,c,d确定。当比较两个选择器时,先比较a,a值大的优先级高,如果a相等则比较b,b值大的优先级高,以此类推。因此,无论b的值多大,也不会对a值的比较造成影响。

按照这个规则,我们来看看下面这个选择器的优先级: HTML5开发中常用五大CSS选择器用法 下面我们来看一下优先级的例子,如图所示: HTML5开发中常用五大CSS选择器用法 上例中的元素是绿色的,因为内联元素的优先级最高同时也可以得出结论,低优先级选择器的叠加是不会影响高优先级的选择器的.

weinxin
我的微信
分享学习和工作过程中总结出来的一些经验与技巧,关注前端设计与网站制作。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: