在学习完《From PSD to HTML: Building a Set of Website Designs Step by Step》之后,使我对网页的设计和实现有了更深入的认识,我逐渐少了那些恐惧感,为此,我尝试着实现了自己的第一个从PSD到HTML的实践。

我使用的站点PSD文件是已经设计好的一个SAAS站点首页,站点的实际效果图例如以下:

实际完毕的站点例如以下:http://lab.shalilang.com/saas/index.html

实际过程例如以下:

1、准备工作

我选择了使用Dreamweaver CS6 作为开发工具,先创建了工作网站,并创建了images目录、index.html和style.css,分别用于存放图片,网页的HTML代码和CSS代码。

2、分析网页布局

通过站点效果图,我们大概能够为分为:页头、导航、横幅、内容、页脚五部分,我将前四部分都集中在一个div中管理,页脚独立管理。同一时候我们也能够发现,整个页面背景是跟窗体一样大小的,但全部内容部分居中长度为1010px。基本代码例如以下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>SAAS</title>
<link href="index.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div class="container">
<div id="header"> header
</div>
<div id="navmenu"> navmenu
</div>
<div id="banner"> banner
</div>
<div id="content"> content
</div>
</div>
<div id="footer"> footer
</div>
</body>
</html>

对应的CSS代码,兴许介绍。

3、从页头開始实现,直到完毕页脚。

实现页头时,主要遇到问题有:

问题1:因为原始设计中logo的字体是本机没有的,也没有提示详细的字体名字,我直接将其裁成图片的形式展示。同理右側的“服务热线”也裁剪成图片。

问题2:logo等图片须要垂直居中显示,依据图片的大小计算出须要padding-top,来控制图片出如今header的中间。

  <div id="header">
<img class="logo" src="images/logo.png" alt="logo" />
<img class="phone" src="images/phoneNumber.png" alt="phone number" />
<img class="logo phonenumer" src="images/phone.png" alt="phone logo" />
</div>

CSS代码

.logo {
padding-top: 35px;
}

4、导航栏部分

导航栏部分没有特别的问题,主要是使用ul和li标签,使用到了float:left;,使全部的导航菜单项向左浮动,同一时候要实现菜单项中的文字垂直居中,使用了

#navmenu ul li a{
height: 38px;
line-height: 38px;
overflow: hidden;
}

5、banner部分

这部分图片的处理花了点时间,由于原PSD中在保存图片的时候总是会出现白色斑点,做了一些处理才完毕,由此可见一个好的PSD文件还是非常重要的。主要分离出背景地板颜色的图片和上层SAAS介绍+蝴蝶图片。

这部分须要设置banner div的最小宽度是min-width:1010px,防止在用户电脑屏幕太小时,导致部分内容不能展示。

创建登录栏时,首先是须要灰色透明的背景,为了方便使用了透明图片作为背景。

至于当中的文字和文本框则主要通过position和float定位进行设置位置,相对而言比較简单。

6、内容部分

主要分为两部分,左側是新闻,右側是SAAS介绍,右側应该做成选项卡的方式。同一时候它们又能够都分为上下两部分,上面是标题,以下是内容。左側float:left;width:330px;,同理右側和左側保持20px距离。

实现标题要加入�一条底线,能够使用hr也能够通过border-bottom的方式来表达。

内容部分通过列表来实现,控制好列表项之间的距离,我是通过设置line-height来填充。还有对于溢出的文字,须要通过text-overflow:ellipsis;来处理。

右側的内容部分,是使用table实现的,理论上也能够通过ul列表来实现,后面能够尝试一下。

7、页尾部分

没有什么特别的地方,无非是控制文字的位置。

8、之后通过w3c validator进行了验证,<img>缺少了alt属性,其它没有什么问题。

这基本上就是我的第一次从PSD到HTML工作的所有,没有依照步骤来介绍,由于代码都已经完毕,须要花时间去又一次整理太费时间,仅仅把遇到的一些问题介绍一下,备忘。

---------------------------

本人技术博客:

www.shalilang.com

从PSD到HTML,网页的实现的更多相关文章

  1. perfectpixel 加载PSD图到网页中和已经写好的网页进行对比

    perfectpixel  这是火狐的插件: 用途:加载设计图,和 已经编写好的网页进行对比,看是否完美还原. 谷歌也有类似的插件,但是无法下载.

  2. 前端开发使用Photoshop切图详细步骤

    切图的主要目的是从设计师提供的psd中获取网页制作所要的资源 一.界面设置 1. 新建文件,调整界面大小,背景设置为透明 2. 自动选择,把组切换为图层 3. 添加窗口内容,一共四项:图层.历史纪录. ...

  3. 25套用于 Web UI 设计的免费 PSD 网页元素模板

    Web 元素是任何网站相关项目都需要的,质量和良好设计的元素对于设计师来说就像宝贝一样.如果您正在为您的网站,博客,Web 应用程序或移动应用程序寻找完美设计的网页元素,那么下面这个列表会是你需要的. ...

  4. 韩国网页设计资料《网页设计大师2》JPG+PSD+TXT等 73.89G 百度云下载

    < 网页设计大师2 >超越第一代版本,提供更新更精美的网页素材模板.全部由国际顶级设计师精选打造,完全展示走在潮流 之前的设计风格.是网页设计师/UI交互界面设计师必备工具. < 网 ...

  5. 25套用于Web UI设计的免费PSD网页元素模板

    Web 元素是任何网站相关项目都需要的,质量和良好设计的元素对于设计师来说就像宝贝一样.如果您正在为您的网站,博客,Web 应用程序或移动应用程序寻找完美设计的网页元素,那么下面这个列表会是你需要的. ...

  6. 使用PSD设计网页页面

    一.一个独立的页面 1.分析这个页面,在脑海或草稿上要确立页面板块布局(如版块区域的,位置和大小)2.根据设计稿的的情况,分析背景图的分布.ICO图的分布等 3.切割相应的图片,导出.合并图片(一般用 ...

  7. 从网页psd到html的开发

    从网上下载了一张psd的网页设计稿,初学html+css,所以记录一下我的学习过程.原图是这个样子:             原图                                   ...

  8. 40套PSD欧美扁平化网页模板,可二次编辑开发,精品

    40套PSD欧美扁平化网页模板,可二次编辑开发,绝对精品,下载地址:百度网盘, https://pan.baidu.com/s/1uMF4MM_3UC2Q6mbyNomLfQ 模板内容预览:   小

  9. 【项目】小试牛刀-polo360静态网页项目(附psd文件资源)

    笔者尝试下开发简单的静态网页,下面分享过程及源码.这是polo360的下载链接:https://pan.baidu.com/s/1WqGxKMYY_DHfrSJ9lLL-WA 提取码:v2qi  (一 ...

随机推荐

  1. PHP 识别 java 8位 des 加密和 解密方式

    代码及使用说明: <?php /** *PHP 识别 java 8位密钥的加密和解密方式 *@desc 加密方式 通用 */ class DES { var $key; var $iv; //偏 ...

  2. C++11线程池的实现

    什么是线程池 处理大量并发任务,一个请求一个线程来处理请求任务,大量的线程创建和销毁将过多的消耗系统资源,还增加了线程上下文切换开销. 线程池通过在系统中预先创建一定数量的线程,当任务请求到来时从线程 ...

  3. 解析文本文件 "r" 与 "rb" 模式的区别(Python)

    r,rb 那么在读文件时,有无b标识的的主要区别在哪里呢? 1.文件使用方式标识 'r':默认值,表示从文件读取数据.'b':表示要读写二进制数据 2.读文件 进行读文件操作时,直到读到文档结束符(E ...

  4. 记录移动端html界面中底部输入框触发焦点时键盘会把输入框遮挡的问题

      //浏览器当前的高度 var oHeight = $(document).height(); //监听窗口大小的时候动态改变底部输入框控制器的定位 $(window).resize(functio ...

  5. JS学习笔记(二)变量、作用域及内存问题

    一.基本类型和引用类型的值 变量可能包含两种不同数据类型的值:基本类型值和引用类型值. 基本类型值:简单的数据段. 引用类型值:可能由多个值构成的对象. 当将一个值赋给变量时,解析器必须确定这个值是基 ...

  6. 一步一步写数据结构(BST-二叉排序树)

    二叉排序树的重要性不用多说,下面用c++实现二叉排序树的建立,插入,查找,修改,和删除.难点在于删除,其他几个相对比较简单. 以下是代码: #include<iostream> using ...

  7. spring boot thymeleaf常用方式

    动态和静态区别 静态页面的return默认是跳转到/static/index.html,当在pom.xml中引入了thymeleaf组件,动态跳转会覆盖默认的静态跳转,默认就会跳转到/template ...

  8. 表单验证插件validate

    http://www.runoob.com/jquery/jquery-plugin-validate.html <!DOCTYPE html> <html lang="e ...

  9. type与instance区别

    class Foo(object): pass class Bar(Foo): pass obj = Bar() # isinstance用于判断,对象是否是指定类或其派生类的实例 print(isi ...

  10. 1265. [NOIP2012] 同余方程

    1265. [NOIP2012] 同余方程 ★☆   输入文件:mod.in   输出文件:mod.out   简单对比 时间限制:1 s   内存限制:128 MB [题目描述] 求关于 x 的同余 ...