一些常用的图形效果有CSS3表达方式,包括不透明贴图、圆角、阴影。这些效果与CSS3渐变色一起使得上传更为简洁,跨平台维护也更为容易。此外,它们还在SEO(搜索引擎优化)方面具有优势。
为了理解SEO,我们还要回到刚才提到的渐变色。CSS3渐变色的另一个优势是它们可以更好的向下兼容源代码控制系统(SCCS)。在CSS3出现之前,渐变色通过图片实现。在常用的SCCS中调整图片是一个不透明的过程。
通过CSS3的渐变色语义标记,SCCS能够很方便在表面渐变的文本进行操作。SCCS能够在特定时间自动报告,渐变色彩的变化或是饱和度。其格式如下:
这上优势也提升了不透明贴图和其它的CSS3标记。假设一个名为Acme Widgets的公司想通过不透明贴图在其网页上标记公司的名称。在CSS3出现之前,他们需要使用Photoshop或类似工具才行,这导致需要设计一个图片,通过一张不透明的贴图显示Acme Widgets。
由于内容是内嵌在图片中的,因此Acme Widgets根据无法被搜索引擎找到。CSS3的出现改变了这一情况。
2、更快的图片下载速度,尤其是对于移动用户
在网页设计中,“渐变”是一种背景效果:你的网页上的“窗口”拥有更精致的底纹或纹理。公司设计人员有更大的空间来平衡明暗度、匹配边界,实现让大数浏览者叹为观止的色彩或风格。
渐变效果的头二十年是通过“着色”来取得的。在HTML5之前,背景必须作为一个图片(或是由多个子图叠加在一起)被提供。例如,Photoshop有一个“渐变工具”。该工具主要用于构建一个背景图片以作为渐变色使用。这一功能获得了很大的成功。每一名称职的网页设计者通常都会使用已经有的渐变色作为背景图片。
首先,其非常简洁。CSS3渐变规范通常有数百个字节,而表达渐变的背景图片通常会有数千个字节。除了这一优势外,CSS3的是渐变是内联的,其传输不需要打开其它的文件。当大量网站浏览者通过带宽有限的移动浏览器访问时,让用于网页渲染的辅助连接的数量保持低水平对于提升性能非常关键。
你的网页设计人员能够像以往那样做同样的事情--使用Photoshop的渐变工具或是类似工具,然后导出至CSS3而不是HTML4或XHTML。终端用户在他们的浏览器上的效果几乎没有什么差别,但是下载速度却提升了许多。此外,CSS3渐变色还能够更容易的生就不同的屏幕尺寸和各种分辨率。
其它技术优势还包括:
总体上,其能够内联老式的渐变色,因此能够减少下载成本。
?除了CSS3之外,HTML5还包括了其它的渐变效果。
渐变色的CSS3支持将可编程性提升到了一个新的水平。例如,设计人员可以根据浏览者的年龄和位置调整渐变背景。
3、Web应用开发更容易,尤其是移动应用
最后一个优势是,HTML5解决方案是一个可媲美原生应用的编程环境。这对于移动终端用户来说非常重要,原生应用开发成本昂贵:其编程人员薪水高、许可证各类繁多,可移植性差。HTML5在优势在于许多应用能够被完整的编在HTML5内。
4、更精美的动画效果
除了上面所提到的功能外,其特色功能还包括:
HTML5能够以更低的成本和更短的下载时间展现媲美目前顶级网页设计人员设计的外观,语义标记具有SEO和维护优势。HTML5现在拥有的一些效果已经超越早期标准的效果,其中之一就是动画制作。
为了获得精美的动画效果,网页团队过去通常使用Flash。不过,Flash也有一些明显的不足:搜索引擎无法索引,苹果的iOS和操作系统不允许使用Flash。安全性和许可证限制了其在许多公司中的使用。通过HTML5,精美的可视化动画可以成为语义动画。
CSS3除了为开发者提供二维变形之外,还将动画从二维平面推动到了三维立体状态,能够实现真正的三维特效。
三维变形和二维变形一样,均使用的是transform属性。想要触发三维变形有两种方式:一种方式是通过语法告知浏览器“请采用三维方式进行变形处理”,另一种方式是直接使用CSS3三维变形的语法。
触发方法1:告知浏览器变形方式
-webkit-transform-style:preserve-3dTips:IE不支持三维变形,在移动端,绝大多数的浏览器均为WebKit内核,因此,在此句代码之前需要书写-webkit-的前缀内核。
Tips:不要为body元素设置-webkit- transform-style: preserve 3d,否则会对position:fixed定位的元素造成布局影响。在开发当中,如果当前元素属于body的子级元素,又希望应用三维变形,则在body和当前元素之间多嵌套一层结构,并为这层元素应用三维变形即可。
触发方法2:直接使用CSS3变形语法
<!DOCTYPE html><head>
<meta charset="UTF-8">
<title>言成科技/title>
<style>
.box1 {
width: 150px
height: 150px
border: 2px solid blue
}
.box1 div {
height: 150px
background: rgba(0, 0, 0, 0.5)
-webkit-transform: translate3d(30px, 60px, 20px) rotateX(30deg)
transform: translate3d(30px, 60px, 20px) rotateX(30deg)
}
</style>
</head>
<body>
<div class="box1">
<div></div>
</div>
</body>
</html>
具体三维变形的具体属性详见《CSS3-3D相关知识详解—视角以及变形方向》
3D效果制作
需求
制作一个立方体,并进行旋转
代码实例
<!DOCTYPE HTML><html>
<head>
<meta charset="utf-8" />
<title>言成科技</title>
<link rel="stylesheet" type="text/css" href="https://css.h5course.cn/reset-1.0.0.css" />
<style>
.main-bac { -webkit-perspective:1500 } /*设定透视距离*/
.main{
width:200px
height:200px
margin: 0 auto
position:relative
-webkit-transform-style:preserve-3d
-webkit-transition:-webkit-transform 2s ease 0s/*过渡时间*/
}
/*基本样式*/
.main p{
position: absolute
margin: 0
padding: 0
width: 200px
height: 200px
text-align: center
line-height: 200px
font-size: 26px
opacity:0.5
}
/*将第一个元素Z轴向前移动100px,形成第一个面(正面)*/
.main p:nth-of-type(1) {
background-color:red
-webkit-transform:translateZ(100px)
}
/*将第一个元素Z轴向前移动100px,绕x轴旋转90度形成上面的面*/
.main p:nth-of-type(2) {
background-color:orange
-webkit-transform:rotateX(90deg) translateZ(100px)
}
/*将第一个元素Z轴向前移动100px,绕x轴旋转-90度形成下边的面*/
.main p:nth-of-type(3) {
background-color:yellow
-webkit-transform:rotateX(-90deg) translateZ(100px)
}
/*将第一个元素Z轴向前移动100px,绕y轴旋转90度形成右侧的面*/
.main p:nth-of-type(4) {
background-color:green
-webkit-transform:rotateY(90deg) translateZ(100px)
}
/*将第一个元素Z轴向前移动100px,绕y轴旋转-90度形成左侧的面*/
.main p:nth-of-type(5) {
background-color:#b435bf
-webkit-transform:rotateY(-90deg) translateZ(100px)
}
/*将第一个元素Z轴向前移动100px,绕y轴旋转180度形成后面(背面)*/
.main p:nth-of-type(6) {
background-color:blue
-webkit-transform:rotateY(180deg) translateZ(100px)
}
/*鼠标移入时绕Y轴旋转180度,绕Z轴旋转180度*/
.main:hover {-webkit-transform:rotateY(180deg) rotateZ(180deg) }
</style>
</head>
<body>
<div class="main-bac">
<div class="main">
<p>言成科技</p>
<p>3D立方体</p>
<p>HTML5学堂</p>
<p>3D立方体</p>
<p>码匠</p>
<p>JavaScript</p>
</div>
</div>
</body>
</html>
代码解析
当鼠标移入的时候,立方体逐渐的发生旋转(非突变),围绕X轴旋转45度的同时,围绕Y轴旋转45度。
当鼠标移出立方体时,立方体恢复到初始状态。在最开始状态时,并没有采用无限远的视角,设置一定的视角,让刚开始时直视立方体时,不会觉得是一个平面。
3D效果制作-目标效果图
以上资料来源:《HTML5布局之路》
在web设计中使用js可以实现很多的页面特效,然而很多人却忽视了HTML标签中META标签的强大功效,其实meta标签也可以实现很多漂亮的页面过渡效果。META标签是HTML语言HEAD区的一个辅助性标签,Meta 标签放在每个网页的<head>...</head>
中间,我们大家比较熟悉的如:
<meta name="GENERATOR" content="Microsoft FrontPage
3.0">//说明编辑工具;
<meta name="KEYWORDS" content="...">//说明关键词;
<meta name="DESCRIPTION" content="...">//说明主页描述;
它提供用户不可见的信息。meta标签通常用来为搜索引擎robots定义页面主题,或者是定义用户浏览器上的cookie;它可以用于鉴别作者,设定页面格式,标注内容提要和关键字;还可以设置页面使其可以
根据你定义的时间间隔刷新自己,以及设置RASC内容等级,等等
用法:
<Meta http-equiv="Page-Enter" Content="blendTrans(Duration=0.5)">
<Meta http-equiv="Page-Exit" Content="blendTrans(Duration=0.5)">
blendTrans是css动态滤镜的一种,产生渐隐效果。另一种动态滤镜RevealTrans也可以用于页面进入与退出效果:
动态滤镜可以为页面添加动人的淡入淡出、图象转化效果,它可以分为两种blend(混合)和reveal(显示),
前者可以使对象渐渐消失或出现,后者提供了24种图象转化的效果......
<Meta http-equiv="Page-Enter"
Content="revealTrans(duration=x, transition=y)">
<Meta
http-equiv="Page-Exit" Content="revealTrans(duration=x, transition=y)">
Duration:表示滤镜特效的持续时间(单位:秒)
Transition:滤镜类型。表示使用哪种特效,取值为0-23。