CSS3选择器、低版本解决方案及各浏览器私有前缀

一、基本选择器

通配选择器:*

元素选择器: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-

时间: 2024-08-01 15:26:18

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

0071 浏览器私有前缀

浏览器私有前缀是为了兼容老版本的写法,比较新版本的浏览器无须添加. 私有前缀 ? -moz-:代表 firefox 浏览器私有属性 ? -ms-:代表 ie 浏览器私有属性 ? -webkit-:代表 safari.chrome 私有属性 ? -o-:代表 Opera 私有属性 提倡的写法 -moz-border-radius: 10px; -webkit-border-radius: 10px; -o-border-radius: 10px; border-radius: 10px; 原文地址

低版本IE6/7/8浏览器中使用HTML5的audio和video标签播放视频音频

支持低版本IE的html5播放器演示 通常人们习惯用swf播放器来播放网络视频音频 HTML5给我们带来了很多惊喜,其中新增加的audio和video标签可以让我们更方便的在网页中播放音频和视频.video标签虽好,然而目前它却无法在旧版的IE浏览器中使用.所以一般还是用flash播放器来播放视频,例如优酷网站的插入视频的代码如下: <embed src="http://player.youku.com/player.php/sid/XNjgwMDU5MDU2/v.swf" al

直接在低版本IE6/7/8浏览器中使用HTML5的audio和video标签播放视频音频的办法

摘自:http://www.uiej.com/1107.html 通常人们习惯用swf播放器来播放网络视频音频 HTML5给我们带来了很多惊喜,其中新增加的audio和video标签可以让我们更方便的在网页中播放音频和视频.video标签虽好,然而目前它却无法在旧版的IE浏览器中使用.所以一般还是用flash播放器来播放视频,例如优酷网站的插入视频的代码如下: <embed src="http://player.youku.com/player.php/sid/XNjgwMDU5MDU2/

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

使用VS2017开发VUE的APP应用遇到的问题集合 1,  打包出来的apk文件在Android 6.0版本以上手机可以正常打开,在Android 4.3版本手机上无法打开 原因:一开始猜测是不是VS中安卓设置不正确,最后确定的问题是,低版本内置的浏览器(webview)版本太低,无法解析 ES2015最新的一些语法.需要在Webpack中配置babel-loader,还需要在项目最外层添加一个.babelrc文件用于babel默认解析ES2015中的特殊语法(例如: const,let等)

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

现在我们可以选择浏览器非常多,所以浏览器的环境也是种类繁多,同一个浏览器也是包含各种不同的版本,不同的版本之间的渲染方法也存在差异,,它们支持的 HTML5.CSS3 特性恐怕也不尽相同.这种情况于是造成Web开发者在开发网站时,要面对数量庞大的浏览器种类. 如果开发时按最低标准,比如 IE6不支持的特性,我们统统不用,那就没有必要写这篇文章了:但我想这种情况极少,更多的开发,是在现代浏览器上使用它们支持的特性,而在早期浏览器上做一定的降级处理,这就是所谓 “渐进增强”,也是本文要说的重点.通过

IE8及低版本浏览器不支持CSS3 media queries的解决方法

问题:IE8及其以下低版本IE浏览器在缩小窗口时,UI没有按照相应的要求显示窗口缩小时对应的布局:其他浏览器正常. 定位过程: 其实开始拿到问题时是无从下手,不知所以然,根本就没听说还有media这个CSS属性,就更不知道它的功能了.但是对于解决UI问题,有自己的一套思路,就是首先要思考为什么会错误以及为什么没有错误两个方面,然后针对这两个方面的疑问把html或js或css文件简化再简化,修改再修改,查看UI变化,从而缩小问题范围,最后找出问题根源. 如此我就想为什么其他浏览器界面布局没有问题呢

[转]使用Filters滤镜弥补CSS3的跨浏览器问题以及兼容低版本IE

跨浏览器兼容性是网页制作永恒的难题.别看各浏览器厂商都努力在自己的浏览器中实现新式的css3标准特性,但都是以扩展样式的形式提供的, 所以在未来一段时间里,样式表里的-moz-,-webkit-,(-ms-,-o-)等等前缀将长期存在. 另外,虽说各家有志于扩张自己市场的浏览器厂商都提供了css3的新特性,但鉴于其老式版本的浏览器依然存在于用户的主机上(主要是微软旗下的ie6,7,8),除了考虑各家浏览器之间的兼容性外,我们还有必要向前兼容老式浏览器. 这些老式浏览器(低版本ie)对于css3的

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

虽然过了兼容IE6的噩梦时代,IE依旧阴魂不散,因为你可能还要兼容IE9.在ES6已经普及的今天,用ES6写react已经成了标配.但是babel编译的js语法,由于某些不规范的写法,可能在IE9下不能正确解释,很容易导致白屏.本文记录如下 起因 在准备提测的那天,顺便打开IE9看一眼(注意,这里是原生IE9 ,不是用IE11模拟的IE9),OMG! 排查后发现,原来是因为构造函数中使用了this.简写如下 class Child extends React.Component { ? cons

让 IE9 以下的浏览器支持HTML5标签 和 CSS3选择器

做项目的很多时候,想用 HTML5  CSS3 新的技术,又考虑到低版本的浏览器不支持这些标签和属性,就让人烦恼,不过问题的出现,就有问题的解决方案,那么这里就介绍用 js 插件来让低版本浏览器也兼容吧... 让浏览器支持HTML5标签插件下载地址: http://code.google.com/p/html5shiv/ 让浏览器支持CSS3选择器插件下载地址: http://www.jb51.net/jiaoben/24032.html 使用方法: 下载插件,在下载到的文件中找到下面标着红颜色