前端--关于css选择器
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选择器的更多相关文章
- 前端学习 -- Css -- 选择器的优先级
当使用不同的选择器,选中同一个元素时并且设置相同的样式时,这时样式之间产生了冲突,最终到底采用哪个选择器定义的样式,由选择器的优先级(权重)决定优先级高的优先显示. 优先级的规则 内联样式 , 优先级 ...
- 前端之CSS选择器
基本选择器 元素选择器 p {color: "red";} ID选择器 #i1 { background-color: red; } 类选择器 .c1 { font-size: 1 ...
- 前端学习(十):CSS选择器
进击のpython ***** 前端学习--CSS选择器 每一条CSS样式声明由两部分组成: 选择器{ 样式: } 在CSS中{}之前的部分就是"选择器","选择器&qu ...
- 前端极易被误导的css选择器权重计算及css内联样式的妙用技巧
记得大学时候,专业课的网页设计书籍里面讲过css选择器权重的计算:id是100,class是10,html标签是5等等,然后全部加起来的和进行比较... 我只想说:真是误人子弟,害人不浅! 最近,在前 ...
- {前端CSS} 语法 Css的几种引入方式 css选择器 选择器的优先级 CSS属性相关 背景属性 边框 CSS盒子模型 清除浮动 overflow溢出属性 定位(position)z-index
前端CSS CSS介绍 CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素,给HTML设置样式,让它更加美观. 当浏览器读到一个样式表,它就会按照这个样式表来对文 ...
- 前端之CSS:CSS选择器
前端之css样式(选择器)... 一.css概述 CSS是Cascading Style Sheets的简称,中文称为层叠样式表,对html标签的渲染和布局 CSS 规则由两个主要的部分构成:选择器, ...
- 前端03 /css简绍/css选择器
前端03 /css简绍/css选择器 目录 前端03 /css简绍/css选择器 昨日内容回顾 html标签 常用标签 table标签:表格标签 input标签 select下拉框 textarea多 ...
- 2020年12月-第02阶段-前端基础-CSS基础选择器
CSS选择器(重点) 理解 能说出选择器的作用 id选择器和类选择器的区别 1. CSS选择器作用(重点) 如上图所以,要把里面的小黄人分为2组,最快的方法怎办? 很多, 比如 一只眼睛的一组,剩下的 ...
- 前端知识之CSS(1)-css语法、css选择器(属性、伪类、伪元素、分组与嵌套)、css组合器
目录 前端基础之css 1.关于css的介绍 2.css语法 3.三种编写CSS的方式 3.1.style内部直接编写css代码 3.2.link标签引入外部css文件 3.3.标签内直接书写 4.c ...
随机推荐
- 页面全屏显示JS代码
1.直接在页面加载时就全屏. <body onload="window.open(document.location,'big','fullscreen=yes'):window.cl ...
- c# 代码执行时间
Stopwatch sw = new Stopwatch(); sw.Start(); Thread.Sleep(2000); sw.Stop(); System.Diagnostics.Trace. ...
- linux oracle 设置随系统自动启动数据库实例和监听
在root账户下修改/etc/oratab 文件: # vi /etc/oratab 找到orcl=/db/app/oracle/product/11.1.0/db_1 :N这一行 改为: orcl= ...
- Selenium webdriver 截图 太长截不全的问题
Selenium webdriver 截图 太长截不全的问题 1.环境 selenium webdriver.net 2.46.0.0 + firefox 37.0.1 + win 8.1 2.问题 ...
- js 非IE火狐插件检测
js检测代码Html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:// ...
- 让libvirt支持win7运行2核以上
现在人在部署OpenStack之后会发现按照配额运行Linux的虚拟机没有问题,但是运行windows的虚拟机会发现如果配置2个以上的核则无法识别,windows server也最多支持到4个核.无法 ...
- Linux下用Mytop监控MySQL资源
https://www.centos.bz/2011/11/linux-install-perl-dbd-mysql/ http://blog.csdn.net/rital/article/detai ...
- LeetCode_Valid Palindrome
Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignori ...
- hex格式介绍及转bin格式的源程序
Intel HEX文件是记录文本行的ASCII文本文件,在Intel HEX文件中,每一行是一个HEX记录,由十六进制数组成的机器码或者数据常量.Intel HEX文件经常被用于将程序或数据传输存储到 ...
- js收集错误信息,错误上报
线上的代码可有有时候用户会反应不好使,一般是因为js造成的! 尤其在移动端各个手机之前的差异特别大. 下面这段代码是获取能帮助你! <script> window.onerror = fu ...