CSS3

1、复杂选择器

2、内容生成

3、多列

4、CSS Hack(浏览器兼容性)

*******************************

1、复杂选择器

         1、兄弟选择器

                  1、作用

                          通过元素的平级关系来匹配其他元素

                          只能向后不能向前

                  2、分类

                          1、相邻兄弟选择器

                                   匹配指定元素的相邻兄弟

                                   相邻:紧紧挨在指定元素的后面

 

                                   语法:

                                            选择器1+选择器2

                                            ex:

                                                     1、div+p{}

                                                     2、#content+.important{}

                          2、通用兄弟选择器

                                   通用:某元素后面所有的兄弟元素

                                   语法:

                                            选择器1~选择器2

         2、属性选择器

                  1、作用

                          允许使用元素所附带的属性及其值,来匹配页面的元素

                  2、语法

                           唯一一组以  [] 来进行表示的选择器

                           1、[attr]

                                   attr:任意属性名称

                                   作用:匹配 附带 attr 属性的元素

                                            ex:

                                                     1、[id]

                                                             匹配页面所有附带 id 属性的元素

                           2、elem[attr]

                                   elem : 表示任意元素

                                   作用:匹配附带 attr 属性的 elem 元素

                                            ex:

                                                     1、p[id]

                           3、elem[attr1][attr2]

                                   作用:匹配页面中所有即附带attr1属性也同时附带attr2属性的elem元素

                                            ex:

                                                     div[id][class]

                           4、elem[attr=value]

                                            value:值

                                            作用:匹配页面上 附带attr属性同时值为 value 的elem 元素

                                            ex:

                                                     input[type=text] : 获取页面所有文本框

                           5、elem[class~=value]

                                            作用:匹配 附带 class 属性的 elem元素,其中class属性的值是以空格隔开的值列表,value是值列表中的一个独立值。

                           6、elem[attr^=value]

                                   ^= : 以 value 作为开始

                                   作用:匹配附带attr属性的elem元素,并且该属性值是以value作为开始的

                           7、elem[attr$=value]

                                   $= : 以 value 作为结束

                                   作用:匹配附带attr属性的elem元素,并且该属性值是以value作为结束的

                           8、elem[attr*=value]

                                   *= : 包含 value 字符即可

                                           

                                           

 

         3、伪类选择器

         4、伪元素选择器

 

 

 

 

1、复杂选择器

         1、兄弟选择器

                  1、相邻兄弟

                          选择器1+选择器2

                  2、通用兄弟

                          选择器1~选择器2

         2、属性选择器

                  语法:[]

                          [attr]:匹配附带attr属性的元素

                          elem[attr]:... ...

                          elem[attr1][attr2]:

                          [attr=value]:

                          [class~=value]:

                          [attr^=value]:

                          [attr$=value]:

                          [attr*=value]:

         3、伪类选择器

                  1、目标伪类

                          :target

                  2、元素状态伪类

                          :enabled,匹配被激活元素(表单控件)

                          :disabled,匹配被禁用元素(表单控件)

                          :checked,匹配被选中元素(radio,checkbox)

                  3、结构伪类

                          1、:first-child

                          2、:last-child

                          3、:nth-child(n)

                          4、:empty

                          5、:only-child

                  4、否定伪类

                          :not(选择器)

         4、伪元素选择器

                  1、作用

                          匹配元素中的内容

                  2、语法

                          :first-letter,匹配元素的首字符

                          :first-line,匹配元素的首行

                          ::selection,匹配用户选中的部分

 

                          注意: :与::的区别

2、内容生成

         1、语法

                  1、伪元素选择器

                          1、:before,匹配元素内容区域之前

                          2、:after,匹配元素内容区域之后

                  2、属性

                          属性:content

                          取值:

                                   1、字符串 :普通文本,""

                                   2、url() , 生成一副图像

                                   3、计数器

                  3、解决问题

                          1、浮动元素的父元素高度问题

                                   div:after{

                                            content:"";

                                            display:block;

                                            clear:both;

                                   }

                          2、外边距溢出

                                   div:before/div:after{

                                            content:"";

                                            display:table;

                                   }

                  4、计数器

                          1、声明或复位一个计数器

                                   属性:

                                            counter-reset:名 值 名 值;

                                            值,可以省略,默认为0

                                           

                                   注意:

                                            1、不能将计数器声明在使用的元素中

 

                          2、设置计数器增量

                                   属性:counter-increment:名 值;

                                            值,可以省略,默认为1

                                   注意:

                                            1、哪个元素使用,就在哪个元素上声明增量

                          3、使用计数器

                                   属性:content

                                   取值:counter(名);

                                   注意:

                                            配合着:before或:after一起使用

3、多列

         1、属性

                  1、分隔列

                          属性:column-count

                  2、列间隔

                          属性:column-gap

                  3、列规则

                          属性:column-rule:width style color;

         2、兼容性

                  添加浏览器前缀

4、CSS Hack

         1、CSS Hack方式

                  1、CSS 类内部hack

                          通过 属性前缀或值后缀的方式来编写指定浏览器能够识别的样式

 

                          hack    写法

                          *       *color   IE6,IE7

                          +       +color   IE6,IE7

                          #       #color   IE6,IE7

                          -       -color   IE6

                          _       _color   IE6

                          \0      color:red\0;   IE8,IE9,IE10

                          \9\0    color:red\9\0; IE9,IE10

 

                          注意:

                                   顺序问题

                                   IE8,IE9,IE10(\0)

                                   IE9,IE10(\9\0)

                                   IE6,IE7(+)

                                   IE6(-)

                  2、选择器Hack

                          在选择器前加上浏览器能够识别的前缀

                          * : IE6

                                   *body{

                                            /*IE6中body的样式*/

                                   }

                          *+ : IE7

                                   *+body{

                                            /*IE7中body的样式*/

                                   }

                  3、HTML都不引用Hack

                          通过HTML的条件注释

                          条件注释语法:

                          <!--[if 条件 IE 版本]>

                                   内容

                          <![endif]-->

                          条件:

                                   1、gt :大于指定版本

                                   2、gte :大于等于

                                   3、lt :小于

                                   4、lte :小于等于

                                   5、!不是指定版本

 

******************************

1、转换

2、过渡

3、动画

4、CSS 优化

******************************

1、转换

         1、转换简介

                  1、什么是转换

                          改变元素在页面中的大小,位置,角度和形状的一种方式

 

                  2、转换分类

                          1、2D转换

                                   使元素在x轴和y轴上发生变化效果

                          2、3D转换

                                   在2D转换基础上,增加 z轴的变化效果

                  3、转换属性

                          属性:transform

                          取值:

                                   1、none

                                            默认值,不进行任何转换

                                   2、转换函数

                                            表示一个或者多个转换函数,如果是多个函数的话,中间以空格分开

                  4、转换原点

                          属性:transform-origin

                          默认情况下,原点是在整个元素的中心位置处

                          取值:数值/百分比/关键字

                          两个值:表示 x轴 和 y轴的位置

                          三个值:表示 x轴 ,y轴 ,z轴的位置

         2、2D转换

                  1、2D位移

                          1、属性 和 函数

                                   属性:transform

                                   函数:

                                            translate(x) :元素在x轴上的位移距离,取值为正,向右移动,取值为负,向左移动

                                            translate(x,y) :

                                                     x表示x轴位移距离

                                                     y表示y轴位移距离,取值为正,向下移动,取值为负,向上移动

                                            translateX(x) :只改变元素在x轴上的位置

                                            translateY(y) :只改变元素在y轴上的位置

                                   取值:

                                            1、数值

                                            2、百分比

                  2、2D缩放

                          1、作用

                                   改变元素在页面中的大小

                          2、属性和函数

                                   属性:transform

                                   函数:

                                            scale(value),如果只给一个值,那么x轴和y轴将等比缩放

                                            scale(x,y):改变 x轴和y轴的缩放比例

                                            scaleX(x):只改变x轴的缩放比例

                                            scaleY(y):只改变y轴的缩放比例

                                   取值:

                                            默认值 为1

                                            缩小:0~1 之间的数值

                                            放大:大于1的数值

                  3、2D旋转

                          1、作用

                                   改变元素在页面中的角度

                          2、属性 和 函数

                                   属性:transform

                                   函数:rotate(ndeg)

                                            n取值为正,则顺时针旋转

                                            n取值为负,则逆时针旋转

                          3、注意

                                   1、转换时,坐标轴会一起进行转换

                                   2、转换原点可以影响转换效果

                  4、2D倾斜

                          1、作用

                                   改变元素在页面上的形状

                          2、属性 和 函数

                                   属性:transform

                                   函数:

                                            skew(xdeg) : x轴倾斜指定角度

                                                     实际上时改变 y轴的倾斜角度

                                                     取值为正:逆时针

                                                     取值为负:顺时针

                                            skewX(xdeg) : 效果同上

                                            skewY(ydeg) : y轴倾斜指定角度

                                                     实际上是改变 x轴的倾斜角度

                                                     取值为正:顺时针

                                                     取值为负:逆时针

                         

 

 

 

1、转换

         1、属性

                  1、转换属性 

                          transform:转换函数

                  2、transform-origin:转换原点

                          数值/百分比/关键字

                  3、transform-style

                          如何处理子元素位置

                          取值:

                                   1、flat :默认值

                                   2、preserve-3d : 保留子元素3d位置

                  4、perspective

                          人眼到投射元素的距离

         2、2D转换

                  1、位移

                          函数:

                                   translate(x)

                                   translate(x,y)

                                   translateX(x)

                                   translateY(y)

                  2、旋转

                          函数:rotate(ndeg);

                  3、缩放

                          函数:

                                   scale(value)

                                   scale(x,y)

                                   scaleX(x)

                                   scaleY(y)

                  4、倾斜

                          函数:

                                   skew(x)

                                   skew(x,y)

                                   skewX(x)

                                   skewY(y)

         3、3D转换

                  1、3D旋转

                          rotateX(xdeg)

                          rotateY(ydeg)

                          rotateZ(zdeg)

                          rotate3D(x,y,z,ndeg)

                  2、3D位移

                          translateZ(z)

                          translate3D(x,y,z)

2、过渡

         属性:

                  1、指定过渡属性

                          transition-property

                  2、指定过渡时长

                          transition-duration

                          以s|ms作为单位

                  3、指定 时间速度 曲线函数

                          transition-timing-function

                          ease,linear,ease-in,ease-out,ease-in-ount

                  4、指定 过渡延迟

                          transition-delay

                  5、transition

                          property duration timing-function dealy

3、动画

         1、声明动画

                  @keyframes 动画名称{

                          0%{

                                   动画开始时的样式

                          }

                          ... ...

                          100%{

                                   动画结束时的样式

                          }

                  }

 

                  @-moz-keyframes 动画名称{

                          0%{

                                   动画开始时的样式

                          }

                          ... ...

                          100%{

                                   动画结束时的样式

                          }

                  }

 

                  @-webkit-keyframes 动画名称{

                          0%{

                                   动画开始时的样式

                          }

                          ... ...

                          100%{

                                   动画结束时的样式

                          }

                  }

         2、使用动画

                  将 声明好的动画绑定在指定的选择器上

                  属性:

                  1、animation-name

                  2、animation-duration

                  3、animation-timing-function

                  4、animation-delay

                  5、animation-iteration-count

                          取值:

                                   1、绝对值

                                   2、infinite

                  6、animation-direction

                          取值:

                                   1、normal

                                   2、reverse

                                            逆向播放

                                   3、alternate

                                            轮流播放

                  7、animation

                          name duration timing-function delay iteration-count direction

                  8、animation-fill-mode

                          1、none

                          2、forwards

                                   动画播放后,会保留在最后一帧上

                          3、backwards

                                   动画播放前(延迟时间内),会保留在第一帧上

                          4、both

                                   前后都应用

                  9、animation-play-state

                          1、paused :暂停

                          2、running :播放

 

posted @ 2018-02-15 00:55  siding_s  阅读(143)  评论(0编辑  收藏  举报