CSS3简介
- CSS3是最新的CSS标准
CSS3新特性
- 选择器(CSS已经总结)
- 盒模型(CSS已经总结)
- 背景
- 边框
- 文本效果
- 渐变
- 2D/3D 转换
- 过渡和动画
- 字体(与字体图标结合)
- 字体图标(CSS已经总结)
- 响应式(媒体查询已经总结)
- 多列布局(栅格系统已经总结)
- 用户界面
- flex布局(flex布局已经总结)
背景
- background-size
- background-origin
- background-clip
background-size
- 规定背景图像的尺寸
- length:设置背景图像的高度和宽度(px)
- percentage:以父元素的百分比来设置背景图像的宽度和高度(%)
- cover:把背景图像扩展至足够大,以使背景图像完全覆盖背景区域
- contain:把图像图像扩展至最大尺寸,以使其宽度和高度完全适应内容区域
|
|
background-origin
- 相对于内容框来定位背景图像
- padding-box: 背景图像相对于内边距框来定位
- border-box: 背景图像相对于边框盒来定位
- content-box: 背景图像相对于内容框来定位
|
|
background-clip
- 属性规定背景的绘制区域
- padding-box: 背景被裁剪到边框盒
- border-box: 背景被裁剪到内边距框
- content-box: 背景被裁剪到内容框
|
|
边框
- border-radius
- border-image
- box-shadow
box-shadow
- 设置元素的圆角半径
- length:定义圆角的形状
- %:以百分比定义圆角的形状
|
|
border-image
- 将图片规定为包围 div 元素的边框
- border-image:属性是一个简写属性
- border-image-source:用在边框的图片的路径
- border-image-slice:图片边框向内偏移
- border-image-width:图片边框的宽度
- border-image-outset:边框图像区域超出边框的量
- border-image-repeat:图像边框是否应平铺(repeated)、铺满(rounded)或拉伸(stretched)
|
|
box-shadow
- box-shadow: h-shadow v-shadow blur spread color inset
- 向框添加一个或多个阴影
- h-shadow:必需。水平阴影的位置。允许负值
- v-shadow:必需。垂直阴影的位置。允许负值
- blur:可选。模糊距离
- spread:可选。阴影的尺寸
- color:可选。阴影的颜色。请参阅 CSS 颜色值
- inset:可选。将外部阴影 (outset) 改为内部阴影
|
|
文本效果
- text-shadow
- text-overflow
- word-wrap
- word-break
- white-space
text-shadow
- text-shadow: h-shadow v-shadow blur color
- 向文本添加一个或多个阴影
- h-shadow:必需。水平阴影的位置。允许负值
- v-shadow:必需。垂直阴影的位置。允许负值
- blur:可选。模糊的距离
- color:可选。阴影的颜色
|
|
text-overflow
- text-overflow: clip|ellipsis|string
- 规定当文本溢出包含元素时发生的事情
- clip:修剪文本
- ellipsis:显示省略符号来代表被修剪的文本
- string:使用给定的字符串来代表被修剪的文本
|
|
word-wrap
- word-wrap: normal|break-word
- 允许长单词换行到下一行
- normal:只在允许的断字点换行(浏览器保持默认处理)
- break-word:在长单词或 URL 地址内部进行换行
|
|
word-break
- word-break: normal|break-all|keep-all
- 在恰当的断字点进行换行
- normal:使用浏览器默认的换行规则
- break-all:允许在单词内换行
- keep-all:只能在半角空格或连字符处换行
|
|
white-space
- 设置如何处理元素内的空白
- normal:默认。空白会被浏览器忽略
- pre:空白会被浏览器保留。其行为方式类似 HTML 中的
标签
- nowrap:文本不会换行,文本会在在同一行上继续,直到遇到
标签为止 - pre-wrap:保留空白符序列,但是正常地进行换行
- pre-line:合并空白符序列,但是保留换行符
- inherit:规定应该从父元素继承 white-space 属性的值
|
|
渐变
- 两个或多个指定的颜色之间显示平稳的过渡
线性渐变(Linear Gradients)
- background: linear-gradient(angle, color-stop1, color-stop2)
- 向下/向上/向左/向右/对角方向
- 定义两种颜色结点,颜色结点即你想要呈现平稳过渡的颜色,设置一个起点和一个方向(或一个角度)
- 默认情况下,线性渐变 - 从上到下
|
|
径向渐变(Radial Gradients)
- background: radial-gradient(center, shape size, start-color, …, last-color)
- 由它们的中心定义
- 定义两种颜色结点,颜色结点即你想要呈现平稳过渡的颜色,同时,指定渐变的中心、形状(原型或椭圆形)、大小
- 默认情况下,渐变的中心是 center(表示在中心点),渐变的形状是 ellipse(表示椭圆形),渐变的大小是 farthest-corner(表示到最远的角落)
|
|
2D/3D转换
2D转换
- transform
- 对元素进行移动、缩放、转动、拉长或拉伸
- translate():元素从其当前位置移动,根据给定的 left(x 坐标) 和 top(y 坐标) 位置参数
- rotate():元素顺时针旋转给定的角度。允许负值,元素将逆时针旋转
- scale():元素的尺寸会增加或减少,根据给定的宽度(X 轴)和高度(Y 轴)参数
- skew():元素翻转给定的角度,根据给定的水平线(X 轴)和垂直线(Y 轴)参数
- matrix():方法把所有 2D 转换方法组合在一起,需要六个参数,包含数学函数,允许您:旋转、缩放、移动以及倾斜元素
|
|
3D转换
- transform
- 允许您使用 3D 转换来对元素进行格式化
- rotateX():元素围绕其 X 轴以给定的度数进行旋转
- rotateY():元素围绕其 Y 轴以给定的度数进行旋转
|
|
过渡和动画
- 过渡:不使用 Flash 动画或 JavaScript 的情况下,当元素从一种样式变换为另一种样式时为元素添加效果
- 动画:可以在许多网页中取代动画图片、Flash 动画以及 JavaScript
过渡
- transition: 1s 1s height ease
- transition:简写属性,用于在一个属性中设置四个过渡属性
- 规定希望把效果添加到哪个CSS 属性上,规定效果的时长
- transition-property:规定应用过渡的 CSS 属性的名称
- transition-duration:定义过渡效果花费的时间。默认是 0
- transition-timing-function:规定过渡效果的时间曲线。默认是 “ease”
- transition-delay:规定过渡效果何时开始。默认是 0
|
|
动画
- @keyframes 规则:用于创建动画,规定某项 CSS 样式,就能创建由当前样式逐渐改为新样式的动画效果
- animation: 1s 1s rainbow linear 3 forwards normal
- animation:所有动画属性的简写属性,除了 animation-play-state 属性
- 规定动画的名称,规定动画的时长
- animation-name:规定 @keyframes 动画的名称
- animation-duration:规定动画完成一个周期所花费的秒或毫秒。默认是 0
- animation-timing-function:规定动画的速度曲线。默认是 “ease”
- animation-delay:规定动画何时开始。默认是 0
- animation-iteration-count:规定动画被播放的次数。默认是 1
- animation-direction:规定动画是否在下一周期逆向地播放。默认是 “normal”
- animation-play-state:规定动画是否正在运行或暂停。默认是 “running”
- animation-fill-mode:规定对象动画时间之外的状态
|
|
动画实例一
- 用百分比来规定变化发生的时间,或用关键词 “from” 和 “to”,等同于 0% 和 100%
- 当动画为 25% 及 50% 时改变背景色,然后当动画 100% 完成时再次改变
|
|
动画实例二
- 改变背景色和位置
|
|
字体
- @font-face
- 自定义字体的能力,我们可以把字体文件像图片一样放在服务器或者CDN,然后在页面通过CSS指定下载到客户端,这样客户端就可以使用
|
|
字体格式
- WOFF:支持这种字体的浏览器有【IE9+,Firefox3.5+,Chrome6+,Safari3.6+,Opera11.1+】
- SVG / SVGZ:支持这种字体的浏览器有【Chrome4+,Safari3.1+,Opera10.0+,iOS Mobile Safari3.2+】
- EOT:只在IE6/IE8里使用
- OTF:支持这种字体的浏览器有【IE9+,Firefox3.5+,Chrome4+,Safari3+,Opera10+,iOS Mobile Safari4.2+】
- TTF:支持这种字体的浏览器有【Firefox3.5+,Chrome4.0+,Safari3.1+,Opera10.0+,iOS Mobile Safari4.2+】
书写方式
- 为了让各多的浏览器支持
|
|
- 直接下载字体图标自带各种配置
多列布局
- 创建多个列来对文本进行布局 - 就像报纸那样
- CSS3新增了多列布局特性,可以让浏览器确定何时结束一列和开始下一列
- column-count: 列数
- column-width: 每列宽度
- column-gap: 列间距
- column-rule: 列之间边框
- column-span: 列之间跨度
|
|
- column-gap 的间距只在列之间才有
- column-rule 在间距中间显示
- column-width和column-count是相互配合的,两个都设置,按照后者优先
用户界面
- 新的用户界面特性包括重设元素尺寸、盒尺寸以及轮廓
- appearance:允许您将元素设置为标准用户界面元素的外观
- box-sizing:允许您以确切的方式定义适应某个区域的具体内容
- icon:为创作者提供使用图标化等价物来设置元素样式的能力
- nav-down:规定在使用 arrow-down 导航键时向何处导航
- nav-index:设置元素的 tab 键控制次序
- nav-left:规定在使用 arrow-left 导航键时向何处导航
- nav-right:规定在使用 arrow-right 导航键时向何处导航
- nav-up:规定在使用 arrow-up 导航键时向何处导航
- outline-offset:对轮廓进行偏移,并在超出边框边缘的位置绘制轮廓
- resize:规定是否可由用户对元素的尺寸进行调整
|
|
效果
CSS3效果的简单事例
|
|
全屏图加过渡色的效果
|
|
loading 动画效果
|
|