我们平时是怎么写html和css的?
文章的起因,我只是为了回复一个帖子,http://bbs.csdn.net/topics/390908928?page=1
结果,一扯就根本停不下来。索性,一捅为快,反正是周末。
拿到效果图时,有这么几步,就我了解的情况做一下分享,不一定全部都是科学,但可以部分借鉴。
我先说一下,熟练后拿到效果图时这样的一个状态:
http://imcn.me/html/y2012/9871.html/comment-page-1
拿到效果图时,有这么几步,就我了解的情况做一下分享,不一定全部都是科学,但可以部分借鉴。
1. 拿到效果图先是分析:
分析什么,分析上下游的相关情况。先说上游设计和产品,如果设计有相关的文档,则仔细通读文档,就文档中相关业务流程,页面跳转,交互行为,设计细节相关清楚不清楚的问题找设计产品了解确认清楚,如果必要需要邮件确认,免得其后扯皮说,当时没说清楚,当时说的不是这,怎么怎么的。如果可能还需要开会,让相关把关人与会参与,比如项目经理,技术总监。
业务流程就是直观的就是需求设计里边的流程图,比如注册,电话->成功->失败等等,但这不是最终的页面,只是流程,然后就要跟流程对页面,哪个页面对应流程中的那个节点,页面的跳转,跳转的可能,依赖次序,以及重复页面的梳理等等。
然后在分析下游后台,页面的数据是否可以顺利的实现,后台接口数据提供的日期,大概约定等等。是否有前台业务逻辑判断的可能,是否前台需要更复杂简单的处理。是否在评审中有遗漏的细节,需要重新评估,或者直接否决,等等。
分析这些的目的就是:这些页面交给下游后台时会出现的一些问题,防止页面交出去以后,有些链接的去向不明,数据不正确,以及少页面,漏模块等等情况的发生。
2. 写页面之前的需要了解的2种方式:
当然切的时候有2种方式,一部分前端可能是第1种方式,就是把psd转换成html页面,交给后端,进行数据的完善。其实这种方式有几个问题:
a. 页面的结构划分没有决定权,比如,有些页面在后端来说,可以通过后台技术来进行一定的拆分组合。但是纯html页面不能实现这个功能,要是不能合理的拆分,有些资源的调用,或后期页面的修改有很大的麻烦。
b. 页面的数据的结构状态,因为设计交与的页面状态是一个理想的状态,但是页面至少有三种状态,比如,数据最少的情况,数据最多的情况,以及数据刚好的状态,而设计给你的是数据刚好的状态,其它的如果项目紧设计人员少,那就需要自己脑补,如果有真正的效果图出来,那还好有参考的依据。否则,后期在测试部门回溯的时候也是比较麻烦。
c. 任务完成的不连续性,因为有些ajax的交互发生,需要重新的渲染页面,这样结构或样式可能会发生改变,如果是纯html页面,那只有等后端完成数据状态之后,在去完成相关ajax的相关模块,或者是等后端自己完成ajax,然后出现问题在找你,等等的情况,都加大了合作之间出现bug的风险或可能。
鉴于以上情况,我个人建议利用后端语言的优势来写静态的数据结构或者直接输出动态的最终view层页面。这样在前端层的页面控制权完全交与前端来负责,但是这样得具备一个条件:
对前端的技术储备有大大的要求,必须了解一门后端语言为基础,了解ajax的整个交互过程或一些常见问题的处理。
当然,说起来很玄乎,其实这些东西都不难。比如流行的web后端语言php,以及php相关的一些框架提供的view模板,可能说,有一定的编程基础或静下心来的决心,少花点时间基本都没有问题。
这种方式也有一个缺点,就是小型的活动页面,或者一些专题页面,如果完全套用这种方式,可能盘子太大,不适合。用纯html的页面反而会更快。
3. 然后才是真正的动手写页面切图:
写页面也是需要一个过程,从最初的写出基本的效果到解决常见浏览器的兼容bug到最后兼顾页面复用性,健壮性以及扩展性:
a. 页面的健壮性:
这个怎么说呢,这个前面已经提过,UI出的psd图是一个页面理想状态下的形态,而页面有数据,会出现两种极端状态,一,数据极多,二,数据极少。所以在页面排版的时候,考虑这两种状态,以免数据太多的时候,撑破页面,以免数据太少,页面部分元素会出现收回去状况,这样的页面会出现一些细节没有处理的常规失误。
b. 页面的扩展性:
可以说,这个也是第一条的扩充,扩展性的意思为,在页面的模块很少的时候,要考虑未来添加子模块或兄弟模块的状态,为将来留好html接口。在将来添加模块的时候,尽可能少的去动原来的html结构,使html易于扩展。这个具体情况,具体处理。一般的处理就是如果有可能会有兄弟元素就多套一层,为后台添加兄弟元素尽可能的不影响现有结构。这个点乍看起来很小,其实如果扩充到整个项目,多个项目就有可观的效应了。
c. 页面的复用性:
由于页面中风格相似的模块很多,或页面中与页面中相似的模块很多,但是总会有那么一丁点的差异,这是设计师认识世界然后在表达世界的产物,我们理解设计师的职业操守,所以只能在前期做一些技术处理,免得后期问候某岗位的亲人。具体的有的模块高点有的模块低点,还有结构完全一样,但底纹不一定。这样建议把表现形式的样式放在一个class中,物理属性放在一个class中。还有就是装饰性的图片决不不以明标签的方式插入到页面中,内容式的内容绝对以<img src="" />的方式插入中去,以免将来多主题,多语言版本的实现。
可能有时候还有的情况是,页面完全切不出来,html,css完全不知道怎么写了。但基础掌握良好,概念基本清楚。这时候我个人建议应该是吸收别人好的东西时候到了,也是个人水平瓶颈的时候,需要在坚持一下完全的突破。具体的方式就是,用firebug去分析先有的bat各个项目的各个页面,总有你可以借鉴的地方。
4. 切完页面之后:
本着职业操守或一个有责任的前端,需要进一步分析各个页面的结构是否在原来加班的时候,或问候亲人的时候没有考虑完全的,或者原来的实现方式不是太好,需要进一步完善,有性能优化或结构优化的可能。
前端开发qq群:159758989 ,禁止闲聊,非喜勿进~!
我们平时是怎么写html和css的?的更多相关文章
- IE 和 FF 写不同的CSS
.FireFox 下如何使连续长字段自动换行 众所周知IE中直接使用word-wrap:break-word 就可以了, FF中我们使用JS插入的技巧来解决 <style type=" ...
- 如何根据不同的浏览器写不同的css样式达到兼容
做前端静态页面的时候总是发现,ie的兼容性很差,总会出点问题.然后就去改代码 ,改完以后 又发现 火狐 谷歌又挂了,这可咋整. 后来发现做个判断吧 哪里有问题哪里就做个判断呗 ,咋判断呢,这么 ...
- 写给初学者css优先级问题
首先需要搞清楚几个基本概念 1.内嵌样式: 写在元素标签内的例如:<div style="background-color:red"> </div> 2.内 ...
- 1.写页面 2.css的继承属性有哪些 3.margin对布局的影响
1. sparent 透明的 2. placeholder 提示语 写页面 1.搞清结构层次 2. 保证模块化 让它们之间不能收到影响. (1) 元素性质 (2)标准流 浮动带来的脱离文档流撑不起父级 ...
- 学写网页 #05# CSS Mastery 笔记 1~3
看到第四章才发现这本书已经太旧了..看到第 3 章为止吧.前三章主要讲的内容:一些编码常识.怎样选择元素.盒子模型(主要是 Margin).定位(绝对.相对.浮动.fixed 等) 第一章 conve ...
- JQ 特效下拉列表 写出与css一样的效果
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 最诡异的Linux fork进程问题(我们平时都在写)
从来没有遇到过... 运行环境:在Linux自带的文本编辑器中输入C程序,在shell中编译运行,下面直接看代码和运行结果. 第一个代码:#include<stdio.h> #includ ...
- 平时自己项目中用到的CSS
outline 当选中input元素的时候会出现状态线, outline设置成none就没了 input{ outline:none; } contentditable 设置元素内的文本是否可编辑 ...
- 在 Less 中写 IE 的css hack
Less中直接在属性后面加hack写法会编译报错的.那么怎么解决呢? 第一种方式: IE7 以display:inline-block为例: less的hack写法: .box{ display: i ...
随机推荐
- Oracle学习笔记七 锁
锁的概念 锁是数据库用来控制共享资源并发访问的机制. 锁用于保护正在被修改的数据 直到提交或回滚了事务之后,其他用户才可以更新数据 对数据的并发控制,保证一致性.完整性.
- python3: error while loading shared libraries: libpython3.5m.so.1.0: cannot open shared object file: No such file or directory
安装python3遇到报错: wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz ./configure --prefix=/u ...
- Ubuntu 15.1 unity在顶部面板显示系统CPU/内存/网络速度
全部的文件:http://files.cnblogs.com/files/xiaobo-Linux/ubuntu%E6%98%BE%E7%A4%BA%E7%B3%BB%E7%BB%9F%E7%BD%9 ...
- H5页面微信分享和手Q分享设置
RT: 一. 手Q分享: 如下代码所示:设置好 description,name,image,即可,唯一注意的是image最好是200*200,要不然过小不美观,过大加载太慢 <head> ...
- 刷新页面时 select值保持不变
刷新页面时,要使下拉菜单(select).raido保持不变,用ajax是无法实现的.我想只能通过cookies才能实现.刷新前先把select或radio的值保存在cookies中,刷新后再填回去. ...
- POJ 3370. Halloween treats 抽屉原理 / 鸽巢原理
Halloween treats Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 7644 Accepted: 2798 ...
- linux-虚拟机centos6.5安装tools
1.在VMWare选VM -> Install VMWare Tools-,就会在桌面出现VMWare Tools图示让你安裝 2.进入CentOS桌面后,将光盘打开,看到了VMWareTool ...
- NodeJS、NPM安装配置步骤(windows版本)
windows下的NodeJS安装是比较方便的(v0.6.0版本之后,支持windows native),只需要登陆官网(http://nodejs.org/),便可以看到首页的"INSTA ...
- 内网劫持渗透新姿势:MITMf简要指南
声明:本文具有一定攻击性,仅作为技术交流和安全教学之用,不要用在除了搭建环境之外的环境. 0×01 题记 又是一年十月一,想到小伙伴们都纷纷出门旅游,皆有美酒佳人相伴,想到这里,不禁潸然泪下.子曰:& ...
- MVC系列——MVC源码学习:打造自己的MVC框架(二:附源码)
前言:上篇介绍了下 MVC5 的核心原理,整篇文章比较偏理论,所以相对比较枯燥.今天就来根据上篇的理论一步一步进行实践,通过自己写的一个简易MVC框架逐步理解,相信通过这一篇的实践,你会对MVC有一个 ...