`
zzc1684
  • 浏览: 1222649 次
  • 性别: 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 转换的详细信息,请查看以下参考资源:

分享到:
评论

相关推荐

    table布局网页转换为div+CSS布局的转换软件

    总的来说,`table`到`div+CSS`的转换软件是网页开发过程中的一种实用工具,它帮助开发者更快地适应Web标准,提升网站的性能和可维护性。不过,理解和掌握`div+CSS`布局原理仍然是每个前端开发者的必备技能。

    svg转css,css转svg,svg与css互相转换并压缩

    SVG转CSS:将SVG图形转换为CSS背景图像可以简化代码,降低文件大小,并利于CSS的复用。这通常通过将SVG数据嵌入到CSS的`background-image`属性的`url()`函数中,使用`data:`协议来实现。例如,SVG图形可以被编码为...

    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、...

    花店网站CSS网页模板

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

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

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

    svg代码与css代码互相转换,并压缩

    在现代Web开发中,SVG(Scalable Vector Graphics)和CSS(Cascading Style Sheets)是两种非常重要的技术。...在实际工作中,掌握这类工具的使用可以提升开发者的专业技能,为项目带来显著的改进。

    使用css3实现动态效果

    2.需要使用css3中的至少两种效果,并且用到css3的地方请注释,例如阴影效果,动画效果,2D转换,3D转换,css3过渡等等。 3.要求css样式写在head的style里,或者新建一个css文件写在里面。图片放在单独建立的文件夹下...

    基于html+css的音乐网站网页设计,共9个页面

    题目:请同学们以音乐为主题完成一网站设计。(共100分) 综合运用所学习的知识设计音乐网站,网页布局主要包括网站顶部信息,banner,导航,轮播图,主要内容,footer等基本模块。要求学生能灵活使用标准流、浮动和...

    html+css网页设计源代码

    在这个“html+css网页设计源代码”中,我们有机会深入理解这两种语言如何协同工作,创建出具有专业外观和功能的网站。 HTML是网页的基础,它定义了网页的结构和内容。在提供的"html3"文件中,我们可以看到各种HTML...

    用HTML+CSS做一个漂亮简单的花店网页【免费的学生网页设计成品】

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

    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网站模板、网页设计源码

    【标题】中的“一个比较使用的旅游网页”表明这是一个与旅游相关的网页设计模板,它采用了美观的HTML和CSS技术。在网页设计中,HTML(HyperText Markup Language)是基础,用于构建网页的结构,而CSS(Cascading ...

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

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

    使用DIV+CSS进行网页布局设计【HTML节日介绍网站——二十四节气】

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

    抓取网页图片,css和js

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

Global site tag (gtag.js) - Google Analytics