伪类选择器:root的妙用

css3的元素旋转功能非常强大,也非常吸引人,但是很多时候因为浏览器使用率的问题,我们必需要想办法兼容一些低版本的浏览器,特别是ie这朵奇葩。

想要实现元素旋转本来很简单的一个属性就能实现,那就是transform:rotate(xxdeg)。举个例子:实现一个层旋转270deg。

#demo{
width: 300px;height: 200px;background-color: #FF80C0;margin: 200px;
-moz-transform:rotate(270deg);
-webkit-transform:rotate(270deg);
-ms-transform:rotate(270deg);
-o-transform:rotate(270deg);
}

不过,为了兼容很用户依然还在使用的ie8以下版本的浏览器,我们不得不为他写上滤境代码:

filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3)

加上以后,ie8等浏览器也实现了旋转,可是,当你在ie9下看的时候你会发现它的旋转角度并不是你想要的,这是为什么呢?因为ie9即支持-ms-transform:rotate(270deg)

又支持 filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3),虽然支持了很多css3属性,但是他依然保留了对滤镜的支持,相当于旋转了两次,ie10以后不支持滤镜,所以不会出现这种现象!

那么要如果针对ie9做hack呢?方法有二:

方法一:使用ie独有的条件注释:

<!--[if lte IE 8]>
<style>
#demo{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);}
</style>
<![endif]-->

方法二:就是本文的主角:root(即根选择器,他的意思就是匹配元素E所在文档的根元素。在HTML文档中,根元素始终是<html>,扩展一点:

:root{width: 100%} 其实就相当于 html{width: 100%},只是ie8- 的浏览器不支持 :root

:root #demo{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0);}

因为ie8以下的版本不支持:root,所以就:root结合滤镜组合起来就实现的ie9 hack了。

PS:对于元素旋转还有更精确的工具,可以实现不同角度的旋转,包括ie8-,现在附上地址:http://www.useragentman.com/IETransformsTranslator/

时间: 2024-08-08 22:07:58

伪类选择器:root的妙用的相关文章

CSS3---结构性伪类选择器:root

结构性伪类选择器—root :root选择器,从字面上我们就可以很清楚的理解是根选择器,他的意思就是匹配元素E所在文档的根元素.在HTML文档中,根元素始终是<html>. 示例演示: 通过“:root”选择器设置背景颜色 HTML代码: <div>:root选择器的演示</div> CSS代码: :root { background:orange; } 演示结果:

CSS3中结构伪类选择器——root、not、empty、target选择器

1.root选择器 将样式绑定到页面的根元素中.根元素是指位于文档树中最顶层结构的元素,在HTML页面中就是指包含整个页面的<html>部分. <style type="text/css"> :root{ background:yellow; } body{ background:green; } </style> 注意:不使用root选择器来指定root元素的背景色,只指定body元素的背景色,则整个页面就全部变成了绿色. 2.not选择器 如果想

CSS3新增加的伪类选择器

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>CSS3新增加的伪类选择器</title>    <style type="text/css">    /*root所有的元素*/        :root{            color: pink;      

CSS3之伪元素选择器和伪类选择器

伪类选择器,和一般的DOM中的元素样式不一样,它并不改变任何DOM内容.只是插入了一些修饰类的元素,这些元素对于用户来说是可见的,但是对于DOM来说不可见.伪类的效果可以通过添加一个实际的类来达到. a:link|a:visited|a:hover|a:active 在 CSS 定义中,a:hover 必须被置于 a:link 和 a:visited 之后,才是有效的,a:active 必须被置于 a:hover 之后,才是有效的. 由于状态是动态变化的,所以一个元素达到一个特定状态时,它可能得

CSS使用注意(2):关于伪类选择器

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>CSS伪元素选择器</title> <style type="text/css"> /* 伪元素选择器: 伪元素的效果是需要通过添加一个实际的元素才能达到的. CSS中有如下四种伪元素选择器: :first-line:为某个元

css3中伪类选择器和伪元素介绍

利用html5和css3开发出炫酷的网页,那么对于一个web前端开发者,css3也是必须要掌握的,下面和大家讨论一下css3中伪类选择器和伪元素. 类选择器 在css中可以使用类选择器把相同的元素定义成不同的样式.比如:p.left{text-align: left}p.rigth{text-align: right} 伪类选择器 类选择器和伪类选择器的区别在于,类选择器我们可以随意起名,而伪类选择器是CSS中已经定义好的选择器,不可以随意起名. 最常见的伪类选择器 a:link{ color:

css选择器2——伪类选择器

一.伪元素选择器 1. E:first-letter/E::first-letter(css3时代两个冒号) 设置元素内的第一个字符的样式. 例如: p::first-letter{font-size:50px;} 2. E:first-line/E::first-line 设置元素内的第一行的样式. 例如: p::first-line{color:green;} 3. E:before/E::before在每个E元素的内容之前插入内容.用来和content属性一起使用. 例如: a::befo

H5与CS3权威下.19 选择器(2)结构性伪类选择器

1.CSS中的伪类选择器及伪元素 (1)与自定义的class类选择器不同,伪类选择器是CSS中已经定义好的选择器. eg:a:link{color:#ff0000;} (2)伪元素的使用方法: 选择器:伪元素{属性:值} 选择器.类名:伪元素{属性:值} 2.css中常用的伪元素选择器 (1)first-line:向某元素中的第一行文字使用样式. eg: 1 <p>伪元素选择器 <br>类选择器</p> 1 p:first-line{background: pink;}

Atitit.隔行换色 &#160;变色 css3 结构性伪类选择器

Atitit.隔行换色  变色 css3 结构性伪类选择器 1.1. css3隔行换色扩展阅读 1 1.2. 结构伪选择器 1 1.3. jQuery 选择器2 1.1. css3隔行换色扩展阅读 原理就是利用结构伪类选择器 .list_div tr:nth-of-type(odd){background:#fff;} /* 奇数行 */ /*-------------------------------*/ .list_div tr:nth-of-type(even){ background: