css3 变换、过渡效果、动画
1 CSS3 选择器
1.1 基本选择器
1.2 层级
空格
>
+
.item+li
~
.item~p
1.3 属性选择器
[attr]
[attr=value]
[attr^=value]
[attr$=value]
[attr*=value]
[][][]
1.4 伪类选择器
:link
:visited
:hover
:active
:focus
:first-child
.list li:first-child
:last-child
:nth-child() 从1开始 odd even
:nth-last-child() 从1开始
:only-child
li:only-child
:first-of-type
:last-of-type
nth-of-type()
nth-last-of-type()
only-of-type
- <ul>
<li></li>
<li></li>
<p></p>
<li>li:nth-of-type(3) </li>
<li></li>
<li></li>
</ul>
li:nth-of-type(3) #选择到
li:nth-child(3) #没有满足条件的元素
1.5 伪元素选择器
::before
.item::before
::after
.clearfix::after {content:''; display:block; clear:both}
- <div class="nav clearfix">
子元素浮动
[::after 此处是伪元素创建的]
</div>
<div class="banner">
</div>
::first-letter
::first-line
::selection
::placeholder
::placeholder {color:red}
<input placeholder="请输入用户名">
2 CSS3 基础
2.1 新增颜色单位
rgba() 不透明0~1
2.2 新增长度单位
rem
vw
vh
3 新增的CSS3属性
3.1 边框圆角
- border-radius 长度单位
border-top-left-radius
border-top-righ-radius
border-bottom-left-radius
border-bottom-right-radius
3.2 布局
- display: 值很多很多 .... table table-row...
box-sizing: content-box(默认值) / border-box
3.3 外轮廓
- outline:1px solid #ccc
outline-style
outline-color
outline-width
3.4 不透明度
- opacity: 0~1
3.5 阴影
- box-shadow:水平偏移 垂直偏移; 偏移可以负值
box-shadow:水平偏移 垂直偏移 颜色;
box-shadow:水平偏移 垂直偏移 模糊值 颜色; /*最常见的*/
box-shadow:水平偏移 垂直偏移 模糊值 外延值 颜色;
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>盒子阴影</title>
- <style>
- .item {
- display: inline-block;
- margin:20px;
- width: 100px;
- height: 100px;
- border: 1px solid #999;
- }
- .item01 {
- box-shadow: 10px 10px;
- }
- .item02 {
- box-shadow: 3px 3px #ccc;
- }
- .item03 {
- /*大部分 需要设置这几个值*/
- box-shadow: 10px 10px 10px #ccc;
- }
- .item04 {
- /*外延值*/
- box-shadow: 0px 0px 0px 120px #ccc;
- }
- .item05 {
- /*多重阴影*/
- box-shadow: 0px 0px 3px 5px red,
- 0px 0px 3px 10px orange,
- 0px 0px 3px 15px yellow,
- 0px 0px 3px 20px green,
- 0px 0px 3px 25px cyan,
- 0px 0px 3px 30px blue,
- 0px 0px 3px 35px purple;
- }
- </style>
- </head>
- <body>
- <h1>阴影</h1>
- <hr>
- <div class="item item01">01</div>
- <div class="item item02">02</div>
- <div class="item item03">03</div>
- <div class="item item04">04</div>
- <div class="item item05">05</div>
- <div class="item item06">06</div>
- <hr>
- </body>
- </html>
阴影
3.5 背景
- background-size: cover / contain / 400px 300px / 100% 100%
background: color image postion/size repeat attachment
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>背景</title>
- <style>
- .item {
- /*display: block;*/
- width: 300px;
- height: 300px;
- border: 1px solid #ccc;
- background: url("./images/meinv02.jpg") no-repeat;
- /*设置背景图片的尺寸*/
- /*background-size: cover; 优先 铺满元素。 多余的图片裁掉 保证原图比例*/
- /*background-size: contain; 优先 保证图片显示完整,可能元素不能铺满。 保证原图比例*/
- /*background-size:100px 200px;指定背景大小*/
- /*background-size:100% 100%;*/
- /*background: url('./images/meinv02.jpg') 10px 20px/cover;*/
- }
- </style>
- </head>
- <body>
- <div class="item">
- </div>
- </body>
- </html>
背景
3.6 CSS3变换
transform
- translatex()
translatey()
translate(x, y)
rotate() 角度 deg
skewx() 角度deg
skewy()
skew(x, y)
- translatex()
transform-origin 变换的原点。 对translate没有意义。 对rotate影响大
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>变换</title>
- <style>
- .box {
- display: inline-block;
- margin: 30px;
- width: 100px;
- height: 100px;
- border:2px dashed orange;
- vertical-align: middle;
- }
- .item {
- border: 1px solid #999;
- background: #ccc;
- height:99px;
- }
- .item01 {
- /*位移 移动*/
- transform: translate(20px, 20px);
- /*transform: translatex(10px) translatey(10px);*/
- /*transform: translatey(10px);*/
- }
- .item02 {
- /*旋转 deg角度 0~360deg*/
- transform: rotate(60deg)
- }
- .item03 {
- /*扭曲*/
- transform: skewx(60deg) skewy(60deg);
- }
- .content {
- margin: 30px;
- width: 100px;
- height: 100px;
- border: 1px solid #999;
- transform: rotate(60deg);
- transform-origin: left top;/*transform-origin 变换的原点*/
- }
- </style>
- </head>
- <body>
- <div class="box">
- <div class="item item01"></div>
- </div>
- <div class="box">
- <div class="item item02">HELLO</div>
- </div>
- <div class="box">
- <div class="item item03">HELLO</div>
- </div>
- <hr>
- <div class="content">
- HELLO
- </div>
- </body>
- </html>
变换
3.7 过渡效果
哪些CSS属性可以过渡
- 长度 (padding margin width height left/top/right/bottom border-width background-position ...)
颜色
变换
纯数字 (opacity、z-index)
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>CSS3过渡</title>
- <style>
- .box {
- width: 100px;
- height: 100px;
- background: red;
- /*display: block;*/
- /*visibility: visible;*/
- border:10px solid purple;
- /*过渡*/
- /* transition:3s; */
- transition-property: width,height;
- transition-duration: 5s;
- transition-timing-function: ease;
- transition-delay:3s;
- transition: all ease 3s 1s;
- transition: 4s;
- transition: all 4s;
- }
- .box:hover {
- /*display: none;*/
- /*visibility: hidden;*/
- width: 200px;
- height: 200px;
- background: green;
- border:20px dashed purple;
- }
- </style>
- </head>
- <body>
- <h1>transition</h1>
- <hr>
- <div class="box">
- </div>
- <hr>
- <p>
- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam dolore veritatis, ducimus maxime fugiat unde inventore aspernatur mollitia dolor doloribus facere eum libero repudiandae, quisquam, deserunt facilis magni error! Vero.
- </p>
- </body>
- </html>
过渡
触发过渡
- 伪类触发 :hover :focus ....
媒体查询 @media
JS
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>过渡实例</title>
- <style>
- .item {
- display: inline-block;
- width: 100px;
- height: 100px;
- border: 1px solid #ccc;
- text-align: center;
- line-height: 100px;
- border-radius: 50px;
- font-size:30px;
- cursor:pointer;
- color:#f66700;
- /*过渡*/
- transition: transform 1s;
- }
- .item:hover {
- transform: rotate(360deg)
- }
- </style>
- </head>
- <body>
- <h1>同志</h1>
- <hr>
- <div class="list">
- <div class="item">1</div>
- <div class="item">2</div>
- <div class="item">3</div>
- <div class="item">4</div>
- <div class="item">5</div>
- <div class="item">6</div>
- <div class="item">7</div>
- <div class="item">8</div>
- </div>
- </body>
- </html>
过渡实例
相关属性
- transition-property 指定要过渡的属性 用,隔开。默认是 all
transition-duration 过渡持续时间
transition-timing-function 过渡线性效果 默认 ease
transition-delay 过渡延迟
transition:property timing-function duration delay
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>纯CSS实现下拉菜单</title>
- <style>
- * {
- padding: 0;
- margin: 0;
- }
- body {
- font:14px "Microsoft YaHei",sans-serif;
- }
- ul {
- list-style: none;
- }
- .container {
- margin: 0 auto;
- width: 1000px;
- }
- .nav {
- /*margin-top: 60px;*/
- width: 100%;
- height: 40px;
- line-height: 40px;
- background: #333;
- }
- /*一级菜单*/ /*该选择器会选择 所有li*/
- .nav li {
- float: left;
- position: relative;
- }
- /*一级菜单*/
- .nav li a {
- display: block;
- width: 100px;
- text-align: center;
- color: #fff;
- text-decoration: none;
- }
- /*二级菜单*/
- .nav li ul li a {
- color: #333;
- }
- .nav li ul li {
- /*覆盖前面设置 */
- float: none;
- }
- .nav li ul {
- /*border: 1px solid #ccc;
- border-top: none;*/
- background: #fff;
- /*二级菜单先隐藏*/
- /*display: none;
- */
- /*绝对定位*/
- position: absolute;
- left:0;
- top:;
- overflow: hidden;
- height: 0px;
- /*过渡*/
- transition: height .5s;
- }
- /*划过那个li 哪个li就变红*/
- .nav li:hover {
- background: red;
- }
- .nav li:hover ul{
- /* display: block;*/
- height: 160px;
- }
- /*设置banner*/
- .banner img {
- width: 100%;
- }
- </style>
- </head>
- <body>
- <div class="nav">
- <div class="container">
- <ul>
- <li><a href="#">首页</a></li>
- <li>
- <a href="#">博客</a>
- <ul>
- <li><a href="#">同志博客</a></li>
- <li><a href="#">小同志博客</a></li>
- <li><a href="#">老同志博客</a></li>
- <li><a href="#">大同志博客</a></li>
- </ul>
- </li>
- <li>
- <a href="#">论坛</a>
- <ul>
- <li><a href="#">同志论坛</a></li>
- <li><a href="#">红色论坛</a></li>
- <li><a href="#">黄色论坛</a></li>
- <li><a href="#">绿色论坛</a></li>
- </ul>
- </li>
- <li><a href="#">关于我们</a></li>
- <li>
- <a href="#">举报我们</a>
- <ul>
- <li><a href="#">涉黄</a></li>
- <li><a href="#">涉黑</a></li>
- <li><a href="#">涉赌</a></li>
- <li><a href="#">涉毒</a></li>
- </ul>
- </li>
- </ul>
- </div>
- </div>
- <div class="banner">
- <img src="../../dist/images_one/meinv02.jpg" alt="">
- </div>
- </body>
- </html>
导航-下拉菜单
3.8 CSS3动画
关键帧
- @keyframes 动画名字 {
0% {
}
20% {
}
40% {
}
100% {
}
}
相关CSS属性
- animation-name 指定动画的名字
animation-duration 动画的执行时间
animation-timing-function 执行效果速度
animation-delay 延迟
animation-iteration-count 循环 次数 infinite(无限)
animation-direction: alternate (正向 反向 交替)\ reverse(反向)
animation-play-state: running / paused
animation 复合属性
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>CSS3动画</title>
- <style>
- /*关键帧的语法*/
- @keyframes myanimate{
- from {
- background: red;
- width:200px;
- }
- 50% {
- width:400px;
- }
- to {
- background: green;
- width:600px;
- }
- }
- .box {
- width: 200px;
- height: 200px;
- border: 2px dashed orange;
- animation-name: myanimate;
- animation-duration: 1s; /*动画持续时间*/
- animation-timing-function: linear;
- animation-delay: 0s;
- animation-iteration-count: infinite; /*无限循环*/
- animation-direction: alternate; /*多次循环的时候,一次正向动画,一次反向动画*/
- animation-play-state: paused;
- animation: myanimate 2s linear 2 alternate;
- }
- .box:hover {
- animation-play-state: running;
- }
- </style>
- </head>
- <body>
- <div class="box"></div>
- </body>
- </html>
css3动画
css3 变换、过渡效果、动画的更多相关文章
- CSS3:变换和动画
<html> <style> .container{ -webkit-perspective: 800; -webkit-perspective-origin: 50% 40% ...
- css3 3D变换和动画
3D变换和动画 建立3D空间,transform-style: preserve-3d perspective: 100px; 景深 perspective-origin:center center ...
- CSS3中的动画效果记录
今天要记录的是CSS3中的三种属性transform.transition以及animation,这三个属性大大提升了css处理动画的能力. 一.Transform 变形 CSS中transform ...
- CSS3中的动画
CSS3中的动画包括两种: Transition(过渡) Animation(动画) 这两种方法都可以让元素动起来,功能类似,但是稍有区别: Transition只定义某一个元素的开始状态和结束状态 ...
- CCS3的过渡、变换、动画以及响应式布局、弹性布局
CSS3 过渡 .变换.动画 在没有CSS3之前,如果页面上需要一些动画效果,要么你自己编写 JavaScript,要么使用 JavaScript 框架(如 jQuery)来提高效率. 但是CSS3出 ...
- IT兄弟连 HTML5教程 CSS3属性特效 动画-animation
CSS3属性中有关于制作动画的三个属性:Transform,Transition,Animation.前面已经介绍过Transform和Transition了,这里我们来学习Animation动画.通 ...
- CSS3中的动画功能(一)
css3中的动画功能分为transitions功能和animations功能,这两种功能都可以通过改变css属性值来产生动画效果.今天带大家一起来看看css3动画功能中的transitions的用法. ...
- 如何制作css3的3d动画——以骰子旋转为例,详解css3动画属性
首先先来看两个用css3实现的炫酷的3d动画效果 1 2 3 4 5 6 你没看错,这个炫酷的效果都是用css3实现的. 下面是动画实现所需要用到的几个css3属性. 1.perspective: ...
- css变换与动画详解
举个栗子:--------元素整体居中.box{ position:absolute;top:50%;left:50%; width:50px; height:50px; t ...
随机推荐
- CodeForces960F:Pathwalks (主席树+DP)
You are given a directed graph with n nodes and m edges, with all edges having a certain weight. The ...
- LiveCD、LiveDVD和BinDVD区别在哪里
本文转载自: http://www.kankanews.com/ICkengine/archives/86968.shtml 1.CentOS系统镜像有两个,安装系统只用到第一个镜像即CentOS-6 ...
- bzoj4004
线性基 构成线性基的个数是定的,所以我们对价值进行贪心就行了,根据拟阵那套理论,我们排个序,然后能塞进去就塞,这样就求出最小值了. 思维江化,只要是多维向量都能用线性基搞. #include<b ...
- java枚举类Enum方法简介(valueof,value,ordinal)
Enum作为Sun全新引进的一个关键字,看起来很象是特殊的class, 它也可以有自己的变量,可以定义自己的方法,可以实现一个或者多个接口. 当我们在声明一个enum类型时,我们应该注意到en ...
- HDOJ-2034
人见人爱A-B Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Sub ...
- visual editor ve1.5下载
eclipse官网的ve下载不了,下面这个能下 http://sourceforge.net/projects/visualeditor/files/latest/download
- C#高级参数out,ref,params
在C#中通过使用方法来获取返回值时,通常只能得到一个返回值.因此,当一个方法需要返回多个值的时候,就需要用到ref和out,那么这两个方法区别在哪儿呢? out 当需要返回一系列返回值时可用out高级 ...
- 快速打开和关闭SQL服务
将下面文本复制到txt中,然后将文本文件另存为bat @echo off for /f "skip=3 tokens=4" %%i in ('sc query MSSQLSERVE ...
- HDU2604【矩阵快速幂】
思路: 把fm看成01,f-1,m-0: 不能存在101,111; dp[i]代表第i结尾的方案数: ①:结尾是0一定行:只要i-1序列里添个0就好了,dp[i]+=dp[i-1]: ②:结尾是1 ...
- SpringBoot2.0基础案例(01):环境搭建和RestFul风格接口
一.SpringBoot 框架的特点 1.SpringBoot2.0 特点 1)SpringBoot继承了Spring优秀的基因,上手难度小 2)简化配置,提供各种默认配置来简化项目配置 3)内嵌式容 ...