我们将使用 HTML5 和 CSS3 制作一个简单的静态主页 Simply,下面是最终效果图
理解设计
我们能看到上面的图看到,Simply 是一个全宽度的主页设计,分为 7 个部分。我们要把他切成一些列的可以管理的模块,方便处理,结构如下图
设置文件加结构
首先,我们要为这个项目创建一个文件夹里,目录里包括一个 HTML 文件,一个 images 文件夹(里面包含所需图片资源),一个 CSS 文件夹。目录结构如图
点击下载 images 图片资源: images,里面图片清单如下
- hero.jpg - 2000 x 697 px
- features-icon-1.png - 100 x 100 px
- features-icon-2.png - 100 x 100 px
- features-icon-3.png - 100 x 100 px
- video-placeholder.jpg - 940 x 527 px
- article-image-1.jpg - 460 x 270 px
- article-image-2.jpg - 460 x 270 px
设置 HTML 文件
打开 index.html 文件,输入一下代码:
|
|
上面这段代码是所有 HTML 文件的基本框架。它定义了文件类型(HTML5),编码方式(UTF-8)和页面的头部信息。除了这个基本框架,我们还要用条件注释加上一个脚本 「if it IE9.」这个脚本能够使用 HTML5 标签,比如
分解页面
上面我们已经把页面分解成了 7 部分,再近一步分解成基本的结构,方便编码,如下图。
注意到没,没有把所有的元素都标记上,只是一些最重要的部分。剩下的在内容里添加。我们把这个结构放到 HTML 文件的
|
|
因为设计的宽度是 960px,我们需要在每一部分都插入一个 wrapper,使用 div 容器加上一个 wrapper 类来实现。
添加内容
这一部分我们要往 HTML 文件里添加文件了,之前没有的标签,像 paragraphs, headers, links, list items 等等都要加进去
第一部分: Header
Header 部分包括一个 logo 和 一个导航栏. logo 使用一号标题 标签和一个行内颜色类,我们可以在后面根据 CSS 设置不同的颜色。导航栏就是一个简单的无序列表 ul 和 4 个 li,放在 nav 标签里。
|
|
第二部分: Hero 图片
一个 Hero banner 图片加上一个二号标题标签和一个 button 链接。
第三部分:Feature
第三部分里有一个无序列表,使用 CSS 这些列表会向左水平浮动显示。为了不让元素浮动,我们需要一个 「clear」 的 div 类。并且,这个在后面的 CSS 中的属性是 「clear:both」。
第四部分:Primary Content
这部分很简单,用 标签引入一个视频封面
|
|
第五部分:Secondary Content
跟 feature 那部分类似,我们让
第六部分:Call to Action
也是非长简单直接,标题,段落和一个 button 链接。
|
|
第七部分:Footer
Footer 部分被分为两列,「footer-info」和「footer-link」,后者又用列表项分成了 3 列。
下一步引用我们用到 CSS 文件。第一个就是 css reset,可以到这里下载 CSS Reset,把他放到 css 文件夹里,并且在 HTML 引用。<link rel="stylesheet" type="text/css" href="css/reset.css">
同时也引用一下我们自定义的 CSS<link rel="stylesheet" type="text/css" href="css/home.css">我们的 logo 字体「Crete」从 Google 字体库里引用来的,也要引用进来才能使用。<link href='http://fonts.googleapis.com/css?family=Crete+Round' rel='stylesheet' type='text/css'>
添加样式
全局样式
body, headings, paragraphs and links 这些都是全局属性,应用在整个文件里,所以先定义好。wrapper 的宽度是 960px,每个边减去 10px padding 值。由于用了 reset css,有些属性需要重新定义。
第一部分:Header
H1 标签表明了 logo 字体的大小,color 属性定义了 logo 的颜色,ul 里的 li 向左浮动。
第二部分:Hero Image
#hero-image 类的高度要比背景图片小,上下都留了几个像素的空间,一边将来做一些细小的调整或者设计响应式布局。
第三部分:Feature
每个 Feature 的特性共享 #features ul li 属性。但是.feature-1, .feature-2 and .feature-3 这些属性都是彼此不同的,每个属性都定义一个不同的 Icon.
第四部分:Primary Content
heading 3 是有下划线,而且居中对齐的。在全局的样式中已经定义过了。
|
|
第五部分:Secondary Content
第一个子选择器只在第一篇文章的 margin 值为 20px,.overlay 用 rgba 用白色背景加点透明。
|
|
第六部分:Call to Action
这里用相同的自定义的 <h3> 的标签。也定义了 button 和 hover 的状态。
|
|
第七部分:Footer
我们用浮动把 Footer 分成两列:#footer-info 和 #footer-links,然后用相同的方法把 #footer-links 分成三个水平方向的无序列表。
|
|
结论
至此,我们就用 HTML5 和 CSS3 制作了一个站点首页。
