网页中HTML5与CSS3的应用
下面是我为大家搜索整理的关于网页中HTML5与CSS3的应用,欢迎参考阅读,希望对大家有所帮助!想了解更多相关信息请持续关注我们应届毕业生培训网!
网页技术的发展和进步,使得网页的功能朝着越来越丰富的方向发展,网页计算机设计技术也在这样的情况下得以不断融合。比如HTML5与CSS3两者之间的融合,为网页设计打开了全新的局面,有利于提升网页设计的效益。因此,积极探究HTML5与CSS3的在网页设计中的应用,显得尤为必要。
1 HTML的发展,特性和应用
1.1 HTML的发展历程
HTML英文翻译全称为超文本标记语言,是用来描述网页文档的标记语言。1991年Tim Berners-Le编写了名称为HTML标签的文档,里面涉及到20多个标记网页的HTML标签,他在借用SGML标记格式之后,形成了HTML的标记格式,由此打开了HTML的发展历史:(1)从IETF到W3C的转变。实际上HTML的第一个官方版本是有IETF推出的HTML2.0。早在1994年的时候,有浏览器就在这样的超文本语言标准下实现了文档嵌入图片,并且以img的标签纳入到HTML2.0体系中去。随后W3C渐渐成为HTML的标准组织,在对于HTML多数的修改之后,终于在1999年的时候推出了HTML4.0。(2)XHTML1,具备XML风格的HTML。继HTML4.0之后,出现了第一次修订的版本,那就是XHTML1.0,其关注于其扩展方面的效能,因为其对于语法方面的严格要求,并没有在使用方面表现出随意性,影响到此版本的使用效益。但是此时CSS的不断崛起,也使得网页设计者意识到XHTML的应用前景。(3)W3C推出XGTML1.1,XHTML1.1再也无法使用直接输出,即使此时网页设计者使用此版本的语言,但是由于主流浏览器的不支持,就使得其陷入到被架空的地步。(4)W3C推出了XHTML2,但是由于其在兼容方面的问题,难以发挥其效能,接着越来越多的主流浏览器开始对于W3C的开发行为提出反对,并且要求在HTML的基础上实现新的拓展,在没有达成共识之后,主流浏览器自发组织成立了超文本应用技术小组,那就是WHATWG,他们关注于Web Forms2和Web Appsl,并且将其融合在一起,形成了全新的HTML5的规范。
1.2 HTML的特性
从本质上来讲,HTML文档制作的过程并不是很复杂,很多时候都可以依靠其强大的功能去进行处理,甚至支持不同数据格式文本的嵌入。具体来讲其特性主要体现在以下几个方面:(1)简易性,基于超集方式可以使得其升级变得更加灵活和方便(2)扩展性,有着较强的扩展性(3)平台无关性,对于应用平台没有过多的要求。
1.3 HTML的应用
HTML技术体系不断完善,功能越发强大,在网页设计过程的应用也越来越频繁。一般情况下,HTML作为基本标记语言,主要在以下几个方面发挥效能(1)实现静态网页的编写,多数情况下以.html为结尾的网址就是在HTML的基础上诞生的,通常看到的网页源代码就是标记语言(2)实现动态网页的编写,主要会以PHP或者ASP等语言方式去呈现网页的动态效果。
2 CSS的发展、特性和应用
2.1 CSS的发展历程
1994年哈坤利提出构建CSS的提议,当时正在设计一款浏览器的伯特・波斯与其实现合作,开展了CSS的设计工作。在当时CSS作为第一个含有层叠意识的语言,给予读者和作者更多的自由行,以实现设计效益的提升。随后他们在1994年芝加哥的一次会议上展示了CSS,随后两人就组织成立了技术小组,终于在1996年完成了CSS,次年12月份第一本公开版本被出版。1997年初,W3C内组织了专管CSS的工作组,并且在1998年推出了第二个版本CSS2.1。CSS3现在还处于开发中,CSS 3在包含了所有CSS 2所支持的基础上更有所改进。
2.2 CSS的特性与应用
CSS中文翻译为层叠样式表单,其可以很方便的运用到网页外观控制上去。具体来讲,其特性主要体现在以下几个方面:(1)可以同时实现多个网页样式的更新(2)使得网页的表示层和结构层处于分离的状态,不至于受到彼此的影响(3)使得网页文件的大小得到了缩减(4)对于提升网页加载速度来讲,有着积极作用。因此,CSS样式表被大量运用到网页设计实践工作中去。
3 HTML与CSS在网页设计中的应用
从理论上来讲,HTML和CSS3有着自己的优势和特点,关注的方向也存在差异性,运用的领域也展现出很多的不同之处。但是随着近几年网页设计理念的革新,网页设计的范围被延展,移动终端的不断出现,越来越多的设计人员开始意识到其两者的融合,可以在促进网页设计工作质量提升方面发挥着巨大的作用。当HTML5与CSS3在网页设计方面的融合效益被展现出来之后,就有越来越多的网页设计人员开始参与到探索和尝试中去,遵循两者之间的不同之处,充分发挥各自的优势,解决当前各种困难,已经成为当前网页设计人员的公司。笔者结合自身从事网页设计的工作经验,认为两者之间的融合运用可以在以下几个方面发挥积极效能。
3.1 在移动上网平台中的设计运用
从当前网页设计的工作来看,HTML5与CSS3是使用率比较高的技术模式,尤其在移动网页设计,网页表单制作的过程中发挥着越来越重要的作用。我们知道,传统的移动上网设备由于配置方面的问题,其网页浏览的功能往往受到局限,或者不能看视频,或者不能获得高清的效果,为了解决这样的问题很多网站都在创建移动互联网版本,往往消耗大量的人力和物力。但是如果在此网格设计的过程跟踪,充分利用HTML5与CSS3的话,不仅仅可以实现跨平台操作,还能够使得用户获得最佳的用户体验。以网页界面大量图片插入为例,传统模式下不仅仅会使得网页运行速度受到制约,还会使得客户的.体验度不断降低。此时利用HTML5和CSS3技术,设计出有效的网页表单交互设计模型,如此一来就可以避免网页运行速度缓慢的问题。
3.2 在跨浏览器调整方面的设计应用
不得不承认的是在HTML5和CSS3技术帮助下,的确可以使得设计者获得更多的设计工具和方法,但是难以实现在跨浏览器的调整,如果出现特殊版本的因特网搜索引擎的话,就需要对于附加设置和帮助进行识别。为了能够解决这样的难题,可以尝试以HTML5SHIM的开放的JAVASCRIPT文件对于网络搜索引擎进行识别。当然此项功能不能仅仅依靠搜索引擎本身。另外还可以对于页面结构进行调整和编辑,在网页可编辑的区域,利用Ajax实现更新内容的保存,并且将其纳入到数据库中去,以便在任何时候都可以对于对应的数据信息进行访问。当然HTML5与CSS3的功能的确强大,但是还难以进行跨浏览器的操作,但是这将是未来两者实现更好融合的切入点,也是网页设计的发展趋势。
综上所述,HTML5与CSS3的发展和进步,是无数网页设计人员艰苦奋斗的结果,其在提升网页设计效果,增强其用户体验度方面发挥着越来越重要的作用。尤其在当前各种语言技术相互融合,彼此之间的交叉不断出现,统一的标准和规范,可供扩展的接口,都为实现技术的融合和发展营造了良好的外在环境。人们需要看到的是HTML5与CSS3之间的关系也是不容忽视的,两者之间存在的各种异同点都会为两者的融合效益发挥打下基础。作为网页设计人员应该树立发展的理念,正确认识这两者之间的关系,不断将两者运用到网页设计的工作中去,以发挥两者的融合效应。
一、首先学习的是transition属性(zoom不支持transition,适用于具体数值的属性值变化或者背景图的变换)transition 过渡 作为一个复合属性
1.transition-property 指定可以过渡的属性
默认值是all 定义应用过渡效果的 CSS 属性名称列表,列表以逗号分隔。
2.transition-duration 指过渡完成的时间
默认值为0s
3.transition-timing-function 过渡的动画类型
默认值为ease
ease 规定慢速开始,然后变快,之后慢速结束的过渡效果
ease-in 规定以慢速开始的过渡效果
ease-out 规定以慢速结束的过渡效果
ease-in-out 规定以慢速开始和结束的过渡效果
linear 规定以相同速度开始至结束的过渡效果
cubic bezier(n,n,n,n) 在cubic-bezier函数中定义自己的值
4.transition-delay 延迟执行过渡的时间
默认值为0s
二、transform属性
transform 向元素应用2D或3D转换 只对block级元素生效
1.translate 位移
translateX() 在x轴上发生位移或者变形
translateY() 在y轴上发生位移或者变形
translate(x,y) 在x轴 ,y轴上发生位移或者变形 当只有一个值的时候,只有x轴生效
2.scale 缩放
scaleX() 设置在x轴上发生缩放
scaleY() 设置在y轴上发生缩放
scale(x,y) 设置在x轴,y轴上发生缩放 当只有一个值的时候,x,y轴都发生缩放可以设置负数 使用场景:设置小于12px的字体
3.rotate 旋转 2d旋转 设置元素在2d平面旋转(z轴),正数按顺时针,负数按逆时针
rotateX()设置沿x轴旋转
rotateY () 设置沿y轴旋转
4.skew 倾斜
skewX 绕x轴发生倾斜
skewY 绕y轴发生倾斜
skew(x,y) 绕x,y轴发生的倾斜 x轴和y轴和我们理解的相反,常用于平行四边形图案
三、transform-origin: 设置旋转元素的基点位置
transform-origin是变形原点,也就是该元素围绕着那个点变形或旋转,该属性只有在设置了transform属性的时候起作用;
因为我们元素默认基点就是其中心位置,换句话说我们没有使用transform-origin改变元素基点位置的情况下,transform进行的rotate,translate,scale,skew,matrix等操作都是以元素自己中心位置进行变化的。
但有时候我们需要在不同的位置对元素进行这些操作,那么我们就可以使用transform-origin来对元素进行基点位置改变,使元素基点不在是中心位置,以达到你需要的基点位置。
下面我们主要来看看其使用规则:
transform-origin(X,Y):用来设置元素的运动的基点(参照点)。默认点是元素的中心点。其中X和Y的值可以是百分值,em,px,其中X也可以是字符参数值left,center,right;Y和X一样除了百分值外还可以设置字符值top,center,bottom 。
语法:-moz-transform-origin: [ | | left | center | right ][ | | top | center | bottom ] ?
transform-origin接受两个参数,它们可以是百分比,em,px等具体的值,也可以是left,center,right,或者 top,center,bottom等描述性参数
top left | left top 等价于 0 0;
top | top center | center top 等价于 50% 0
right top | top right 等价于 100% 0
left | left center | center left 等价于 0 50%
center | center center 等价于 50% 50%(默认值)
right | right center | center right 等价于 100% 50%
bottom left | left bottom 等价于 0 100%
bottom | bottom center | center bottom 等价于 50% 100%
bottom right | right bottom 等价于 100% 100%
先简单介绍下,也许你很熟悉下面的代码: <div id="news">代码如下:
<div class="section">
<div class="article">
<div class="header">
<h1>Div Soup Demonstration</h1>
<p>Posted on July 11th, 2009</p>
</div>
<div class="content">
<p>Lorem ipsum text blah blah blah.</p>
<p>Lorem ipsum text blah blah blah.</p>
<p>Lorem ipsum text blah blah blah.</p>
</div>
<div class="footer">
<p>Tags: HMTL, code, demo</p>
</div>
</div>
<div class="aside">
<div class="header">
<h1>Tangential Information</h1>
</div>
<div class="content">
<p>Lorem ipsum text blah blah blah.</p>
<p>Lorem ipsum text blah blah blah.</p>
<p>Lorem ipsum text blah blah blah.</p>
</div>
<div class="footer">
<p>Tags: HMTL, code, demo</p>
</div>
</div>
</div>
</div>
尽管这有些勉强,但上面这个实例还是可以说明使用HTML4对一个复杂的设计进行代码化后依然过于臃肿(其实xHTML1.1也不过如此)。不过值得激动的是,HTML5解决“<div>-soup” 综合症并带给我们一套新的结构化元素。这些新的HTML5元素富有更细致的语义从而代替了那些毫无语义的<div>标签,并同时为CSS的调用提供了”自然”的CSS钩子。
下面是 HTML5的解决方案实例: <section>
代码如下:
<section>
<article>
<header>
<h1>Div Soup Demonstration</h1>
<p>Posted on July 11th, 2009</p>
</header>
<section>
<p>Lorem ipsum text blah blah blah.</p>
<p>Lorem ipsum text blah blah blah.</p>
<p>Lorem ipsum text blah blah blah.</p>
</section>
<footer>
<p>Tags: HMTL, code, demo</p>
</footer>
</article>
<aside>
<header>
<h1>Tangential Information</h1>
</header>
<section>
<p>Lorem ipsum text blah blah blah.</p>
<p>Lorem ipsum text blah blah blah.</p>
<p>Lorem ipsum text blah blah blah.</p>
</section>
<footer>
<p>Tags: HMTL, code, demo</p>
</footer>
</aside>
</section>
</section>
正如我们所见,HTML5可以让我们用很多更语义化的结构化代码标签代替那些大量的无意义的<div>标签。这种语义化的特性不仅提升了我们网页的质量和语义,并且大量减少了曾经代码中用于CSS必须调用的class和id属性。事实上,CSS3也是可以然通过我们忽略掉所有class和id 的。
跟class属性说再见,欢迎整洁的标签
结合了富有新的语义化标记的HTML5,CSS3为web设计师们的网页提供了神一般的力量。有了HTML5的能量,我们将得到更多的对文档代码的控制权,有了CSS3的能量,我们的控制权将趋于无穷大!
即使没有那些高级的CSS选择器,我们仍然可以通过强大的HTML5条调用不同的容器而不劳驾class和id这类属性。像以往的DIV布局,我们在css中可能要这样调用: div#news{}
代码如下:
div.section {}
div.article {}
div.header {}
div.content {}
div.footer {}
div.aside {}
我们再来看看基于HTML5的实例: section {}
复制代码
代码如下:
article {}
header {}
footer {}
aside {}
这是个进步,但仍有一些问题需要解决。在<div>实例中,我们需要通过class或id属性来调用页面中的元素。这种逻辑将允许我们将样式应用到文档中的任何一个元素上,无论是整体还是个体。例如在<div>实例中,.section 和 .content元素很容易定位。但是在HTML5实例中,实际文档中会有很多个section元素。其实我们可以添加一些特定的属性选择器来调用那些不同的section元素,不过谢天谢地,我没现在可以用少量的高级CSS选择器来定位不同的section元素。
不使用class和id定位HTML-5元素
下面让我们来看看如何在不使用class和id的情况下定位HTML5页面元素的一个实例,我们可以使用三种CSS选择器来定位和辨别实例中的元素。如下:
后代选择器:[CSS 2.1]: EF
兄弟选择器:[CSS 2.1]: E + F
子元素选择器:[CSS 2.1]: E >F
下面让我们来看看如何不使用class和id而完成对文档中的那些section元素的定位吧:
定位最外层的<section>元素
考虑到我们的例子并不是一套完整的HTML5代码,所以我们假定在<body>元素下有个<nav>元素与<section>元素是兄弟元素。这样的话,我们就可以向下面代码那样定位最外层的
<section>了:
代码如下:
body nav+section {}
定位下一个<section>元素
作为最外层<section>元素下的唯一直属子集元素,这个<section>元素也许可以这样定位:
复制代码
代码如下:
section>section {}
定位<article>元素
可以定位<article>元素的方法有很多,不过最简单的方法当然就是后代选择器了:
代码如下:
section section article {}
定位<header>、<section>和<footer>元素
这三个元素分别在两个地方都出现过,一是在<article>元素中出现,另一是在<aside>元素中出现。这种差别能让我们轻松定位每个元素。
代码如下:
article header {}
article section {}
article footer {}
或者一起定义:
代码如下:
section section header {}
section section section {}
section section footer {}
到目前为止,我们已经使用CSS2.1选择器排除掉了所有的class和id。那么我们为什么还需要使用CSS3 呢?我很高兴你能这么问…
使用CSS3对HTML5元素进行高级定位
虽然我们已经使用CSS2.1选择器排除掉了所有的class和id,显然还会有很多更复杂的情况需要CSS3的高级选择器来解决。让我们通过完成一下的实例来了解一下如何在不使用无用的class和id属性的情况下利用CSS3定位页面元素。
使用一个唯一的日志 (post)ID定位所有日志
wordpress提供给我们一种包含了ID的每篇日志的源代码输出。这种信息通常用于导航和/或了解资料的意图,不过CSS3可以利用这些唯一的ID来定义这些日志的样式。当然,你还可以像往常那样为每篇日志添加class=”post”这样的属性,但这就与我们练习的意图相冲突了(再加上它没有一点乐趣所在)。使用”子字符串匹配选择器”,我们就可以像下面这样定位所有日志和它们的不同元素了。
代码如下:
article[id*=post-] {} /* 定位所有日志 */
article[id*=post-] header h1 {} /* 定位所有日志中的h1标签 */
article[id*=post-] section p {} /* 定位所有日志中的p标签 */
我们仍然可以使用同样的方式定位评论的元素和它们的子元素。
代码如下:
article[id*=comment-] {} /* 定位所有评论 */
article[id*=comment-] header h1 {} /* 定位所有评论中的h1标签 */
article[id*=comment-] section p {} /* 定位所有评论中的p标签 */
定位一些指定的区域(section)或文章(article)
有很多博客的日志量和评论量都相当大,HTML 5 会将它们由<section>或<article>元素组成。为了定位哪些指定的<section>或<article>元素,我们就要转而使用强大的“:nth-child”选择器了:
代码如下:
section:nth-child(1) {} /* 选择第一个 <section>*/
article:nth-child(1) {} /* 选择第一个 <article>*/
section:nth-child(2) {} /* 选择第二个 <section>*/
article:nth-child(2) {} /* 选择第二个 <article>*/
同样,我们可以使用“:nth-last-child”选择器定位反序的一些元素。
代码如下:
section:nth-last-child(1) {} /* 选择最后一个 <section>*/
article:nth-last-child(1) {} /* 选择最后一个 <article>*/ </p><p>section:nth-last-child(2) {} /* 选择倒数第二个 <section>*/
article:nth-last-child(2) {} /* 选择倒数第二个 <article>*/
使用更多的方式选择指定元素
另一种选择HTML5中指定元素(如 header、section和footer)的方法就是利用”:only-of-type”选择器的优势。由于这些HTML5元素通常会在很多地方出现不止一次,所以当我们想定位那种在父元素下仅出现过一次的标签时这种方法很方便。例如,我们要选择的是在某元素中有切仅有的唯一一个元素,如以下代码:
代码如下:
<section>
<section></section>
<section>
<section>定位这个section元素</section>
</section>
<section>
<section>定位这个section元素</section>
</section>
<section>
<section>但不定位这个section元素</section>
<section>和这个section元素</section>
</section>
<section></section>
</section>
我们可以仅使用以下一行选择器:
代码如下:
section>section:only-of-type {}
再次唠叨,你可以固执的为每个元素添加ID属性,但你会失去代码的可扩展性、维护性和绝对简洁的结构与表现相分离。 CSS3的确能让我们可快速更方便的定位几乎所有没有ID和class属性的页面元素。