HTML5几个设计和修改的页面范例分享


Posted in HTML / CSS onSeptember 29, 2015

要了解和熟悉 HTML5 中的新的语义元素,最好的方式就是拿一经典的 HTML 文档作例子,然后把 HTML5 的一些新鲜营养充实进入。如下就是我们要改造的页面,该页面很简单,只包含一篇文章。

ApocalypsePage_Original.html,这是一个格式非常规范的页面,所有的样式均来自于外部样式表。

XML/HTML Code复制内容到剪贴板
  1. <!DOCTYPE html>  
  2. <html lang="zh-CN">  
  3. <head>  
  4.   <meta charset="utf-8">  
  5.   <title>Apocalypse Now</title>  
  6.   <link rel="stylesheet" href="ApocalypsePage_Original.css">  
  7. </head>  
  8.   
  9. <body>  
  10. <div class="Header">  
  11.   <h1>How the World Could End</h1>  
  12.   <p class="Teaser">Scenarios that spell the end of life as we know</p>  
  13.   <p class="Byline">by Ray N. Carnation</p>  
  14. </div><!-- end Header -->  
  15.   
  16. <div class="Content">  
  17.   <p><span class="LeadIn">Right now</span>, you're probably feeling pretty good. After all, life in the developed world is comfortable<span class="style1"></span>probably more comfortable than it's been for the average human being throughout all of recorded history.</p>  
  18.   <p>But don't get too smug. There's still plenty of horrific ways it could all fall apart. In this article, you'll learn about a few of our favorites.</p>  
  19.      
  20.   <h2>Mayan Doomsday</h2>  
  21.   <p>Skeptics suggest that the Mayan calendar simply rolls to a new 5,126-year era after 2012, and doesn't actually predict a life-ending apocalypse. But given that the long-dead Mayans were wrong about virtually everything else, why should we trust them on this?</p>  
  22.      
  23.   <h2>Robot Takeover</h2>  
  24.   <p>Not quite as frightening as a Vampire Takeover or Living-Dead Takeover, a robot rebellion is still a disquieting thought. We are already outnumbered by our technological gadgets, and even Bill Gates fears the day his Japanese robot slave turns him over by the ankles and asks (in a suitably robotic voice) "Who's your daddy now?"</p>  
  25.      
  26.   <h2>Unexplained Singularity</h2>  
  27.   <p>We don't know how the universe started, so we can't be sure it won't just end, maybe today, and maybe with nothing more exciting than a puff of anti-matter and a slight fizzing noise.</p>  
  28.      
  29.   <h2>Runaway Climate Change</h2>  
  30.   <p>Dismissed by some, Al Gore's prophecy of doom may still come true. If it does, we may have to contend with vicious storms, widespread food shortages, and surly air conditioning repairmen.</p>  
  31.      
  32.   <h2>Global Epidemic</h2>  
  33.   <p>Some time in the future, a lethal virus could strike. Predictions differ about the source of the disease, but candidates include monkeys in the African jungle, bioterrorists, birds and pigs with the flu, warriors from the future, an alien race, hospitals that use too many antibiotics, vampires, the CIA, and unwashed brussel sprouts. Whatever the source, it's clearly bad news.</p>  
  34.   
  35. </div><!-- end Content -->  
  36.   
  37. <div class="Footer">  
  38.   <p class="Disclaimer">These apocalyptic predictions do not reflect the views of the author.</p>  
  39.   <p>  
  40.     <a href="AboutUs.html">About Us</a>  
  41.     <a href="Disclaimer.html">Disclaimer</a>  
  42.     <a href="ContactUs.html">Contact Us</a>  
  43.   </p>  
  44.   <p>Copyright © 2014</p>  
  45. </div><!-- end Footer -->  
  46. </body>  
  47. </html>  

在不增加任何 CSS 样式表之前,效果如下:
HTML5几个设计和修改的页面范例分享
上面通过三个 <div> 将页面分成了三个部分,顶部的页眉,中部的内容和底部的页脚。

这个例子中的样式表很简单,整个页面最大宽度设置为 800 像素,避免文本在宽屏显示器上显示过长。页眉位于一个带有蓝色边框的盒子中,内容区的两侧都增加了内边距,而页脚在整个页面的底部居中。

ApocalypsePage_Original.css样式文件内容如下:

XML/HTML Code复制内容到剪贴板
  1. @charset "utf-8";   
  2. /* CSS Document */   
  3. body{   
  4.   /*font-family 要使用安全字体,按照先特殊后一般的原则,   
  5.   先给出你想要的字体,然后是保险一些的字体,   
  6.   最后以 sans-serif 字体结尾*/   
  7.   font-family: "Lucida sans Unicode", "Lucida Grande", Geneva, sans-serif;   
  8.   max-width: 800px; /*最大宽度不超过 800 像素*/   
  9. }   
  10. /*页面顶部的标题区样式*/   
  11. .Header {   
  12.   background-color: #7695FE; /*可接受任何颜色值*/   
  13.   border: thin #336699 solid; /*多合一的 border 属性*/   
  14.   padding: 10px; /* 10像素的内边距,边框与内容之间的距离*/   
  15.   margin: 10px; /* 10像素的外边距,边框与周围元素之间的距离*/   
  16.   text-align: center; /*头部文本居中*/   
  17. }   
  18. /*页眉中标题<h1>样式*/   
  19. .Header h1{   
  20.   margin: 0px;   
  21.   color: white;   
  22.   font-size: xx-large; /*精确控制可以用像素或者em单位*/   
  23. }   
  24. /*页眉中子标题样式*/   
  25. .Header .Teaser{   
  26.   margin: 0px;   
  27.   font-weight: bold;   
  28. }   
  29. /*页眉中署名行样式*/   
  30. .Header .Byline{   
  31.   font-style: italic;   
  32.   font-size: small;   
  33.   margin: 0px;   
  34. }   
  35. .Content{   
  36.   font-size: medium;   
  37.   font-family: Cambria, Cochin, Georgia, "Times New Roman", Times, serif;   
  38.   /*左右内边距最大*/   
  39.   padding-top: 20px;   
  40.   padding-right: 50px;   
  41.   padding-bottom: 5px;   
  42.   padding-left: 50px;   
  43.   line-height: 120%; /*相邻两个文本行之间的距离*/   
  44. }   
  45. .Content .LeadIn{   
  46.   font-weight: bold;   
  47.   font-size: large;   
  48.   font-variant: small-caps;   
  49. }   
  50. .Content .h2{   
  51.   color: #24486C;   
  52.   margin-bottom: 2px;   
  53.   font-size: medium;   
  54. }   
  55. .Content p{   
  56.   margin-top: 0px;   
  57. }   
  58. .Footer{   
  59.   text-align: center;   
  60.   font-size: x-small;   
  61. }   
  62. .Footer .Disclaimer{   
  63.   font-style: italic;   
  64. }   
  65. .Footer p{   
  66.   margin: 3px;   
  67. }  

这样我们的样式表就弯沉过了,现在去看看结果会怎样呢?如下图:
HTML5几个设计和修改的页面范例分享
使用 HTML5 来构造页面

<div> 目前仍旧是 Web 设计的必备元素,它是一个直观、多用途的容器,可以通过它为页面中的任何区块应用样式。但 <div> 的问题在于,它本身不反映与页面相关的任何信息。

要通过 HTML5 改进这种情况,可以把 <div> 替换成更具有描述性语义的元素。

ApocalypsePage_Revised.html中已经将 class 属性为 Header 和 Footer 两个 <div> 替换为 <header> 和 <footer>, 部分代码如下:

XML/HTML Code复制内容到剪贴板
  1. <header>  
  2.   <h1>How the World Could End</h1>  
  3.   <p class="Teaser">Scenarios that spell the end of life as we know</p>  
  4.   <p class="Byline">by Ray N. Carnation</p>  
  5. </header>  
  6. ...   
  7. <footer>  
  8.   <p class="Disclaimer">These apocalyptic predictions do not reflect the views of the author.</p>  
  9.   <p>  
  10.     <a href="AboutUs.html">About Us</a>  
  11. ...   
  12.   </p>  
  13.   <p>Copyright © 2014</p>  
  14. </footer>  

当然,对应的 ApocalypsePage_Revised.css 文件也需要进行修改,将其中的 .Header 和 .Footer 替换为 header 和 footer 。部分代码如下:

XML/HTML Code复制内容到剪贴板
  1. /*页面顶部的标题区样式*/   
  2. header {   
  3.   background-color: #7695FE; /*可接受任何颜色值*/   
  4.   border: thin #336699 solid; /*多合一的 border 属性*/   
  5.   padding: 10px; /* 10像素的内边距,边框与内容之间的距离*/   
  6.   margin: 10px; /* 10像素的外边距,边框与周围元素之间的距离*/   
  7.   text-align: center; /*头部文本居中*/   
  8. }   
  9. /*页眉中标题<h1>样式*/   
  10. header h1{   
  11.   margin: 0px;   
  12.   color: white;   
  13.   font-size: xx-large; /*精确控制可以用像素或者em单位*/   
  14. }  

最后还有一个元素需要用在示例文件中,就是 <article> 元素,表示一个完整的、自成一体的内容。

<ariticle>元素应该包含新闻报道或文章的内容,包括标题、署名和正文。因此添加了 <article> 元素后的结构如下:

XML/HTML Code复制内容到剪贴板
  1. <article>  
  2.   <header>  
  3.   <h1>How the World Could End</h1>  
  4.   <p class="Teaser">Scenarios that spell the end of life as we know</p>  
  5.   <p class="Byline">by Ray N. Carnation</p>  
  6.   </header>  
  7.   <div class="Content">  
  8.   <p><span class="LeadIn">Right now</span>, you're probably feeling pretty good. After all, life in the developed world is comfortable<span class="style1"></span>probably more comfortable than it's been for the average human being throughout all of recorded history.</p>  
  9. ...   
  10.   </div><!-- end Content -->  
  11. </article>  

重新设计后,页面结构如下:
HTML5几个设计和修改的页面范例分享

用 <figure> 添加插图

很多页面都是包含图片的。但是,插图 (figure) 与图片的概念还不完全一样。插图虽然独立于文本,但是文本中会提到它。

一般来说插图应该是浮动的,还会有浮动图题。下面是在文章中添加插图的 HTML 标记,在正文的第一段和第二段之间的位置,部分代码如下:

XML/HTML Code复制内容到剪贴板
  1. ...   
  2. <div class="Content">  
  3. <p><span class="LeadIn">Right now</span>, you're ...</p>  
  4. <div class="FloatFigure">  
  5. <img src="human_skull.jpg" alt="Human skull">  
  6. <p>Will you be the last person standing if one of these apocalyptic   
  7. scenarios plays out?</p>  
  8. </div>  
  9. <p>But don't get too smug. There's...</p>  
  10. ...  

相应的 样式表规则如下:

XML/HTML Code复制内容到剪贴板
  1. .FloatFigure{   
  2.   float: left;   
  3.   margin: 0px 20px 0px 0px;   
  4. }   
  5. .FloatFigure p{   
  6.   max-width: 300px;   
  7.   font-size: small;   
  8.   font-style: italic;   
  9.   margin-bottom: 5px;   
  10. }  

下图展示了这个示例的外观,插图恰好在第一段文本之后,浮动在后面文本的左侧,图题的文本的宽度我们限制住了,让图题显示很充实、很优雅。
HTML5几个设计和修改的页面范例分享

HTML5 中提供了一个 <figure> 元素,图题可以放在 <figure> 中的 <figcaption> 元素里,经过改造,代码如下:

XML/HTML Code复制内容到剪贴板
  1. <figure class="FloatFigure">  
  2.   <img src="human_skull.jpg" alt="Human skull">  
  3.   <figcaption>Will you be the last person standing if one of these apocalyptic   
  4.    scenarios plays out?</figcaption>  
  5. </figure>  

当然样式表中的选择符,相应修改一下即可。

XML/HTML Code复制内容到剪贴板
  1. .FloatFigure{   
  2.   float: left;   
  3.   margin: 0px 20px 0px 0px;   
  4. }   
  5. .FloatFigure figcaption{   
  6.   max-width: 300px;   
  7.   font-size: small;   
  8.   font-style: italic;   
  9.   margin-bottom: 5px;   
  10. }  

最后还有就是 <img> 元素中的 alt 属性可以删除掉,因为图题中包含了图片的完整说明。

用 <aside> 添加附注

新的 <aside> 元素表示与它周围的文本没有密切关系的内容。可以通过它介绍另一个相关的话题,或者对主文档中提出的某个观点进行解释。还可以用来放置广告、相关内容链接。

下面的示例中将用作醒目引文(pull quote),使用 <div> 元素可以创造这种效果,但是用 <aside> 元素让标记更有意义:
HTML5几个设计和修改的页面范例分享
部分代码如下:

XML/HTML Code复制内容到剪贴板
  1.   <p>... (in a suitably robotic voice) "Who's your daddy now?"</p>  
  2.   
  3. <aside class="PullQuote">  
  4.   <img src="quotes_start.png" alt="Quote">  
  5.   We don't know how the universe started, so we can't be sure it won't just end, maybe today.   
  6.   <img src="quotes_end.png" alt="End quote">  
  7. </aside>  
  8.   
  9. <h2>Unexplained Singularity</h2>  

对应的样式表内容如下:

XML/HTML Code复制内容到剪贴板
  1. .PullQuote{   
  2.   float: right;   
  3.   max-width: 300px;   
  4.   border-top: thin black solid;   
  5.   border-bottom: thick black solid;   
  6.   font-size: 30px;   
  7.   line-height: 130%;   
  8.   font-style: italic;   
  9.   padding-top: 5px;   
  10.   padding-bottom: 5px;   
  11.   margin-left: 15px;   
  12.   margin-bottom: 10px;   
  13. }   
  14. .PullQuote img{   
  15.   vertical-align: bottom;   
  16. }  
HTML / CSS 相关文章推荐
CSS伪类与CSS伪元素的区别及由来具体说明
Dec 07 HTML / CSS
利用CSS3的特性改变文本选中时的颜色
Sep 11 HTML / CSS
纯CSS改变webkit内核浏览器的滚动条样式
Apr 17 HTML / CSS
细说CSS3中box属性中的overflow-x属性和overflow-y属性值的效果
Jul 21 HTML / CSS
CSS3制作文字半透明倒影效果的两种实现方式
Aug 08 HTML / CSS
CSS3关于z-index不生效问题的解决
Feb 19 HTML / CSS
深入浅析CSS3中的Flex布局整理
Apr 27 HTML / CSS
CSS3自定义滚动条样式 ::webkit-scrollbar的示例代码详解
Jun 01 HTML / CSS
CSS3 实现飘动的云朵动画
Dec 01 HTML / CSS
HTML 5 input placeholder 属性如何完美兼任ie
May 12 HTML / CSS
HTML5 拖放功能实现代码
Jul 14 HTML / CSS
html5清空画布方法(三种)
Oct 16 HTML / CSS
简单的HTML5初步入门教程
Sep 29 #HTML / CSS
基于html5 DeviceOrientation 实现微信摇一摇功能
Sep 25 #HTML / CSS
简单介绍HTML5中audio标签的使用
Sep 24 #HTML / CSS
利用HTML5实现使用按钮控制背景音乐开关
Sep 21 #HTML / CSS
深入解析HTML5的IndexedDB索引数据库
Sep 14 #HTML / CSS
使用HTML5的表单验证的简单示例
Sep 09 #HTML / CSS
详解HTML5中的manifest缓存使用
Sep 09 #HTML / CSS
You might like
探讨如何使用SimpleXML函数来加载和解析XML文档
2013/06/07 PHP
PHP图片处理之使用imagecopy函数添加图片水印实例
2014/11/19 PHP
PHP类的封装与继承详解
2015/09/29 PHP
yii去掉必填项中星号的方法
2015/12/28 PHP
JS提交并解析后台返回的XML的代码
2008/11/03 Javascript
js异步加载的三种解决方案
2013/03/04 Javascript
基于JavaScript如何实现私有成员的语法特征及私有成员的实现方式
2015/10/28 Javascript
CSS中position属性之fixed实现div居中
2015/12/14 Javascript
Javascript操作表单实例讲解(下)
2016/06/20 Javascript
JS 拦截全局ajax请求实例解析
2016/11/29 Javascript
JS常用加密编码与算法实例总结
2016/12/22 Javascript
ES6中Proxy与Reflect实现重载(overload)的方法
2017/03/30 Javascript
vue数据传递--我有特殊的实现技巧
2018/03/20 Javascript
element-ui 中的table的列隐藏问题解决
2018/08/24 Javascript
零基础之Node.js搭建API服务器的详解
2019/03/08 Javascript
antd vue table跨行合并单元格,并且自定义内容实例
2020/10/28 Javascript
python+selenium实现简历自动刷新的示例代码
2019/05/20 Python
Python连接Oracle之环境配置、实例代码及报错解决方法详解
2020/02/11 Python
翻转数列python实现,求前n项和,并能输出整个数列的案例
2020/05/03 Python
Python3 webservice接口测试代码详解
2020/06/23 Python
基于python实现操作git过程代码解析
2020/07/27 Python
英国最大线上综合鞋类商城:Office
2017/12/08 全球购物
Lampenwelt德国:欧洲领先的灯具和照明在线商店
2018/08/05 全球购物
巴西化妆品商店:Lojas Rede
2019/07/26 全球购物
幼儿园教学随笔感言
2014/02/23 职场文书
2015年质量管理工作总结范文
2015/05/18 职场文书
巴黎圣母院读书笔记
2015/06/26 职场文书
大学组织委员竞选稿
2015/11/21 职场文书
班主任班级管理心得体会
2016/01/07 职场文书
Pytorch数据读取之Dataset和DataLoader知识总结
2021/05/23 Python
如何在Mac上通过docker配置PHP开发环境
2021/05/29 PHP
MySQL对数据表已有表进行分区表的实现
2021/11/01 MySQL
面试被问select......for update会锁表还是锁行
2021/11/11 MySQL
使用Redis实现点赞取消点赞的详细代码
2022/03/20 Redis
Go本地测试解耦任务拆解及沟通详解Go本地测试的思路沟通的重要性总结
2022/06/21 Golang
Oracle数据库事务的开启与结束详解
2022/06/25 Oracle