- 背景
- background-image
- 示例
#example1 { background-image: url(img_flwr.gif), url(paper.gif); background-position: right bottom, left top; background-repeat: no-repeat, repeat; }
- 一样的功能推荐使用background,一行就可搞定
background: url(img_flwr.gif) right bottom no-repeat, url(paper.gif) left top repeat;
- 示例
- background-size
- 设置图片的宽度和高度
background-size:80px 60px;
-
CSS3以前,背景图像大小由图像的实际大小决定。
-
常用值还有:100% 100%,contain,over
- 设置图片的宽度和高度
- background-origin
- background-origin 属性指定了背景图像的位置区域。content-box, padding-box,和 border-box区域内可以放置背景图像。
- 图例
- 示例
background-origin:content-box;
- background-clip
- CSS3中background-clip背景剪裁属性是从指定位置开始绘制。
- 示例
background-clip: content-box;
-
补充:CSS3 多重背景(multiple backgrounds)
-
多重背景,也就是CSS2里background的属性外加origin、clip和size组成的新background的多次叠加,缩写时为用逗号隔开的每组值;用分解写法时,如果有多个背景图片,而其他属性只有一个(例如background-repeat只有一个),表明所有背景图片应用该属性值。
-
示例
background-image:url1,url2,...,urlN; background-repeat : repeat1,repeat2,...,repeatN; backround-position : position1,position2,...,positionN; background-size : size1,size2,...,sizeN; background-attachment : attachment1,attachment2,...,attachmentN; background-clip : clip1,clip2,...,clipN; background-origin : origin1,origin2,...,originN; background-color : color;
-
注意
-
用逗号隔开每组 background 的缩写值;
-
如果有 size 值,需要紧跟 position 并且用 "/" 隔开;
-
如果有多个背景图片,而其他属性只有一个(例如 background-repeat 只有一个),表明所有背景图片应用该属性值。
-
background-color 只能设置一个。
-
-
- background-image
- 圆角
- 使用 CSS3 border-radius 属性,可以给任何元素制作 "圆角"。
- 图例
- 使用border-radius:50% 和 100%都可以做椭圆或者圆
- 渐变
- 线性渐变
- 示例
background-image: linear-gradient(direction, color-stop1, color-stop2, ...);
- 参数说明
- directtion
- 示例
/* 1.默认是从上至下 2.使用to right 表示从左至右 to bottom right等等 3.使用angle做更多的控制 */
- 示例
- color-stop1、color-stop2...
- 设置颜色:这里十六进制或者rgb或者rgba都可以
- 注意:颜色后可以跟 数值% 表示 从元素出现方向在数值% 的位置
- directtion
- 可重复的线性渐变
- 示例
#grad { /* 标准的语法 */ background-image: repeating-linear-gradient(red, yellow 10%, green 20%); }
- 规则类似线性渐变
- 示例
- 示例
- 径向渐变
- 语法
background-image: radial-gradient(shape size at position, start-color, ..., last-color);
- 参数设置
- shape 参数定义了形状。它可以是值 circle 或 ellipse。其中,circle 表示圆形,ellipse 表示椭圆形。默认值是 ellipse。
- 其余类似线性渐变
- 可重复的径向渐变
- 示例
#grad { background-image: repeating-radial-gradient(red, yellow 10%, green 15%); }
- 示例
- 语法
- 线性渐变
- 文本效果
- text-shadow
- 示例
h1 { text-shadow: 5px 5px 5px #FF0000; /*您指定了水平阴影,垂直阴影,模糊的距离,以及阴影的颜色:*/ }
- 示例
- box-shadow
- 示例
div { box-shadow: 10px 10px 5px #888888; }
- 阴影叠加
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
- 示例
- text-overflow
- ellipsis:会省略
- clip:不省略
- 示例:
p.test1 { white-space: nowrap; width: 200px; border: 1px solid #000000; overflow: hidden; text-overflow: clip; } p.test2 { white-space: nowrap; width: 200px; border: 1px solid #000000; overflow: hidden; text-overflow: ellipsis; }
- word-wrap 换行
-
如果某个单词太长,不适合在一个区域内,它扩展到外面:CSS3中,自动换行属性允许您强制文本换行 - 即使这意味着分裂它中间的一个字。
-
示例
p {word-wrap:break-word;}
-
- word-break 拆分换行
- 示例
p.test1 { word-break: keep-all; //不拆分 } p.test2 { word-break: break-all; //拆分 }
- 示例
- 备注
- text-shadow
- 2D 转换
- translate()
- 示例:
div { transform: translate(50px,100px); -ms-transform: translate(50px,100px); /* IE 9 */ -webkit-transform: translate(50px,100px); /* Safari and Chrome */ }
- 说明:translate值(50px,100px)是从左边元素移动50个像素,并从顶部移动100像素。
- 示例:
- rotate()
- 示例:
div { transform: rotate(30deg); -ms-transform: rotate(30deg); /* IE 9 */ -webkit-transform: rotate(30deg); /* Safari and Chrome */ }
- 说明:rotate值(30deg)元素顺时针旋转30度。
- 示例:
- scale()
- 示例:
-ms-transform:scale(2,3); /* IE 9 */ -webkit-transform: scale(2,3); /* Safari */ transform: scale(2,3); /* 标准语法 */
- 说明:scale(2,3)转变宽度为原来的大小的2倍,和其原始大小3倍的高度。
- 示例:
- skew()
- 示例:
div { transform: skew(30deg,20deg); -ms-transform: skew(30deg,20deg); /* IE 9 */ -webkit-transform: skew(30deg,20deg); /* Safari and Chrome */ }
- 说明:skew(30deg,20deg) 元素在 X 轴和 Y 轴上倾斜 20 度 30 度。
- 示例:
- matrix()
- 示例:matrix(scaleX(),skewY(),skewX(),scaleY(),translateX(),translateY())
- 说明:
- scaleX() (水平缩放):控制元素水平方向的缩放。如果值为 1,则不进行水平缩放;如果大于 1,则放大;如果在 0 和 1 之间,则缩小。
- skewY() (垂直倾斜):控制元素在垂直方向上的倾斜。
- skewX() (水平倾斜):控制元素在水平方向上的倾斜。
- scaleY() (垂直缩放):控制元素垂直方向的缩放。如果值为 1,则不进行垂直缩放;如果大于 1,则放大;如果在 0 和 1 之间,则缩小。
- translateX() (水平平移):控制元素在水平方向上的平移量。
- translateY() (垂直平移):控制元素在垂直方向上的平移量。即在不变换的情况下是matrix(1, 0, 0, 1, 0, 0)
- translate()
- 过渡
- 示例
div { transition: width 1s linear 2s; /* 简写属性,用于在一个属性中设置四个过渡属性。*/ /* Safari */ -webkit-transition:width 1s linear 2s; }
- 参数说明
transition-property: width;//规定应用过渡的 CSS 属性的名称。 transition-duration: 1s;// 定义过渡效果花费的时间。默认是 0 transition-timing-function: linear;//规定过渡效果的时间曲线。默认是 "ease"。 transition-delay: 2s;//规定过渡效果何时开始。默认是 0。
- 补充
- 鼠标悬浮过渡效果
div{ width: 200px; height: 200px; background-color: #f00; transition: all 2s; } div:hover{ background-color: #00f; transform: translateX(500px) translateY(500px) scale(0.8) rotate(360deg); }
- 黑幕样式
<p>这是测试<span class="mask">并且被掩盖的</span>文字!</p> <style> .mask { background-color: #252525; color: #252525; transition: color 0.5s; } .mask:hover { color: #ffffff; } </style>
- 左右两个半屏,鼠标移上后就会全屏
<div class="left"></div> <div class="right"></div> <style> .left{ width:50%; height:50px; background:#C00; position:absolute; top:0; left:0; transition:0.6s;/*动画*/ -moz-transition:0.6s; /* Firefox 4 */ -webkit-transition:0.6s; /* Safari and Chrome */ -o-transition:0.6s; /* Opera */ } .right{ width:50%; height:50px; background:#03C; position:absolute; top:0; right:0; transition:0.6s;/*动画*/ -moz-transition:0.6s; /* Firefox 4 */ -webkit-transition:0.6s; /* Safari and Chrome */ -o-transition:0.6s; /* Opera */ } .left:hover{ width:100%; z-index:99; } .right:hover{ width:100%; z-index:99; } </style>
- 鼠标悬浮过渡效果
- 示例
- 动画
- 制作动画
- 第一种
@keyframes myfirst { from {background: red;} to {background: yellow;} } @-webkit-keyframes myfirst /* Safari 与 Chrome */ { from {background: red;} to {background: yellow;} }
- 第二种
@keyframes myfirst { 0% {background: red; left:0px; top:0px;} 25% {background: yellow; left:200px; top:0px;} 50% {background: blue; left:200px; top:200px;} 75% {background: green; left:0px; top:200px;} 100% {background: red; left:0px; top:0px;} } @-webkit-keyframes myfirst /* Safari 与 Chrome */ { 0% {background: red; left:0px; top:0px;} 25% {background: yellow; left:200px; top:0px;} 50% {background: blue; left:200px; top:200px;} 75% {background: green; left:0px; top:200px;} 100% {background: red; left:0px; top:0px;} }
- 第一种
- 设置动画属性
- 设置所有属性
div { animation-name: myfirst; animation-duration: 5s; animation-timing-function: linear; animation-delay: 2s; animation-iteration-count: infinite; animation-direction: alternate; animation-play-state: running; /* Safari 与 Chrome: */ -webkit-animation-name: myfirst; -webkit-animation-duration: 5s; -webkit-animation-timing-function: linear; -webkit-animation-delay: 2s; -webkit-animation-iteration-count: infinite; -webkit-animation-direction: alternate; -webkit-animation-play-state: running; }
- 设置所有属性简写
div { animation: myfirst 5s linear 2s infinite alternate; /* Safari 与 Chrome: */ -webkit-animation: myfirst 5s linear 2s infinite alternate; }
- 参数列表
- 设置所有属性
- 行星运动
<div class="solarsys"> <!--太阳--> <div class='sun'></div> <!--水星轨道--> <div class='mercuryOrbit'></div> <!--水星--> <div class='mercury'></div> <!--金星轨道--> <div class='venusOrbit'></div> <!--金星--> <div class='venus'></div> <!--地球轨道--> <div class='earthOrbit'></div> <!--地球--> <div class='earth'></div> <!--火星轨道--> <div class='marsOrbit'></div> <!--火星--> <div class='mars'></div> <!--木星轨道--> <div class='jupiterOrbit'></div> <!--木星--> <div class='jupiter'></div> <!--土星轨道--> <div class='saturnOrbit'></div> <!--土星--> <div class='saturn'></div> <!--天王星轨道--> <div class='uranusOrbit'></div> <!--天王星--> <div class='uranus'></div> <!--海王星轨道--> <div class='neptuneOrbit'></div> <!--海王星--> <div class='neptune'></div> </div> <style> .solarsys{ width: 800px; height: 800px;; position: relative; margin: 0 auto; background-color: #000000; padding: 0; transform: scale(1); } /*太阳*/ .sun { left:357px; top:357px; height: 90px; width: 90px; background-color: rgb(248,107,35); border-radius: 50%; box-shadow: 5px 5px 10px rgb(248,107,35), -5px -5px 10px rgb(248,107,35), 5px -5px 10px rgb(248,107,35), -5px 5px 10px rgb(248,107,35); position: absolute; margin: 0; } /*水星*/ .mercury { left:337.5px; top:395px; height: 10px; width: 10px; background-color: rgb(166,138,56); border-radius: 50%; position: absolute; transform-origin: 62.5px 5px; animation: rotate 1.5s infinite linear; } /*水星轨道*/ .mercuryOrbit { left:342.5px; top:342.5px; height: 115px; width: 115px; background-color: transparent; border-radius: 50%; border-style: dashed; border-color: gray; position: absolute; border-width: 1px; margin: 0px; padding: 0px; } /*金星*/ .venus { left:309px; top:389px; height: 22px; width: 22px; background-color: rgb(246,157,97); border-radius: 50%; position: absolute; transform-origin: 91px 11px; animation: rotate 3.84s infinite linear; } /*金星轨道*/ .venusOrbit { left:320px; top:320px; height: 160px; width: 160px; background-color: transparent; border-radius: 50%; border-style: dashed; border-color: gray; position: absolute; border-width: 1px; /*margin: 100px;*/ /*transform-origin: -75px -75px;*/ /*animation: rotate 4s infinite linear;*/ margin: 0px; padding: 0px; } /*地球*/ .earth { left:266.5px; top:391px; height: 18px; width: 18px; background-color: rgb(115,114,174); border-radius: 50%; position: absolute; transform-origin: 134px 9px; animation: rotate 6.25s infinite linear; } /*地球轨道*/ .earthOrbit { left:275px; top:275px; height: 250px; width: 250px; background-color: transparent; border-radius: 50%; border-style: dashed; border-color: gray; position: absolute; border-width: 1px; /*margin: 100px;*/ /*transform-origin: -75px -75px;*/ /*animation: rotate 4s infinite linear;*/ margin: 0px; padding: 0px; } /*火星*/ .mars { left:222.5px; top:392.5px; height: 15px; width: 15px; background-color: rgb(140,119,63); border-radius: 50%; position: absolute; transform-origin: 177.5px 7.5px; animation: rotate 11.75s infinite linear; } /*火星轨道*/ .marsOrbit { left:230px; top:230px; height: 340px; width: 340px; background-color: transparent; border-radius: 50%; border-style: dashed; border-color: gray; position: absolute; border-width: 1px; /*margin: 100px;*/ /*transform-origin: -75px -75px;*/ /*animation: rotate 4s infinite linear;*/ margin: 0px; padding: 0px; } /*木星*/ .jupiter { left:134px; top:379px; height: 42px; width: 42px; background-color: rgb(156,164,143); border-radius: 50%; position: absolute; transform-origin: 266px 21px; animation: rotate 74.04s infinite linear; } /*木星轨道*/ .jupiterOrbit { left:155px; top:155px; height: 490px; width: 490px; background-color: transparent; border-radius: 50%; border-style: dashed; border-color: gray; position: absolute; border-width: 1px; /*margin: 100px;*/ /*transform-origin: -75px -75px;*/ /*animation: rotate 4s infinite linear;*/ margin: 0px; padding: 0px; } /*土星*/ .saturn { left:92px; top:387px; height: 26px; width: 26px; background-color: rgb(215,171,68); border-radius: 50%; position: absolute; transform-origin: 308px 13px; animation: rotate 183.92s infinite linear; } /*土星轨道*/ .saturnOrbit { left:105px; top:105px; height: 590px; width: 590px; background-color: transparent; border-radius: 50%; border-style: dashed; border-color: gray; position: absolute; border-width: 1px; /*margin: 100px;*/ /*transform-origin: -75px -75px;*/ /*animation: rotate 4s infinite linear;*/ margin: 0px; padding: 0px; } /*天王星*/ .uranus { left:41.5px; top:386.5px; height: 27px; width: 27px; background-color: rgb(164,192,206); border-radius: 50%; position: absolute; transform-origin: 358.5px 13.5px; animation: rotate 524.46s infinite linear; } /*天王星轨道*/ .uranusOrbit { left:55px; top:55px; height: 690px; width: 690px; background-color: transparent; border-radius: 50%; border-style: dashed; border-color: gray; position: absolute; border-width: 1px; /*margin: 100px;*/ /*transform-origin: -75px -75px;*/ /*animation: rotate 4s infinite linear;*/ margin: 0px; padding: 0px; } /*海王星*/ .neptune { left:10px; top:390px; height: 20px; width: 20px; background-color: rgb(133,136,180); border-radius: 50%; position: absolute; transform-origin: 390px 10px; animation: rotate 1028.76s infinite linear; } /*海王星轨道*/ .neptuneOrbit { left:20px; top:20px; height: 760px; width: 760px; background-color: transparent; border-radius: 50%; border-style: dashed; border-color: gray; position: absolute; border-width: 1px; /*margin: 100px;*/ /*transform-origin: -75px -75px;*/ /*animation: rotate 4s infinite linear;*/ margin: 0px; padding: 0px; } @keyframes rotate { 100% { transform: rotate(-360deg); } } </style>
- 注意:animation 并不太注重语法顺序(除了 【duration / 动画用时】 一定在 【delay / 动画延时】 之前),但在 -webkit-animation (主要针对 "Safari")中,不能以 -webkit-animation-name 来结尾:
animation: myfirst 5s linear 2s infinite alternate; animation: 5s linear 2s infinite myfirst alternate; animation: 5s 2s infinite alternate linear myfirst; // etc... 都是可以的
- 制作动画