CSS第三天笔记

CSS3 3D转换与动画详解
本文详细介绍了CSS3中的3D转换技术,包括3D坐标系、旋转、透视效果的实现方法,以及如何利用动画属性创建复杂的动画效果。同时探讨了伸缩布局和多列布局的应用。

css3第三天
3d转换

  1. 左手坐标系
  2. 伸出左手,让拇指和食指成“L”形,大拇指向右,食指向上,中指指向前方。
    这样我们就建立了一个左手坐标系,拇指、食指和中指分别代表X、Y、Z 轴的正方向。
    如下图
    在这里插入图片描述
    2. CSS 中的 3D 坐标系
    CSS3 中的 3D 坐标系与上述的 3D 坐标系是有一定区别的,相当于其绕着 X
    轴旋转了 180 度,如下图
    在这里插入图片描述
    借助示例理解 3D 转换
    绕X 轴旋转,见代码示例 3D 转换-旋转rotateX.html
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    绕Y 轴旋转,见代码示例 3D 转换-旋转rotateY.html
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    绕Z 轴旋转,见代码示例 3D 转换-旋转rotateZ.html
    在这里插入图片描述
    在这里插入图片描述
  3. 左手法则
    左手握住旋转轴,竖起拇指指向旋转轴正方向,正向就是其余手指卷曲的方向。
    4. 透视(perspective)
    电脑显示屏是一个 2D 平面,图像之所以具有立体感(3D 效果),其实只是一
    种视觉呈现,通过透视可以实现此目的。
    透视可以将一个 2D 平面,在转换的过程当中,呈现 3D 效果。注:并非任何
    情况下需要透视效果,根据开发需要进行设置。
    perspective 有两种写法
    作为一个属性,设置给父元素,作用于所有 3D 转换的子元素
    作为transform 属性的一个值,做用于元素自身
    5. 理解透视距离
    在这里插入图片描述
    在这里插入图片描述
    透视会产生“近大远小”的效果
    3D呈现(transform-style)
    设置内嵌的元素在 3D 空间如何呈现,这些子元素必须为转换原素。
    flat:所有子元素在 2D 平面呈现
    preserve-3d:保留 3D 空间
    3D 元素构建是指某个图形是由多个元素构成的,可以给这些元素的父元素设置
    transform-style: preserve-3d 来使其变成一个真正的 3D 图形。
    7. backface-visibility
    设置元素背面是否可见
    CSS3 动画库
    动画
    动画是CSS3 中具有颠覆性的特征之一,可通过设置多个节点来精确控制一个或
    一组动画,常用来实现复杂的动画效果。
    1、必要元素:
    a、通过@keyframes 指定动画序列;
    b、通过百分比将动画序列分割成多个节点;
    c、在各节点中分别定义各属性
    d、通过 animation 将动画应用于相应元素;
    2、关键属性
    a、animation-name 设置动画序列名称
    b、animation-duration 动画持续时间
    c、animation-delay 动画延时时间
    d、animation-timing-function 动画执行速度,linear、ease 等 e、animation-play-state 动画播放状态,running、paused 等
    f、animation-direction 动画逆播,alternate 等
    g、animation-fill-mode 动画执行完毕后状态,forwards、backwards 等
    h、animation-iteration-count 动画执行次数,inifinate 等
    i、steps(60) 表示动画分成 60 步完成参数值的顺序:
    关于几个值,除了名字,动画时间,延时有严格顺序要求其它随意
    伸缩布局
    CSS3 在布局方面做了非常大的改进,使得我们对块级元素的布局排列
    变得十分灵活,适应性非常强,其强大的伸缩性,在响应式开中可以发挥极大
    的作用。
    如下图,学习新的概念:
    主轴:Flex 容器的主轴主要用来配置Flex 项目,默认是水平方向侧轴:与主
    轴垂直的轴称作侧轴,默认是垂直方向的
    方向:默认主轴从左向右,侧轴默认从上到下
    主轴和侧轴并不是固定不变的,通过flex-direction 可以互换。
    1、必要元素:
    a、指定一个盒子为伸缩盒子 display: flex
    b、设置属性来调整此盒的子元素的布局方式 例如 flex-direction
    c、明确主侧轴及方向
    d、可互换主侧轴,也可改变方向
    2、各属性详解
    a、flex-direction 调整主轴方向(默认为水平方向)
    b、justify-content 调整主轴对齐
    c、align-items 调整侧轴对齐
    d、flex-wrap 控制是否换行
    e、align-content 堆栈(由flex-wrap 产生的独立行)对齐
    f、flex-flow 是flex-direction、flex-wrap 的简写形式
    g、flex 子项目在主轴的缩放比例,不指定flex 属性,则不参与伸缩分配
    h、order 控制子项目的排列顺序,正序方式排序,从小到大
    此知识点重在理解,要明确找出主轴、侧轴、方向,各属性对应的属性值可参
    考示例源码。
    多列布局
    类似报纸或杂志中的排版方式,上要用以控制大篇幅文本。
    Web 字体
    开发人员可以为自已的网页指定特殊的字体,无需考虑用户电脑上是否
    安装了此特殊字体,从此把特殊字体处理成图片的时代便成为了过去。
    支持程度比较好,甚至IE 低版本浏览器也能支持。
    字体格式
    字体格式
    不同浏览器所支持的字体格式是不一样的,我们有必要了解一下有关字体格式
    的知识。
    1、TureType(.ttf)格式
    .ttf 字体是Windows 和Mac 的最常见的字体,是一种 RAW 格式,支持这种字
    体的浏览器有IE9+、Firefox3.5+、Chrome4+、Safari3+、Opera10+、iOS Mobile、
    Safari4.2+;
    2、OpenType(.otf)格式
    .otf 字体被认为是一种原始的字体格式,其内置在TureType 的基础上,支持
    这种字体的浏览器有Firefox3.5+、Chrome4.0+、Safari3.1+、Opera10.0+、iOS
    Mobile、Safari4.2+;
    3、Web Open Font Format(.woff)格式
    woff 字体是Web 字体中最佳格式,他是一个开放的TrueType/OpenType 的压缩
    版本,同时也支持元数据包的分离,支持这种字体的浏览器有IE9+、
    Firefox3.5+、Chrome6+、Safari3.6+、Opera11.1+;
    4、Embedded Open Type(.eot)格式
    .eot 字体是IE 专用字体,可以从 TrueType 创建此格式字体,支持这种字体
    的浏览器有IE4+;
    5、SVG(.svg)格式
    .svg 字体是基于SVG 字体渲染的一种格式,支持这种字体的浏览器有
    Chrome4+、Safari3.1+、Opera10.0+、iOS Mobile Safari3.2+;
    了解了上面的知识后,我们就需要为不同的浏览器准备不同格式的字体, 通常
    我们会通过字体生成工具帮我们生成各种格式的字体,因此无需过于在意字体格式间
    的区别差异。
    推荐http://www.zhaozi.cn/、http://www.youziku.com/ 查找更多中文字体
    字体图标
    其实我们可以把文字理解成是一种特殊形状的图片,反之我们是不是也可以把
    图片制作成字体呢?
    答案是肯定的。
    常见的是把网页常用的一些小的图标,借助工具帮我们生成一个字体包, 然后
    就可以像使用文字一样使用图标了。
    优点:
    1、将所有图标打包成字体库,减少请求;
    2、具有矢量性,可保证清晰度;
    3、使用灵活,便于维护;
    Font Awesome 使用介绍http://fontawesome.dashgame.com/ 定制自已的字体
    图标库http://iconfont.cn/ https://icomoon.io/
    SVG 素材
    http://www.iconsvg.com/
    兼容性
    通过http://caniuse.com/ 可查询CSS3 各特性的支持程度,一般兼容
    性处理的常见方法是为属性添加私有前缀,如不能解决,应避免使用,无需刻
    意去处理CSS3 的兼容性问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值