一、基本选择器

通配选择器:*

元素选择器:div、p…

ID选择器:#id

类选择器:.className

群组选择器:选择器1,选择器2

主流浏览器全部支持

二、层次选择器

后代选择器: div p a

子选择器:div>p

兄弟选择器:p+ul

通用选择器:p~a

通用选择器和兄弟选择器 选中的都是同一层次的兄弟选择器

唯一的区别是兄弟选择器选择的是相邻的第一个兄弟,通用选择器选择的是后面所有的兄第

子选择器、兄弟选择器、通用选择器   :   IE7+支持

三、伪类选择器

1、动态伪类选择器

E:link  匹配的元素定义了超链接没有被访问过

E:visited  匹配元素定义了超链接并被访问过

E:hover  鼠标停留在元素E上

E:active  匹配的元素被激活

E:focus   匹配的元素获得焦点

其中:

E:active、E:focus :  IE8+支持,

E:hover   :   IE6只支持链接锚点a:hover

2、目标伪类选择器

E:target   匹配文档的URL中某个标志符的目标元素   如:<a href="#brand">   用:target 匹配id为brand的元素

IE9+、Opera 9.6+支持

3、语言伪类选择器

E:lang      匹配设置了lang属性的元素,如:<html lang="fr">       用  :lang(fr){} 匹配

IE8+、Opera 9.2+支持

4、表单伪类选择器

E:checked   匹配所有选中的表单元素

E:enabled   匹配所有可用的表单元素

E:disabled   匹配所有禁用的表单元素

IE9+支持

5、结构伪类选择器

E:first-child  匹配父元素的第一个子元素,同E:nth-child(1)

E:last-child  匹配父元素的最后一个子元素,同E:nth-last-child(1)

E:root   匹配所在文档的根元素

E F:nth-child(n)  匹配父元素的第N个子元素

E F:nth-last-child(n)  匹配父元素倒数的第N个子元素

E F:nth-of-type(n)  匹配父元素内具有指定类型的第n个子元素

E F:nth-last-of-type(n)  匹配父元素内具有指定类型的倒数第n个子元素

E F:first-of-type  匹配父元素内具有指定类型的第一个子元素

E F:last-of-type  匹配父元素内具有指定类型的最后一个子元素   如:div a:last-of-type    父元素div中的最后一个a链接

E:only-child  匹配父元素只包含一个子元素

E F:only-of-type  匹配父元素只包含一个同类型的子元素

E:empty  匹配没有子元素的元素,并且该元素不包含任何的文本节点

IE9+支持

其中的参数n,可以是整数(1、2、3),关键字(odd、even),公式(2n+1)

参数n为具体数值时,n始终从1开始计算

参数n为公式时,n从0开始计算

参数为关键字时,odd选择基数,even选择偶数

6、否定伪类选择器

E:not(F)   匹配所有除元素F外的E元素

IE9+支持

7、伪元素

::first-letter  用来选择文本块的第一个字母

::first-line  用来选择文本块的第一行文本

::before   指额外插入内容的位置(之前)

::after    指额外插入内容的位置(之后),一般配合content使用

::selection  匹配突出显示的文本

IE6~8  只支持单冒号的写法,其他浏览器单双冒号都支持

::selection   :   IE9+,火狐需要增加私有属性“-moz”,另外该伪元素只接受两个属性:background、color

四、属性选择器

如:title=“aalink bblink”

[attr]   用于选取带有指定属性的元素。  [title]选取所有带title属性的元素

[attr=val]   用于选取带有指定属性和值的元素,这个值必须是全部的。   [title=“aalink bblink”]

[attr~=val]   用于选取属性值中包含指定词汇的元素。这个词汇必须是完整的单词      [title~="aalink”]选取属性中有aalink单词的具有title属性的元素

[attribute|=value]   用于选取带有以指定值开头的属性值的元素,该值必须是整个单词。  [title|="aa”]选取所有以aa或者aa-开头的具有title属性的元素

[attribute^=value]   匹配属性值以指定值开头的每个元素。  [title^="aa”]选取所有以aa开头的具有title属性的元素

[attribute$=value]   匹配属性值以指定值结尾的每个元素。  [title$="link”]选取所有以link结尾的具有title属性的元素

[attribute*=value]   匹配属性值中包含指定值的每个元素。 [title*="aal”]选取属性中有aal字母的具有title属性的元素

IE7+支持

五、IE低版本解决方案

1、使用Selectivizr

http://selectivizr.com/

页面中使用

<!--[if (gte IE 6)&(lte IE 8)]>
    <script type="text/javascript" src="selectivizr.js"></script>
<![endif]-->

2、使用IE7-js

http://dean.edwards.name/ie7/overview/

下载:https://code.google.com/p/ie7-js/downloads/list

页面中使用

<!--[if lt IE 9]>
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE9.js">IE7_PNG_SUFFIX=".png";</script>
<![endif]-->

六、各浏览器私有前缀

Firefox  : -moz-

opera :-o-

IE : -ms-

Chrome : -webkit-

CSS3选择器、低版本解决方案及各浏览器私有前缀的更多相关文章

  1. 4. CSS新特性之浏览器私有前缀

    1. 浏览器私有前缀 浏览器私有前缀是为了兼容老版本的写法,比较新版本的浏览器无需添加 -moz-:代表firefox浏览器私有属性 -ms-:代表ie浏览器私有属性 -webkit-:代表safar ...

  2. angularjs1+requirejs+ bootstrap+ jQuery低版本配合兼容ie8+浏览器

    angularjs兼容低版本IE浏览器(IE8)angularjs在1.3之后的版本都是选择放弃对IE8及更低IE版本的支持,但是就目前的开发形式来看,IE8的使用客户还是蛮多的,最近有个项目要求尽量 ...

  3. position:fixed 兼容浏览器低版本

    项目中遇到的坑,写篇博客做个笔记纪念下,position: fixed一般来说都兼容各个浏览器,但是要兼容浏览低版本问题,就得用-webkit-transform: translateZ(0);这段代 ...

  4. 使用VS2017开发APP中使用VUE.js开发遇到打包出来的android文件 在低版本的android(4.3)中无法正常使用

    使用VS2017开发VUE的APP应用遇到的问题集合 1,  打包出来的apk文件在Android 6.0版本以上手机可以正常打开,在Android 4.3版本手机上无法打开 原因:一开始猜测是不是V ...

  5. HTML中的IE条件注释,让低版本IE也能正常运行HTML5+CSS3网站的3种解决方案

    最近的项目中,因为需要兼容IE7,IE8,IE9,解研究了IE的条件注释,顺手写下来备忘.  HTML中的IE条件注释 IE条件注释是一种特殊的HTML注释,这种注释只有IE5.0及以上版本才能理解. ...

  6. 让低版本IE也能正常运行HTML5+CSS3网站的3种解决方案

    现在我们可以选择浏览器非常多,所以浏览器的环境也是种类繁多,同一个浏览器也是包含各种不同的版本,不同的版本之间的渲染方法也存在差异,,它们支持的 HTML5.CSS3 特性恐怕也不尽相同.这种情况于是 ...

  7. Vue2+Webpack+ES6 兼容低版本浏览器(IE9)解决方案

    Vue2+Webpack+ES6 兼容低版本浏览器(IE9)解决方案 解决方式:安装 "babel-polyfill" 即可. 命令:npm install --save-dev ...

  8. React+Webpack+ES6 兼容低版本浏览器(IE9)解决方案

    虽然过了兼容IE6的噩梦时代,IE依旧阴魂不散,因为你可能还要兼容IE9.在ES6已经普及的今天,用ES6写react已经成了标配.但是babel编译的js语法,由于某些不规范的写法,可能在IE9下不 ...

  9. 兼容低版本IE浏览器的一些心得体会(持续更新)

    前言: 近期工作中,突然被要求改别人的代码,其中有一项就是兼容IE低版本浏览器,所以优雅降级吧. 我相信兼容低版本IE是许多前端开发的噩梦,尤其是改别人写的代码,更是痛不欲生. 本文将介绍一些本人兼容 ...

随机推荐

  1. bzoj 1914: [Usaco2010 OPen]Triangle Counting 数三角形——极角排序

    Description 在一只大灰狼偷偷潜入Farmer Don的牛群被群牛发现后,贝西现在不得不履行着她站岗的职责.从她的守卫塔向下瞭望简直就是一件烦透了的事情.她决定做一些开发智力的小练习,防止她 ...

  2. [BZOJ2754] [SCOI2012]喵星球上的点名解题报告|后缀数组

    a180285幸运地被选做了地球到喵星球的留学生.他发现喵星人在上课前的点名现象非常有趣.   假设课堂上有N个喵星人,每个喵星人的名字由姓和名构成.喵星球上的老师会选择M个串来点名,每次读出一个串的 ...

  3. 使用.net core abp framework

    abp是一个有用的框架,包含许多功能,可以用来作为脚手架. 直接在官方网站上输入相应的工程名称,选择对应的版本就会下载对应的版本..net core 版本的可以使用后端框架部分来做api,包含了常用框 ...

  4. 重写strstr、strcpy、memcpy、memset、atof算法

    #include<stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> ...

  5. python基础===【爬虫】爬虫糗事百科首页图片代码

    import requests import re import urllib.request def getHtml(url): page = requests.get(url) html = pa ...

  6. python3使用xlrd、xlwt、xlutils、openpyxl、xlsxwriter操作excel

    特色简介 xlrd主要用来读excel,针对.xls格式: xlwt主要用来写excel,针对.xls格式,超出excel 的单格内容长度上限32767,就会报错: xlutils结合xlrd可以达到 ...

  7. c++设计模式系列----factory模式

    问题: 假设我们要开发一个游戏--打怪物,首先,游戏有分等级,假设有初级,中级两个个等级(就不用flappy bird模式了,那个比较特殊,对一个玩家来说是难以具有持久吸引力的!),不同的等级怪物也是 ...

  8. [New Learn] RunLoop学习-官方译文

    Run Loops Run loops是线程的一个基本构成部分.一个run loop 是一个事件处理循环,你可以使用它来处理线程收到的事件.设计run loop的目的就是可以使得线程在收到事件的时候处 ...

  9. System.getProperty方法中输出路径的方法

    package codegenerator;/** *@author Eilen *@date 2017年9月27日---下午3:15:09 *@描述: *@answer */public class ...

  10. IntelJ IDEA 进行Java Web开发+热部署+一些开发上的问题

    基本上像放弃MyEclipse或者Eclipse了,因为IDEA现在也有对应的版本旗舰版和社区版了,而且使用更贴心,更给力,为什么还要选一个难用的要死的东西呢? 最近要开发一个Java Web项目,所 ...