css3学习笔记

1)属性选择器 :

div[id="adang"]{}  

div[id^="adang"]{}

div[id$="adang"]{}

div[id*="adang"]{}

 

2)伪类:

:first-line    :first-letter

:before     :after

body *:not(h1){}

:empty   

:noly-child

:target

:first-child    :last-child

:nth-child(3)    :nth-last-child(3)    :nth-child(even)    :nth-child(odd)  :nth-child(3n)  :nth-last-child(3n+1)

:nth-of-type(3)    :nth-last-of-type(3)

:hover   :active   :focus    :enabled    :disabled     :read-only    :read-write    :checked   :default   :indeterminate

input:required    input:focus:invalid    input:focus:valid

::selection

 

3) css为某些满足条件的选择器集体添加内容:

li:before{

    content : "hot";

    color: red,

    font-size : 20px,

    margin - right : 5px

}

p:after{

     content :url(abc.png)

}

div:after{

     content : none

}

 

4)文字阴影:

div{ text-shadow : 5px 5px 5px gray;}

p{text-shadow : 10px 10px 10px red,  5px 5px 5px blue,  3px 3px 3px green;}  // 多重阴影

 

5)文本换行:

word-break: keep-all  | break-all | normal

word-wrap: break-word;

white-space: nowrap;

text-overflow:ellipsis;

 

6)网络字体:

@font-face{

   font-family : abc;

   src: rul('font/xxx.otf'  format("opentype"))

   font-weight: normal;

}

h1{

   font-family : abc;

}

 

7)盒阴影:

box-shadow: 10px 10px 10px #000;

box-shadow: inset 10px 10px 10px #000;   //内阴影

box-shadow: 10px 10px 10px #000,  -10px -10px 10px #000    //多重阴影 

 

8)背景:

css3可以让背景从border处开始,或者从padding处开始,又或者从内容处开始,不像css2只能从padding处开始。

background-clip : border | padding

background-origin: border | padding | content

 

css3还可以设置背景的缩放,这是css2无法做到的。可以直接设置长宽,也可以只设置一个,另一个设为auto以保持长宽比不变。

background-size: 40px 20px;

background-size: auto 20px;

 

css3还可以对同一个元素设置多个背景,用逗号间隔。

background-image : url(a.png), url(b.png), url(c.png)

background-repeat : no-repeat, repeat-x, no-repeat

 

9)图像边框:

css3支持图像边框,并非只是简单地给边框设置背景那边简单,而是直接帮我们完成了九宫格!

border-image: url(a.png)  20 30 10 20 / 20px 10px 20px 15px

 

10)变形功能:

transform : translate(150px,200px)  rotate(45deg)  scale(1.5,2) skew(30deg,20deg)

transform-origin : left bottom

 

11) 补间动画:

transition : background-color 1s linear     // linear | ease-in ease-out ease ease-in-out 

transition : color 1s  linear,  width 2s linear, transform 3s linear      // 同时多个动画

 

12)关键帧动画:

@keyframes  myAni{                            //  @-webkit-keyframes  myAni

     0 % {

          background-color : red;

     }

     40 % {

          background-color : darkblue;

     }

     70 % {

          background-color : yellow;

     }

     100 % {

          background-color : red;

     }

}

 

div:hover{

    animation-name : myAni;

    animation-duration : 5s;

    animation-timing-function : linear;        // ease | ease-in | ease-out | ease-in-out | step-start(逐帧播放)| cubic-bezier(x1,y1,x2,y2)

    animation-iteration-count : infinite;      // 重播次数  infinite是无限次

    animation-direction : alternate;           // 动画播放的方向,两个值,默认为normal,这个时候动画的每次循环都向前播放。另一个值是alternate,则第偶数次向前播放,第奇数次向反方向播放。

}

 

13)多栏:

多栏用于将一段文字的内容按多栏来显示,缺点是只能对同一段文字来设置多栏,每一栏的内容是自动往后推的,并不能指定每一栏显示什么内容,所以只适合用来做段落的排版,不适合做页面布局。另外,多栏只能设置每一栏的宽度相等,不能单独定置某栏的宽度。如果想要实现弹性的布局,可以使用盒布局。

colum-count : 3;              // 栏数

colum-width : 100px;       // 可以不设置,不设置的话自动将父容器的宽度按栏数均分

colum-gap : 10px;           // 栏与栏之间的间隔距离

colum-rule : 1px solid red; // 将栏与栏之间设置间隔线

 

14)盒布局:

.wrapper{

     width : 500px;

     height : 300px;

     display:box;                  // -webkit-box

     box-orient : vertical |  horizontal           // 盒子横竖排 

     box-pack : start | center | end              // 盒子居左(上)、居中、居右(下)

     box-align : start | center | end 

.left{

    width : 300px;

    box-ordinal-group : 3;    // 排第三个 

}

.center{

    box-flex : 2;   // 宽度自适应,占比  2 / (2+1)

    box-ordinal-group : 1;     // 排第1个

}

.right{

    box-flex : 1;   // 宽度自适应,占比 1 / (2+1)

    box-ordinal-group : 2;     // 排第2个

}

 

15)outline:

outline和border很像,但outline不会占文档流中的位置,而且outline可以设置line-offset为负值,从而让边框线在容器内部显示。最后一个差别是,outline不能像border那样只设置某个方向,比如border-right, outline只能四个方向一起设置。

outline : 2px solid #000;

outline-offset : 5px;    // 可为负值

 

16)resize:

resize只能为设置了overflow的元素生效,所以都会需要和overflow配合使用。

div{

   overflow : auto;

   resize : none | both | horizontal | vertical

 

17)box-sizing

box-sizing 其实很简单,css2时代,怪异模式下,一个盒子的宽度是包容padding和border的,而非怪异模式下是不包括的。到了css3,可以显式地设置某个元素是否按怪异模式的计算方式来计算宽度。

box-sizing : content-box | border-box

 

 

posted on 2012-02-17 14:29  真阿当  阅读(113)  评论(0编辑  收藏  举报