一、CSS3是什么?
CSS3 是最新的 CSS 标准。
二、与之前的区别
与之前的css操作方法相同,新增了一些属性设置。CSS3 已完全向后兼容。
下面都是css3中新增的内容:
选择器 盒模型 背景和边框 文字特效 2D/3D转换 动画 多列布局 用户界面
三、css圆角
border-radius 属性设置元素的4角为圆角
如果你要在四个角上一一指定,可以使用以下规则:
四个值: 第一个值为左上角,第二个值为右上角,第三个值为右下角,第四个值为左下角。
三个值: 第一个值为左上角, 第二个值为右上角和左下角,第三个值为右下角
两个值: 第一个值为左上角与右下角,第二个值为右上角与左下角
一个值: 四个圆角值相同
定义了左上角的弧度
定义了右上角的弧度
定义了右下角的弧度
定义了左下角的弧度
例如:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS圆角</title>
<style>
div{
width: 200px;
height: 200px;
background-color:aqua;
/*border-radius: 20px;设置一个值时四角变换*/
/*border-radius: 20px 40px;设置两个值时,第一个是左上右下,第二个是右上左下*/
/*border-radius: 10px 30px 50px;三个值是第一个是左上,第二个是右上左下,第三个是右下*/
border-top-left-radius: 20px;
}
</style>
</head>
<body>
<h4>border-radius 属性设置元素的4角为圆角</h4>
<div></div>
</body>
</html>
四、CSS盒子阴影
之前学习的text-shadow:水平 垂直 模糊 颜色----设置文字阴影
box-shadow:水平 垂直 模糊 颜色---属性被用来添加阴影
例如:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS盒子阴影</title>
<style>
p{
font-size: 30px;
text-shadow:5px -3px 4px red;
}
div{
width: 200px;
height: 200px;
background-color:blue;
box-shadow: 8px 10px 15px gold;
}
</style>
</head>
<body>
<h2>
之前学习的text-shadow:水平 垂直 模糊 颜色----设置文字阴影<br>
box-shadow:水平 垂直 模糊 颜色---属性被用来添加阴影<br>
</h2>
<p>测试文字阴影</p><br>
<div>测试盒子阴影</div>
</body>
</html>
五、CSS background-clip属性
background-clip属性指定背景绘制区域。border-box|padding-box|content-box;
例如;
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>background-cilp属性</title>
<style>
h3{
width: 200px;
height: 200px;
padding: 30px;
background-color: greenyellow;
border: 10px dotted red;
/*background-clip: border-box;默认包含边框区域*/
/*background-clip: padding-box;*/
background-clip: content-box;
}
</style>
</head>
<body>
<h4>
background-clip属性指定背景绘制区域。border-box|padding-box|content-box;<br>
border-box---包括边框<br>
padding-box---包括内边距,不包括边框<br>
content-box---包括内容,不包括边框,不包括内边距<br>
</h4>
<h3>测试background-clip属性</h3>
</body>
</html>
六、CSS渐变(Gradients)
CSS3 渐变(gradients)可以让你在两个或多个指定的颜色之间显示平稳的过渡。
CSS3 定义了两种类型的渐变(gradients):
线性渐变(Linear Gradients)- 向下/向上/向左/向右/对角方向
background-image: linear-gradient(方向, 颜色1,颜色2, ......);
方向--to right【从左向右】 to left【从右向左】 ......
to bottom right .......
径向渐变(Radial Gradients)- 由它们的中心定义
background-image:radial-gradient( 中心点【不用写默认中心】,颜色1,颜色2, ......);
例如:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS渐变</title>
<style>
#div1{
width: 200px;
height: 200px;
background-image: linear-gradient(to top right, red,green,yellow);
}
#div2{
width: 200px;
height: 200px;
border-radius: 60px;
background-image: radial-gradient(red,orange,green,blue,violet,indigo);
}
</style>
</head>
<body>
<div id="div1"></div><br>
<div id="div2"></div>
</body>
</html>
七、CSS过渡
CSS3 过渡是元素从一种样式逐渐改变为另一种的效果。
要实现这一点,必须规定两项内容:
1、指定要添加效果的CSS属性
2、指定效果的持续时间。
语法格式: transition: css属性样式 持续时间【秒】
例如:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS过渡</title>
<style>
div{
width: 100px;
height: 100px;
background-color: greenyellow;
transition: width 5s, height 5s,background-color 5s;
}
div:hover{
width: 300px;
height: 300px;
background-color: hotpink;
}
</style>
</head>
<body>
<h4>
CSS3 过渡是元素从一种样式逐渐改变为另一种的效果。<br>
要实现这一点,必须规定两项内容:<br>
1、指定要添加效果的CSS属性<br>
2、指定效果的持续时间。<br>
语法格式: transition: css属性样式 持续时间【秒】<br>
</h4>
<div>
测试过渡
</div>
</body>
</html>
八、CSS动画
CSS3 可以创建动画,它可以取代许多网页动画图像、Flash 动画和 JavaScript 实现的效果。
第一步:自定义动画规则
例如:
@keyframes myfirst {
from {background: red;}
to {background: yellow;}
}
@keyframes-----自定义动画的关键字
Myfirst ---- 动画名称
{}---动画规则描述
from --- 动画开始
to ---- 动画结束
第二步:在指定的元素作用自己的动画
animation:动画名称 动画持续时长;
//-webkit-animation:xxxxxx [-webkit- GOOGLE浏览器内核]
//-ms-animation: xxxxx [-ms- IE浏览器内核]
例如:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS动画</title>
<style>
div{
width: 100px;
height: 100px;
background-color: hotpink;
/*在div上显示设置的动画*/
animation: donghua1 5s;
}
/*自定义动画*/
@keyframes donghua1{
from{width: 100px;height: 100px;background-color: hotpink;}
to{
width: 200px;
height: 200px;
background-color: aqua;
}
}
</style>
</head>
<body>
<h4>
CSS3 可以创建动画,它可以取代许多网页动画图像、Flash 动画和 JavaScript 实现的效果。<br>
第一步:自定义动画规则<br>
例如:<br>
@keyframes myfirst { <br>
from {background: red;} <br>
to {background: yellow;} <br>
} <br>
@keyframes-----自定义动画的关键字<br>
Myfirst ---- 动画名称<br>
{}---动画规则描述<br>
from --- 动画开始<br>
to ---- 动画结束<br>
第二步:在指定的元素作用自己的动画<br>
animation:动画名称 动画持续时长;<br>
//-webkit-animation:xxxxxx [-webkit- GOOGLE浏览器内核]<br>
//-ms-animation: xxxxx [-ms- IE浏览器内核]<br>
</h4>
<div>
测试建立动画
</div>
</body>
</html>
九、CSS 2D转换
CSS3 2D转换可以对元素进行移动、缩放、转动、拉长或拉伸。
translate()--根据左(X轴)和顶部(Y轴)位置给定的参数,从当前元素位置移动。
translate(0px,0px);
rotate()--在一个给定度数顺时针旋转的元素。负值是允许的,这样是元素逆时针旋转。
transform:rotate(90deg);
scale()--该元素增加或减少的大小,取决于宽度(X轴)和高度(Y轴)的参数:
transform: scale(2,3) (正整数由大到小,小数由小到大)
skew()---该元素在X轴和Y轴上倾斜
transform:skew(30deg,20deg);
matrix()--将上面2D变换方法合并成一个,同时实现平移,旋转,缩放,倾斜
matrix 方法有六个参数,包含旋转,缩放,移动(平移)和倾斜功能。
例如:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS 2D转换</title>
<style>
div{
width: 200px;
height: 200px;
background-color: aqua;
animation: donghua4 5s;
}
@keyframes donghua1{
from{transform: translate(0,0);}
to{transform: translate(20px,30px);}
}
@keyframes donghua2{
from{transform:rotate(0deg);}
to{transform: rotate(-90deg);}
}
@keyframes donghua3 {
from{transform: scale(0.2,0.3);}
}
@keyframes donghua4 {
from{transform: skew(0deg,0deg);}
to{transform: skew(20deg,30deg);}
}
</style>
</head>
<body>
<h4>
CSS3 2D转换可以对元素进行移动、缩放、转动、拉长或拉伸。<br>
translate()--根据左(X轴)和顶部(Y轴)位置给定的参数,从当前元素位置移动。<br>
translate(0px,0px);<br>
rotate()--在一个给定度数顺时针旋转的元素。负值是允许的,这样是元素逆时针旋转。<br>
transform:rotate(90deg);<br>
scale()--该元素增加或减少的大小,取决于宽度(X轴)和高度(Y轴)的参数:(正整数缩放,小数放大)<br>
transform: scale(2,3)<br>
skew()---该元素在X轴和Y轴上倾斜<br>
transform:skew(30deg,20deg);<br>
matrix()--将上面2D变换方法合并成一个,同时实现平移,旋转,缩放,倾斜<br>
matrix 方法有六个参数,包含旋转,缩放,移动(平移)和倾斜功能。<br>
</h4>
<div>
测试2D转换
</div>
</body>
</html>
十、CSS 3D转换
rotateX()--围绕其在一个给定度数X轴旋转的元素。
transform:rotateX(130deg);
rotateY()--围绕其在一个给定度数Y轴旋转的元素。
transform:rotateY(130deg);
例如:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS 3D转换</title>
<style>
div{
width: 200px;
height: 200px;
background-color: aqua;
animation: donghua2 5s;
}
@keyframes donghua1{
from{transform: rotateX(0deg);}
to{transform: rotateX(180deg);}
}
@keyframes donghua2{
from{transform:rotateY(0deg);}
to{transform: rotateY(180deg);}
</style>
</head>
<body>
<h4>
rotateX()--围绕其在一个给定度数X轴旋转的元素。<br>
rotateY()--围绕其在一个给定度数Y轴旋转的元素。<br>
</h4>
<div>
测试3D转换
</div>
</body>
</html>
十一、css3 多媒体查询
CSS3 根据设置自适应显示。
媒体查询可用于检测很多事情,例如:
viewport(视窗) 的宽度与高度
设备的宽度与高度
朝向 (智能手机横屏,竖屏) 。
分辨率
目前很多针对苹果手机,Android 手机,平板等设备都会使用到多媒体查询。
多媒体查询语法
@media not|only mediatype and (expressions) { CSS 代码...; }
not: not是用来排除掉某些特定的设备的,比如 @media not print(非打印设备)。
only: 用来定某种特别的媒体类型。比如 @media only print(只允许打印设备)。
mediatype 多媒体类型
all
用于所有多媒体类型设备
用于打印机
screen
用于电脑屏幕,平板,智能手机等。
speech
用于屏幕阅读器
expressions---表达式 例如:(max-width: 480px) 小于480像素
{ CSS 代码...; }-----具体样式设置
例如:如果媒体类型屏幕的可视窗口宽度小于 480 px ,背景颜色将改变。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS3 多媒体查询</title>
<style>
h4{
background-color: aqua;
font-size: 30px;
}
@media screen and (max-width:580px) {
h4{
background-color: red;
font-size: 10px;
}
}
</style>
</head>
<body>
<h4>
@media not|only mediatype and (expressions) { CSS 代码...; }<br>
not: not是用来排除掉某些特定的设备的,比如 @media not print(非打印设备)。<br>
only: 用来定某种特别的媒体类型。比如 @media only print(只允许打印设备)。<br>
mediatype 多媒体类型<br>
all 用于所有多媒体类型设备<br>
print 用于打印机<br>
screen 用于电脑屏幕,平板,智能手机等。<br>
speech 用于屏幕阅读器<br>
expressions---表达式 例如:(max-width: 480px) 小于580像素<br>
{ CSS 代码...; }-----具体样式设置<br>
</h4>
<div>
</div>
</body>
</html>