c3选择器和css hack

1.c3和c2得区别就是新增了一些东西,c3还是w3c的标准,在原有的基础上面改进了一些,但是还是有一定的缺点,那就是兼容性不太好,毕竟是新出来的东西。

2.接下来我们来看一下有哪些改进的东西;从我们最开始的选择器开始

属性选择器(c3):

E[att^="val"]  选择具有att属性且属性值为以val开头的字符串的E元素

E[att$="val"]  选择具有att属性且属性值为以val结尾的字符串的E元素。

E[att*="val"]  选择具有att属性且属性值为包含val的字符串的E元素.

伪类选择器(c3):

E:not(s)  匹配不含有s选择符的元素E。

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

E:last-child  匹配父元素的最后一个子元素E。

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

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

E:first-of-type   匹配父元素下第一个类型为E的子元素。

E:last-of-type   匹配父元素下的所有E子元素中的倒数第一个。

E:only-of-type  匹配父元素的所有子元素中唯一的那个子元素E。

E:nth-of-type(n) 匹配父元素的第n个子元素E。

E:nth-last-of-type(n) 匹配父元素的倒数第n个子元素E。

E:empty 匹配没有任何子元素(包括text节点)的元素E。

E:checked 匹配用户界面上处于选中状态的元素E。(用于input type为radio与checkbox时)

E:enabled     匹配用户界面上处于可用状态的元素E。

E:disabled  匹配用户界面上处于禁用状态的元素E。

E:target   匹配相关URL指向的E元素。

伪类对象选择器(c3)

E::placeholder   设置对象文字占位符的样式。

E::selection      设置对象被选择时的颜色。

这些都是c3中新增的选择器,这也是我们要记住的

3.下面来说一下,已经快被遗忘的知识点

就是css hack (说白了,就是浏览器得兼容)

什么是CSS hack由于不同厂商的浏览器,比如Internet Explorer,Safari,Mozilla Firefox,Chrome等,或者是同一厂商的浏览器的不同版本,如IE6和IE7,对CSS的解析认识不完全一样,因此会导致生成的页面效果不一样,得不到我们所需要的页面效果。 这个时候我们就需要针对不同的浏览器去写不同的CSS让它能够同时兼容不同的浏览器,能在不同的浏览器中也能得到我们想要的页面效果

官方的解释:

  条件hack的if判断有6种:是否、大于、大于或等于、小于、小于或等于、非指定版本

是否:指定是否IE或IE某个版本。关键字:

大于:选择大于指定版本的IE版本。关键字:gt(greater than)

大于或等于:选择大于或等于指定版本的IE版本。关键字:gte(greater than or equal)

小于:选择小于指定版本的IE版本。关键字:lt(less than)

小于或等于:选择小于或等于指定版本的IE版本。关键字:lte(less than or equal)

非指定版本:选择除指定版本外的所有IE版本。关键字:!

hack的取值:

_:选择IE6及以下。连接线(中划线)(-)亦可使用,为了避免与某些带中划线的属性混淆,所以使用下划线(_)更为合适。

*:选择IE7及以下。诸如:(+)与(#)之类的均可使用,不过业界对(*)的认知度更高

\9:选择IE6+

\0:选择IE8+和Opera15以下的浏览器

这里我们只是作为了解,这种兼容写法,会渐渐的被淘汰

尽可能减少对CSS Hack的使用。Hack有风险,使用需谨慎

通常如未作特别说明,本文档所有的代码和示例的默认运行环境都为标准模式。

一些CSS Hack由于浏览器存在交叉认识,所以需要通过层层覆盖的方式来实现对不同浏览器进行Hack的。

猜你喜欢

转载自www.cnblogs.com/zhangli123/p/12112047.html