接上一篇,本篇主要是关于css3新特性。
整体感知:
<style type="text/css">
div{
width: 200px;
height: 200px;
background-color:orange;
transition:all 2s cubic-bezier(0, 0.84, 0, 0.98) 0s;
}
div.cur{
transform:rotateX(110deg) rotateY(360deg) translateZ(180px);
width:600px;
}
section{
margin:100px;
perspective:300px;
width: 200px;
height: 200px;
border: 1px solid #000;
animation:zhuan 1s 0s infinite;
}
@-webkit-keyframes zhuan{
from{
transform:rotate(0deg);
}
to{
transform:rotate(360deg);
}
}
</style>
<input type="button" value="按我" id="btn" />
<section>
<div id="box"></div>
</section>
<script type="text/javascript">
var btn = document.getElementById("btn");
var box = document.getElementById("box");
btn.onclick = function(){
box.className = "cur";
}
</script>
Css3和HTML5没有任何关系。
Css3没有颠覆传统的css的写法。
Css有一个优点:浏览器遇见自己不认识的选择器、属性、会静默,不会报错!
Css3主要的改变
选择器、伪类
伪元素
Border 的变化
Background 的变化; 渐变、尺寸、裁切
Transition 过渡
Transform 变形
Animation 动画
新的盒子模型flex
响应式
属性选择器
p:first-of-type
p:last-of-type
p:nth-of-type(3)
p:nth-of-type(3n+2)
p:nth-last-of-type(2n+3)
以上的全部选择器。JQ全都支持! IE6兼容性。
关系选择器
“>”表示儿子关系
“+”表示下一个亲兄弟
“~”表示后面的所有的兄弟
伪类
:hover 表示鼠标触碰的样子
:focus 得到焦点的控件
:enabled 有效的控件
:disabled 无效的控件
:empty 空标签
伪元素
有两个冒号。 ::before 和::after
功能即使替代了css的“钩子”,可以减少小标签的使用;
注意: ::before和::after 都是行内元素,必须转块后设置宽度高度。必须写content属性。可以值为空,但不能不写。
清除浮动:
div::before{
content:'';
clear:both;
display:block;
}
::selection 反选的内容
::first-line 首行
::first-letter 首字
圆角边框
border-radius
值可以用px为单位,还可以百分比。
阴影
盒子阴影:
box-shadow:inset 1px 2px 3px 4px red;
参数:
0.内阴影
1.向右的偏移
2.向下的偏移
3.模糊的程度
(右、下、模)→(肉加馍)
4.延伸(可省略)
5.颜色
文字阴影:
text-shadow 1px 2px 10px red;
参数:右、下、模、色; 没有inset和延展,可以用多阴影。
background系列的属性
Css2.1中
background-color:red;
background-image:url(../images/123.jpg);
background-repeat:no-repeat;
background-position:100px 60px;
background-attachment:fixed;
Css3又曾加一系列的属性
background-origin
背景起源,第一张背景图的渲染位置。
注意:渲染的位置是在内容的盒子里,而不是padding
background-origin:content-box;
background-clip
背景裁切。裁切的是padding区域的背景
background-clip:content-box;
两个结合:
background-origin:content-box;
background-clip:content-box;
等价于:
background:url(../images/wyf.png) content-box;
background-size(背景尺寸)
现在我们可以设置背景尺寸;
两个参数:宽度、高度。若自动的按比例设置,写auto;可以写百分比,表示容器的百分之多少。
background-size:100px 100px;
覆盖:
Background-size:cover
容纳:
Background-size:contain
Background-size:cover
尽可能的铺满,不用管图片是否显示完整。
在PS中按住shift健缩放图片,在铺满情况下,直到宽度或高度一边被卡住;
Background-size:contain
尽可能的容纳整体图片,不管图片是否是重复显示。在PS中按住shift健缩放图片,直到图片高度边或宽度边被卡住,先卡哪个边就是哪个边;
背景精灵
承载背景图片的div尺寸要放大;
背景尺寸要放大
背景定位的尺寸放大
渐变
background-image:-webkit-linear-gradient(top,red,green);
Linear 线性
gradient 渐变
-webkit- chrome safari 必须加上前缀
-moz- 火狐的前缀
-ms- 高级版本IE edge 前缀
-o- 欧朋
兼容性:
background-image:-webkit-linear-gradient(top,red,green);
background-image:-moz-linear-gradient(top,red,green);
background-image:-ms-linear-gradient(top,red,green);
background-image:-o-linear-gradient(top,red,green);
background-image:linear-gradient(180deg,red,green); //W3C规范的;
渐变的第一个参数是“方向”下面是从右上开始渲染
background-image:-webkit-linear-gradient(top right,red,green);
可以deg度数;
background-image:-webkit-linear-gradient(274deg,red,green);
等价:
background-image:linear-gradient(176deg,red,green);
方向后面的参数是颜色的罗列;用逗号隔开;可以用百分比表示颜色的范围;
background-image:-webkit-linear-gradient(top,#ff0000 0%,#ff00ff 15%,#0000ff 33%,#00ffff 49%,#00ff00 67%,#ffff00 84%,#ff0000 100%);
径向渐变
第一个参数是圆心位置;
background-image:-webkit-radial-gradient(250px 250px,#ff0000,#ff00ff);
多背景
一个盒子可以携带多个背景图
background: url('../images/wyf.png') content-box,url('../images/ly.jpg');
过渡动画
transition 属性
transition :all 1s ease 0s;
参数:
第一个参数:transition-property属性,表示什么东西参与过渡,若想要所有的属性都参加过渡,写all;
第二个参数:transition-duration属性,表示动画的持续时间,单位s,不是毫秒;
第三个参数:transition-timing-function属性,表示缓冲,常见有ease(两头慢,中间快)和linear(匀速)。
实际上,还可以写贝塞尔曲线的值;
第四个参数: transition-delay,表示延时时间,单位s。
什么属性可以参加动画;
所有属性可以参加动画。
background-color背景颜色可以过渡。
background-position也是可以过渡。
background-image 背景图片可以过渡;
transform变形都能参加过渡。
继承:不继承;
变形
transform Rotate旋转
transform:rotate(30deg);
Deg表示度数。单位不能少,只有deg单位。
Skew 斜切
transform:skew(10deg,20deg);
Scale: 缩放
大于1:放大,0-1:缩小;
transform:scale(0.5);
没有变形:
Transform:none;
Transform多属性书写:
Transform:rotate(30deg) skew(20deg,10deg) scale(2)