语义元素定义了页面中有特殊含义的元素,在浏览器或其它网页处理工具中可以更加方便地处理页面结构和内容。本文主要介绍一些文本元素和文章结构元素,以及水平方向导航的实现。
文本中使用一些语义元素,可以突出文本内容的特殊含义,此外,有些元素还会有一些特殊的默认样式。下面列出了一些常用的文本元素及其含义:
文档结构元素只用于定义页面中的有特殊含义的结构,其中的实际内容还是需要具体的元素来实现,下面是一些常用的文档结构语义元素。
下面的代码演示了部分结构元素的应用。
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> </head> <body> <article> <header> <h1>人类共同的家园</h1> </header> <figure> <img alt="地月" src="earth-moon.jpg" style="width:320px;margin:0.5em;" /> <figcaption>太空中看地球</figcaption> </figure> <p> 地球(Earth)是太阳系的第三颗行星,从内到外分别是地核(又分为外 地核和内地核,其中外地核产生地磁场)、地幔、地壳,表面陆地面积约占29.2% 为,海洋等面积占70.8%。地球大约诞生于45.4亿年前,42亿年前形成海洋,40亿 年前形成稳定固态地壳。约35亿年前生命在深海出现,逐步扩散到浅海和陆地,当 前已记录的物种约120万种。地球绕太阳公转一周需365.25天,自转轴倾斜产生季 节变化。半径约6371千米。地球唯一的天然卫星是月球,两者的引力相互作用引起 潮汐并稳定地球自转。 </p> <footer> <p>示例页面</p> </footer> </article> </body> </html>
本例并没有过多设置样式,可以通下图观察默认的显示效果。
nav元素用于定义页面导航,前一篇文章中演示了结合列表和a元素创建垂直方向的导航。实际工作中,还经常会使用水平方向的导航,如页眉中的全局导航。很多开发者会在垂直导航的基础上使用浮动(float)效果实现水平导航,但果,如果无法正确应用样式,则希望的水平导航就会显示为列表默认的垂直效果。页面中在有样式或没有样式时应该呈现什么样的效果,还是需要根据实际情况来实现,后续文章还会介绍浮动的实现。下面的代码会定义水平方向的导航,首先会使用默认样式展现。
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> </head> <body> <header> <h1>导航测试页</h1> <nav class='header_navi'> <a id='navi_1' href='/'>栏目一</a> <a id='navi_2' href='/'>栏目二</a> <a id='navi_3' href='/'>栏目三</a> <a id='navi_4' href='/'>栏目四</a> <a id='navi_5' href='/'>栏目五</a> </nav> </header> </body> </html>
页面显示效果如下图所示。
下面的代码,通过style元素添加水平导航的样式。
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <style> .header_navi { display: block; vertical-align: bottom; } .header_navi a { display:inline-block; font-family: '微软雅黑'; text-decoration: none; color: #444; padding-left: 2em; padding-right: 2em; height:2em; line-height:2em; vertical-align:middle; border-radius:1em 1.5em 0em 0em; background-image:linear-gradient(#fafafa,steelblue); } </style> </head> <body> <header> <h1>导航测试页</h1> <nav class='header_navi'> <a id='navi_1' href='/'>栏目一</a> <a id='navi_2' href='/'>栏目二</a> <a id='navi_3' href='/'>栏目三</a> <a id='navi_4' href='/'>栏目四</a> <a id='navi_5' href='/'>栏目五</a> </nav> </header> </body> </html>