`
zzc1684
  • 浏览: 1224810 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

使用 CSS 转换为你的网页带来活力让你的网页栩栩如生

阅读更多

 

使用级联样式表 (CSS) 转换,你可以在二维和三维空间内转换元素。 使用 CSS 转换,你可以在元素的父元素中更改元素的位置,操作元素的旋转或缩放以及应用扭曲失真。添加 perspective 属性(或 perspective 转换函数)可将第三维添加到转换。

我们将在这里介绍 CSS 转换坐标系统。然后,我们将演示 CSS 公布的转换功能,并以图示 perspective 属性的效果圆满结束。

CSS 转换的坐标系统

CSS 转换沿一组形成坐标系统的轴定义。二维转换沿两个轴定义,如下所示。请注意 y 轴向下扩展,而不是如大多数二维笛卡尔坐标系统所呈现的向上扩展。

二维坐标系统的图像;x 轴向右扩展而 y 轴向下扩展

坐标系统的 x 轴沿转换的元素的父节点的水平维度扩展。y 轴沿垂直维度扩展。此坐标系统的原点(图表中的“(0,0)”)最初位于要转换的元素的中心(除非由 transform-origin 属性更改,这将在稍后部分讨论)。

三维转换沿三个轴定义,如下所示。(包含网格线以帮助实现 3-D 图像的可视化。)

三维坐标系统的图像;附加的 z 轴与 x 轴和 y 轴并行

坐标系统的 z 轴与 x 轴和 y 轴同时垂直。此坐标系统的原点(图表中的“(0,0,0)”)也位于要转换的元素的中心,除非 transform-origin 属性对其进行了更改。

应用转换

向元素应用转换非常简单。首先,将 transform 属性添加到选择器,然后附加一列转换函数。例如,以下声明应用一个平移转换:

 
transform: translateX(400px);

此转换的结果是将初始元素向右平移(移动)了 400 像素。如果我们将此转换应用于绿色方块 div 元素,则会获得以下结果。出于说明的目的,除了转换后的元素,还显示了应用转换前元素的外观,原始元素将灰显。

应用水平平移函数前后浅绿色方块的图像

你可以查看此示例的实时版本。请 注意,为获得浏览器最大兼容性,你应在要支持的每个浏览器的转换属性前包含适当的浏览器特定的前缀。例如,以下声明确保在 Windows Internet Explorer 9 中提供支持:("-ms-"),在 Chrome 和 Safari 中为 ("-webkit-"),在 Firefox 中为 ("-moz-"),在 Opera 中为 ("-o-"),且浏览器不需要前缀,例如 Internet Explorer 10。

 
  -ms-transform: translateX(400px);
  -webkit-transform: translateX(400px);
  -moz-transform: translateX(400px);
  -o-transform: translateX(400px);
  transform: translateX(400px);

2-D 转换函数

在 2-D 转换中支持使用这些转换函数,并且从 Internet Explorer 9 开始可以使用这些转换函数。

函数 描述

matrix(a, b, c, d, e, f)

采用六个值的转换矩阵的形式指定 2-D 转换。

rotate(angle)

指定按有关元素来源的参数中指定的角度进行 2-D 旋转。

scale(sx,sy)

通过由两个参数表示的 [sx,sy] 缩放矢量来指定 2-D 缩放操作。

scaleX(sx)

通过使用 [sx,1] 缩放矢量来指定缩放操作,其中 sx 作为参数给定。

scaleY(sy)

通过使用 [1,sy] 缩放矢量来指定缩放操作,其中 sy 作为参数给定。

skew(angleX,angleY)

指定沿 x 轴和 y 轴的扭曲转换。第一个角度参数指定 x 轴上的扭曲。第二个角度参数指定 y 轴上的扭曲。

skewX(angle)

按给定的角度指定沿 x 轴的扭曲转换。

skewY(angle)

按给定的角度指定沿 y 轴的扭曲转换。

translate(tx,ty)

按矢量 [tx,ty] 指定 2-D 平移,其中 tx 为第一个平移值参数,ty 为可选的第二个平移值参数。

translateX(tx)

通过 x 方向上的给定值来指定平移。

translateY(ty)

通过 y 方向上的给定值来指定平移。

 

对于平移函数,参数可以为受支持的 CSS 长度类型或百分比。对于旋转和扭曲函数,参数可以为受支持的 CSS 角度类型或原始数(可解释为旋转度数)。最后,缩放函数接受数字参数,这表示缩放因子。

2-D 转换示例

现在,让我们来看看几个二维 CSS 转换的应用。

我们将从沿 y 轴的平移开始。谨记,平移值将解释为距页面布局中元素的原始位置的偏移量。

应用垂直平移函数前后的蓝色方块图像

查看此示例的实时演示。

现在,让我们尝试进行一些旋转、扭曲和缩放操作。此屏幕截图反复地展示了一个方块 div,它将一个转换重复应用。

展示如何按不同的转换函数旋转、扭曲和缩放黄色方块的屏幕截图

查看此示例的实时演示。

matrix 转换函数未在此处展示。此函数使你能够手动指定自定义 2-D 转换。在尝试手动指定转换之前,最好先熟悉一下转换坐标系统和呈现。

应用多个转换

通过链接多个转换函数 — 采用要应用转换的顺序将多个转换函数添加到单个转换属性,你可以应用多个转换。请注意,附加转换的顺序会影响最终的结果。让我们来看个示例。

以下声明看上去可能类似,但它们会产生不同的结果。

 
 
transform: rotate(45deg) translateX(200px);
transform: translateX(200px) rotate(45deg);

在此处你可以看到应用于不同 div 元素的两个声明。下面是此示例的屏幕截图。原始元素的位置以灰色框标注。紫色(页首)框先应用了 translateX 函数,然后应用了 rotate 函数。粉色(底部)框首先旋转,然后平移。

演示应用于 div 的两个转换的图像

更改转换来源

请考虑以下转换:

 
 
transform: rotate(45deg);

应用了两个转换的红色方块 div 的图像

在你的浏览器中查看此示例。

转换的元素围绕其中心旋转。但如果我们希望元素围绕其一个角旋转该怎么办?或者围绕任意点旋转该怎么办?这时就要用到 transform-origin 属性了。

通过 transform-origin 属性,你可以为一个元素指定转换的初始位置。在旋转时,更改转换初始值将移动旋转的中心。transform-origin 属性的初始值为 "50% 50%",表示初始位置为元素的中心。如果未指定 transform-origin 属性,则这是默示值。

让我们看一些将这个相同的 rotate 声明应用于 transform-origin 属性设置为不同值的元素的示例。此示例页面包含相同的元素,它们重复应用了相同的转换,但具有不同的转换来源。 除了应用的是扭曲转换外,此示例页面基本相同。

接下来,我们开始使用 CSS 3-D 转换将深度添加到我们的网页。

3-D 转换函数

有了 Internet Explorer 10,设计人员可以通过使用 CSS 3-D 转换成功引入第三维。在 3-D 转换中支持使用此处列出的转换函数,并且从 Internet Explorer 10 开始可以使用这些转换函数。

3-D 转换的应用方式与 2-D 转换的应用方式相同(通过将 transform 属性添加到元素的样式中)。若要充分利用第三维,请扩展可用的转换函数列表以包含以下内容:

函数 描述

rotate3d(x, y, z, angle)

指定顺时针 3-D 旋转。

rotateX(angle)

指定在 x 轴上沿顺时针方向旋转给定的角度。

rotateY(angle)

指定在 y 轴上沿顺时针方向旋转给定的角度。

rotateZ(angle)

指定在 z 轴上沿顺时针方向旋转给定的角度。

scale3d(sx,sy,sz)

通过由三个参数表示的 [sx,sy,sz] 缩放矢量来指定 3-D 缩放操作。

scaleZ(sz)

通过使用 [1,1,sz] 缩放矢量来指定缩放操作,其中 sz 作为参数给定。

translate3d(tx, tytz)

通过矢量 [tx,ty,tz] 来指定 3-D 平移,其中 txtytz 分别是第一、第二和第三个平移值参数。

translateZ(tz)

通过 z 方向上的给定值来指定平移。

matrix3d(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p)

将 3-D 转换指定为由十六个值组成且以列为主序的 4×4 同类矩阵。

 

让我们看看使用的 3-D 转换的某些示例。此示例页面具有一行方块,每个方块应用了一个或多个转换。

你可能会注意到这些转换没有以三维形式显示。你可能希望采用三维形式,因为此类转换沿 xy 轴将元素旋转“进入屏幕”,该元素看起来应越来越小。translateZ(-50px) 函数并不会更改元素的视觉外观!但是可以实现这种情况,因为默认情况下 CSS 转换使用正交投影进行计算,这是一种以二维形式表示三维形式的内容的方法。二维世界地图是你可能熟悉的一个正交投影示例。使用 CSS 转换,获得的对象并不能在移离观察者的视线时逐渐变小。

幸运的是,CSS 转换规范提供了可以轻松将射影添加到转换的属性。

将射影添加到 3-D 转换

perspective 属性将深度错觉添加到 CSS 转换。

函数 描述

perspective

指定表示距离查看对象的所有子元素的射影距离的长度值。

 

请看下图:

描述视觉元素的外观上射影的效果的图

请注意子元素如何平展(或投影)在其父元素上。所得的射影的表面(在图表上为橙色区域)为该元素距父元素定义的图像平面的距离的因子,这基于我们为其设置的 3-D 转换的组合。此外,还应考虑父元素本身距“查看者”的距离,这在上个图中被标注为射影深度perspective CSS 属性可以帮助你指定该距离。

请将上述示例中使用的同一转换作为示例关注,但此时,该转换应用了射影投影。

在本例中,我们将 perspective 属性(设置为 200px)应用于示例 div 元素的父元素。请注意,当你在该元素上悬停或点击该元素时,该转换的视觉结果为真正的三维形式。translateZ 转换按预期运行,即,元素距查看者越来越远而变得越来越小。另请注意,我们可以采用类似的方法将 3-D 转换组合到 2-D 转换。

微调 3-D 转换的另一个方法为使用 perspective-origin 属性。perspective-origin 属性设置与应用射影转换的元素相关的查看者的位置。换句话说,它允许我们创建离轴投影。

此示例页面与上一页面类似,但不同之处为 perspective-origin 属性设置为 "30% 50%"。

perspective-origin 的默认值为 "50% 50%",该值表示查看位置与元素中心平行。在上例中,我们将查看位置向左偏移 ("30% 50%")。在下一示例中,你可以看到当我们通过将 perspective-origin 属性设置为 "80% 50%" 以将位置向右偏移的不同情形。

结论

到目前为止,我们已经演示了 2-D 和 3-D 形式的 CSS 转换,以及转换的某些伴随属性(transform-originperspectiveperspective-origin)。

接下来,我们将介绍 CSS 过渡。

相关主题

若要了解有关 CSS 转换的详细信息,请查看以下参考资源:

分享到:
评论

相关推荐

    divcss转换工具

    divcss转换工具,可将table转化为divcss,但是需要修改

    网页设计期末大作业+html+css

    9个网页布局,学校让做的网站作业,虽然是比较基础的网页静态页面,不过我也希望你能做的规范一些,我们专业制作学生网页作业,div css js 等通过dreamwear的工具实现规范化,比如文件夹的规范,代码写作的规范,...

    【Web网页设计制作-毕业设计期末大作业】HTML、CSS、JavaScript前端网页项目源码H20.zip

    【Web网页设计制作-毕业设计期末大作业】HTML、CSS、JavaScript前端网页项目源码【Web网页设计制作-毕业设计期末大作业】HTML、CSS、JavaScript前端网页项目源码【Web网页设计制作-毕业设计期末大作业】HTML、CSS、...

    htm+css网页设计课程作业

    在本压缩包“htm+css网页设计课程作业”中,包含了一个HTML和CSS的学习资源,主要涉及了HTML5和CSS3的基本概念、语法以及实际应用。...同时,这也能为你的个人作品集增添一份亮点,展示你的网页设计和编码能力。

    花店网站CSS网页模板

    【花店网站CSS网页模板】是一种专为花店设计的网页设计资源,它结合了灰色调、商务风格以及花卉元素,旨在为商业公司提供一个专业且具有艺术气息的在线展示平台。这款模板采用HTML和CSS技术,使得网页结构清晰、布局...

    (HTML期末作业)英雄联盟网站Html网页制作JS+CSS共七个网页

    英雄联盟网站Html网页制作JS+CSS共七个网页(仅包含网页) 包含QQ登录端(未连接数据库);1个网页 英雄联盟进入前网页;1个网页 英雄联盟官网;1个网页 英雄联盟个人信息端(登录前);1个网页 英雄联盟个人信息端...

    jpeg2css把图片转换成纯网页代码!

    在IT行业中,有时候我们需要在网页设计中寻找创新和优化的方式,"jpeg2css"就是这样一个独特的工具,它能够实现将JPEG图片转换成纯CSS代码,从而在网页上呈现出图片的效果,而无需实际加载图片资源。这种方法对于...

    83套HTML5+CSS3+DIV网页模板

    HTML5和CSS3是现代网页开发的两大核心技术,它们共同为网页设计师和开发者提供了丰富的功能和优雅的...无论你是初学者还是经验丰富的开发者,这个资源都将为你的技能库增添亮点,推动你在IT行业的职业生涯更进一步。

    使用html+css实现网易阴阳师游戏网页的效果.zip

    基于html+css+js进行网页设计 课程设计 毕业设计 供参考 源码+说明 基于html+css+js进行网页设计 课程设计 毕业设计 供参考 源码+说明 基于html+css+js进行网页设计 课程设计 毕业设计 供参考 源码+说明 基于...

    HTML+CSS+JS 网页设计模板.zip

    这些模板可能涵盖了各种类型的网页,如博客、电商、个人简历、新闻网站等,为开发者提供了快速启动项目的基础。每个模板通常会包含HTML文件(.html)、CSS文件(.css)和JavaScript文件(.js),有时还会包含图像和...

    抓取网页图片,css和js

    本话题主要关注如何抓取网页上的图片、CSS(层叠样式表)和JavaScript文件,以及处理CSS中内联的图片资源。下面将详细讨论这些知识点。 一、网页抓取基础 网页抓取通常通过网络爬虫实现,这是一种自动遍历互联网并...

    手机网站CSS网页模板

    "手机网站CSS网页模板"这个主题,聚焦于如何利用CSS技术和设计元素来创建适应手机屏幕的高效、美观的网页。 首先,我们来理解一下CSS的核心概念。CSS是一种样式表语言,用于定义HTML或XML(包括如SVG、MathML等各种...

    Table转div+css工具

    Table2CSS3.0.0这个工具的出现,使得开发者能够快速地将旧有的Table结构转换为Div+CSS结构,减少了手动重构的工作量。使用此工具,开发者可以: 1. **保持原有数据结构不变**:工具会保留表格中的数据顺序和关系,...

    html+css网页设计源码(简洁)

    这套源码充分展示了如何使用 HTML 结构元素和 CSS 样式规则来创建一个清晰、易读且具有基本功能的网页。 HTML (HyperText Markup Language) 是用于创建网页内容的标记语言,它定义了网页的结构和意义。在提供的源码...

    html+css+js实现漂亮网页

    CSS3带来了更多高级功能,如渐变、阴影、动画、过渡和变形,使得网页视觉效果更丰富。响应式设计(Responsive Design)也是CSS3的一个重要特性,允许网页根据设备屏幕尺寸自动调整布局。 JavaScript是一种客户端...

    网页大作业代码自取【HTML+CSS制作美味糖果网站】

    HTML静态网页设计作业,采用DIV+CSS布局,共有多个页面,使用CSS排版比较丰富,色彩鲜明有活力,顶部导航及底部 区域背景色为100%宽度。都是给学生定制的都符合学生考试期末作业的水平,有的有js,有的视频+音乐+...

    网页制作css样式实验报告

    【网页制作CSS样式实验报告】 在网页设计与制作过程中,CSS(Cascading Style Sheets)样式扮演着至关重要的角色,它使得网页的布局、颜色、字体等视觉元素得以精确控制,实现了内容与表现的分离,提高了网页的可...

    使用html + css + JavaScript + jQuery,模仿主流电商网站开发的网页,实现网页动态交互效果.zip

    基于html+css+js进行网页设计 课程设计 毕业设计 供参考 源码+说明 基于html+css+js进行网页设计 课程设计 毕业设计 供参考 源码+说明 基于html+css+js进行网页设计 课程设计 毕业设计 供参考 源码+说明 基于...

    HTML+CSS网页设计与布局从入门到精通

    《HTML+CSS网页设计与布局从入门到精通》紧密围绕网页设计师在制作网页过程中的实际需要和应该掌握的技术,全面介绍了使用HTML和CSS进行网页设计和制作的各方面内容和技巧。 《HTML+CSS网页设计与布局从入门到精通》...

    HTML + CSS 实现淘宝页面首屏静态网页项目练习.zip

    HTML + CSS 实现淘宝页面首屏静态网页项目练习 HTML + CSS 实现淘宝页面首屏静态网页项目练习 HTML + CSS 实现淘宝页面首屏静态网页项目练习 HTML + CSS 实现淘宝页面首屏静态网页项目练习 HTML + CSS 实现淘宝页面...

Global site tag (gtag.js) - Google Analytics