•CSS (Cascade Style Sheet)即层叠样式表;即多个样式定义可层叠为一
•样式表能实现内容与样式的分离,方便团队开发
•样式复用、方便网站的后期维护
•页面的精确控制,实现精美、复杂页面
•style属性用于将样式表应用于单个元素。直接将在HTML标记里加入style参数,而style参数的内容就是CSS的属性和值。样式表可以只有一条规则。使用Style属性,可以绕过Style元素,而将声明直接放入单个的开始标记中。
本段应用了内嵌样
•STYLE元素应插入文档的元素部分中,所有规则都放置在开始标记和结束标记之间。显示页面时,只有嵌入了STYLE元素的文档会受到影响
•链入外部样式表是把样式表保存为一个样式表文件,然后在页面中用标记链接到这个样式表文件,这个标记必须放到页面的区内
div ; p ; span 等html标记名
根据class属性值
……
- 家用电器
- 各类书籍
- 手机数码
- 日用百货
根据id属性值
… …
•如果您想把很多元素显示为灰色,可以使用类似如下的规则:
body, h2, p, table, th, td, pre, strong, em {color:gray;}
•将多个选择器放在规则左边,然后用逗号分隔,就定义了一个规则。其右边的样式将应用到左边这些选择器所引用的元素。逗号告诉浏览器,规则中包含数个不同的选择器。
导航栏实例:
菜鸟教程(runoob.com)
动画使元素逐渐从一种样式变为另一种样式。
您可以随意更改任意数量的 CSS 属性。
如需使用 CSS 动画,您必须首先为动画指定一些关键帧。
关键帧包含元素在特定时间所拥有的样式。
如果您在 @keyframes 规则中指定了 CSS 样式,动画将在特定时间逐渐从当前样式更改为新样式。
要使动画生效,必须将动画绑定到某个元素。
七个参数:
属性定义需要多长时间才能完成动画。如果未指定 animation-duration
属性,则动画不会发生,因为默认值是 0s(0秒)。
/* 动画代码 */
@keyframes example {
from {background-color: red;}
to {background-color: yellow;}
}
/* 向此元素应用动画效果 */
div {
width: 100px;
height: 100px;
background-color: red;
animation-name: example;
animation-duration: 4s;
}
也可以使用百分比值。通过使用百分比,可以根据需要添加任意多个样式更改。
下面的例子将在动画完成 25%,完成 50% 以及动画完成 100% 时更改
/* 动画代码 */
@keyframes example {
0% {background-color: red;}
25% {background-color: yellow;}
50% {background-color: blue;}
100% {background-color: green;}
}
/* 应用动画的元素 */
div {
width: 100px;
height: 100px;
background-color: red;
animation-name: example;
animation-duration: 4s;
}
还可以同时设置多个样式:
/* 动画代码 */
@keyframes example {
0% {background-color:red; left:0px; top:0px;}
25% {background-color:yellow; left:200px; top:0px;}
50% {background-color:blue; left:200px; top:200px;}
75% {background-color:green; left:0px; top:200px;}
100% {background-color:red; left:0px; top:0px;}
}
/* 应用动画的元素 */
div {
width: 100px;
height: 100px;
position: relative;
background-color: red;
animation-name: example;
animation-duration: 4s;
}
div {
width: 100px;
height: 100px;
position: relative;
background-color: red;
animation-name: example;
animation-duration: 4s;
animation-delay: 2s;
}
负值也是允许的。如果使用负值,则动画将开始播放,如同已播放 N 秒。
div {
width: 100px;
height: 100px;
position: relative;
background-color: red;
animation-name: example;
animation-duration: 4s;
animation-delay: -2s;
}
运行3次:
div {
width: 100px;
height: 100px;
position: relative;
background-color: red;
animation-name: example;
animation-duration: 4s;
animation-iteration-count: 3;
}
“infinite” 使动画永远持续下去:
div {
width: 100px;
height: 100px;
position: relative;
background-color: red;
animation-name: example;
animation-duration: 4s;
animation-iteration-count: infinite;
}
div {
width: 100px;
height: 100px;
position: relative;
background-color: red;
animation-name: example;
animation-duration: 4s;
animation-direction: reverse;
}
div {
width: 100px;
height: 100px;
position: relative;
background-color: red;
animation-name: example;
animation-duration: 4s;
animation-iteration-count: 2;
animation-direction: alternate;
}
div {
width: 100px;
height: 100px;
position: relative;
background-color: red;
animation-name: example;
animation-duration: 4s;
animation-iteration-count: 2;
animation-direction: alternate-reverse;
}
注释:Internet Explorer 9 以及更早的版本不支持 animation-timing-funtion 属性。
linear
ease
ease-in
ease-out
ease-in-out
CSS 动画不会在第一个关键帧播放之前或在最后一个关键帧播放之后影响元素。animation-fill-mode 属性能够覆盖这种行为。
在不播放动画时(在开始之前,结束之后,或两者都结束时),animation-fill-mode 属性规定目标元素的样式。
animation-fill-mode 属性可接受以下值:
div {
animation: example 5s linear 2s infinite alternate;
}
补充知识点:
单位:
em– 它是描述相对于应用在当前元素的字体尺寸,所以它也是相对长度单位。一般浏览器字体大小默认为16px,则2em == 32px;
vw–viewpoint width,视窗宽度,1vw=视窗宽度的1%
vh–viewpoint height,视窗高度,1vh=视窗高度的1%
vmin–vw和vh中较小的那个。
vmax–vw和vh中较大的那个
%–相对于父元素的百分比
px–像素