努力学习 HTML5 (3)—— 改造传统的 HTML 页面

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

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

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="utf-8"><title>Apocalypse Now</title><link rel="stylesheet" href="ApocalypsePage_Original.css">
</head><body>
<div class="Header"><h1>How the World Could End</h1><p class="Teaser">Scenarios that spell the end of life as we know</p><p class="Byline">by Ray N. Carnation</p>
</div><!-- end Header --><div class="Content"><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><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><h2>Mayan Doomsday</h2><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><h2>Robot Takeover</h2><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><h2>Unexplained Singularity</h2><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><h2>Runaway Climate Change</h2><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><h2>Global Epidemic</h2><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></div><!-- end Content --><div class="Footer"><p class="Disclaimer">These apocalyptic predictions do not reflect the views of the author.</p><p><a href="AboutUs.html">About Us</a><a href="Disclaimer.html">Disclaimer</a><a href="ContactUs.html">Contact Us</a></p><p>Copyright © 2014</p>
</div><!-- end Footer -->
</body>
</html>

在不增加任何 CSS 样式表之前,效果如下:

20150920008

上面通过三个 <div> 将页面分成了三个部分,顶部的页眉,中部的内容和底部的页脚。

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

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

@charset "utf-8";
/* CSS Document */
body{/*font-family 要使用安全字体,按照先特殊后一般的原则,先给出你想要的字体,然后是保险一些的字体,最后以 sans-serif 字体结尾*/font-family: "Lucida sans Unicode", "Lucida Grande", Geneva, sans-serif;max-width: 800px; /*最大宽度不超过 800 像素*/
}/*页面顶部的标题区样式*/
.Header {background-color: #7695FE; /*可接受任何颜色值*/border: thin #336699 solid; /*多合一的 border 属性*/padding: 10px; /* 10像素的内边距,边框与内容之间的距离*/margin: 10px; /* 10像素的外边距,边框与周围元素之间的距离*/text-align: center; /*头部文本居中*/
}/*页眉中标题<h1>样式*/
.Header h1{margin: 0px;color: white;font-size: xx-large; /*精确控制可以用像素或者em单位*/
}/*页眉中子标题样式*/
.Header .Teaser{margin: 0px;font-weight: bold;
}/*页眉中署名行样式*/
.Header .Byline{font-style: italic;font-size: small;margin: 0px;
}.Content{font-size: medium;font-family: Cambria, Cochin, Georgia, "Times New Roman", Times, serif;/*左右内边距最大*/padding-top: 20px;padding-right: 50px;padding-bottom: 5px;padding-left: 50px;line-height: 120%; /*相邻两个文本行之间的距离*/
}.Content .LeadIn{font-weight: bold;font-size: large;font-variant: small-caps;
}.Content .h2{color: #24486C;margin-bottom: 2px;font-size: medium;
}.Content p{margin-top: 0px;
}.Footer{text-align: center;font-size: x-small;
}.Footer .Disclaimer{font-style: italic;
}.Footer p{margin: 3px;
}

这样我们的样式表就弯沉过了,现在去看看结果会怎样呢?如下图:

20150920009


使用 HTML5 来构造页面

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

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

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

<header><h1>How the World Could End</h1><p class="Teaser">Scenarios that spell the end of life as we know</p><p class="Byline">by Ray N. Carnation</p>
</header>
...
<footer><p class="Disclaimer">These apocalyptic predictions do not reflect the views of the author.</p><p><a href="AboutUs.html">About Us</a>
...</p><p>Copyright © 2014</p>
</footer>

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

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

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

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

<article>
  <header><h1>How the World Could End</h1><p class="Teaser">Scenarios that spell the end of life as we know</p><p class="Byline">by Ray N. Carnation</p>
  </header>  <div class="Content"><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>
...
  </div><!-- end Content -->
</article>

重新设计后,页面结构如下:

20150920010


用 <figure> 添加插图

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

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

...
<div class="Content"><p><span class="LeadIn">Right now</span>, you're ...</p>  <div class="FloatFigure"><img src="human_skull.jpg" alt="Human skull"><p>Will you be the last person standing if one of these apocalypticscenarios plays out?</p></div><p>But don't get too smug. There's...</p>
...

相应的 样式表规则如下:

.FloatFigure{float: left;margin: 0px 20px 0px 0px;
}.FloatFigure p{max-width: 300px;font-size: small;font-style: italic;margin-bottom: 5px;
}

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

20150920011

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

<figure class="FloatFigure"><img src="human_skull.jpg" alt="Human skull"><figcaption>Will you be the last person standing if one of these apocalypticscenarios plays out?</figcaption>
</figure>

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

.FloatFigure{float: left;margin: 0px 20px 0px 0px;
}.FloatFigure figcaption{max-width: 300px;font-size: small;font-style: italic;margin-bottom: 5px;
}

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


用 <aside> 添加附注

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

下面的示例中将用作醒目引文(pull quote),使用 <div> 元素可以创造这种效果,但是用 <aside> 元素让标记更有意义:

20150920012

部分代码如下:

  <p>... (in a suitably robotic voice) "Who's your daddy now?"</p><aside class="PullQuote"><img src="quotes_start.png" alt="Quote">We don't know how the universe started, so we can't be sure it won't just end, maybe today.<img src="quotes_end.png" alt="End quote"></aside><h2>Unexplained Singularity</h2>

对应的样式表内容如下:

.PullQuote{float: right;max-width: 300px;border-top: thin black solid;border-bottom: thick black solid;font-size: 30px;line-height: 130%;font-style: italic;padding-top: 5px;padding-bottom: 5px;margin-left: 15px;margin-bottom: 10px;
}.PullQuote img{vertical-align: bottom;
}

示例代码

ApocalypsePage.rar

转载于:https://www.cnblogs.com/pchmonster/p/4824893.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/375513.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

判断系统是大端还是小段

大端&#xff1a;高位内存存储低序字节小端&#xff1a;高位内存存储高序字节short a 0x0102&#xff0c;其中 01 高序字节&#xff0c; 02 低序字节 #include<stdio.h>int main() {union {short s;char c[sizeof(short)];} un;un.s 0x0102;if (sizeof(short) 2) {if…

C语言判断系统是32位还是64位

long 在 32 位系统中是 4 字节&#xff0c;与 int 表示范围相同&#xff0c;在 64 位系统中是 8 字节。 #include <stdio.h> #include <stdlib.h> #include <limits.h>int main() {long a INT_MAX;if (a 1 < 0) {printf("32: %ld\n", a);} e…

使用Eclipse搭建Struts2框架

本文转自http://blog.csdn.net/liaisuo/article/details/9064527 今天在Eclipse搭建了Struts2 框架&#xff0c;并完成了一个很简单的例子程序。 搭建好的全局图如下: 第一步:在http://struts.apache.org/download.cgi下载Struts2的最新版即下载Full Distribution&#xff0c;这…

autoLayout自动布局

autoLayout 有两个核心概念&#xff1a; 约束&#xff1a;就是对控件进行高度&#xff0c;宽度&#xff0c;相对位置的控制 参照&#xff1a;多个控件时&#xff0c;一个或多个控件以其中的一个为基准进行高度&#xff0c;宽度&#xff0c;位置的设置 当选择了 use auto layout…

JDBC连接(MySql)数据库步骤,以及查询、插入、删除、更新等十一个处理数据库信息的功能。...

主要内容&#xff1a; JDBC连接数据库步骤。一个简单详细的查询数据的例子。封装连接数据库&#xff0c;释放数据库连接方法。实现查询&#xff0c;插入&#xff0c;删除&#xff0c;更新等十一个处理数据库信息的功能。&#xff08;包括事务处理&#xff0c;批量更新等&#x…

C++学习笔记25,析构函数总是会宣布virtual

为了永远记住析构函数声明virtual----><<effective c>> 为这句话不一定对,但无需质疑的是这句话是非常实用的. 查看以下的样例: #include <iostream> #include <string> using namespace std; class B{ public:~B(){cout<<"base is dest…

各大互联网公司2014前端笔试面试题–JavaScript篇

很多面试题是我自己面试BAT亲身经历碰到的。整理分享出来希望更多的前端er共同进步吧&#xff0c;不仅适用于求职者&#xff0c;对于巩固复习js更是大有裨益。 而更多的题目是我一路以来收集的&#xff0c;也有往年的&#xff0c;答案不确保一定正确&#xff0c;如有错误或有更…

iOS:苹果企业证书通过网页分发安装app

本文转载至 http://blog.sina.com.cn/s/blog_6afb7d800101fa16.html 苹果的企业级证书发布的应用&#xff0c;是不用设备授权即可直接安装&#xff0c;并且不限设备上限。为了方便分发&#xff0c;苹果有协议实现通过网页链接直接下载安装企业级的应用。 基本的原理就是在生成企…

这道题很难

请编写一个函数&#xff0c;使其可以删除某个链表中给定的&#xff08;非末尾&#xff09;节点。传入函数的唯一参数为 要被删除的节点 。 现有一个链表 – head [4,5,1,9]&#xff0c;它可以表示为: 示例 1&#xff1a; 输入&#xff1a;head [4,5,1,9], node 5 输出&a…

设计模式学习笔记-基础知识篇

1. 设计模式的重要性 1.1 设计模式解决的是在软件过程中如何来实现具体的软件功能。实现同一个功能的方法有很多&#xff0c;哪个设计容易扩展&#xff0c;容易复用&#xff0c;松耦合&#xff0c;可维护&#xff1f;设计模式指导我们找到最优方案。 1.2 设计中往往会存在设计缺…

内心的平静就是财富本身-Cell组件-用友华表的由来-T君

时至今日&#xff0c;Cell组件仍是应用广泛的商业报表组件 作者&#xff1a;人生三毒 编者注&#xff1a;本文作者人生三毒为知名网站及网页游戏公司创始人&#xff0c;此前曾为IT类媒体资深编辑&#xff0c;见证了中国互联网早期的发展。 认识T君之前先认识的是他的软件&#…

C++实现一个http服务器

一个简单的博客后端服务器 github地址&#xff0c;持续更新 设计参考 #define MYSQLPP_MYSQL_HEADERS_BURIED #include "httplib.h" #include "rapidjson/document.h" #include <mysql/mysql.h> #include <iostream> #include <string>…

KMP算法的java实现

package com.trs.utils;public class KMPStr {/** 在KMP算法中&#xff0c;最难求的就是next函数&#xff0c;如何理解next函数是一个难题&#xff0c;特别是knext[k]&#xff0c;这里* 需要指出的是当p[i]!p[j]时&#xff0c;我们只有通过回溯将k的值逐渐减小&#xff0c;貌似…

线段分割法实现微信抢红包

无意间看到的一种实现抢红包的方法&#xff0c;于是用C实现了一下。 将一个红包分成 n 份 具体的思路是&#xff0c;将一个红包看作是一个线段&#xff0c;线段的长就是红包总金额&#xff0c;然后在这个线段上随机切 n-1 刀&#xff0c;分成 n 份&#xff0c;然后抢红包的人依…

C++雪花算法实现

看来一下雪花算法的实现方法&#xff0c;用 c试着实现了一下&#xff0c;这里仅仅是实现了算法的流程&#xff0c;但是具体的细节&#xff0c;如并发、多线程访问等等没有具体考虑。 雪花算法的简单讲解参考 #include <sys/select.h> #include <iostream> #includ…

CAlayer层的属性

iOS开发UI篇—CAlayer层的属性 一、position和anchorPoint 1.简单介绍 CALayer有2个非常重要的属性&#xff1a;position和anchorPoint property CGPoint position; 用来设置CALayer在父层中的位置 以父层的左上角为原点(0, 0) property CGPoint anchorPoint; 称为“定位点”、…

Odoo9发行说明

2015年10月1日&#xff0c;期待已久的Odoo9正式发布。本文是Odoo9正式版发行说明&#xff0c;基于官网资料翻译。 译者: 苏州-微尘原文地址&#xff1a;https://www.odoo.com/page/odoo-9-release-notes译文地址&#xff1a;http://blog.csdn.net/wangnan537/article/details/4…

揭秘史上最完美一步到位的搭建Andoriod开发环境

Windows环境下Android开发环境搭建虽然不难而且网上资料众多&#xff0c;但是众多资料如出一折 忽略了很多细节&#xff0c;最终还是没能达到满意效果。 基本步骤如下&#xff1a;JDK安装、环境变量配置、Eclipse下载、AndoriodSDK下载安装、下载配置ADT但是到这里还不算完美搞…

【SQL】服务器环境下的SQL

一、大型数据库的三层体系结构 web服务器&#xff1a;比如在淘宝页面上&#xff0c;输入“牛肉干”&#xff0c;就是web服务器来处理&#xff0c;提交给应用服务器。 应用服务器&#xff1a;在获取到“牛肉干”这个请求后&#xff0c;应用服务器决定如何汇集结果&#xff0c;并…

即时聊天IM之二 openfire 整合现有系统用户

合肥程序员群&#xff1a;49313181。 合肥实名程序员群&#xff1a;128131462 (不愿透露姓名和信息者勿加入) Q Q:408365330 E-Mail:egojitqq.com 综述&#xff1a; 每天利用中午时间更新下这个知识点的的博客如果感兴趣的觉得更新慢了也别介意&#xff08;其它时间还是…