前端--关于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 ...
随机推荐
- Link all references for a local rename (does not change references in other files)
这是一个十分easy的问题 错误原因 : import Android.R; 把这句话去掉 ctrl + shift+o 引进一个 项目对应的R文件 R存在于gen文件夹下 可以找到 layo ...
- 利用MiddleGen-hibernate-r5生成hbm文件及POJO文件
1 先决条件 1.1 已安装JDK(版本1.5以上)并配置环境变量 到http://java.sun.com上下载JDK,配置环境变量(我的电脑右键->属性->高级-&g ...
- (原)10-folder交叉验证
转载请注明出处: http://www.cnblogs.com/darkknightzh/p/6069731.html 参考网址: https://github.com/cmusatyalab/ope ...
- Bootstrap定制(二)less基础语法
前几日花了一天去看less,这几日在捣鼓其他东西,项目也在有序的进行中,今天花点时间整理下less的基础语法,也分享实际中的一些经验,与众人共享. 本篇笔者以less的基础语法着手,并配合bootst ...
- phantomjs form提交
phantomjs表单提交,其实就是对DOM就行操作(获取元素),在这里实现了动态传入各种参数 不说了 直接上代码 var page = require('webpage').create(), sy ...
- javascript-几个基础的排序算法
对这几个基础排序算法进行梳理,便于以后查看. /** * * 冒泡排序 * 从末尾开始相邻两数相互比较大小,满足条件就交换位置.循环每进行一次,即可确定第i位数的值. *冒泡排序的时间复杂度为O(n^ ...
- Hdu1076(n个闰年后的年份)
#include <stdio.h> #include<stdlib.h> int main() { int T,Y,n,printYear; scanf("%d&q ...
- mvc上传,下载,浏览文件功能(用uploadify插件)
类 public class UpLoadFileController : Controller { // // GET: /UpLoadFile/ public ActionResult Index ...
- 对Spring.Net+NHibenate+Asp.Net Mvc+Easyui框架的个人认识
对Spring.Net+NHibenate+Asp.Net Mvc+Easyui框架的个人认识 初次接触Spring.Net+NHibenate+Asp.Net Mvc+Easyui框架,查阅了相 ...
- jquery取元素值
var j = 1; if (rows.length > 0) { for (var i = 0; i < rows.length; i++) { var row = rows[i]; i ...