css选择器就好像表达式一样,返回一组或者一个html元素,后面的样式声明块应用到返回的元素上。所以可以把css选择器理解为某个或者某一类html元素的抽象的写法。

在讲具体的各种选择器之前要提一下选择器分组和选择器组合的不同,选择器分组是在各个选择器之间加上逗号操作符,分组执行的是“或”操作,例如h1,h2 {color:red}。选择器组合实在个选择器之间用空格或者其他+ 、>等符号连接,组合执行的是类似于只是类似于“与”的操作。任何选择器都可以进行分组或者组合(只要有意义)。

再介绍一个概念---词列表:用空格分隔的一组单词。(定语空格分开的是关键)

按类别分选择器一共有8种:

1.元素选择器,这种选择器是最基本的选择器,选择器的写法就是对应的html标签,后面的声明块中的样式应用到页面中所有选择器对应的标签。

2.id选择器,id选择器的写法是#id {},id的开头只能是字母。返回的是页面标签中id值为选择器指定值的标签。id选择器不能和id选择器组合。

3.类选择器,类选择器的写法是.开头后面加类名,类名也只能是字母开头,后面可以跟数字、字幕或者下划线。这里要说明的是在类选择器和类选择器进行组合的时候,它所返回的页面元素是class属性的词列表中同时含有选择器指定类名的元素。只含有一个或者不是包含选择器类名全部的不在返回之列。

4.属性选择器,属性选择器的写法为[]里面写属性名或者用运算符连接的属性名和取值,例如[href]、[href$=.com],这表示选择器选择具有某个属性或者同时该属性取值为某个特殊值的标签。具体分类如下:

[href] 表示选择具有href属性的标签

[href=www.cnblogs.com] 表示选择href属性值为www.cnblogs.com的标签

[href^=www]  表示选择href属性值以www开头的标签

[href$=.com]表示选择href属性值以.com结尾的标签

[class~=button] 表示选择class属性值的词列表中包含button的标签

[class*=button]表示class属性值字符串中包含button字符的标签,注意这要和~=有所区分

[lang |= en] |=这是一种特殊写法,表示lang属性值以en开头或者en-开头的标签

以上写法中属性值没有加引号,引号一般可以加也可以不加,但在属性值为符号或者包含空格的时候必须要加引号,例如[href="#"]

属性选择器与属性选择器组合表示同时含有属性的意思

5.伪类选择器,伪类选择器顾名思义假装有个类,这是说一个标签的类不是显示出现的,而是浏览器在后台悄悄维护的。这种类是在特定状态或者操作下浏览器悄悄不可见的加给元素标签的,要是选择这类标签就要用:来引用那个类名常量。例如a:link ,没访问过的a标签浏览器都会偷偷加个link类给他,但在页面上是看不到这个类名的,要引用到就要用:link,a:visited表示访问过的a标签。这么来看,伪类可以理解为是元素选择器的后置定语。link visisted这两种是静态伪类,就是浏览器悄悄添加修改了就不会再给你该回去了,这两种伪类只能应用于a标签,还有一种伪类可以应用到任何标签,即动态伪类。动态伪类就是浏览器悄悄给你改过一次类名后还可以再根据情况改变多次。

动态伪类有:

:hover

:enabled

:disabled

:checked

其他静态伪类(若通过DOM接口修改了文档,原来的静态伪类是否还使用有待验证)

:first-child

:last-child

:nth-child(even)

:nth-last-child(even)

:only-child

:fist-of-type

:last-of-type

:nth-of-type(even)

:nth-last-of-type(even)

:only-of-type

伪类可以和伪类组合。

6.伪元素选择器,又顾名思义了,就是假装有个标签元素,浏览器偷偷给你价格你看不见他看得见的标签。为了和伪类选择器做区分,现在伪元素选择器都用::双冒号。

常见的伪元素选择器有:

::first-letter

::first-line

::before {content:"";}

::after{content:""}

7.后代选择器 后代选择器其实就是选择器组合的应用

常见的后代选择器:

1.h2 p 选择器之间用空格连接,表示前面的所有后代中的后面元素

2.h2 > p 选择器之间用大于号连接,表示直接子元素

3.h2~p 选择器用~号连接,表示所有兄弟元素

4.h2+p 选择器用+号连接,表示直接相连兄弟元素

最后关于选择器特殊性的计算:

ID选择器 特殊性为100

类、属性、伪类 特殊性为10

元素、伪元素特殊性为1

写在行内的选择器特殊性为1000

例如 h2.button {}的特殊性就是1+10=11

前端--关于css选择器的更多相关文章

  1. 前端学习 -- Css -- 选择器的优先级

    当使用不同的选择器,选中同一个元素时并且设置相同的样式时,这时样式之间产生了冲突,最终到底采用哪个选择器定义的样式,由选择器的优先级(权重)决定优先级高的优先显示. 优先级的规则 内联样式 , 优先级 ...

  2. 前端之CSS选择器

    基本选择器 元素选择器 p {color: "red";} ID选择器 #i1 { background-color: red; } 类选择器 .c1 { font-size: 1 ...

  3. 前端学习(十):CSS选择器

    进击のpython ***** 前端学习--CSS选择器 每一条CSS样式声明由两部分组成: 选择器{ 样式: } 在CSS中{}之前的部分就是"选择器","选择器&qu ...

  4. 前端极易被误导的css选择器权重计算及css内联样式的妙用技巧

    记得大学时候,专业课的网页设计书籍里面讲过css选择器权重的计算:id是100,class是10,html标签是5等等,然后全部加起来的和进行比较... 我只想说:真是误人子弟,害人不浅! 最近,在前 ...

  5. {前端CSS} 语法 Css的几种引入方式 css选择器 选择器的优先级 CSS属性相关 背景属性 边框 CSS盒子模型 清除浮动 overflow溢出属性  定位(position)z-index

    前端CSS CSS介绍 CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素,给HTML设置样式,让它更加美观. 当浏览器读到一个样式表,它就会按照这个样式表来对文 ...

  6. 前端之CSS:CSS选择器

    前端之css样式(选择器)... 一.css概述 CSS是Cascading Style Sheets的简称,中文称为层叠样式表,对html标签的渲染和布局 CSS 规则由两个主要的部分构成:选择器, ...

  7. 前端03 /css简绍/css选择器

    前端03 /css简绍/css选择器 目录 前端03 /css简绍/css选择器 昨日内容回顾 html标签 常用标签 table标签:表格标签 input标签 select下拉框 textarea多 ...

  8. 2020年12月-第02阶段-前端基础-CSS基础选择器

    CSS选择器(重点) 理解 能说出选择器的作用 id选择器和类选择器的区别 1. CSS选择器作用(重点) 如上图所以,要把里面的小黄人分为2组,最快的方法怎办? 很多, 比如 一只眼睛的一组,剩下的 ...

  9. 前端知识之CSS(1)-css语法、css选择器(属性、伪类、伪元素、分组与嵌套)、css组合器

    目录 前端基础之css 1.关于css的介绍 2.css语法 3.三种编写CSS的方式 3.1.style内部直接编写css代码 3.2.link标签引入外部css文件 3.3.标签内直接书写 4.c ...

随机推荐

  1. getAttribute()与getParameter的区别

    当两个Web组件之间为转发关系时,转发源会将要共享 request范围内的数据先用setAttribute将数据放入到HttpServletRequest对象中,然后转发目标通过 getParamet ...

  2. 8 fastJson的使用

    Fastjson介绍 Fastjson是一个Java语言编写的JSON处理器,由阿里巴巴公司开发. 1.遵循http://json.org标准,为其官方网站收录的参考实现之一. 2.功能qiang打, ...

  3. 通过jqueryui实现邮件提示

    //js代码$(function () { var availableTags = ["@qq.com", "@gmail.com", "@126.c ...

  4. EasyShortcut Easyshortcut easyShortcut 简介

    关于EasyShortcut Easyshortcut easyShortcut 简介: 参考: http://chunsheng.me/EasyShortcut/

  5. 04--帮助类ScreenAdapter编写

    使用VS类向导添加ScreenAdapter,在Num2048项目上右键选择"添加"->"类",然后将生成的两个文件拖放到Classes文件夹中      ...

  6. 丰富的else语句及简洁的with语句 - 零基础入门学习Python034

    丰富的else语句及简洁的with语句 让编程改变世界 Change the world by program 丰富的else语句 有鱼油可能会说,else语句还有啥好讲的?经常跟if语句进行搭配用于 ...

  7. 文件:一个任务 - 零基础入门学习Python029

    文件:一个任务 让编程改变世界 Change the world by program 一个任务 这节课,我们需要一起来完成一个任务:将文件(record.txt)中的数据进行分割并按照以下规律保存起 ...

  8. Silverlight js html 相互调用

    1.sl调用js 比如我们在页面中定义一个js函数: <script type="text/javascript">        function fnTest(ms ...

  9. HDU 2457 DNA repair (AC自动机+DP)

    题意:给N个串,一个大串,要求在最小的改变代价下,得到一个不含上述n个串的大串. 思路:dp,f[i][j]代表大串中第i位,AC自动机上第j位的最小代价. #include<algorithm ...

  10. spserver 开源服务器框架研究与分析

    网上开源的C/C++服务器框架 还是比较少的. 最近研究了 spserver , 里面用了较多的设计模式,使用设计模式的目的是把不变的东西和可变的东西分离并且封装起来,避免以后修改代码, 应用设计模式 ...