牛逼的css3:动态过渡与图形变换

写css3的属性的时候,最好加上浏览器内核标识,进行兼容。

-ms-transform:scale(2,4); /* IE 9 */

-moz-transform:scale(2,4); /* Firefox */

-webkit-transform:scale(2,4); /* Safari and Chrome */

-o-transform:scale(2,4); /* Opera */

1.圆角(常用:略)

2.边框阴影

box-shadow 属性向框添加一个或多个阴影。

box-shadow: h-shadow v-shadow blur spread color inset;

h-shadow 必需。水平阴影的位置。允许负值。

v-shadow 必需。垂直阴影的位置。允许负值

blur 可选。模糊距离。

spread 可选。阴影的尺寸

color 可选。阴影的颜色

inset 可选。将外部阴影 (outset) 改为内部阴影。

例子:

div
{
box-shadow: 10px 10px 5px 5px #888888;
}

3.边框图片

border-image 属性是一个简写属性

- border-image-source 用在边框的图片的路径。

- border-image-slice 图片边框向内偏移。

- border-image-width 图片边框的宽度。

- border-image-outset 边框图像区域超出边框的量。

- border-image-repeat 图像边框是否应平铺(repeated)、铺满(rounded)或拉伸(stretched)

4.设定背景的绘制区域(background-clip)

三个值:background-clip: border-box|padding-box|content-box;
div
{
background-color:yellow;
background-clip:content-box;
}

div
{
background-color:yellow;
background-clip:padding-box;
}

div
{
background-color:yellow;
background-clip:border-box;
}

5.设定背景图的尺寸(background-size)

在 CSS3 之前,背景图片的尺寸是由图片的实际尺寸决定的。在 CSS3 中,可以规定背景图片的尺寸,这就允许我们在不同的环境中重复使用背景图片。

background-size: length|percentage|cover|contain;

length:设置背景图像的高度和宽度。第一个值为宽度,第二只是高度

div
{
background:url(img_flwr.gif);
background-size:80px 60px;
background-repeat:no-repeat;
}

6.css3字体(@font-face)

在新的 @font-face 规则中,您必须首先定义字体的名称(比如 myFirstFont),然后指向该字体文件。

如需为 HTML 元素使用字体,请通过 font-family 属性来引用字体的名称 (myFirstFont):

<style>
@font-face
{
font-family: myFirstFont;
src: url(‘Sansation_Light.ttf‘),
     url(‘Sansation_Light.eot‘); /* IE9+ */
}

div
{
font-family:myFirstFont;
}
</style>

7.2D转换(transform)

translate()    改变元素位置

rotate()    旋转元素

sacle()    放大缩小元素

skew()    元素翻转

matrix()

transform 该属性允许我们对元素进行旋转、缩放、移动或倾斜。

8.过渡

CSS3 过渡是元素从一种样式逐渐改变为另一种的效果。

要实现这一点,必须规定两项内容:

- 规定您希望把效果添加到哪个 CSS 属性上

- 规定效果的时长

例一:鼠标放在div上,div宽度缓慢变化到指定宽度。移除鼠标,div宽度还原。

div
{
width:100px;
height:100px;
transition:width 2s;
}
div:hover
{
width:300px;
}

这里的css属性也可以是位置等。。。

例二:鼠标放在div上,div缓慢移动到另一个位置。

div
{
width:100px;
height:100px;
background:yellow;
transition:margin-left 2s;
}

div:hover
{
margin-left:300px;
}
</style>

例三:当然你也可以将两个效果结合起来。

div
{
width:100px;
height:100px;
background:yellow;
transition:margin-left 2s,width 1s;    //多个要改变的属性之间用,分割
}

div:hover
{
margin-left:300px;
width:300px;
}

例四:transition是属性的简写。

transition-property 规定应用过渡的 CSS 属性的名称。

transition-duration 定义过渡效果花费的时间。默认是 0。

transition-timing-function 规定过渡效果的时间曲线。默认是 "ease"。

linear 规定以相同速度开始至结束的过渡效果

ease 规定慢速开始,然后变快,然后慢速结束的过渡效果

ease-in  规定以慢速开始的过渡效果

ease-out  规定以慢速结束的过渡效果

ease-in-out  规定以慢速开始和结束的过渡效果

cubic-bezier(n,n,n,n)  在 cubic-bezier 函数中定义自己的值。可能的值是 0 至 1 之间的数值

transition-delay  规定过渡效果何时开始。默认是 0。

9.2D转换与过渡的结合。

例一:与rotate-在原位置进行旋转

div
{
margin:30px;
width:200px;
height:100px;
background-color:yellow;
transition:transform 2s;    //只是加了一个过渡效果
}
div:hover{
transform:rotate(9deg);    //这是最终状态
}

例二:与translate-沿着x与Y进行移动

div
{
width:100px;
height:75px;
background-color:yellow;
border:1px solid black;
transition:transform 2s;
}
div:hover{
 transform:translate(50px,100px);    //left(x 坐标) 和 top(y 坐标)
}

例三:与scale-鼠标放再div上,div宽高均放大至原来的两倍。

div
{
width:100px;
height:75px;
background-color:yellow;
border:1px solid black;
transition:transform 1s;
}
div:hover{
transform:scale(2,2);    //宽度,高度
}

例四:与skew-围绕 X 轴把元素翻转 30 度,围绕 Y 轴翻转 20 度

div
{
width:100px;
height:75px;
background-color:yellow;
border:1px solid black;
transition:transform 2S;
}
div:hover{
transform:skew(30deg,20deg);    //围绕 X 轴把元素翻转 30 度,围绕 Y 轴翻转 20 度
}
时间: 2024-10-07 20:38:17

牛逼的css3:动态过渡与图形变换的相关文章

CSS3之过渡及2D变换

transition过渡 transition-duration:; 运动时间transition-delay:; 延迟时间transition-timing-function:; 运动形式 ease 逐渐变慢 (默认) linear 匀速 ease-in 加速 ease-out 减速 ease-in-out 先加速后减速 cubic-bezier 贝塞尔曲线(x1,y1,x2,y2) 通过控制曲线走势来改变运动效果 注:多样式同时进行过渡(需要异步过渡 则需在完成时间后再加一个参数:延迟时间)

css3的transform造成z-index无效, 附我的牛逼解法。

我想锁表头及锁定列.昨天新找的方法是用css3的transform,这个应该在IE9以上都可以的. 只锁头效果很好,IE11下会小抖,但chrome下很稳定停在那里.后来又加上锁定列,发现列会盖住表头. 百度到这里<小心 CSS3 Transform 引起的 z-index "失效"> "CSS3 Transform create new stacking context" 这个道理想想也明白,Transform 就是一个影子,假像,所以它不考虑z-in

程序员别迷茫,通往牛逼的道路有很多

有个网友给我留言,说看了我的上篇文章<三个月不工作,我才转行成了程序员>,感触很深,自己和奶爸的经历类似,也是从其它行业,转到IT圈做了一名程序员.如今已有2年时间,大大小小也参与了一些系统开发项目,可如今感觉机械化的重复写程序很没有意思,再转一次行成本太大,如今年龄也不小了,不想再折腾.不知道下一步该怎么办? 看到他的困惑,如同看到了当年奶爸自己,自己也是摸着石头过河,才一步步走上岸来.我想对有类似困惑的朋友说,不要完全怀疑自己当初的选择,因为IT这条路很宽,一条路走不通,试试其它的,通往牛

为什么美国学生学的数学比我们简单却还能做出很牛逼的东西?

听说过这样一种说法:美国初中生学的数学是咱们国家小学生学的水平,美国高中生学的数学是咱们国家初中的水平.(不知道对不对) 那么,为什么很多需要数学的东西(比如计算机图形学领域)都是人家做出来的而不是咱们 ?算法对数学的要求够大了吧? PPS:一个类似的回答,有启发意义:美国高中教育那么粗浅,大学教育那么尖端,中间的 Gap 怎么搞定? 私以为 @倪大为 同学引用的答案说的是最正确的.特此赞同一下:"美国给予不热爱数学的学生最基础的数学教育,而给予热爱数学的天才最高水平的数学教育." 长久以来,中

如何定义一个牛逼的前端工程师

有软件工程方面的研究说,对于开发者个体而言,最优秀的开发者的生产效率约为平均值的2倍,而优秀的开发者会吸引其它优秀的人,或者激励与帮助团队中的其它成员,最终使团队之间的生产效率差异达到10倍之多. 所谓牛逼的工程师,就是那些个体效率是其它人2倍,形成团队之后达到10倍差异的一群人. 前端领域这几年发展速度非常快,人才分布呈两级分化趋势,大家都在说缺前端,其实缺的是牛逼前端,对于低端的前端,培训机构一直在量产,但是无法满足要求.很多情况下,一个牛逼前端对于团队的价值是再多低端前端都无法提供的. 牛

【腾讯Bugly干货】深入浅出 Retrofit,这么牛逼的框架你们还不来看看?

Android 开发中,从原生的 HttpUrlConnection 到经典的 Apache 的 HttpClient,再到对前面这些网络基础框架的封装,比如 Volley.Async Http Client,Http 相关开源框架的选择还是很多的,其中由著名的 Square 公司开源的 Retrofit 更是以其简易的接口配置.强大的扩展支持.优雅的代码结构受到大家的追捧.也正是由于 Square 家的框架一如既往的简洁优雅,所以我一直在想,Square 公司是不是只招处女座的程序员? 1.初

我喜欢ASP.NET的MVC因为它牛逼的9大理由(转载)

我很早就关注ASP.NET的mvc的,因为最开始是学了Java的MVC,由于工作的原因一直在做.Net开发,最近的几个新项目我采用了MVC做了,我个一直都非常喜欢.Net的MVC.我们为什么使用MVC而不是用WebForm呢?下面就来说说MVC的亮点.由于我最近使用都是MVC5.0和EF6.1,所以下面的所有实例都是基于这两个版本的. 1.创建项目内置了Bootsrap Bootsrap是一个响应式的UI界面库,能快速的搭建响应式界面,如果没有美工,对界面要求不是很高的话完全可以直接作用,很方便

douban_转自熊博网——牛逼顿

转自熊博网——牛逼顿 来自: 天云之叶(大道易得,小术难求) 2010-04-21 18:32:27 牛逼顿 作者:singularitys 3月28号是牛顿的忌日,但是知道的人很少,我们毕竟更关心沈殿霞和张国荣.其实牛顿老师在科学圈里曾经很有权势,被女王封了爵位成了贵族,人称牛爵爷,官至皇家造币局局长兼皇家学会会长.如果阿尔伯特没有辞了以色列总统的话和他有一拼. 说他有权势并不仅是官大,主要是贡献大.如果17世纪就有诺贝尔奖的话,牛顿老师至少能连续垄断4届物理学奖(分光计:力学体系的构建:反射

这段c语言代码牛逼在哪?

有人说C语言是世界上最牛逼的语言,因为操作系统就是用C语言编写的,学好了C才能更好的学习其他编程语言.为此,有人分享了下面一段代码,说是很牛逼的c语言代码,看得小编一脸懵逼.大家来看看,它究竟牛在哪里? 关于这段传说中很牛逼的C语言代码,小编是看不出牛在哪里,你们呢?此外,还有一位国外的C语言高手,想挑战大家的水平,快来看看! 一位国外C语言高手的程序,挑战大家的C语言水平! 这是一段德国某位高中生用C语言写的求一个数的倒数的平方根近似值的程序.如果你能在一星期内通过任何途径,包括看书,goog