input.bg是什么选择器

html-css08

input.bg是什么选择器,第1张

一、新增的选择器

CSS3新增的属性选择器 {除ie6外的大部分浏览器支持)

1 E[att^="val"] 属性att的值以"val"开头的元素 div[id^="nav"] { background:#ff0}

2 E[att$="val"] 属性att的值以"val"结尾的元素

3 E[att*="val"] 属性att的值包含"val"字符串的元素

结构伪类选择器(过滤选择器)

(注:FireFox 1.5/2.0/3.0支持E:root,FireFox 3.0支持E:last-child、E:only-child、E:empty。

由于IE6/7/8不支持,没办法,选择合适的场合用吧。)

4 E:root 匹配文档的根元素,对于HTML文档,就是HTML元素

5 E:nth-child(n) 匹配其父元素的第n个子元素,第一个编号为1 p:nth-child(3) { color:#f00}

6 E:nth-last-child(n) 匹配其父元素的倒数第n个子元素,第一个编号为1 p:last-child { background:#ff0}

7 E:nth-of-type(n) 与:nth-child()作用类似,但是仅匹配使用同种标签的元素 p:nth-of-type(2){color:red}选择父元素的第n个子元素p

8 E:nth-last-of-type(n) 与:nth-last-child() 作用类似,但是仅匹配使用同种标签的元素

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

10 E:first-of-type 匹配父元素下使用同种标签的第一个子元素,等同于:nth-of-type(1)

11 E:last-of-type 匹配父元素下使用同种标签的最后一个子元素,等同于:nth-last-of-type(1)

12 E:only-child 匹配父元素下仅有的一个子元素,等同于:first-child:last-child或 :nth-child(1):nth-last-child(1) p:only-child { background:#ff0}

13 E:only-of-type 匹配父元素下使用同种标签的唯一一个子元素,等同于:first-of-type:last-of-type或 :nth-of-type(1):nth-last-of-type(1)

14 E:empty 匹配一个不包含任何子元素的元素,注意,文本节点也被看作子元素 p:empty { background:#ff0}

与用户界面(UI)有关的伪类(ie6 7 8不支持)

15 E:enabled 匹配表单中激活的元素

16 E:disabled 匹配表单中禁用的元素 input[type="text"]:disabled { background:#ddd}

17 E:checked 匹配表单中被选中的radio(单选框)或checkbox(复选框)元素

18 E::selection 匹配用户当前选中的元素

级元素通用选择器

ie6不支持

19 E ~ F 匹配任何在E元素之后的同级F元素 p ~ ul { background:#ff0}

反选伪类

(ie6 7 8 firefox3.0以下 Opera9.0不支持)

20 E:not(s) 匹配不符合当前选择器的任何元素 :not(p) { border:1px solid #ccc}

:target 伪类

(ie6 7 8不支持)

21 E:target 匹配文档中特定"id"点击后的效果

二、css3新增属性

一. box-shadow(阴影效果)

使用:

box-shadow: 20px 10px 0 #000

-moz-box-shadow: 20px 10px 0 #000

-webkit-box-shadow: 20px 10px 0 #000

支持:

FF3.5, Safari 4, Chrome 3

二. border-colors(为边框设置多种颜色)

使用:

border: 10px solid #000

-moz-border-bottom-colors: #555 #666 #777 #888 #999 #aaa #bbb #ccc

-moz-border-top-colors: #555 #666 #777 #888 #999 #aaa #bbb #ccc

-moz-border-left-colors: #555 #666 #777 #888 #999 #aaa #bbb #ccc

-moz-border-right-colors: #555 #666 #777 #888 #999 #aaa #bbb #ccc

说明:

颜色值数量不固定, 且FF的私有写法不支持缩写: -moz-border-colors: #333 #444 #555

支持:

FF3+

三. boder-image(图片边框)

使用:

-moz-border-image: url(exam.png) 20 20 20 20 repeat

-webkit-border-image: url(exam.png) 20 20 20 20 repeat

说明:

(1). 20 20 20 20 --->边框的宽度, 分别对应top, right, bottom, left边框, 改变宽度可以实现不同的效果

(2). 边框图片效果(目前仅实现了两种):

repeat --- 边框图片会平铺, 类似于背景重复

stretch --- 边框图片会以拉伸的方式来铺满整个边框

(3). 必须将元素的边框厚度设置为非0非auto值.

支持:

FF 3.5, Safari 4, Chrome 3

四. text-shadow(文本阴影)

使用:

text-shadow: [<颜色><水平偏移><纵向偏移><模糊半径>] || [<水平偏移><纵向偏移><模糊半径><颜色>]

说明:

(1) <颜色>和<模糊半径>是可选的, 当<颜色>未指定时, 将使用文本颜色当<模糊半径>未指定时, 半径值为0

(2) shadow可以是逗号分隔的列表, 如:

text-shadow: 2px 2px 2px #ccc, 3px 3px 3px #ddd

(3) 阴影效果会按照shadow list中指定的顺序应用到元素上

(4) 这些阴影效果有可能相互重叠, 但不会叠加文本本身

(5) 阴影可能会跑到容器的边界之外, 但不会影响容器的大小.

支持:

FF 3.5, Opera 10, Safari 4, Chrome 3

五. text-overflow(文本截断)

使用:

text-overflow: inherit | ellipsis | clip

-o-text-overflow: inherit | ellipsis | clip

说明:

(1) 还有一个属性ellipsis-word, 但各浏览器均不支持.

支持:

IE6+, Safari4, Chrome3, Opera10

六. word-wrap(自动换行)

使用:

word-wrap: normal | break-word

支持:

IE6+, FF 3.5, Safari 4, Chrome 3

七. border-radius(圆角边框)

使用:

-moz-border-radius: 5px

-webkit-border-radius: 5px

支持:

FF 3+, Safari 4 , Chrome 3

八. opacity(不透明度)

使用:

opacity: 0.5

filter: alpha(opacity=50)/* for IE6, 7 */

-ms-filter(opacity=50)/* for IE8 */

支持:

all

九. box-sizing(控制盒模型的组成模式)

使用:

box-sizing: content-box | border-box// for opera

-moz-box-sizing: content-box | border-box

-webkit-box-sizing: content-box | border-box

说明:

1. content-box:

使用此值时, 盒模型的组成模式是, 元素宽度 = content + padding + border

2. border-box:

使用此值时, 盒模型的组成模式是, 元素宽度 = content(即使设置了padding和border, 元素的宽度

也不会变).

支持:

FF3+, Opera 10, Safari 4, Chrome 3

十. resize(元素缩放)

使用:

resize: none | both | horizontal | vertical

说明:

1. 必须将元素的overflow属性设置为auto或hidden, 该属性才能起作用(overflow设置为visible时, 无效)

2. 属性值说明:

(1). none -->禁用缩放

(2). both -->可同时缩放宽度和高度

(3). horizontal -->仅能缩放宽度

(4). vertical -->仅能缩放高度

支持:

safari 4, chrome 3

十一. outline(外边框)

使用:

outline: 边框厚度 边框样式 边框颜色

outline-offset: 偏移值

说明:

outline-offset需要独立写, 简写是无效的.

支持:

FF3+, safari 4, chrome 3, opera 10

十二. background-size(指定背景图片的尺寸)

使用:

-o-background-size: [length | percentage] {1, 2}

-webkit-background-size: [length | percentage] {1, 2}

例如:

-o-background-size: 50px 60px

-webkit-background-size: 50px 60px

这会将背景图片的宽设置了50px, 高60px.

支持:

safari 4, chrome 3, opera 10

十三. background-origin(指定背景图片从哪里开始显示)

使用:

-webkit-background-origin: border | padding | content

-moz-background-origin: border | padding | content

说明:

(1) border -->从border区域开始显示背景

(2) padding -->从padding区域开始显示背景

(3) content -->从content区域开始显示背景

注意:

1. 必须先指定background属性, 然后才能指定该属性, 如果该属性出现在background属性之前,

会无效.

支持:

safari 4, chrome 3, FF 3+

十四. background-clip(指定背景图片从什么位置开始裁切)

使用:

-webkit-background-origin: border-box | padding-box | content-box | no-clip

说明:

(1) border-box -->从border区域向外裁剪背景

(2) padding-box -->从padding区域向外裁剪背景

(3) content-box -->从content区域向外裁剪背景

(4) no-clip

们在移动端一般使用zepto框架,与其说zepto是jquery的轻量级替代版,不如说是html5替代版

我们在js中会用到animate方法执行动画,这个家伙可是真资格的动画,完全是css一点点变化的!

而zepto则不然,使用的是HTML5/CSS3的方案,而CSS相关是不保存元素状态值的,也没办法保存,所以停止动画就成了一大问题

我们今天就一起来讨论下相关停止动画的方案,反正没有什么好的......

CSS3动画原理

在现有浏览器中,一般有两种模式(我只知道两种):

一种是js动画,他是动态改写元素的style实现动画,所以任意时间想停止动画都是没问题的,因为我们可以获得各个阶段的状态值

另一种就是CSS3动画了,至于CSS3动画的原理,我不知道但是可以说一点的就是——见代码

1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

2 <html xmlns="http://www.w3.org/1999/xhtml">

3 <head>

4 <title></title>

5 <script id="Script1" type="text/javascript" class="library" src="/js/sandbox/other/zepto.min.js"></script>

6 </head>

7 <body>

8 <div id="Div1" style="background-color: Orangewidth: 100pxheight: 100pxposition: absolute

9 left: 0border: 1px solid black">

10 </div>

11 </body>

12 <script src="../zepto.js" type="text/javascript"></script>

13 <script type="text/javascript">

14 var d = $('#d')

15 d.animate({

16 left: '100px'

17 }, 10000)

18

19 setTimeout(function () {

20 d.html('left: ' + d.css('left'))

21 }, 1)

22

23 </script>

24 </html>

http://sandbox.runjs.cn/show/xziwuir2

zepto的animate事实上马上就改变了style的值,所以我们在里面看到了left为100px,虽然他正在运动

而他动画的实现事实上使用的是CSS3的transition动画属性,我们这里来看看zepto的源码:

View Code

最后实际上是执行anim实现我们的动画,大家注意看这里

$(this).css(cssReset)

this.css(cssValues)

他事实上搞了个先设置动画属性,再给style属性给元素,所以会产生动画

到此,zepto实现动画原理我们大概知道了,现在问题就是如何停止他了,所以我们继续往下看

如何停止动画

我们先看看这个东西:

1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

2 <html xmlns="http://www.w3.org/1999/xhtml">

3 <head>

4 <title></title>

5 <script id="Script2" type="text/javascript" class="library" src="/js/sandbox/other/zepto.min.js"></script>

6 </head>

7 <body>

8 <div id="Div2" style="background-color: Orangewidth: 100pxheight: 100pxposition: absolute

9 left: 0border: 1px solid black">

10 </div>

11 </body>

12 <script src="../zepto.js" type="text/javascript"></script>

13 <script type="text/javascript">

14 var d = $('#d')

15 d.animate({

16 left: '100px'

17 }, 10000)

18

19 setInterval(function () {

20 d.html('left: ' + d.css('left') + ' _ offsetLeft: ' + d[0].offsetLeft)

21 }, 1)

22

23 </script>

24 </html>

http://sandbox.runjs.cn/show/gdqezvdo

其中虽然left一开始就变了,我们惊奇的发现,offset这个家伙居然保存了我们的状态!!!

我和我的小伙伴都惊呆了,因为我之前一直以为什么状态都不能获得,于是我们为他加上mousedown事件,各位运动时候点击试试

我们这里这样干了下:

1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

2 <html xmlns="http://www.w3.org/1999/xhtml">

3 <head>

4 <title></title>

5 <script id="Script3" type="text/javascript" class="library" src="/js/sandbox/other/zepto.min.js"></script>

6 </head>

7 <body>

8 <div id="Div3" style="background-color: Orangewidth: 100pxheight: 100pxposition: absolute

9 left: 0border: 1px solid black">

10 </div>

11 </body>

12 <script src="../zepto.js" type="text/javascript"></script>

13 <script type="text/javascript">

14 var d = $('#d')

15 d.animate({

16 left: '100px'

17 }, 10000)

18

19 setInterval(function () {

20 d.html('left: ' + d.css('left') + ' _ offsetLeft: ' + d[0].offsetLeft)

21 }, 1)

22

23 d.mousedown(function (e) {

24 console.log(d)

25 d.css('transition', 'left 0s linear')

26 d.css('left', d[0].offsetLeft + 'px')

27 })

28

29 </script>

30 </html>

于是我们发现,动画停止了,亲!他真的停止了!!!

PS:因为项目过程中,我这里要模仿类似iscroll的滚动效果,所以使用的最多的就是top或者translate3d(0, 0, 0)这种东西

结语

本来这里还想深入一点研究下的,但是现在时间有点来不及,事情有点多,暂时到这里了吧,具体的demo争取周末搞出来

css3中的动画有这个属性:animation-timing-function,他又几个不同的参数:

linear:动画从头到尾的速度是相同的。

ease:默认。动画以低速开始,然后加快,在结束前变慢。

ease-in:动画以低速开始。

ease-out:动画以低速结束。

ease-in-out:动画以低速开始和结束。

cubic-bezier(n,n,n,n):在 cubic-bezier 函数中自己的值。可能的值是从 0 到 1 的数值。

你说的这个问题应该就是他的最后一个参数(cubic-bezier(n,n,n,n)---贝塞尔曲线),不过这个计算起来相对复杂很多。你可以参考一下http://blog.sina.com.cn/s/blog_68784e160101a7h5.html