我们平时是怎么写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 ,禁止闲聊,非喜勿进~!

时间: 2024-10-16 17:52:17

我们平时是怎么写html和css的?的相关文章

IE 和 FF 写不同的CSS

或许你一直在抱怨为什么要专门为IE和FF写不同的CSS,为什么IE这样让人头疼,然后一边写css,一边咒骂那个可恶的M$ IE.其实对于css的标准支持方面,IE并没有我们想象的那么可恶,关键在于IE和FF 的默认值不一样而已,掌握了这个技巧,你会发现写出兼容FF和IE的css并不是那么困难,或许对于简单的css,你完全可以不用”!important”这个东西了. 我们都知道,浏览器在显示网页的时候,都会根据网页的css样式表来决定如何显示,但是我们在样式表中未必会将所有的元素都进行了具体的描述

初学CSS(写于接触CSS不到1个星期)

什么是web前端? 在第一次上课的时候就问过我们,当时我认为前端就是设计网页,但具体是什么,我也不是很清楚.老师解释道:web前端,就是你打开浏览器之后,所能看到的一切,都是用前端技术实现的.(我以前还认为页面是画出来的,没想到是写出来的,一下就高大上了...) 前端技术的核心有三个:HTML(超文本标记语言,主要用来描述一个网页的结构的).CSS(层叠样式表,用来装饰网页).javascript(网页上的脚本语言,是用来编程的). 我理解CSS就是对于框架元素的全面补充,就好像是修房子,用HT

因为业务需要,用nodejs写了一个css解析器,因为是基础库,想开源,不知道有没有人需要。

一般而言htmlparser的解析使用得比较多,node库中已经有了,npm install -g htmlparser2就可以安装. 这段时间要实现nodejs上的安全扫描,需要对html,css,js进行解析,css主要是限制一些绝对定位,浮层和url,防止产生钓鱼或攻击.所以写了一个css的解析器. 感觉 这些基础库应该公开出去,但是不知道有多少人有这个需求.

写给初学者css优先级问题

首先需要搞清楚几个基本概念 1.内嵌样式: 写在元素标签内的例如:<div style="background-color:red"> </div> 2.内联样式: 写在head的style例如:<head> <style> div{ background-color:red; } </style> </head> 3.外部样式: link标签引入进来的例如:<link rel="styleshee

2015.3.14(知乎首页仿写及纯CSS兼容IE6实现响应式下拉菜单)

昨晚写了一个知乎的首页练习,只完成了上半部分的练习.下半部分做了一个纯CSS的响应式下拉菜单(可以兼容IE6). 可以看出那个知乎两个大字下面的那行字是截图截下来的,有一点色差……代码如下: js的部分只用到了获取可视区域的宽度这一点. function setIndex() { var commonWidth = $(window).outerWidith; var commonWidth = $(window).outerHeight; $(".backTitle").css(&q

学写网页 #05# CSS Mastery 笔记 1~3

把所有细节都记在脑子里是不现实且不必要的,<精通CSS>既是一本可以随手翻阅的"放在电脑边的书", 也是一本非常好的 CSS 入门书,它用非常浅显的语言和例子告诉了你哪些是坏的行为,哪些是好的行为,很适合当参考书,并且颇具权威性 ... (读后感/个人观点) 第一章 conventions validator  DOCTYPE switching The browser chooses which rendering method to use based on the e

最诡异的Linux fork进程问题(我们平时都在写)

从来没有遇到过... 运行环境:在Linux自带的文本编辑器中输入C程序,在shell中编译运行,下面直接看代码和运行结果. 第一个代码:#include<stdio.h> #include<stdlib.h> #include<unistd.h> #define N 2 int main() { int i; pid_t pid; for(i = 0; i < N; i++) { pid = fork(); if(pid == 0) { printf("

JQ 特效下拉列表 写出与css一样的效果

<!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-

自己写的一个css性能分析工具:tinycss

## tinycss 分析一个css文件在多个html页面的使用情况,输出有效的css文件 ### 技术栈 glob.postcss.vue-template-compiler ### 开发准备 1.git clone本项目- 2.cnpm i ### 使用说明:1.src目录放入html文件(一个以上).css文件(一个以上)2.npm run test //执行命令,输出dist目录3.demo.css是压缩后的css文件,demo.map是矩阵数据(记录css的命中情况) ### 注意点不