前端--关于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 ...
随机推荐
- DOM事件处理程序-事件对象-键盘事件
事件流: 事件流--描述的是从页面中接受事件的顺序 IE ---事件冒泡流:即事件最开始由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播至最不具体的那个节点(文档). Netsc ...
- (转)javascript深入理解js闭包
一.变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域. 变量的作用域无非就是两种:全局变量和局部变量. Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量 ...
- ORACLE函数详解【weber出品】
一.什么是函数 一个函数: 1. 是命名的PL/SQL块,必须返回一个值 2. 可以存储到数据库中重复执行 3. 可以作为表达式的一部分或者提供一个参数值 二.创建函数的语法 必须至少有一个返回值,创 ...
- android 开发中判断网络是否连接的代码
在android的开发中,尤其是与访问网络有关的开发,都要判断一下手机是否连接上了网络,下面是一个判断是否连接网络的嗲吗片段: package cn.com.karl.util; import com ...
- Java系列--第二篇 基于Maven的Android开发HelloAndroidWorld
曾经写过一篇Android环境配置的随笔,个人感觉特繁琐,既然有Maven,何不尝试用用Maven呢,经网上搜索这篇文章但不限于这些,而做了一个基于Maven的Android版的Hello Andro ...
- LNMP环境出现”504 gateway time-out”错误的解决方案
今天下午在调试测试VPS机器的时候,出现"504 gateway time-out"错误提示.VPS是安装的LNMP一键安装包,关于这个错误之前还没有见过,网上看到比较多的是502 ...
- Python Tcp Socket
socket(套接字),传输层通信的端点,由IP和端口号组成(IP,Port),可以通过socket精确地找到服务器上的进程并与之通信 python2.6实现,基于AF_INET(网络套接字) 类型S ...
- 在Ubuntu上安装VmTools
1.添加VmTools 2.解压 .tag.gz文件 使用Linux命令: tar –zxvf src –c dis -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 ...
- curl 网页抓取
如果要把这个网页保存下来,可以使用-o参数,这就相当于使用wget命令了. curl -o [文件名] www.tvbs.cc 二.自动跳转 有的网址是自动跳转的.使用-L参数,curl就会跳转到新的 ...
- Resharper 7小技巧系列:导航、书签、和最近编辑
原文 http://www.cnblogs.com/feichexia/archive/2012/09/21/resharper_tricks_part1.html 先上一张花了一个多小时画的Resh ...